From 2f271265e963d82766534abb8677ac01554fcc4a Mon Sep 17 00:00:00 2001 From: Marco Wende Date: Wed, 17 Jun 2026 07:40:52 +0200 Subject: [PATCH] =?UTF-8?q?web=20app=20mit=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e-App-Assignment-Application-v5_2_0_MW.ps1 | 31 +- Intune/Intune-App-Manager-Web/CHANGELOG.md | 234 + Intune/Intune-App-Manager-Web/README.md | 115 + Intune/Intune-App-Manager-Web/Run.cmd | 19 + Intune/Intune-App-Manager-Web/Start.ps1 | 221 + Intune/Intune-App-Manager-Web/application.ico | Bin 0 -> 8395 bytes Intune/Intune-App-Manager-Web/application.png | Bin 0 -> 11941 bytes .../Intune-App-Manager-Web/branding-logo.png | Bin 0 -> 11941 bytes Intune/Intune-App-Manager-Web/intune.png | Bin 0 -> 965665 bytes Intune/Intune-App-Manager-Web/pmpc.png | Bin 0 -> 180837 bytes Intune/Intune-App-Manager-Web/robopack.png | Bin 0 -> 54589 bytes Intune/Intune-App-Manager-Web/src/Api.ps1 | 2613 ++++++++++ Intune/Intune-App-Manager-Web/src/Graph.ps1 | 923 ++++ Intune/Intune-App-Manager-Web/src/Models.ps1 | 295 ++ Intune/Intune-App-Manager-Web/src/Router.ps1 | 99 + Intune/Intune-App-Manager-Web/src/Server.ps1 | 159 + Intune/Intune-App-Manager-Web/www/app.js | 4168 ++++++++++++++++ Intune/Intune-App-Manager-Web/www/help.md | 341 ++ Intune/Intune-App-Manager-Web/www/index.html | 807 +++ .../Intune-App-Manager-Web/www/members.html | 151 + Intune/Intune-App-Manager-Web/www/styles.css | 4402 +++++++++++++++++ .../www/vendor/flatpickr.min.css | 13 + .../www/vendor/flatpickr.min.js | 2 + .../www/vendor/marked.min.js | 69 + 24 files changed, 14651 insertions(+), 11 deletions(-) create mode 100644 Intune/Intune-App-Manager-Web/CHANGELOG.md create mode 100644 Intune/Intune-App-Manager-Web/README.md create mode 100644 Intune/Intune-App-Manager-Web/Run.cmd create mode 100644 Intune/Intune-App-Manager-Web/Start.ps1 create mode 100644 Intune/Intune-App-Manager-Web/application.ico create mode 100644 Intune/Intune-App-Manager-Web/application.png create mode 100644 Intune/Intune-App-Manager-Web/branding-logo.png create mode 100644 Intune/Intune-App-Manager-Web/intune.png create mode 100644 Intune/Intune-App-Manager-Web/pmpc.png create mode 100644 Intune/Intune-App-Manager-Web/robopack.png create mode 100644 Intune/Intune-App-Manager-Web/src/Api.ps1 create mode 100644 Intune/Intune-App-Manager-Web/src/Graph.ps1 create mode 100644 Intune/Intune-App-Manager-Web/src/Models.ps1 create mode 100644 Intune/Intune-App-Manager-Web/src/Router.ps1 create mode 100644 Intune/Intune-App-Manager-Web/src/Server.ps1 create mode 100644 Intune/Intune-App-Manager-Web/www/app.js create mode 100644 Intune/Intune-App-Manager-Web/www/help.md create mode 100644 Intune/Intune-App-Manager-Web/www/index.html create mode 100644 Intune/Intune-App-Manager-Web/www/members.html create mode 100644 Intune/Intune-App-Manager-Web/www/styles.css create mode 100644 Intune/Intune-App-Manager-Web/www/vendor/flatpickr.min.css create mode 100644 Intune/Intune-App-Manager-Web/www/vendor/flatpickr.min.js create mode 100644 Intune/Intune-App-Manager-Web/www/vendor/marked.min.js diff --git a/Intune/Intune-App-Assignment-Application-v5_2_0_MW.ps1 b/Intune/Intune-App-Assignment-Application-v5_2_0_MW.ps1 index ea85930..d2bd37e 100644 --- a/Intune/Intune-App-Assignment-Application-v5_2_0_MW.ps1 +++ b/Intune/Intune-App-Assignment-Application-v5_2_0_MW.ps1 @@ -37,7 +37,8 @@ function Get-GraphGroup { $select = if ($Property) { "&`$select=" + ($Property -join ",").ToLower() } else { "" } if ($GroupId) { - $uri = "https://graph.microsoft.com/v1.0/groups/$GroupId`?`$select=" + ($Property -join ",").ToLower() + $selectPart = if ($Property) { "?`$select=" + ($Property -join ",").ToLower() } else { "" } + $uri = "https://graph.microsoft.com/v1.0/groups/$GroupId$selectPart" return Invoke-MgGraphRequest -Uri $uri -Method GET } else { @@ -1614,21 +1615,29 @@ function Update-MembershipIndicators { $memberships = @() if ($target.Type -eq "User") { # Benutzer: Direkte Gruppenmitgliedschaften laden - $groups = Get-MgUserMemberOf -UserId $target.Id -All -Property Id 2>$null - foreach ($g in $groups) { - if ($g.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.group') { - $memberships += $g.Id + $uri = "https://graph.microsoft.com/v1.0/users/$($target.Id)/memberOf?`$select=id" + do { + $response = Invoke-MgGraphRequest -Uri $uri -Method GET + foreach ($g in $response.value) { + if ($g.'@odata.type' -eq '#microsoft.graph.group') { + $memberships += $g.id + } } - } + $uri = $response.'@odata.nextLink' + } while ($uri) } else { # Gruppe: Transitive Mitgliedschaften laden (Gruppe ist Mitglied von...) - $groups = Get-MgGroupMemberOf -GroupId $target.Id -All -Property Id 2>$null - foreach ($g in $groups) { - if ($g.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.group') { - $memberships += $g.Id + $uri = "https://graph.microsoft.com/v1.0/groups/$($target.Id)/memberOf?`$select=id" + do { + $response = Invoke-MgGraphRequest -Uri $uri -Method GET + foreach ($g in $response.value) { + if ($g.'@odata.type' -eq '#microsoft.graph.group') { + $memberships += $g.id + } } - } + $uri = $response.'@odata.nextLink' + } while ($uri) } $script:membershipCache[$target.Id] = $memberships } diff --git a/Intune/Intune-App-Manager-Web/CHANGELOG.md b/Intune/Intune-App-Manager-Web/CHANGELOG.md new file mode 100644 index 0000000..9d07cf4 --- /dev/null +++ b/Intune/Intune-App-Manager-Web/CHANGELOG.md @@ -0,0 +1,234 @@ +# Changelog + +Format orientiert an [Keep a Changelog](https://keepachangelog.com/de/1.1.0/). +Versionierung folgt [Semantic Versioning](https://semver.org/lang/de/) — solange das Tool noch in der `0.x.y`-Phase ist, sind Breaking Changes erlaubt. + +--- + +## [0.1.23] - 2026-05-21 + +Setup-Datei nativer Apps aktualisierbar + Microsoft-Graph-Audit-Fixes. + +### Neu + +- **Setup-Datei aktualisieren** (Phase 1: `.intunewin` / win32LobApp): im App-Detail neuer Abschnitt *Setup-Datei* mit Button, der eine neue Setup-Datei von einem lokalen Server-Pfad hochlaedt und als neue contentVersion aktiviert — inkl. optionaler neuer Versionsnummer (`displayVersion`). Voller Graph-Upload-Flow: contentVersion → file → Azure-Blob-Chunk-Upload → commit → committedContentVersion. Vendor-verwaltete Apps (PMPC/Robopack) sind ausgeschlossen. MSI/MSIX folgen in spaeteren Phasen +- **Kategorie-Filter** in der App-Liste: neuer Dropdown, der sich dynamisch aus den vorkommenden App-Kategorien fuellt (inkl. *Ohne Kategorie*) +- **Kategorien-Anzeige** im App-Detail (immer sichtbar; "Default" wenn keine zugewiesen) +- **Mehrere Abteilungs-Praefixe** konfigurierbar (z.B. `abt-hm` *und* `abt-extern` parallel): neues Schema `departments.prefixes[]`, Settings-UI mit Textarea (eine pro Zeile). Der Graph-Filter wird OR-verkettet, ein einziger Listen-Request. Alter Single-String `prefix` wird weiter gelesen (Backward-Compat); Test-Endpoint zeigt Trefferzahl pro Praefix + +### Geändert + +- **App-Liste laedt `$expand=categories`** mit — `categories` ist eine Graph-Navigation-Property und kommt sonst leer (`null`) zurueck +- **Default-Scope** `DeviceManagementApps.Read.All` → `DeviceManagementApps.ReadWrite.All`: assign/rename/delete/content-update auf mobileApps brauchen ReadWrite (verifiziert via msgraph-Skill gegen den offiziellen Permission-Index) + +### Behoben + +- **429/503-Throttling**: neuer Retry-Wrapper `Invoke-MgGraphRequestRetry` mit `Retry-After`-Honorierung + Backoff (2/5/10s) in `Get-GraphPaged` (alle Lese-Pfade) + `Add-GraphMember` (Bulk-Member-Add). 403/404 werden unveraendert durchgereicht +- **Kategorien** wurden nie angezeigt — Ursache war die fehlende `$expand`-Klausel (s.o.), nicht das Frontend + +### Technisch + +- Neue Graph-Funktionen: `Read-IntuneWinPackage`, `New-GraphAppContentVersion`, `New-GraphAppContentFile`, `Wait-GraphContentFileState`, `Send-GraphContentToAzureBlob`, `Invoke-GraphContentRenewUpload`, `Invoke-GraphContentCommit`, `Update-GraphAppContent`, `Invoke-MgGraphRequestRetry` +- Neuer Endpoint: `POST /api/apps/{id}/content` (`Update-AppContentEndpoint`), Body `{ filePath, displayVersion? }` +- Intune-Content-Verschluesselung dokumentiert (AES-256-CBC + HMAC-SHA256, Layout `[HMAC|IV|Ciphertext]`, ProfileVersion1) — fuer `.intunewin` aus Detection.xml uebernommen +- `api()`-Helper unterstuetzt jetzt `timeoutMs` (AbortController) fuer lange Upload-Requests + +--- + +## [0.1.22] - 2026-05-19 + +Robopack als zweiter Vendor analog zu PatchMyPC. Detection-Regeln wurden vom Hardcode in eine konfigurierbare Vendor-Registry verlagert. + +### Neu + +- **Robopack-Integration**: eigenes Source-Logo (`robopack.png`), Portal-Link auf `https://app.robopack.com/`, Lock-Icons fuer Delete/Rename, Filter-Eintrag "Nur Robopack-Apps". Default-Detection: `developer equals "Robopack"` +- **Vendor-Registry in `settings.json`**: neue Sektion `vendors[]` mit `id`, `displayName`, `portalUrl`, `logoFile`, `detection.field` (commandLine | developer | publisher | displayName | notes | owner), `detection.match` (contains | equals | regex | startsWith), `detection.pattern`, `block.delete`, `block.rename`. Mehrere Vendoren moeglich, erster Match gewinnt +- **Dynamisches Filter-Dropdown**: pro konfiguriertem Vendor wird eine Option `Nur -Apps` zur Laufzeit erzeugt +- **Vendor-Counts im Konfig-Test**: `Verbindung + Lookups testen` zeigt jetzt pro Vendor, wie viele Apps in der aktuellen Liste matchen — 0-Treffer warnen mit Hinweis auf die Detection-Regel +- **Letter-Fallback fuers Vendor-Logo**: wenn die Logo-Datei fehlt, zeigt der Badge den ersten Buchstaben des Vendor-Namens als Pille + +### Geändert + +- **Detection-Logik in `src/Graph.ps1`**: `Format-AppForFrontend` ruft `Resolve-AppVendorSource` mit `Test-AppVendorRule` auf, statt hardcoded `match "PatchMyPC"`. `Source`-String entspricht `vendor.displayName` ("PatchMyPC", "Robopack", ...) — bestehende PMPC-Datensaetze unveraendert +- **Backend-Blocking generisch** (`Remove-AppEndpoint`, `Update-AppEndpoint`): pro Vendor pruefen ob `block.delete`/`block.rename` gesetzt ist, HTTP 409 mit `code = "Managed"` (z.B. `patchmypcManaged`, `robopackManaged`) +- **Frontend-Render generisch**: Source-Badge, Delete-Lock und Rename-Lock werden aus dem Vendor-Eintrag (`SettingsState.vendorsByDisplayName`) abgeleitet — keine PMPC-Hardcodes mehr im UI +- **`code`-Format geaendert** von `PatchMyPCManaged` zu `patchmypcManaged` (kleines `id` + `Managed`-Suffix) — Frontend-Stellen, die den exakten String pruefen, sind keine vorhanden + +### Behoben + +- (keine; reine Feature-Erweiterung) + +### Technisch + +- Neue PowerShell-Funktionen: `Test-AppVendorRule`, `Resolve-AppVendorSource` (in `src/Graph.ps1`), `Find-VendorBySource` (in `src/Api.ps1`) +- Neue JS-Funktionen: `rebuildVendorIndexes(settings)`, `rebuildVendorFilterOptions()` (in `www/app.js`) +- Neue CSS-Klassen: `.app-source.app-source-letter` (Letter-Fallback), `.set-test-icon.warn` (gelbe Warn-Pille im Konfig-Test) +- Asset hinzu: `robopack.png` (Projekt-Root, ca. 53 KB) +- Migration: `Merge-Settings` ergaenzt fehlende `vendors`-Sektion aus den Defaults — bestehende `settings.json` bekommt PMPC + Robopack automatisch dazu + +--- + +## [0.1.21] - 2026-05-19 + +Multi-Tenant-Readiness: das Tool ist jetzt fuer fremde Tenants ausrollbar, ohne dass HanseMerkur-spezifische Werte im Code als Defaults erscheinen. + +### Neu + +- **First-Run-Onboarding**: Bei leerem Tenant/Client/Praefix oeffnet sich das Settings-Modal automatisch beim Start. Setup-Banner im Modal und im Connect-Panel; Connect-Button bleibt disabled bis die kritischen Felder gefuellt sind +- **Konfiguration testen**: Neuer Button im Settings-Modal sowie neuer Endpoint `POST /api/settings/test` — prueft die aktuell eingetragenen Werte (auch vor dem Speichern) gegen Microsoft Graph: Verbindung, Abteilungs-Gruppen-Lookup mit Trefferzahl + Sample, RPA-Gruppen mit Found/Missing-Liste, User-Such-Probe. Inline-Ergebnis mit OK/FAIL-Pillen +- **Setup-Hilfetexte** unter den Connection-Feldern: Wo finde ich Tenant ID, Client ID, welche Redirect-URI ist noetig + +### Geändert + +- **Defaults neutralisiert** (`Get-DefaultSettings` in `src/Models.ps1`): `tenantId`, `clientId`, `departments.prefix` sind leer, `rpa.groupNames = @()`. Scopes/Naming/Theme bleiben generisch. Bestehende `settings.json` werden ueber Merge-Settings unveraendert geladen +- **Hilfedatei generisch**: `abt-hm-bd24-controlling` und `intune-win-app-adobe-reader-required` durch Platzhalter (`-team-controlling`, `intune-win-app--required`) ersetzt; "Default: abt-hm"-Hinweis entfernt + +### Behoben + +- **Backend-Fallbacks entfernt**: `Get-GroupsEndpoint` liefert HTTP 412 + `code = "SettingsRequired"` wenn Praefix leer (vorher stiller `abt-hm`-Fallback). `Get-RpaGroupsEndpoint` liefert `notConfigured = $true` statt HM-RPA-Namen einzusetzen — Konfig-Probleme werden sichtbar statt kaschiert +- **PowerShell 5.1-Kompatibilitaet** (`src/Server.ps1`): `Read-RequestBody` nutzt `-AsHashtable` nur ab PS 6, in 5.1 wird ohne den Switch geparst. Endpoints handhaben sowohl Hashtable als auch PSCustomObject. Vorher: POST/PUT mit Body brach in Windows PowerShell 5.1 mit "Parameter 'AsHashtable' nicht gefunden" +- **Router-Logger-Bug** (`src/Router.ps1:33`): fehlende Parens um den `-f`-Format-Operator → PowerShell band `-f` als Prefix von `-ForegroundColor` und versuchte den Zeitstempel in eine ConsoleColor-Enum zu konvertieren. Folge: Unknown-Endpoint-Responses warfen 500er statt 404. Fix wie in Line 13/42 mit Klammern + +### Technisch + +- Neuer Endpoint: `POST /api/settings/test` (Body optional — testet uebergebene Werte gegen Graph, ohne sie zu speichern) +- Neue CSS-Klassen: `.banner-warning`, `.settings-test-result`, `.set-test-line`, `.set-test-icon.ok|fail` + +--- + +## [0.1.20] - 2026-05-19 + +Konsolidierter Stand aller bisherigen Iterationen. Erster offiziell versionierter Release. + +### Neu — App-Verwaltung + +- **App-Zuweisungs-Workflow** mit Session-Konzept: mehrere Apps nacheinander Pillen klicken → alle Vorgänge in einem Rutsch ausführen → HTML-Report +- **App umbenennen** via Stift-Icon (Modal mit alter/neuer Name) +- **App löschen** via Trash-Icon (mit Bestätigung; bei Graph-Fehler wird Original-Message + Relationship-Hinweis ausgegeben) +- **PatchMyPC-Apps**: Rename + Delete blockiert (Lock-Icon + HTTP 409 mit `code: PatchMyPCManaged`) + +### Neu — Zuweisungen + +- **Zuweisung-Erstellen-Dialog** mit 6 Optionen in zwei Spalten: + - Required: Neue Gruppe / All Users / All Devices + - Available: Neue Gruppe / All Users / All Devices +- **Aktive Native-Zuweisungen werden ausgegraut** — keine Duplikate möglich +- **Available-/Required-Gruppen-Naming** unabhängig konfigurierbar (Präfix + Suffix) +- **Zuweisung entfernen** direkt im App-Detail oder im Picker-Popover (Trash-Icon pro Gruppe) +- **Native Zuweisungen** (All Users / All Devices) per `POST /api/apps/{id}/assignments` + +### Neu — App-Detail-Panel + +- **2-Spalten-Layout** statt 3 (Auto-Fit), Wide-Sektionen für lange Inhalte +- **Markdown-Rendering** der App-Beschreibung (Tabellen, Listen, Code-Blöcke) via gebundeltes [marked v15](https://github.com/markedjs/marked) +- **Installations-Statistik** je App (Geräte + Benutzer × Installiert / Fehler / Pending / N/A) mit Erfolgsquote-Pille +- **Abhängigkeiten** mit SVG-Flow-Diagramm (orthogonale Linien, klickbare Knoten) + Klartext-Erklärung pro Relation +- **Supersedence** analog mit Klartext-Erklärung (update / replace) +- **Klick auf Flow-Knoten** springt zur Ziel-App und expandiert sie (mit Highlight-Flash) + +### Neu — Filter & Suche + +- **Datums-Range-Filter** für "Zuletzt geändert" (via gebundeltes [flatpickr v4](https://flatpickr.js.org/), deutsche Lokalisierung) +- **Preset-Dropdown** (Alle / Ohne Zuweisungen / Nur Available / Nur Required / Mehrere / All Users / All Devices / Intune / PatchMyPC) +- **Checkbox-Chips** "Bereits Gruppenmitglied" und "All Users/Devices ausblenden" + +### Neu — Einstellungen + +- **Settings-Cog** im Header öffnet Modal mit: + - Connection: Tenant-ID, Client-ID, Scopes + - Abteilungs-Gruppen: konfigurierbarer Präfix (Default `abt-hm`) + - RPA-Gruppen: explizite Liste + - Benutzer-Suche: konfigurierbare Felder (DisplayName / UPN / Mail / Department) + - Required + Available Naming-Schema (Präfix + Suffix) + - Branding: Logo-Upload (PNG/JPG/SVG/WEBP/GIF, max 2 MB) + - Farben: 8 Akzentfarben + "Standardfarben wiederherstellen" +- Persistenz in `%APPDATA%\IntuneAppManager-Web\settings.json` +- **WCAG-Kontrast-Algorithmus** wählt automatisch Text-/Icon-Farbe (Schwarz/Weiß) je nach gewähltem Tint +- **Surface-Shade-Algorithmus** leitet harmonische innere Surfaces aus der gewählten Detail-Panel-Farbe ab + +### Neu — Branding + +- **Default-Logo** `application.png` im Projekt-Root wird angezeigt, sofern kein eigenes hochgeladen wurde +- **Brand-Farbe** ist eigene Konzeptfarbe (separat von Available) — Logo-Hintergrund und Stepper-Indikator +- **Avatar** im Header: Bootstrap `person-circle`-Icon, eingefärbt in Brand-Primary, mit pulsierendem grünem Online-Dot +- **Logout** als Türsymbol mit Pfeil + +### Neu — Header + +- **Cog-Icon** für Einstellungen +- **Fragezeichen-Icon** für Hilfe +- **Theme-Toggle** als Sun/Mond-Slider +- **Avatar** mit Tooltip (vollständiger UPN) +- **Logout-Icon** (statt Text-Button) + +### Neu — Hilfe-System + +- **Hilfe-Modal** (1320 px breit) mit: + - TOC-Sidebar (auto-generiert aus H2-Headings) + - Aktiver Eintrag wird via Scroll-Position highlighted + - Inhalt aus `www/help.md` (Markdown, jederzeit ohne Code-Änderung anpassbar) +- Inhalt: Schnellstart, Hauptworkflow, Header, Spalten, App-Detail, Einstellungen, Einschränkungen, Tastatur, Fehlerbehebung + +### Neu — Empfänger-Liste + +- **Drei Modi**: Abteilungen, RPA-Gruppen, Einzel-Benutzer — frei mischbar +- **Gruppen aufklappen** (Pfeil rechts) → Mitglieder inline mit Suchfilter +- **Teams-Icon** bei jedem User → Direkt-Chat in Teams-Desktop-App +- **Externer-Link- und Members-Tab-Icons** öffnen direkt im Intune-Portal +- **Icons immer sichtbar** (vorher hover-only) + +### Neu — Backend + +- **Graph `$batch`-Optimierung** für App-Details: 3 Sub-Calls in 1 HTTP-Roundtrip, server-seitig parallelisiert +- **PowerShell-Module-Pre-Flight** in `Start.ps1`: prüft, prompted, installiert fehlende Module im User-Scope +- **WAM-Window-Focus-Helper**: Auth-Popup wird automatisch nach vorne geholt (Background-Runspace) +- **HTML-Apply-Report** in `%TEMP%\IntuneAppManager-Reports\` mit Erfolg/Fehler-Tabelle nach App gruppiert +- **Caches**: Apps + Groups + Membership im Server-Process. Selektive Invalidierung bei Settings-Änderungen +- **Run.cmd** als plattform-unabhängiger Launcher; PowerShell-Fenster startet minimiert + +### Geändert + +- **App-Row-Layout**: schmalere Type-/Version-Spalten, breitere Name-Spalte; Icons rechtsbündig vertikal mittig +- **Filter-Chips**: keine Pillen-Rahmen mehr, mehr Gap zwischen Chips (20 px) +- **App-Namen**: brechen jetzt um statt zu truncieren (kein `…` mehr) +- **Detail-Panel**: max 2 Spalten statt Auto-Fit, lange Inhalte als Wide-Sektion +- **Modal-Höhe**: max 85 vh statt 60 vh, kein Scrollen für übliche Dialog-Inhalte +- **Stepper** im Header entfernt (war redundant) +- **Default-Farben**: Brand `#27a078`, Required `#cb2a7a`, RowSelected `#71e5c4`, DetailPanel `#f7f7f7` + +### Behoben + +- **PowerShell Single-Element-Array-JSON-Bug**: `@()` am Call-Site erzwingt Array-Serialisierung (sonst wurde Single-Dep als Objekt statt Array im JSON gerendert → Frontend ignorierte sie) +- **Date-Picker Blink-Effekt** beim Klick: nativer Browser-Picker ersetzt durch flatpickr (kein Chromium-Initial-Render-Quirk mehr) +- **Date-Picker Dark-Mode**: Calendar-Icon war nicht sichtbar — durch `filter: invert(1) brightness(1.4)` korrigiert +- **WAM-Auth-Fenster** versteckt hinter anderen Fenstern → Parallel-Runspace holt es nach vorne +- **Browser-Cache**: aggressive `no-store`-Header für HTML/JS/CSS sorgen für sofortige Updates +- **Transparenz-Slider** komplett entfernt — picked color = solid background (war zuvor verwirrend) +- **Logo-Cache** zweiter Upload greift sofort (mtime als Cache-Bust-Tag) +- **Settings-Save**: Selektive Cache-Invalidierung statt aller Caches (Logo-Update reloaded nicht mehr die Apps) +- **`jumpToAppById`**: triggert jetzt den Details-Fetch (vorher: ewiger Spinner + toggleAppExpand-Konflikt → "App geht nicht auf") +- **Portal-URLs**: Group-Links auf `intune.microsoft.com/.../GroupDetailsMenuBlade/.../menuId/` korrigiert (vorher `entra.microsoft.com` ohne `/menuId/`-Suffix) +- **App-Name-Icons** vertikal mittig zur ganzen Row (nicht nur zur Name-Line) +- **Type/Version-Chips in markierter Row**: Kontrast korrekt (vorher unleserlich) +- **Stepper-Reste**: Position der Header-Actions wieder rechts +- **Connect-Endpoint**: bessere Fehlermeldung mit echter Graph-Antwort statt nur "Ungültige Anfrage" + +### Entfernt + +- **Workflow-Stepper** im Header (Verbinden → App-Zuweisungen → Apps zuweisen → Ausführen) +- **Transparenz-Slider** in den Theme-Color-Settings +- **`members.html`-Standalone-Seite**: ersetzt durch direkten Intune-Portal-Link +- **Native Date-Inputs** (`type="date"`): ersetzt durch flatpickr +- **`color-scheme: light`**-Workaround für Date-Picker (nicht mehr nötig nach flatpickr-Integration) + +### Bundled Libraries + +- `marked v15.0.12` (MIT) — Markdown-Renderer für App-Beschreibung + Help-Page +- `flatpickr v4.6.13` (MIT) — Date-Range-Filter + +### Technisch + +- **PowerShell-Server**: HttpListener, Single-Thread Request-Loop, ausreichend für Single-Admin-Tool +- **Frontend**: Vanilla JS + CSS, keine Frameworks +- **Persistenz**: JSON-Datei in `%APPDATA%\IntuneAppManager-Web\settings.json` +- **Cache-Strategy**: Apps + Gruppen + GroupMembers im PS-Prozess; Theme + Logo per CSS-Variable zur Laufzeit überschrieben diff --git a/Intune/Intune-App-Manager-Web/README.md b/Intune/Intune-App-Manager-Web/README.md new file mode 100644 index 0000000..199d960 --- /dev/null +++ b/Intune/Intune-App-Manager-Web/README.md @@ -0,0 +1,115 @@ +# Intune App-Manager – Web Edition + +Modernes Web-Frontend fuer den Intune App-Zuweisungs-Manager. +PowerShell startet einen lokalen HTTP-Server, der das Frontend ausliefert +und die Microsoft Graph-Aufrufe ausfuehrt. + +## Voraussetzungen + +- Windows mit PowerShell 5.1 oder PowerShell 7+ +- Modul `Microsoft.Graph.Authentication` (wird beim ersten Connect benoetigt): + ```powershell + Install-Module Microsoft.Graph.Authentication -Scope CurrentUser -Force + ``` +- Browser (Edge, Chrome, Firefox) + +## Start + +```powershell +cd "c:\Temp\claude.code\Intune App Management\Intune-App-Manager-Web" +.\Start.ps1 +``` + +Optionen: + +| Parameter | Standard | Beschreibung | +|---------------|-----------------------------------------|---------------------------------------------| +| `-Port` | `8077` | Port des lokalen HTTP-Servers | +| `-TenantId` | (HanseMerkur Default) | Microsoft Entra Tenant-ID | +| `-ClientId` | (HanseMerkur Default) | App-Registrierung Client-ID | +| `-NoBrowser` | aus | Browser nicht automatisch oeffnen | + +Beispiele: + +```powershell +.\Start.ps1 -Port 8088 +.\Start.ps1 -TenantId "..." -ClientId "..." +.\Start.ps1 -NoBrowser +``` + +Beenden: `Ctrl+C` im Terminal. + +## Workflow + +1. **Verbinden** – oben rechts klicken; Microsoft Login-Fenster oeffnet sich. +2. **Modus waehlen**: Abteilungen / RPA-Gruppen / Einzel-User. +3. **Ziele laden** – ueber "Laden" (User: in Suchfeld tippen). +4. **Ziele markieren** mit Checkboxen. +5. **Apps laden** – ueber "Laden" rechts neben "Apps". +6. **Pillen klicken** – jede gruene Pille bei einer App ist eine zugewiesene + Gruppe. Klick = "Ausgewaehlte Ziele dieser Gruppe hinzufuegen". Erneuter + Klick = entfernen. +7. **Required-Gruppe erstellen** – falls noetig, ueber "+ Required-Gruppe" + bei der App. +8. **Session pruefen** – rechts werden alle geplanten Operationen aufgelistet. +9. **Ausfuehren** – gruener Button rechts unten. HTML-Report erscheint + automatisch nach Abschluss. + +## Pillen-Farben (App-Zeile) + +| Farbe | Bedeutung | +|-------------|-------------------------------------------------------------------| +| Grau | Gruppe ist der App zugewiesen, Ziele sind keine Mitglieder | +| Gruen | Alle ausgewaehlten Ziele sind bereits Mitglied | +| Gelb | Einige Ziele sind Mitglied (Partial) | +| Cyan | Native Target (All Users / All Devices) – nicht aenderbar | +| Blau | Aktuell zur Session hinzugefuegt | +| Gestrichelt | "+ Required-Gruppe" Button | + +## Architektur + +``` +Intune-App-Manager-Web/ +├── Start.ps1 Entry Point +├── README.md diese Datei +├── src/ +│ ├── Models.ps1 Hilfen / Datenklassen +│ ├── Graph.ps1 Microsoft Graph API Helpers +│ ├── Server.ps1 HTTP-Server (HttpListener) +│ ├── Router.ps1 Request-Routing +│ └── Api.ps1 REST-API-Endpoints +└── www/ + ├── index.html SPA-Shell + ├── styles.css Modernes Dark Theme + └── app.js Frontend-Logik (Vanilla JS) +``` + +Reports werden in `%TEMP%\IntuneAppManager-Reports\` gespeichert und sind +ueber `http://localhost:/reports/.html` erreichbar. + +## REST-API (intern) + +| Methode | Pfad | Zweck | +|---------|----------------------------------------------|------------------------------------| +| GET | `/api/status` | Verbindungsstatus | +| POST | `/api/connect` | Microsoft Graph verbinden | +| POST | `/api/disconnect` | Trennen | +| GET | `/api/groups` | Abteilungs-Gruppen (`abt-hm-*`) | +| GET | `/api/groups/rpa` | 3 vordefinierte RPA-Gruppen | +| POST | `/api/groups` | Neue Required-Gruppe erstellen | +| POST | `/api/groups/check` | Gruppen-Name pruefen | +| GET | `/api/groups/{id}/members` | Mitglieder einer Gruppe | +| GET | `/api/users?q=...` | User suchen | +| GET | `/api/apps` | Apps laden (cached) | +| GET | `/api/apps?refresh=true` | Apps neu laden | +| GET | `/api/membership?targets=...&groupId=...` | Mitgliedschafts-Status pruefen | +| POST | `/api/assignments/apply` | Geplante Zuweisungen ausfuehren | + +## Hinweise + +- **Single-User-App** – der lokale HTTP-Server nimmt nur eine Verbindung + zur Zeit zuverlaessig an. Den Browser-Tab bitte einzeln halten. +- **Auth lebt im PowerShell-Prozess** – Disconnect oder Schliessen des + Terminals beendet die Session. +- **Cache** – Apps werden im Server-Prozess gecached (Refresh-Knopf zum + Neuladen). Membership-Cache wird bei Aenderung der Ziel-Auswahl geleert. diff --git a/Intune/Intune-App-Manager-Web/Run.cmd b/Intune/Intune-App-Manager-Web/Run.cmd new file mode 100644 index 0000000..a65eeca --- /dev/null +++ b/Intune/Intune-App-Manager-Web/Run.cmd @@ -0,0 +1,19 @@ +@echo off +REM Launcher fuer Start.ps1 — funktioniert auf allen Clients, unabhaengig +REM davon ob .ps1-Dateien standardmaessig mit PowerShell oder Notepad +REM verknuepft sind. Verknuepfungen koennen direkt auf diese .cmd zeigen. +REM +REM -NoProfile : keine User-Profile-Skripte laden (schneller, sauberer) +REM -ExecutionPolicy : Bypass nur fuer diesen Prozess, keine Systemaenderung +REM -WindowStyle Minimized : PowerShell-Fenster startet minimiert (Taskleiste). +REM Browser oeffnet sich trotzdem; bei Bedarf kann das +REM PS-Fenster ueber die Taskleiste sichtbar gemacht +REM werden (z.B. fuer Live-Logs). +REM -File ... %* : Start.ps1 ausfuehren, alle Argumente durchreichen +REM +REM Beispielaufrufe: +REM Run.cmd +REM Run.cmd -Port 8088 +REM Run.cmd -NoBrowser + +start "Intune App-Manager" /min powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Minimized -File "%~dp0Start.ps1" %* diff --git a/Intune/Intune-App-Manager-Web/Start.ps1 b/Intune/Intune-App-Manager-Web/Start.ps1 new file mode 100644 index 0000000..d0b200b --- /dev/null +++ b/Intune/Intune-App-Manager-Web/Start.ps1 @@ -0,0 +1,221 @@ +# Intune App-Zuweisungs-Manager - Web Edition +# Startet einen lokalen HTTP-Server und oeffnet das moderne Web-Frontend. +# +# Aufruf: +# .\Start.ps1 +# .\Start.ps1 -Port 8088 -NoBrowser +# .\Start.ps1 -TenantId "..." -ClientId "..." + +[CmdletBinding()] +param( + [int]$Port = 8077, + # Optional: ueberschreibt die persistierten Settings nur fuer diesen Lauf. + # Wenn nicht gesetzt -> Werte aus %APPDATA%\IntuneAppManager-Web\settings.json + # (bzw. den Defaults beim Erststart) werden verwendet. + [string]$TenantId = "", + [string]$ClientId = "", + [switch]$NoBrowser, + [switch]$AutoInstall, # ohne Rueckfrage installieren + [switch]$SkipModuleCheck # Pre-Flight ueberspringen (z.B. CI) +) + +$ErrorActionPreference = "Stop" +$root = Split-Path -Parent $MyInvocation.MyCommand.Path + +# ============================================================ +# Pre-Flight: PowerShell-Module pruefen / installieren +# (nur User-Scope, nichts systemweites) +# ============================================================ + +function Test-RequiredModules { + [CmdletBinding()] + param( + [hashtable[]]$Required, + [switch]$AutoInstall + ) + + Write-Host "Pruefe PowerShell-Module..." -ForegroundColor Cyan + $missing = @() + $outdated = @() + + foreach ($req in $Required) { + $name = $req.Name + $minV = [version]$req.MinVersion + $available = @(Get-Module -Name $name -ListAvailable -ErrorAction SilentlyContinue) + if ($available.Count -eq 0) { + Write-Host " [FEHLT] $name (>= $minV)" -ForegroundColor Yellow + $missing += $req + } else { + $maxV = ($available | Sort-Object Version -Descending | Select-Object -First 1).Version + if ($maxV -lt $minV) { + Write-Host " [ALT] $name v$maxV (<$minV)" -ForegroundColor Yellow + $outdated += @{ Name = $name; Have = $maxV; Need = $minV } + } else { + Write-Host " [OK] $name v$maxV" -ForegroundColor Green + } + } + } + + if ($missing.Count -eq 0 -and $outdated.Count -eq 0) { + return $true + } + + # NuGet-Provider sicherstellen, sonst schlaegt Install-Module schweigend fehl + $nuget = Get-PackageProvider -Name NuGet -ErrorAction SilentlyContinue + if (-not $nuget -or $nuget.Version -lt [version]"2.8.5.201") { + Write-Host "" + Write-Host "NuGet-PackageProvider fehlt — wird im User-Scope nachgezogen..." -ForegroundColor Yellow + try { + Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Scope CurrentUser -Force -ErrorAction Stop | Out-Null + } catch { + throw "NuGet-Provider konnte nicht installiert werden: $($_.Exception.Message)" + } + } + + # PSGallery als trusted markieren, sonst kommt fuer jede Install-Aktion ein Prompt + $gallery = Get-PSRepository -Name PSGallery -ErrorAction SilentlyContinue + if ($gallery -and $gallery.InstallationPolicy -ne 'Trusted') { + try { Set-PSRepository -Name PSGallery -InstallationPolicy Trusted -ErrorAction Stop } catch {} + } + + if (-not $AutoInstall) { + Write-Host "" + Write-Host "Folgendes wird im User-Scope (CurrentUser) installiert/aktualisiert:" -ForegroundColor Cyan + foreach ($m in $missing) { Write-Host " + $($m.Name) min. $($m.MinVersion)" -ForegroundColor White } + foreach ($o in $outdated) { Write-Host " ~ $($o.Name) v$($o.Have) -> min. $($o.Need)" -ForegroundColor White } + Write-Host "" + $answer = Read-Host "Jetzt automatisch installieren? [J]a / [N]ein" + if ($answer -notmatch '^(j|J|y|Y)') { + Write-Host "" + Write-Host "Abbruch. Du kannst die Module manuell installieren:" -ForegroundColor Yellow + foreach ($m in $missing) { Write-Host " Install-Module $($m.Name) -Scope CurrentUser -Force" -ForegroundColor Gray } + foreach ($o in $outdated) { Write-Host " Update-Module $($o.Name) -Scope CurrentUser -Force" -ForegroundColor Gray } + return $false + } + } + + foreach ($m in $missing) { + Write-Host "" + Write-Host "Installiere $($m.Name) (CurrentUser)..." -ForegroundColor Cyan + try { + Install-Module -Name $m.Name -MinimumVersion $m.MinVersion -Scope CurrentUser -Force -AllowClobber -ErrorAction Stop + Write-Host " -> OK" -ForegroundColor Green + } catch { + Write-Host " -> Fehler: $($_.Exception.Message)" -ForegroundColor Red + return $false + } + } + foreach ($o in $outdated) { + Write-Host "" + Write-Host "Aktualisiere $($o.Name) auf min. $($o.Need)..." -ForegroundColor Cyan + try { + Install-Module -Name $o.Name -MinimumVersion $o.Need -Scope CurrentUser -Force -AllowClobber -ErrorAction Stop + Write-Host " -> OK" -ForegroundColor Green + } catch { + Write-Host " -> Fehler: $($_.Exception.Message)" -ForegroundColor Red + return $false + } + } + + return $true +} + +if (-not $SkipModuleCheck) { + $required = @( + @{ Name = "Microsoft.Graph.Authentication"; MinVersion = "2.0.0" } + ) + if (-not (Test-RequiredModules -Required $required -AutoInstall:$AutoInstall)) { + Write-Host "" + Write-Host "Server-Start abgebrochen — benoetigte Module fehlen." -ForegroundColor Red + exit 1 + } + Write-Host "" +} + +# Quellmodule laden (Reihenfolge wichtig) +. (Join-Path $root "src/Models.ps1") +. (Join-Path $root "src/Graph.ps1") +. (Join-Path $root "src/Api.ps1") +. (Join-Path $root "src/Router.ps1") +. (Join-Path $root "src/Server.ps1") + +# Settings aus Persistenz (Datei) laden, optional per Parameter ueberschreiben +$script:Settings = Read-Settings +if ($TenantId) { $script:Settings.connection.tenantId = $TenantId } +if ($ClientId) { $script:Settings.connection.clientId = $ClientId } + +# Globale Konfiguration. TenantId/ClientId/Scopes spiegeln die Settings — +# Connect-Endpoint und Co. lesen weiterhin $script:Config, das nach jedem +# Settings-Save aktualisiert wird. +$script:Config = @{ + TenantId = $script:Settings.connection.tenantId + ClientId = $script:Settings.connection.clientId + Scopes = @($script:Settings.connection.scopes) + WebRoot = (Join-Path $root "www") + ReportDir = (Join-Path $env:TEMP "IntuneAppManager-Reports") +} + +if (-not (Test-Path $script:Config.ReportDir)) { + New-Item -ItemType Directory -Path $script:Config.ReportDir -Force | Out-Null +} + +# Session-State (im PowerShell-Prozess gehalten) +$script:State = [pscustomobject]@{ + Connected = $false + Account = $null + TenantId = $null + Groups = @() # abt-hm Gruppen + RpaGroups = @() + Apps = @() + Users = @{} # cache by id + GroupMembers = @{} # cache groupId -> member ids + Session = @() # geplante Zuweisungen +} + +$script:ToolVersion = "0.1.23" +$script:BuildStamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" + +Write-Host "" +Write-Host "==============================================" -ForegroundColor Cyan +Write-Host " Intune App-Zuweisungs-Manager - Web Edition" -ForegroundColor Cyan +Write-Host " Version: $script:ToolVersion" -ForegroundColor Green +Write-Host " BUILD: $script:BuildStamp" -ForegroundColor DarkGray +Write-Host "==============================================" -ForegroundColor Cyan +Write-Host "" + +# ============================================================ +# Alte Instanzen beenden: laeuft das Tool bereits, haelt der alte Prozess den +# Port (HttpListener via http.sys) — ein zweiter Start scheitert dann still und +# das alte Fenster bedient weiter mit altem Code. Darum alle anderen Start.ps1- +# Prozesse DIESES Pfads vorher beenden, damit ein Neustart wirklich neu laedt. +# ============================================================ +try { + $thisScript = $PSCommandPath + if ([string]::IsNullOrWhiteSpace($thisScript)) { $thisScript = Join-Path $PSScriptRoot 'Start.ps1' } + # Nur echte Server-Instanzen treffen: per -File gestartet UND auf diesen + # Start.ps1-Pfad zeigend. So werden -Command-Prozesse (Diagnose etc.), die + # den Pfad nur als String enthalten, NICHT versehentlich beendet. + $stale = @(Get-CimInstance Win32_Process -Filter "Name='powershell.exe' OR Name='pwsh.exe'" -ErrorAction SilentlyContinue | + Where-Object { $_.ProcessId -ne $PID -and $_.CommandLine -and ($_.CommandLine -like "*$thisScript*") -and ($_.CommandLine -like "*-File*") }) + foreach ($p in $stale) { + Write-Host " Beende alte Instanz (PID $($p.ProcessId))..." -ForegroundColor Yellow + try { Stop-Process -Id $p.ProcessId -Force -ErrorAction Stop } + catch { Write-Host " konnte PID $($p.ProcessId) nicht beenden: $($_.Exception.Message)" -ForegroundColor DarkYellow } + } + if ($stale.Count -gt 0) { Start-Sleep -Milliseconds 800 } # kurz warten bis der Port frei ist +} catch { + Write-Host " (Konnte alte Instanzen nicht pruefen: $($_.Exception.Message))" -ForegroundColor DarkGray +} + +$url = "http://localhost:$Port/" +Write-Host " URL: $url" -ForegroundColor Green +Write-Host " WebRoot: $($script:Config.WebRoot)" -ForegroundColor DarkGray +Write-Host " Reports: $($script:Config.ReportDir)" -ForegroundColor DarkGray +Write-Host " Beenden: Ctrl+C" -ForegroundColor DarkGray +Write-Host "" + +if (-not $NoBrowser) { + Start-Process $url +} + +Start-WebServer -Port $Port diff --git a/Intune/Intune-App-Manager-Web/application.ico b/Intune/Intune-App-Manager-Web/application.ico new file mode 100644 index 0000000000000000000000000000000000000000..98f4b8ba279310d5ab350a39a6997ea5a356fb86 GIT binary patch literal 8395 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 literal 0 HcmV?d00001 diff --git a/Intune/Intune-App-Manager-Web/application.png b/Intune/Intune-App-Manager-Web/application.png new file mode 100644 index 0000000000000000000000000000000000000000..9ae08ae0978c8ee054e897d118a9ee4dbd757de3 GIT binary patch literal 11941 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 literal 0 HcmV?d00001 diff --git a/Intune/Intune-App-Manager-Web/branding-logo.png b/Intune/Intune-App-Manager-Web/branding-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9ae08ae0978c8ee054e897d118a9ee4dbd757de3 GIT binary patch literal 11941 zcmeI2cT`i)x9ATbqDb*8AXPv?P^3r~BotA4lPXdI0@6h~gc3l3FGxpv7mylyKxzc( zEsFGxH0d=!ASCbb{r-OI-dEPU@4mP0TlbHfwURSAGqY#ToS8j)K6{60X(&>XGm!%T zK&hPOaQ8GK#ab8cB;Rca2c>V7Oicyp3* z)`&JNy99RlKhY)xSJ;vu*mUE_Wm9Qx*!%f zyz3Qn39Vu+i{i2iZ32hAwaRkJLXnI2jvFn+fG5dE@gUzZnxD{pb*%c;Q8!dFMyBqH zY{K;EFH|XSjmWvOYtDk_By;L$4J{M%$>QsGNPX^t&Mt)luFR~60)MY3%TBJcDmV9& zOqR+$x|K-ZOc8!tMFxlXOdhDS8IDiaerLd^OaHm}qKjKGic(X<*Ga@0b%^eJBeeqK zVvCiLiAAm77Id|8e5**X@bsiLLRA#zJ3ccb9;0c^abcMd?+iK4 z1>f$u>F2;;*W|oR6Tba(+2|lzY?XPxtV?b`QcY8hl@Zb!Sjg1Pw(=)#fR%KfMH&g; zuuiOX_ph$5M2=v1m9l8!b2&&Xy70e!9ys}b$MD)d#cN&N_w=U?sQx{R%=de?NIExB zvECcKNA~1yDN<6zWiw@A?RVl1v}xhb4ey}xXjE?9T$jZT#U>x6V`{DJRtA*Q2MR8B_=yzl+ogFuWzgf*&W*TiT9If28W<5R%VzPdq!D)?dy7hnBVZz*P(fI1^BHwUPI@oETA}7Fo{~g@XKcF z)G6y(>4u^4ZTQ<@TyxJ9@%Ltnp9=Q<)SSrl)4H-zQadLbi7ri|5gm$ym8xJ9xN8^Q z5$XX^ZH|@svf_%@*sB8EcD&}rdT_GZdxvn8+d^;@S5Uc&dEqf{%kP%Qr>u=*7+%a1 zdGeIY0fyX>YmF`YJuQxe4h%0+0UskG zy}YAlN*AE_Slq-)eK*RJHLj-0qLNrzog!+fO)H7l_!MD8eeRaKVQ3eOyIlm%n+Y!+ zKwr8tzwhY^cibfU2(!FJKkR*HekF*&-NGN!;{|XU3;M>=;s&Z;*huu)s<_q$7pfC7eiT@8$LJd+(vDg%slkn z__5z_k=6PAz_29Tfh*;fF75aVnE?7y^+h_BSfh;9*e+Eg3E;M2L_}hp0Dc|er3(s1*IQ?py))u7{jJD_JM}d%x;N7mW)ntMFP!Uxh{A-SC zQZr0^TA5hYYIAvYZqBn1^wTF#Ove4?(A>w4jWZY)*Jt<`Qrm$!2diq}g}s9r>vvv% z)L_VpB*mrvXh8)N$6IrW$h96Gth_>=5ZpDU2WqFclQ_j`BAmA4xC*>~Z}fe5(nFDe zZdrjvP27QZ$JH!5@mCoDEoU%Tvs*O(b%X zymq#YQy7X>u;0&%y60G|ihC3h(5tJD^6rpF`QBQ{iXYH)bc->?mN?S#LAqo7h%)N z`)L8?x_VZiFmy0vRI@R2fw!BjDdszFK$VO9Yn&pXY=Xh{-G)Q}?6-r1p_?l~^X8Y# zMcRF`EKWXnLibZ58^@HB3eIirAo@0Tt%3pgD2AmVM&^Xm7F+U^i(Ho1CwGG}0A@%2 zA?q#V+x;c#7G-TbPiz=5d+vsDG%&1VFTbc)W_?2FW|N99#ObkPNX>e3;bXid#|@bz zg#||;iKCjEbF&LDs(muHyLaIUDt<&ZcDJAp?ythAvNIzDdsFt+%U0RpyU(@v4T^^8 z1HP`4j|l_(ORm9~GHdX@-i^QS*Zb}>#N2&mF}n)8yiW$bdmEn6D@#=Izyu9^(YkVN z=3f^EIDRg}E`JSv!oPzv=LCDL@&wP5a7xS`MsmIBs$-#KKo<>cRAs7Jx_>i+#taG6KM+hG2uUPtvXkGpwFtb0I$muO&^8LZ|tk$ z=kqV>7ZFI?<(1}(*p;68_OLa5jKS$~o}-8WAX)gr+F|_!{>wwt! z18|C!`FacdBf;OuO0;_uOESIJ0`!067~=qD@4y2d&(a6PE#JB_PY&kf0J~I|-iF|a zw!NSLmx@lABGB{<4|p~S0Ne%K;QH|T0On}{pF97V2FodY_97$x@&qh)5BM2hB^7b$ zZP4EmK0O-R>v=wA0hs>X5TMM&z~}-Yp6A;q`yxjaBl6I{4Ra-+uA6QCGO6s)kIMM) z#c>Qn0H{;+!W2yOs?!Swj;}Kt-O6Jt#EQBAeE=%>I-3R_^$4qeS@4sdSIehT46Idu*L2T zRbk4S%Y7p1Auv}*Xx|`(f)@A*9YA2Rq>5>zQfcpNMfHCBdktUYf_3dp%Z|9943D(7 z)QR=PX%wBlWCr3|4Z^yi!P-zDqNZSSO6s9hVXGjkT99QLe^RC=garGpJT3;MlHUTf z>+8YE?kJ-+;dg0{z3()BdUTqy!3gTrg!ec-9t>$Vtwz(GBIB(sD$U5X{M^vuX2Wcr zQX~_aEc#34J6x-xat|~gY=;Vg^3fg=MvfmMGgB_rpGGF=T>|(rxSnH6WI?U1E4`VZTa9d^zkKTEwd92mqwWtw>i=AfKW_Z* zRQIE4*VXs2{`w_bMuuCDc0YAmf3`zjGaHT4j9@*-(=pSyR!d>uX~rd@R4hLMN^!_j z4Zb=Vz04n)&@<%cUOnugj@fJocNd!n0eji42=nc;J3I#(=glPZ%rB{LaU5_MeLo!nj)7%yX~$FwhQkn)l! zhSPqFP(0QW6&d~ehk>WFyU_Zpw+_FJlx0pp8{qF!Mno~l&yAi3{K`A!WBecLgUT9D z$ocF|UX+`(2`>ukBw_Ch^K@}<`0W!lI}Ad_9Gt!z(3uE zIX#t?PP`{|TSbQcobc|L;bkYPsybr!W(+^)Ns!&HVE(G`Be6WT=0n%!lTNwW$n018 zLtn?g&lE{sJi=3+197qmVcqr4?j}y9w-`BPr*&}|xD1DG*T1py; z;O~^}jnL5i4UOK^nfq=Azn+NC-SA%dfV&-86^EMWJ_H}mWPgc7ygjg1h1>)^G}0iu zv$a0@X~knKmpw3~pcCm+p?Ma1*$RQI{GoU@O4!RSTP?nXm49g|2w#oI60$Rv%e8tA^?e{2uC!>gWwkF@4|a{nWYi-8ZM-Ba5M;kHp+24f@B9{N`N=GZSWd zPw_Fj(n~wWP4|GRW73&sRkqkolq;lnt&M#+{OH-bX@xF0)^wLAnz(43=#5GOf6z!i z!i7*#p>o!KZ;kab+FC0Lj_E{(9KapH$J6wjt)<}@uUbm!q4aVSmUwVANOmij3n?m6g2++c>fjQk3-1k;pbJXh zH`lway#Sx}m%ts93Na;wiP+K=E;`N<@pZf|L4EFYgMDIuEUB2_|N##out>`!QD z%q-a(*NBnPWyY377?8@w@%y{~Qp0{EzSLOFePj~4%p;o@L(K&3>hMe&o_}llmo}W5E!G;lhwNFlW zy>b-aj^W+yq!H^k**I%e1WN?rnmf)wG3AaYKXcDyb~_a~e9H3-X9S4*<$2cx^!q9N zZ3qnn$=|T#Ja%{?&A#X59ZjP2wO_O9Y!szfABj_d#&R@pd>nn^+u|(N&1Ux=mqGdf zu>NfXA6twR-dk2URdp`8!9&lOi=t{9(qr)*jK<~kcF##v5Wl6GX*MeR7`c<=*1TaD zBdsuL8#I4VetwjJ{*rk&vYU-Z4nG)8{8oB2b$fQ8PGyC)rv;69q!dgaQF*+5z9oZ? zji@XORTkY3t>=JOKP5`$vsVXCWKJUb@HhGH7c}9;+G-s36pta9OR5*}fM|Y>kx3`R zradPADpd-z`-$mHmic(7tn3)o6=-BJ`ujHX)PUdE4Du)Dp)@=E5hb<+Ak8MG$M`o_ zW{1qh_p^1cD=1TzSwAsRW3VlW@V0TNS<7inBhWBc#7Ad2 z*SH>FlzQtkujvU|jrG3C64Z&l^%8!Zw~@2Uyd?0m8ycwv*e%6{qMk?GTpGPM zn)=l)GNHa-iQceiMCI1XKz^UT^0TpO7=NOh_E1EuM!Ukh&Qy6JXVk0e$5#$tc{eQN zw=fe9K5obf`YZ{EcC-BlL$RyY#?&!-bw`jNbcHpQ3?aiCNs)dEsD@@T)sQ^QtI81c%^x1J~OF1BBN*?)Z zijWuTArNtfuCFs?&-1@M1;`3VQIA7F$vU^S{Ho3k^>`N}8vhi^^0{UWj zsP@joz>TnZEs3a2W{Yn=nu%N}?98&b-#3hup*4cibW6s$?y3v4dpU@XrA^A(O7*$7 z6U&5?X>C&Y-4k!3hJ ziX9m29MvDIX7|%ji;AL%xOJAhgJ{CajaBFUxJDKtt<#_4w9>|c{g(dhxrmSnKjFt@ z!nK~c#%v({*>M@))&nMilfe)@1OEt_>pbR&k(^iyG=-*OoiE`RrJ^x9{&M5dwxd8X z_A%c8ADb)W+R(tuB4ZvI;TuVB*6O|fz&<81sL06i>G~X*8s%ATQWZxJ*X?J>UEcaI zi)yH@CLB{coC%K|aL$w&P&w)rnS091lL+7olLfU~VtfceuPO;0=UqK>j9!ud9_HsT z_r{e^m3q!1Vw>;gzMLw}7&fP&G%rQl`)vH#miRG)JpL(YJT(^_2VUbSAw$#*GUP@> zTQm^QsAT^aKoIY)NeH$grS7%Mh#mehSi6SeC5UvnY~QL&@7^|>`wa$*eJpOS$!-3NC-!ki zUyb|!0d(9iNurwj{K!iY&lFCoNYiQ%cy(Co-t_USxfpTm;|x!bk?9=I-CJYhY~Ct* z)nP2x_xNT#Be|(?rwyj9tlYQCX$tNPQAKRQu-_v)$Kf%XQ~TBt&u?eBir(~n9TDEK z`#|7`(pnmBy?+6t>eqPeXR(9warz#-`d`WuB*bn0~;S!RG9rmv+7jQyl57H1h8Gz(9ZZuz} z>HOBV&CleO7NxFoSP@ap=h`zwa5`7su37kb6 z4p4#j-h7TGTB}6?o_788uBxezvtBm(c)r&7b7vCypq!nc83(b)gZO9l8!Vc%N#0DY zEV)kxIW^h;x0xsZbB~bdcHZdMT!M^WhI4kdeI6aOmyD9xghdtG8o~x~%dQfYxahnq z-?D|JMA9>G8S?)&`#c?aP!4|~wAw$HMhYlJy^<#67*Mfl`r!w;f0CMY#HUHprJ+W= zXH9t>^8xn%k%ngaY|9peVd^9`@%s{qgjlJ1Uwld9Y1C&i(869LzJ9sY;BLmj3dr+{ zn*$XIcf3>gJ1VNL92cjkv=rkFNyoY%JyLZIZwnX-%N!)xFqJ5y& zit-;QR@q{;=xd?h4|@Ej-grW~j3MVk3nh`Fs{>GmDqQpu&(Z-zfK4*90XLv8b}aze zd3l9s;MehngH72t*{?VTi{X*cJx9Z|)Y6ysk!n&UxL`Rue?G5nhWjG*PE)iXEEU44 zBGzYI((>$IA2e^#0-V!9pGRvSpTdts$6WhI%OK@*udQAupkk~E91AYyDB5lHvowa~vRtjXNV1i0NN!m_ zvjE1iOeg789gK1K*7QLa-xsC$@9AeniMH`61}Iez|6KKPX`9mr*7kxFS{%W~_#udo!i^*pwzt0osypbXGL+7?*7ZzDDc+YMbyO*= zk>NhQCR!LS%5b@mj)O)#k>;YT8c~c}+6K`Dn6){t*77eA)F0?+D{9J%bN%4&as+v|O^zhRfNGgI4saT}xGhTn$og46LI z5`-ECF;`?ENHGyp@IXHIaEaRVs;ha>zBn92J*uqdjjs)x$1WO1ir3Wmzakt_jk!vl zZOT@IjU;`4k3h}JEJ^(f;|-&x3pMyB;!U=_2SSc6hN9M|g9raJ>Amtw9zS33^%43n z>aw!m1D8#tjr7jiV6>#bzDtU@I=x!{gz+BWk-xzR(36|zfK3=2ve~d$1Y2PjwIly%h3-JFi>`Q(` zelPf46aqkx`%Y67TshMRsSd~s6_?rk%hhKVhLs5{P zm^cb-;9r<&ntQY=*2r$kDlq4lR zv<2xoh%`R-#hz%fXXEbyalOuYfzBEv0RIbn2}ZytDzu zEE1=o(Z&7p$}xAY*83rOuxa-b>Tg|Niwh)}>p+20-2|T#P!h?vcO&DpTJ+10G}`_s zt+J)!=dEv?zYvq*qAH>*&3Ale_>fTkd?BZo7SO{^zVFlw0VkJMK7*V~)0A&>A z+W6BEF|uLZ`x@;MCB>wlb)$4w5@qw=BmY`+cw%;=k*<^Ghu;kb28cw3P5AFFyyGoS zMfKd*CyJqRX5qdKx@u&J9-fa(za;eJO19<(#u6_VN^Qa}GwO-Lh4XLFFW#YhWq6D& z(K@{rASz(s6E8r)Qh3A_SezD?D{hQtFIvZ@rKf_VIdHxDuSUVn=RrnhR{|I0D5Lhw z*g2=%>JOVX80}(FDcZ{ULM4Ebm_6d)FNn-uJMvG+eE-;x#G0<-2ih2IW@#UX+Up5Z zo3@VJ3`h8{z(OvF^vAX^15Q0~J6|XgY<4@;LW*D04MyrOV(0%Db5#?aNL>;Lf2HnX z#D1e!g}mU&Dz-#-{o2AE|v7?r~ChkK6jli_i^9ViN~pHsNb*k zRicmMj>-)Kk8|m(f8qH!PK&ycSJlh+hIITICFla$88cD~PwS7pg`L&+tq~$((ygnP z?l^zCr=fx8iHRl7?y^I!fjA%XxB{i0Mz&&AB?3D3DGFX#*d?O0C4Q9woKcaB|JW^b zuoVW{15q~wC=SBsu_PG0I?JTZOSa zGT=}8$9|h^cf~)OMKkd1kulko^0B-hqpoiVb`w3;3Q_Kt#A z2j`5f>_DYaiX@bno=J*He^P|bbj%PHerT=Cak`7`fX0=sC!t()M|*w|dCxk+T_P+Q_>?-mv}aK~1T7E=q97;??c5+I>T@&i*07eT$B^0sBU(hEE+eBJp$`y~C zo!RYv?f%~5Q-<#)aau$qtf$G?BNRHjLGj z>%;uzdDN#$)kGxH+7S!w{Y4&dILaftOFA-dp@O!4>!2h9TU&+gMZPP&{7?99>%EsW zYfM@(D%k@qVzITcJRCq%gWNIbi^I;~uMen?BXj|EZpYHQ?uO^$24_z8HbY2y#B+lU zVgnBL4$v86bNu6-%&b2a!R86+^OXV>K)I1c#+vUB@ox&z2$-=#1>t31SdJnmvA5{X!tWU@3y=`0r#Qh+%=dNy8QG^ll3&Z zY&E4^Io>lB1{#e#d`@e_y?d7KHsMcimKQ2zj zc6Rr8y263MJK=ZKHPAKT>76XdqExv}u2cFU?0zlmG`S6NB&p2TL7Nr9Qq1a%8 z_z{~gN`1RqyRDzIY|QU6!!Rf2p#IM|qB}tPv7JoAJ;h$oZA~7WCRrvV;8AXfD~ztcXjQfc4mj~FZ=+Y zYr#emc7}9On4EY{Atp8BYTfhWPdzIHW#+8w$sfvLy;-r(b7FLIw6vt@d%av9y&qAN z80uG3&evAnOQHY3v^D%YmJ$Miq<|q>UI%boaR$LUEUXvxv8D~fYfW=G=cZ_#t!*DM zpX1grsk)=oFAqecQFDqybODB~zyo+Le< zB(!_zs9Z#y-!(NihK6(;A$&@-W`aSRHReUP> zv*mB;F=hXuaZdCW$>-hWU;n_!6$G2yo@mdXtqs_9hy$&|u0_I;^PLqolg1-*W! z<`3q{jpOphje4f&t@fXdX9AVxlKb3@!RFZyuh53%fDt0sFA1#-a8qCIY|^{lB>A3e zsEGdHQEk;IPq@XzBYoN~o@cSY9%XLvO>ijeVGN+PQt{Zw%scp<=93;i6kW1ST7<0! zDc)dAhF0F;JiH@0Ez39@C&( zVYUW&bmTYYw{1T5Zn#g>zJXP6Xh#L~F*r`D)IqCX*Z&1%3IL6<=0&`H-aM3(&joVL z*D}O{2L8$E+$6d&vppEPE#abWX0cCZ5MsgX`)jhVv8g|6$s1JZAAIVJZ;qclzk9fD zX*nvFGN0(TvEw_7VdvihiK~#IDqhQp%xcjH#t+?g$2UolzHMm1c($-S&1bdW(lkaB zJ4u;;n?|;vPE@tgsa67H=HD&u?uRy1=xcsdt+)3B^&x1t<&BBq)_$C`d0FJfHXGca zrc^|<$KhXf^v{PLm7kTr1HBF5$Iwal8tZ|o$UE>t#JCb%P^@B8exuCz3BLV)fajMl zo1sd-`PtQ{Fo^$OG+CS#M zV7rL5?HS(^%k9|BGvnxYx?ZgeK0C8>_(is!WJAb1T5D^BXrrmLONrnStMU?cwHY+# z>UQ%f#6(7DX(#<2P;G@+!(&$>JJ-=5zXaVetPjqOg`jgN|M@eaESx( z?z!a#iJ-nv6EMTG&_tXZQ@kK`%Dq`%3>|$eO5zisJO636T>R$nu1_46#Bk};D8=E9RakjLW$&GQhImDF^fU8tLnn^k+} zq@DxCO9MjRYi3{g#OI}z4s(EEQvA9d5eb=8d8Q8<{W{ek9yaGQ@nxZHP8ZU|)RHl= zZt=18%859uZm^hG=V5RAlr__q1^9Bg;d-(}g|Vuvcm=_iF-EyB?1@W6^;d*AOf2*D zAGjxrC-EEIr87aV*S{E2Ru)!}{DYa2$)2jG{XBeNoBjKT<+YHc(>FM@P8nIpX7lNK zNk?pmS3AT oIFIn`ll=$#fBv1~l_Cgacju~E@Z^l|FRCg((|B6;#4PB)0rtH+SpWb4 literal 0 HcmV?d00001 diff --git a/Intune/Intune-App-Manager-Web/intune.png b/Intune/Intune-App-Manager-Web/intune.png new file mode 100644 index 0000000000000000000000000000000000000000..d583feb5d5b2133025ec841f6ac2907e17298026 GIT binary patch literal 965665 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 R!NFOwGFZXGpTa!V29a6S*OQ|B+=0MGW6^ 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

<)r|{=0p--? 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 u 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

yOjQ@E98IW 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≀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�@@S4BhyTj==jXfdeNFModXPie)!|EO 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
i2b{`Q&62In8k4QaR;1^Znp0y*{) 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%0Av>31Sxnd48SJCuTKtGY}ikB zq?2_g+5=$1#|?dp#%>Oq_GpdSX=SzDxx)?RK*mQ2v@*VB@cy8S`HUexW|O=9-~|Cdt@`6U$nT~d-_Lram7(Eoi8A-tdwxIF1%P9uYW7 zvX^~V`5_zgN{!!Yt=`=H(dAQex4U=Kt+PAz7-i=lv3S=mB3pp~zVISn+&&%WyZqYc z@bqVdQujqHElx|jg6?3h~+xVx*q{8lCA@`*CVTkS=WJM<@o+%AQm09-=jmbj(pT765BL28^s8e zlQm!G#_cix_^O6qt9GLQWL;Ng@xLPqavtG45#+i`d%Hw>-{_y6yg+_<3fuoE7>8I{ zZ0jxdG^Z&eYE;~fQLEle^xUNrG-oY?g=@A=REl_wr$iINz&oI9@+GUKa}B@pb5Sa4 zgP)V22k92KfAN!b7xEM9dg5)KqKidzR~irnNMIsN-}yt2q;`dYRSDPtfbb9!0$NNQ z<>72WZe4z6u5JOYL!q)0plp)kw7ag&Wjtf5BL&Q>T3?_ldqt9jX#e=6pwB%&TiA89Tgw2K*0{8+B zt>wH^iulkC3p9a9cqXE(KD*%8mDT<>(ZR9l&SIvXkAzjm;bNSAix)=I4pb!uTaO-( z7eEH|pfs(uTAF8kjpfZSqywnjD!e=>h7mTuMy}Pw|4O6f#^uk2Stl1) ziT)g0*JwwZetxzvbnIG6rJ|?*=PP$S!Yq&U6P!$TlQ`b^4HVy4RB_4v7xhzWOIbaZ zlMax3yqQT?aGdlikQWf`6!$b<;YUU^vweBdu1&CXgOdXDC=RbM;i>I)=$T+H|16m3 zRNUqamw2#jkG#`!&tC+6ysxhZF?Uh`tpw@P@OVVbeCojnMY!oLK5(PH75~6_7sT;C z?`cw|QG`UNeDhERLGM)~pec#RE-|~*W4-WO9vsa-imEXTlx4-m9T`rk?L9Rm;#jZA z9+w~U|G$5^!_NYWU4pik{Y06(7V-aSsaU&jB-joF{VvTEe}O|hb#?(wpZ5JMSWs_E z%6Z}$pj%zLCyBdIbE{*-lP5mVfhurVX&!rDh~789L~kY$;x=gf;um*J-5fI>cO(Au z%&bMR*(hRDXTdii5g(>&`!t}duXW#rA*n%3#NLn|g%~)I8T`_(5Q(vq8yw_IYqS~Q zHE)`)NO}UF1_@0TE5|R5fDGI;`T;P`e4ByGWs^hg-QEQWkZ*4Ql7>v&;qE|AiK-N3 z9}k>N2TOaaQVq%CqXW|1{cb#)u%kKnM&G$>e(*a+=6Lo$$Cfwj1)Jife%psJ(yQM^ zY4;D=|0+fi!NoDMn};o1uu+-l7JWIvG%u<3*ALtM3_%`_6MUPz`cz18ZoAp+!|Lnjan;Xea~^DLg`S7dI66~a?1c*jf75s zND6N{^pN;;*BJz!1kH9({uyY8S&7o(Q<&0N})+WB3A=0^r;%pRJw`)w8?O_dG7gWJWx6b#rp z&47)poP)a~|5)qJt(PRdOc}bo6%5+2@7%vt=$4J6RFe6Fv7&Wb&jD!56|4k39v_H^~XIO!%dk1ms&yL zDRh#q)e)!w`FQ{rL8}sQk4VGn`xh)JUDcc;SZGG7Sb=pqbpzn+NMf-={Z+*%%2>=Z z5aQG6GWjm@Zp#`d){Y54_?@WlpOLL!LhE zR~Eo(7ni%*U@s_dssa2?qDI!Ne6e7jD`ZUUlwm~uBvCQS4&^s~Fa{S$^=8U;nEvGE zC>=F?68f^$-h7uN0iU?oR(i>2f_k1^K{jrT$;Uj4SBxlIK5OQ0a@Md6ZM?X zhC+j_N`r@_SD8lxrVo>;TAz{lGQa=kX6lj2)4KTDC9~?jK3oHDL=Y2`ZSU}NZUi1> zBw1N(v-8r7+AC=)P}!ZGB+?y_eN1kl61ktuNd@9uJt{bGIIRwP@^Syy8faeb2p=_ z<z$4jA%oa;&Stb^VqO?RajcoB7fkA7u$TU2N9h_{ir zP}3psIRnb%)2*#ko0W#evbwoG4DrUYoq{zF4^8RCqHxSKn_dYV=-*tKMm8J^b*>~X ziG#)<@k$%$7gm4Chgp%O8vw8MAP)nxKHhLsTKR$swWYaAOa(_wdqT@}-F&`3-|N!w z@hlUgLflbfu#^3&;|0*1=q~B;{bGj)YuUn5OwGVRw8NorY$T~D5z$T++UjK2>+Apc z#BQ>#y1gI#Bd?&rsu3j^MBnI(VEFACr>6PtHTZvTg&Mx)x04#l?7PQEuO+s1@1LWO z!)H!Z=75d)bY9l~F#f(AVT{Z{+k|G8FIvK*FPZ5?BWk8}oYd_-rE$cbq}PHdFglSt z{Z1Wbb5B;`b?RIi`MZe7pGhRzGv2CdN0%@Wg0vPch^Sant)9iGv%T?E9u7vmMogx%8C7lsuu#RNRb2j&ws zog1oYzQUYl`|cc7icYNS*}Df;gCm{M@UO!RF5%^27AF-if5myL^w<^cNXX6Q9=9$PG%vx) z=oF?}G~&*>qvXk#{lkXG0dZWf++h(kn4tpq2uU8qlWi@(z$R2)vtdCVg*vmssSLeq z?=XBlQ;Wy`2(#(q&?V~}Fo&8^pdtsx_Vd_d-7vJ2=1P`gzi#Ws!NFR9-^3-Ik@)}P z>dM2RY}>ajTUk=}EeT~!8v9Ztp^$wa8arbfOLij4S_;XQB>T=F+ek?Eb!0HIuVbIV z81sAHdf)H;zTZD{9EQVj+|PYK*L_{*bzbL54#mjuv0v&x0d!WIL{do!tF520R^Wu9J##f>Dv@txF{s7p+4dI)ip)q~#Y~Hz zNZ+hzHf+L^xDY3Qg&1i&h9ZsS$6@hG$Jdzj&Jkj%-Dpf67_EuleI!0pu7&6bF;1G1 z)JgmJ(PROsV6)y+Uk*!6wB0uZsoZAB;!`=?Aw1e%GdK_8hpP&XJInPNd@DUwg}Z{D&Y%BG^rp6V^}M zg0twN1MD_z|L0{@*E@azqed{c3x%%IB#G)mi5>$zLWzQ@3g(CYjJq;-PN2+T_{6z4 zzK>i7k0~0{5&%=aP>4AD{+sD`V|}1n_$?>7W#DmTdeMB zW|s&03ZHoP1xp^Fo2QSW=Dw4vTqhSQbM-Dxs$(Qn2Y+56tB<{( zO%-v_DRqY;_2X5~q@hf83h8)T3$%i|jau7Z6vn}jTvsa|#h|$CF5F5IcBzf+t4rA` z&s9>3#EMoS7;NiHd+~Pz<1%PERbc*S;%9wg z3}6?)=IUDY%etz}dj_~c_FASF|HkUxHWCMWh_WFk-yES~dz(T3({W#P*#3y;UYReu zOyYl{&TvXI^CrhjN2fN_Yb?`><8^EZ_=Sh7a`VTesNje|;v@D}HXcza^{dIbS%?Og zfrjT;v1`0#yCN@t^=`aqdUe~kZiuV;bHjvWnp)!MxFZczp<}A#y~sr}@WG}iKlZqenE85WpC(0Cf#UkE@5B9s-11GSN6b&vKHXBw ziL94nx|#DS1oJ?vPu2QLmto2)@`DSFl(PyC5W!6cP3~b;73NjZ{a~8OL11*zkIUpj z07_vna5;Fx+%;hJwGffMTZHRQZm zo{sxHkPcJ(J66FKPIy&tGK+m(Z7!+jTOGeY4Rg+1eD+-`&>}JQmd~%)zfL z$S@@hK{qL1U#;XwoN1&RMO3YoNOM+hXFR8HYxI8?N5OTy#aN6K?5wR|{+An;_XtpW zu}%Yz;G3zh6>ok}VsTvh{?tecsep|U{%jHOq`Q5>+21w4G0?WxW2p8AOb9oF&14+x z+vBH$QjyusssCMf++kXuKE{Rk?00~PF@t<0YPbFp9#SyM*iJ7vQUG*`Ir6~?8|4qW zfE?>f*V_>Mx477f%QtW7d(~5>MjCZnv6gm!ze=Hdhmu8`3m^dBFglkFC=&13w=b|< zCBsqMKwcsshU9Q@6PKq|0DzE8Q3^1TY=AOy?R{l5Cm<$cod{S-EZqYy?Y;+?(5_{7 zKLKx=Jgb1+qk+H1K&Gv=d$XIZ6lhH2gH|2_GSB?4|Ee}cuaIglDBs}3@Vd9G7pWjx z{_gpgo<{-(CVnbsL%Lk}c-ONF{{xGf`blhVDjg9O;GXWu_B6S_MZ8rMteP8$MybVK zB~jmHe=!+V9sz>d6>C0B>S@51-=J>$X^+0~qV+|~{ypLKX!_A^;ZJkZzsVi1RSj3= z^qD6g-KUV&E_yOuY>M+$i$!!*S)>#Oki_kM%17$&(}Bz`Kef96cxp4hE<2Vbr;)W62WC58 zGbdG8!^CfMo^)6g)VFs2C76d9|C3|ca362-h8+oT7U(oL%eA`wPdtgLCQz-wm57V zNFr%kcjv;bGOL)Bs#3n;o={xJ;FFB{7la6?xUj+d&>y(t)U-CMsKy>9D`U z=@(cB>fmKlQYIlkp*!=$=YK9OKDUs~U%G?=6P4xBOju$;f~w#>-s4Fu*mr>NV?4*I zi2mAuyKI!<)i)^;1eb06;vR8|bED{JBgNbV9X1y{juhKIulOsOJSNUr&A6)|Pi4xt z*!w7Fb^lFjt1M(%39`c7F$A$1aE9Uw7P$-tRW{&@53<81Xt^bl#_9&sL#nPAs63mv zwo#=zQIPG|1n8+{jf0~~--toC+N^FZzFIywIIWPTa=@<%5^0U{Ra4-%>3` zs$(8+c}4~wPgfIH<03r>C=cT-%i;|uMOJhGzT|;*ODi_BB!G|_9*Tpipu8u&xzxhc z()iG=1)#8sfs`}fE=Gy{qhiU2E?gDLJ#Z1KPATcBOHHX~&Pa^e$L_@!Mx`PfzTi@I zahjATS*`;TbhrVL-JB9^R*A={Mc2bmQaRsbRssjr6uu1e_hXk|Jf*j1)~7>eiUgD^ z;hwj{N=i6cULNh7Tvr;bZm8Wp-|TppkYBv3G(q*vN&DzpXy%l1+v;k@QwZY~Y3)^V zxs!Rp=-tLK>zX0-v=cVF>F|BQ8T%sm&oK_yR@^CAB$u&nIyST54LBNbW2pZd2LJ01 z!s~3d=P?~7XIZp}S1D5Ugo^H>%p-MQ%;z5C)2xs>Fyu7W__*KlmrTa@pGF}rh3vN@ zRZe3|2OFc8_ZEqj668Ghd%0DDQsypf%oYN&w<6?&9{?k6L}j<(xoll^8x%|TRUJ-1 z%vYK}0%qQU7j11d0h;!Dgj+2fp5MQ)nbVn$rsfTt8lcSQdh>J`%*eYsM`dV!M)H_K z#$*SB8R$o%e8q~HDhv1x0danzHP($J>VhI*3bkBvYL|A+LJjmpH0aazsuqG986hkT z%%+pVzm-)0EuejiEYZb|1Qa3he8urIlfNkpB&&-rRd!d;zc=W%9{&Gh$Vak4M4>a3 z2KaPs&@T~qBtT<(u_wnebLx!N3$p-s(2HS#kb3@Tpio9N3E3*kvfc8NU`0 zS}1kU^3?^A1zXzTT1zTX-;^+-lZF3ivDbYwSwKg&a1H9#kI`pahpi=eApH;TkP2?q)GNvj-IG^Pm>^%yFk zGNnV_*zYKg_mWbf{-D&RzBugg7b^r4a_0L_?M@P^ypyJj{>g=I@WSWrw`u>kt^=Zb zHZgSbM;kwhnjgAQfTi^|mKzZ6WS@GN zdbK+_MC1)vEo!#zmA~s%Lyq!CEIg_g#IKzTf}~%iuz*aA3XNKP7AL2&lxUfU`|1wu zDa$d+z@Cpz-J9ciJ;558dA0IE((MTrR$Zb|;NI-H(#R+AZ5#&rffFR)@&Nr_ODojX zOrDULR*GqM6SdMi1Ly?OayT(J9w2{2&%9W9>c@+;tgA>sE24Z@IN>173zs* z%Xz#GA8*_1e1OQsCy!GN*Cq|>)Oe}{1bbnk%S=>`JsO+r(}Mmvpqw}Y&GAqIGV@F5 z20uef_2K@7KkxGI&+y(=>_AM#X%i#;_0DwGkR6Gwt*x1@OjN^(L5`@WfVP!(erf2p zbB4zkU74pkG%9aHw>)q!AAH4kPB73Vyu8n&a_fH2Er>SC+`F-4k)iggFZO)b!`PI! zL-P2PI_Lf{#qozL$+lupW=p0Dn%36BR89|?W~^Xh!g~P>`BvN^7w9JIwX3*K-SxE0 zy%$z6A?a-O>MXYMpE&Gv3%tu|C@HT#bB+%8tjMaP~7bJf1 zcsStt#uS%c(Rd(0Ti&>{VM+TFT)UFQGgWc!+gF7|Zrp2*hI-Tf^HtWabwVEb3(&2Q z(ZUU9lsS)FjK#`(rG+L`oWc32&ire0-?_9wx1mMYk_jB8 zXFk)0X-cTVpnbS-+fR{GxDjoC=L=@9kdz=Ht0EJ@gTc2uMwfX?Vm;dd_vYo+hE1bq zWv&(n@7Ybc8=UOt#)^T-1qh(NH|pD0?Xmhar_@5-24Xam;(};3W-ysB8a%yuU=`G5 zQws=oY|-n{9ewBdumE6vvpK9Yt}g_PTP>}B<`oNYkH4yjcHRVp9HhX3A}uGMck-v5 zw_56fF{g7nt^#u`FHKK`NfjK+7G0E=Q}+AJX`U`A8e?(3Mr2rSVMl?v@(#cFfYn1w z)PPJm&`*9l_NvjjU)?d7I_l8&%G51&x)7&+3p(0{rz_!h+5}tt`DTMs_ay^%q#~5iS;33+vdsI zJh@Nvk$^!^qS;z~v~Zi)LduLkx8?`B(qJWVh^4BJ!^-U{NuK;?o)MBgRsyox&*#1! z`g^BDbQjW2=f@PaRBQlYRc3;ZIbvK`n^S}=&bBW(ZT%gsB!B7|Ai{;)g zrQix|d00eIdZv`_PzHz)w|?6soD`?Ieq-}pGWAE_e%i8CNH(o7JF{={EkrBzq{RZj zdcc3wc}YmFN4o6GRRk<9aptrhGdUlf{42muLSi}p3rv`+3Ef6j5Vr^TNILES3dQYV zjRhD~;wjm#%t6B0LXt4y>giN>*e8f1`%1i5rg`rC;;Wuo@9{wK$hda>4|4tf@pni; z_$kF3?51R)+>-Z6A(Gk`Cxg$rV7!(T(preD{wTw!+5srdgLY}YhYJv{X6{QtXQcz@ zsbys`^#%3dANNcuj$Bh&$nKud znH48u1xmoOuS!iHfxtbyc|~zeAU=UEkG{JcB`%eA?!s>v75#kY8owjRjnC0DMa1>j z(ZnG}X0cbUdU}IwTvJfwTUrm?ON2NeKpO`eaHSQt7H3f8f&la&W*aX9irYkohrrL#I`H4j8jHWKstg9afc)IkH4#aR`^5bSW6>Gl#Kc0Af8)bpidh_Ewg1%F<|7+zZ5d z!pb`)&#%6HB4la6Q0z)AR_iA)1na>)JdUc%-pKY1sQ`GD<{jrX5mm0|nLM=z%8Xwp zv1@F#syqUa>#0=R_;`GOLyS|DCSs%kCvzV6h!t~sTJK%+cZ2=r)!(F1ylz^O+^)af zFyn6__CJp$9JDyUt+cljlO48IXL80#$`-v8@I{gEjp3|R9%mndHkJ@Mi!IXZkZ3CU zJmpa~vK{pt{rDdGo@Aw9qshcvbzTaECGCN_Caj(xN!Y0UR6t5GodibDehmr5cZz#YtP04DtiuDWk2MAsA2MW=<- z4|t(1CpXaBfA9AP4nXFtapj9r0Dk^p_kZ+DZCYfBxw;`c9renXmnLT!8qr@Xo7Mbu z+_O*PJ_fbTVqF_g+wy!2H7`jTwkRDvH{F$XKC+j&nk~^=pL6)DwT{ceA~bkuI=|#& zCcu4{pj7fo8*<5`nlg~v(bdu~+Re0DeEMVDi`fKY8q;+zu*+#F_;608oRITG^5u~u zccFl?)v@PI$G}Tn@87U11g_o`@D?0h97+MXfj4Q~n*2}8pvPVLd0FrUKOTL2ML}w~ zdV!Aag~WsUE%V~DBhLBp78U2U0!vJc=66^Zf=#_wZN+Cvet0+=@Gku%R38lURk;oI zvN|MLLZ}&zz1a_u8>wqEWf!8kn1G)zBSm$Ov)<;ew~G$7HXAKl8)Y?E3(d0ZaZKp5 zttz#}xU>dZoiYAw6Y?98srZ7mq3W8IX`MnAU}8A9m8+Nd?gwh_?RWhY_IIgh2s;EZ z)jRa8Pxn=trKE6~_oG{nnFBTDnOI$|zbX4@&QE-f+|YLn;s~4<8wHaIwPGurv&uT- zAxT$6B^hMaUbyy!)@?=D5_yCCd4zsiA@M}KoY9Pu5r znlITq62DK;`2K2z=$ZHaTlI~^Eu}qQ^M8Q0@b(dT>827wTMFBDKTt9Q zXo=$DPRFc_=eGU)Pg5wPi2Hs7f} zf*DkR{C-(pk`#M+@Ft;au|&unKg`{%@H@8LIn46Hx2tfNHywzL#2*F!C$NyueaHES zx#3bavQ=>CQ*zQkhl3wwoF9vRO2qz1pHVra`S>|R7A@O6ko;noR?(i@!m1o4HJ8#< zCWg!BOMUl|yiNTa4R>U+`64KKY@2k}TI9oEEN!o`AeW`j^#)$DcJ-JD0Y@-CI->KJ z20gPH4cW>jT9_iDhFtGu$Yr~J=9nAr$69%E4OZG1Y%DsBzjTMVSjb1uj4ZoUGI~zD zE%Bp1I!bkBeyM;oMEgcER^r791^H~!T&9%yY>bld_j~wkF7^hs_Dey(%5QU!>6iyy zYi!$(3eWpK&8j|{_9%2Nh8Tx#`h83a(_m-nIf_zByPeC`!%MY)qqHO>gsq`^|I?*e zB=o4Ik(lVjbns)bY4B;YT<|7q{5yED6iv$Dy<4i4S-i5TV>4!_H`53{MK?-FxOgQfhX@McbskOZ9HKLPL|#lAmDP& zS-5mF3lggM>zp7c6`vvL#L;p|U(BacgR7FbHzb1ungxv!)w*)rmHs1#iFbf85IR$8 z9nR8tIxLnDl(5CCJbd6-5CvtzOS*EoU=?dzgVxThX6utiCibI_uk%2Jm}>HdUs(Gc zMCu0K`t=90SzpU_?D2O%idxIG><>9Q|3_-)B;(;=s7HI)=(W{4`!uECh=CtrZ2Sd& zNt5y>r-y}D3xI;dG*@#H5t;wo7+1&jhU3Iscm#fT%2{u`RzlTif_bp<^4?tWxGTDO zJfcL8-PFw*Tvv=p+`{Pb=_S}NefwcTk=RtwNSP1NF0DP^MgaB0F&e(*BI!4lr&I?i zjazB(rR#7MzY#Ezi5)eL*%haE^)?o;LHU}wrb^xCPG~KJGmihzDHILU zl|SdJf*Y$7J^MyDxhb%jRnJs8iP7G|u)c(BEVhn4*^GNvb>D7QsqvI1%&t5Qa;p6M z{N4$Z-GE$bv7-r zaQC&@>$wWpYCX)nXvX<6%PAf6$yVusVU?bXZ3MVCbXac%905PzaJ+8(94~wC&Vc+* zUZ-V+i|?|Q$xzx!|r15~L<7eV&;D&ZXjeo~#7I{C!N4 zKXr6i(5D!?@ox0M|3W03DndXPKZ(twxIkKvnE|7o#J1``q;7C+0TNi0b-^R*$s^t* z#>$Q_db^A}&tf}#fv?3sNb}iboYAn7u|WGD7$^^0-U?be3d*UDLl^vB?W&4nsA^7O z%_T60x#X8;6aPGd4`EK){T;+z!bRB3^HCU@fBg9mQ@^!5m3-kG=`K-iwy)eotNl5T zpMXE@4S=vYS07bb;XhRW%t$+~&E9Ayld`T~v0TBU5T2GhS4{Ctgp-m5zhEC7QTK@t zW5C={46NA&A&nfVDl_#7H({LgPCQ3Ph64lw8@C&yN}$VW8Wt|b)Upt_MH*5ejJas{ zCl6}bl1HLsIYqF3zp|9Y@y{XR7s;d#=}DU?heepkvWZ0R=x~AKZ$Z3dIwgkIcGRX! zfsYcLS52ZF93*(#_G4Q6n;!mN-$8v1W<}{?t7Bp%xw9xRBPF z`6T$t1Kxwjg?hysxu2Q?4Abvao^1CjT-ZFOx*?xr(o~Efuu-t|F6CamYg5I$BCiKr zWnryxTXJ7YtC-NN$v)igAw4&QDKf|N56_c!>poINXhOPG?!3PoO2bzD_ZH7?l47jTQ*#E7Udm)fml8#0Snl{eB4uR#g&=pwp`}uXnJ)t&mF0+z5xZqJRKL2^Bx7q`)C1KFV(}~2ZcDp-K^%0MOP*1Y z#CGm$30WFD#lX`nwWbMv>S=h(q@u#LI^C3K2<9TnOa%%zN!>s*x~Jt5-(bzfTRn}@ z;UQrfP9CGL_~zi)>%an)KtYUTI#BFg8q&B9!p9sn1QRUDtGS-_A{k5X3M-nia(Odn ztO_KPz4TzriO@ermHjkJa%7%c;P=8PN0%j5Kc_1#5J9yryUzdKS%;wA)mFT}Wi|F0 zc6*og&SSY4kC_9BN27s_99ha|+>+;&Z)TqGd3Q5l8}Ptb#TEqru|>r@1^vjW`x1VXO1uel*X89T-Ao`t!W{jL3m;?OK<&6=V7TgZAMHDkRIB!r(m)DBm*x8E@MONG z(&qrS9Afb%>~jx9u!=zd(qdTm4lE7POYZj0KGRfL^clM?qoezt&Vcvn2=U74?*V^= zP0$g0wf+7Npi9Q9;_29+;_zqiAK2m_6Yt%jYo|QS;g8Kk#Dg}~rNm$*Y*JjU^B&o( zriQ0tB~u>R>oqOq2b{G(Jnjd%X77u9QBsxYusyqL(x7CRYFr&#n+ovW{9DqV47MT1 zBWjB2}6C4fbWC2*~czLfdIYZ7kwt_;jO;P+*<<^w(=2Yn2G;`y6quzz_I;P4` zwJBb1C6j7$iEYy<;Z|MVAN(FD#S2!*SrZ&ZMMzP~tev&a^Q~OS_JzSf4)x_;j&u_) z0^$wNTs{BqlRf0TpdlCvanf8!bQ;!s^Ka0$rVsP)R=`@;{aVLvKPF{M@m-CU+IE63 zE)_e-hn~-gZR`34Ti7z9h6wX_F>7D2-jd0^nrD&^-U`V_+Zcr|2nWK!j^XRA##?hf zB$qxXd$j(jAQ->&XMDcV@rpSru8<9QYoQbEW5VsuuCd+CqMzg|H+of#Dd7Pj;X&_w zjcj`FdzMpYdh5oPQH%b>;ie2J28suuqH$NcDc)Xl&d%@8ecM>`fuqtPab-aRMpMXY zL^t_l_FM&}A{aiw_EO)^-hxiPY!A9e@*2DQ#l|4c>%A#R8uMlRquH2k=%@I*yTIc; z-n0%Dm^;^-Hyodv!Td0uCbhWd-6ih3UFQ~Z0Z$NDEem#lMkoI^u+&)-`fF$~eZv~z z_n^#AVYUKtqH%Q}G4$#bSHz&aRzOYs-G2|ihO(|af+W2D zRa1b|-Te24C}dTdI&oORJqXC%OKqFaMQ4KgGrqn1bxG|flA=$(+ z$^O}W17h$Vxo#lmHsc?F+tuF*0@;}B=PwW=ZcT>`{mq&tA$dEGK*FsXh*MH+s57P6 zB@Hprwu4->TiwTugx7oQgUdWjjY10inN{1^??$SUwY5;I6?YE@HoCc1 z+KwQJ-!o-a+2!ZvXHe#Q!8_chOs%@KbQId}yyj7}t+qC4ACi16%%Ub$DI;2*O@gS& zs0eYi1Rjdiw|VBq6DedXz8FSNttNkNe)n>FMTHo8(!sWG(pRASTw5Gu*i5x_zPWg8 zp+5D|x1@1bD{3|}X?Cc*C!Y-pZLjt`{EeT<5@V(OtQs_%{1ddzjIiLT!kiJ(c@_~} zbloMyrnqsL1Ge$SYnJ^FX+v2$#OJhe*l9m6VK|rX-%@(rg*yY36kPT5CQ`G6fTsw5 z%-OAmNXST#TqE8zYMk?U31m^?2Nrb*4>?=(o?0u|Q^#srr z-ldj>g6*Tj7eed%ImuX1j^W2Sb)Rf8sh^u&)+dA%ze+s#9fz(|z=&!{oo%_jrCgA< z%;`JrAc6K0@v0I#+B0){AZITkMMQ z=EgQvE_cB(o)WpUCslNkTC-kIg{j&oIpd*VEUmRkoqVM(n<>E>e4nkM5=f$$C@|Ez zX3y2*E|7H}-u>ZQ+|h6y@WncP9Rg^tpx-CUO9z*bmOw0uQB1G$ICf5-Cc3KBz3W)t ziMPB@E$i^mEJTqNZ{rvB44@u$so-HbWcVgLifq!U@ z|KVeWUh$xVl&R!4nc{?nJXxC^r0{`jeArGsay(Ro>txG$u71E4+>7O(R+zk{M&GH- za+&u6ru&X(|5t?gFJ5$zbN(~L4djIXU7Na0DQ-N*nQ;oLYPV{V1eKazbcT$2C#1d$Sl|M3=!dPIV5T0POLb=}!wiaRR;PP^ zj(KeDT27J@ze|7U=PJ9W7t8)x{2kwiip@Aq1#yK#=PY!R6USKpYtDhdoO{cl`*zaG zmdW?}zA`BKzilwzVYhopM0g;hv+z3jJHd{gnq1FHg<1`P{7PHFBf~+#EBlEej-Lh^ zHcvh#-IS?9)kAHMvMw<_Fq=37*$(a!dkb1xcPlRE9Cpctk@p8B&8G2_Li=_!{KoMrJVbUoXLDu&kFBH)dx|EgP12iK`dj&X&BND8`m$>ZlV6 z`l&$f5ID36V|#_2AVw3T-|MIp=UMmtE2L!O-Q~C{CMgN2jut__?`eLUm|ZTSe!um8 zY2=X0@U``uydz)qZ-tsXa5|r%BKx*6s$29)GK*Vk6tA&K*S z!_(LA>QoRl`hD+SkNIj(Qx|TsCMzK1d?j(|5aGogEJ^vAX@8SCRavT>7a7ei5xP@o1X|FaBSfSo_(L zHy*D{YBM$hY+tbM<^E>Xg!F+~dBYtUSG1QZMOcEys?0`n&HK_1Lmojk;{pd6fg$P? zp@fds<3;LY?86)?N2+`=@8^*)F8G*Ur8fGwRMV?T>pXeTDPPQS8urQsx4r0y8taVx zB&TbX5#wboEmIBPX9($pH&ujZpWT~c#E$OjhZieRyGinlEH9j5#@q=TP7BX9wzbkb z!L<&DYKhqG3#!Ha@8UO_qPCt4dSDnx3uiKSX<9kr7%T10y@F0$u5)8T>IL`pj;fYe z0}(wpc_)T}?0GmVT$pce^LSw-$+;bh^1DUO1X%eNi>~2rRFx;X)nvwYhVWHI%2$LL zzdspN(>BSGIzAI>>9LgPep>KHYV7UOFL1J&1-SO~>)KWfy0}J+;~&0DIPJUi>_#CB zUUl@tKq|O;NuWkPsOH6m0*38R4BUgz^^;ti?kh13hUr;&m5|Sli43iAi<25!_@a$n zHOmYN4;h*-mM&d8>xUzyqT+RW5f)GNZ$A8*oo7xJ8pp9QkEAbZdVObKXETYnc;?;= zxMJPQtxjcSfS^6GQH#Jb$9Y)5bM2do4yEEC4{p?We9JvAko%;x6Xeoms#n(#T*Xz8 z?0v)RhJHU!Q1S6p+dfyPuc%9+pJDGAORt>R48&A%;8Bh64gYv#-woUShnXWLBcZMH zWAw%g9Yup6hc@TCivx!e8yL4yB==Ufd=3aA_Ry5rdDxmNiJVFjGIK5KWUFg6dZ3!~ z6aGfC=uP9oP+>wgg>YaPHcg>TmxQgZesixo8znF3|H3)J zk7463^%>T6wVsy@xL1bXe31Ax+ddlUmCA9U-1~ZiNrcT;!~hOii!5^3^g~1C$Mr*}mt(d9~&A!OXQ&c2b*z z=Syjd2O>2i%?4wl%95K34tH0+SE%mPFQ^R+RXJ>7zMoG;YPD#;PP zsoeJeA=(!9JBtV}o;t{_k^xP`H-lWHk3=v2{ucNUkoU9k_U`o%HRHlb&DLt5O#^>M z4&E+XR^fo8_J>KC>>wpe&Es6!jLs7#Ks%_7%59RUV0B@?8EM|5?cT)ewz8}yVh!+! zxv7{4HN$gQLgYn?h^?+RZN|x^<912v%!Ua(B|i$@f1xtAqv3L|Q5T$}5>kikgI(?| zf;4?@hzd7YPWZxAPsTSliNr#v8$uGFGm!d&jTlrB`!QvAsZB*sbUrSg}|e=9exHz<0y znX?g4#(d~~61EWgwG!SlGdW>ila%K~Hc(+Zc-y7T_dJ1x{pe96Mzy0AM3=T)d{fDZ z%qU{>@R(KlTypU_6M@T?&({(5F%cVv%uh+4AsPX{XKR?*c=$?fb%lh8BIier%Hna^ zhYV!MDvnC^7rLU$d4Ly545O!U)3`7NS3MZTXrImKIl{p$NYU)6t3*p`L7cU}M26uJ zX`vzY$7YyY=WJ!_x>8lW!;6Q_UBRe~d-dx&N4{-LoAh__lDM4VXe{}970DsLU%bnp zbZl`t`=_C_zFgYmGrU=@#>;D6f6DqVvyy=GlVg%mYK(lUAbvFm#6+D+`zl< z4xNu!OF8`}yQ-Mjg-ugtSyM*YW#9C>b65}TEowJ2W;r`X*&2==0FJsqW>U|w^HqC2 zhOx5qSabT_P?S|u40xrx>}hRAaTPs}1xO>&@uOBuxYU4vBekr%-&-CszcVG#CDRsK z(r%2l7}BnL9Zk4QrgN-zZI;hQlgQ5xz-|u=(6RxjODbQt#ebjV4;blI;?TI7s|Hb; z!+r1P)ql=6t*7hu6>agM^-t6A~2Q*jfT4sgx`{lGp*MeBj?mgP0${JOE!E3N< z;#N$NbEGe~Yaet@b0z)mr?RP!y&L&?bjt%4HU1zZ%gehPecX1nVbiU*9VE^ZR~#_r zsPaa_m(mkdK6tzus&!MwVWhR#Guu=)vHIlU!}jr_AlV6pm8DY*YPoWuY6QuU=E~R$ z60;AJcGbayBqo!#0;j6@C9^j&A?Sgb^DAodE@-4NP9r8LV5Jq}uYh}mk~T_eEMP}t z6ycxijk;>?oha$+VtR$=9Pz=ghml!ENuV_(a}Q>4%qv^6z^&VE{V*;af9V=ilhw%n z2YE%X7BsimjwW{rJ@LR#iK-dS#Ye=1t9U4cbvp;+S!V{E7 z#ZlAGwOm*M!$YortN-f*n`3<@$-m#wwV|NFW(^ilj_p18q2Q70)K?w2qN?{kpCIH! z;Q-Z0g+_SbeLqu#!bv;joM$DI7E(pL zG-z04tb89E6AlXHreh?-Scgq@IZf2%C;CH5)ezEclv7;2!T>re9T^oaH9K{2fsG7q z1#zQn?w@>glIogq@;tl-udwEMzBrrL^|m?hyX?18Lg=t|;u4PW_t75mfGe8t@UWYC zpBxPE6Mv{k{L@s{i#N+^6j^gr-T#nN_T>rwbNbp^)7ZOyzYb--sFb2DUyctaV3rLA zpqt@er}Dhn_A-AXO0_w)B+BL4-Hs%sQxlyEFFg<;kaImU^zl}b*F}r`ej?lZV=8*p z1cs`%>~CpW177KlTrU-T=S>oOA8TrU)LH^_P^?wUewm(5tvNYvAC$91+CKAHOFmC)m&-D8edT1mB2 z;(yU;ndmGe8M-e~w)f?;60s0}q~qp|uF5zNJ2YLH(J>#LXgXM^{pfIDCZ&j9FUrV1 zy1w1|`(cLPtz6^RD0dR&4lubr@@ev);6W16r^Dl_bh7#S{s`bvowqI4au88>KO;v< zFi>mHI3TiZ{$0u55u*CVimOs&Tcc{*v6|<6i(;pd=lQy^!|RM@#~&)x@ay4cW=^ly zlcdtlFq$eXY_!-56bw3Srrv$vZa-$qkMW^*Es;Re*5Jun8YF=fr zZD~aI?8dfDGF4UcnuEwHH)9n3keONhT2?pvY1D?iW{m}~U#uQkXQ zCM}2;@?!h2elt|Sm7C6pM%IyedJL~VrKDPevJg$mr^kVNYAQ;l8RJ%Dzj8#T>C)Mz9CI zQ>rC5DcuH*6#RsE(n{n8b>q@;$zBp(&I?~V5cX6N5NilGg)x4k;vS}lRIaG&)jr@WA zPXP;eV@ZkL$#Q~#INo0+zq**POiMgADfM9>umDoGQMI;3A}-u&t<&DZyz(q-yK-rd z#bj4xOVxenUfIqG8=o_-N18=h)l}3|-nG&ELZ7xf_ZN%^PPs^dEvDSO#qgt;GE-R) zWI{dZ$9<{S`Iu9IE+FW%(b%1tMGz zLLW+uNWfde+7~o4b_NtECq_(^_X<8U6Ety(h2A^$vE!lVX$i(kI~G&x?6417QNeLe z;h{y}Q3cS^8c)yR+_|B@3fuG61?HAvKE~NTTP4Dj5uiI3%#0Lp-U7a5m&bsPVRoZ8 zAYaQ3gD;4NCK%Cx>XT1qK67|x0T({*b?IEAU=j$3$Pzf$?e&;&gL2m^st6Wb&9_|6 zD->=9YqNDs-d}^?d{=bmIQd+J%H9c`1^wAXPuQ|XR}Oz1C$DQfJ;U&Sj}Le0F5MzWs==Lc@7c)CnbwNO*K zs-xP5))D8P1CTy~2UmHugzORp{0Od&U!)~N7IAo@cAQGc zEEc+9$v0Pv1+nwl02A{{;(Ru$2&40)+I=}`BR3({9;yg&SJUY*$_u0!=Lpg)po6S8 z+FfUpmc+d7qpUvw4r1`wf9-|=zPnYi)}cr4-#$0Tw)7@=KF{rRpRvhq!#n%{399~n5OyMHK%#JwdnAO69?&w=~r=Rru zN|K^P4XG!8WtN@^J{znF3#vbaQJZp4qyac@so$m<^`ygDDo}=OGWhZ$i#A>cX4Why z^)H-^uRhGPJ*ygavIhBWG&UU*{@}M)NQ{0S<#vQAHT(5!E1 z+MI`|Xp);Y@n!))#hnQSDSs9;f8A22yCb6;t`TIq<$p)D?Ri;LOX0dm3$#~Nyy#=S zaGAF3mnRU_Pni%G<|!%rW?5q@ECYGaELG`OguTf*EDf1OvpeH6M6wT^IKjh$t^tbD zG9kxo)}#^wmTAdQi4{@D+Sl||5m^NQbice5!a-)- zE6H??!fjNYFLb5wFB;5AQ}>J8eI|K7e~JhxAAG9VFQ@(;Z|?x+pYq2S*rjuz;@s@H z|FS&%7Mm2%b@<{#lYFQe37f3#S}#v#t^vkJ5j;B-{MiGt9Ih=Me`;F7@-QVSKe&gVml&k#C5&!yYwFKVSfc~rQb@w`tMLT0L_+NUJdoA@RhEZ&t)m+qQXPeM&{)Q#)@f5vHA3a z*MR6GIm(o7QIJ@6!VOy~f}EcH+1DXX$56Xd=g&8CJjB7ZPum%e7XRs~+K_OgQ~^A|kGka?@K^7_j@B@{=R7#R0fb z24cQv>-IK>12-8wYsHt2w4{putApRdm6-6(k6BRUTR6Pjg8J#134)Y{v;a`r@EXuW zYfYzVbp$`oOV>`C_4^fh%JcWSf>>wswHdbLf^pxc>~)i7!gVG8{Dy>t^4nr+2!ngr z@zj1be4z|><@Jv}6D2IsTx!{OMymU;11}koHg=)n5%o7;dDlJ>%T$uO!q1MGgY6bW z<0XZNinpUIvxLWU#|NzjK`o(UZAu#)p%TK3rAnBLIommTqjT7z5lzO)MyQ+c4f)!b zsrcNH5>ixj_-HoWSYDDU(CLJaj>V2NK0{;~#b!PGxGs~^x#(0u8xy{w3sCBG6uD3$_sYd;4fJ(k52@n*S&Fdz zD4>kPm+7s_IHjPkk^vLmAuW-u_7wV!`B4VDXTtWg6fRV+$)=38+#=(#toV>4zQC9Y@ZpgiHakFL3*S@!5WL(>oi>t)7w`*LN-@9*m{QjvwZhv&% zuk$*uGoH`q5s$pEekdHP4Gnq z3vYjq4F}7oCX{tfqyTB_59-gR#3Q6)p5 z(sC}ikNdm05muh9S^pIo`_UET&jTTn-_ZDb>T&YeZ0Yraa4+*?nHf2Cmp-9#e(KnW z3o9R~B3nCDU0_=zIZ3eK_ubGkxLXsUAU*vxos&^2c+put zVyZw)?TDXhTUlzA^vHgoXu|v0^%q1z%s`oY@(8SPy1C5jt*3s;OrigScJzZAqbcuX zMjI|a%|RqkH8_r895T!`1-J4p9%cn!AWg)YNvA6{CCr*fPuz*6&8yBTzlTp z0`Ey!4G}Yx`%s?n<9QdMlU719c!UNRWAhv^9y3m~mJN~P$)>hJtB-hh;>ZPf(pm|I24k|?C8JkoDhR&2$zDTm{ z$Jc1glZ~vi1un((S(E1SeVp))UY<4XTlYUM*16-IH^-b+yem>%E7BHiB;^Zj1A$!$ zImU}J;uef!sPUzV`%oiBi?_JL{^XEqWVi1bUlZy&CZkkKMhgkt;=8VvU&`%&LhKyE zN)1+1kaz6JX<#d}GxbsZi}Xoqx>K_;s%6fat$ctQa2r|?{JuBLe)0j{zj9>J)6*a| zw+YMRH_a5MAI&BwWXY*W9)Eyf4RUlB&mO34C|8sqWUTS}EAen(?&+?X7xv1b1{T__ z`gqENgNJAJvqfo}>Ig*EWr`#zd*%U~;{JFSh#ERwmlzA%rwwiM$f|WIm8ZI0n-<`! ziE&>MC(S682XoS1sBSl*5}J;Od)pNOZ8%0^^5|Nt@kn*K7zcG-2_K&d2Z(A{3uG|@ zcKueHuy>SW@(`rxNiihCQ#u1Ge!MAdcU4()4YK@eOELP!u}+^WKkxDQ`eIvYwtdgX z+!HHL$z5+)!KAE6+ro=_>ze6U6s?ZB%1dkI$U1U!=vmeyNc=*&@Ltmeli$^6!ixiV z-55;IoKvnXB{j;t?a)5^6a!PMg%ZwnI3eq<7VEn8-*ihr(D;XkmKt%4-2g4Cru;7# zI*P%!n%|nXGo#_`Uh)D_$ACkwdzSTP=iUJ+t~|^}0KqimEip>DLi~wRoMuEwAWhZ+ z#iAT&#jpKWr4`5K1^{==cv<{FitdvJ)@w09BLCDYt-UAnqifUp-Ko64*33(vpDgTU zs9Pp?e$Xoo>Ln9C?_c`w-+BIO53VHUdbb|b*jN3K|IlzsA(G(Tek7cbwSVJWIzB#F zJ0bXj(gu9^9Qzd=#&9l~g`W|txUQ(>fkAChe+JRA1|-b$nRE^k-_A-m5yqFM2}aA6YM4pH_SKzv1YkoWdOj{(97b8oWXfn7p*x^gYjyR|mhMNqHhL>GK-D?ks(Gb;vejN6^{b|icud%Yy#A=y7Am)X}iu!X>=bA+nc6AgRiU)*`*tPvCiU^f9T ztI-3LaE+0Y`OIA<^ktlZBXt^83&N=oOgq<*2N!`q5{>}oUfGuu(%)6RH#7CdlT2R# zTRt5+DtM4}kyY?=p{v9hE5@;Uy`?S_YW?i3#{j-?(9^W_oZIHwv+v0vat>%AaVm0I z;o>NEt0Og546{X4<-IePE9}w=IVANq`ON=?4RDd^YmS^OjeqM(DrB zxY)0LHN5l~xruiT^&hPA2&T`3cwMjqL$JTV!OER!6vJbJ z>f?91bO8)M4W!MBTm0o+nX-g$;i3&!^3}4=nVz9hnPPZ*P_q_>NeOiZ<_GkyZ)+~N z9kID>)0gW`PeCfiwYm)z{|P6S6PuSC=(WdFaBS^78doS^r)=OX!`R;5$6FN*kZI zT0b|PP^H3%ADU|Rr%7Rg0+#4Q-&@DM$p-iTWqy879S`Swz4MaFbz+bve9@n{Xw5wYQ`AS9GPIMewIN*eNIy135+9U} z7TC$8=t#bB3s8Rks1V%A=0@BvX{(P{D*Kbjvbo{CxWTt>;1Udl9>u^HfgseUcKIp5 zDEP6+2_W3$uI@KR10!pj%Hpp#U({a)u;pJ}zBcr|9lvY>QgoPna}T8pChdyC0tXrP zvrjyjSG|7iSDwRtSD1u=D=k4OH|uYG4S*k?dEi6K@%D|5Z&yfX_2_>q1a))oE)Mr3 z#LTO8px+u!_Hw}w?GuvJC0f=!2T5oXglKEeMt`~|m%$CJTv&lke0L17&t8pHY9Hy0 z>^+Cq2e;bv^?gbl$A2l(Q|?pSQ4T1XJ^w|#VI{D`c%pvf!(3F`j(=ZdJtdm(1od7r z_V`IUG<(N_oj86Uj})4%-PkRu0Rz~UYjXkTq$QCR663dHJL)^fZ+}9qHRhCgMXMNg z9G&xaz)MN3oQ1cZZgn_o^`Fk9(OcLU5 zm&CEEzZ6+eHxzzU#hWf_U&=YzuM~g1z3H{R`NukAkK^8iTY4&jxjQxw+fByXbi5S2 znPt$>K0Xx0AM3oOHm9nLLw?)3*DCeBS<3y{xA=`LzY<7;msOee=#1vW%OCY39!08q z=UB54vua##&)pmD*T_`%I{NW1&RipIq?R>Q5Aa!Pv=BQ-r&Wl#&Hvm>1QI7me$`E) z4GF#34kI)#b$&fKBU7H>c|0t+{*>cDj$cTn;!P$)VsvDcyF2p( zPR>n{F}$GeymqdeTc74<^(}QMT7IdaH%p;t_wl2SBRe*FeHAqw(4*PoFs>a&>igPk ziur*zcC-JJ)pO?6`vd#_+9;W%UrNckp?PqX{H|=V&P?b*W^QR)H=YO^KLQ_IuBBXR zt&jsZN6B3FV5age17~o!^=7Q-MBGvN5}+SCU>6=D5_slvT_Vv+A2jxkmwGkJ)je>P zotkr(tB>A)m5s)AtP;?+R3vF3;p&`nz1d$8nSTayf*C3fDNX@@y|u=F-tv?G zQd@Ul*0|rgU$*2tp=#gB`Vnz4EI9i%s{kXD;4TkoT=tvtv z)>dKAwpt6}IP$ zlv1zN&ga*GqrvEBX7|izSg)jj%L`e+cOS;H4i(@z!u!XBpfmfUI~fNXqde;wOqqgI#20;EF|9N9syLg3pi!(?nq^CV ze1|a^-gAbwu?{){#BrDWtD(wEB(}(|NoPV`@zV_Vm3;t$dPIFT09|cM) z(U!S(oSmuC*YU%@UK$%Dt*P?J?J%>WY}Z+v!%m#U++eQ^nLZZ$TU-m8nqz$MdB29^ z{zZ?kehxBtIq-$hu}M51|)i^ZI9m-obf9b1(~yVrFa=~1H#BLkQI zi|)NaPY#*O(yqNQTW9(h`e-0@x-lX&rj+Rc+n6Y5VhMtg(yBBE+AU=HrvN_t=sJL9 z0q{6j`{BnE_jC(~-g$}{f_y#?(96?4SMsG-r_BPEfB;M(nWE%Lb9W+}Dy@V}cVuHZ zZwiX(ju7spn)nAcu;H1e$+g>Fk*vTFXPbqhm$+MtO%cJ!G{f?kUDgR=x|{@t;7 z>eM6W!vPB6hwt~R2JXJhFfAH7Yv1p};!eW*uMzwEZ`u1UmNiaqE!G*=MgoA|^9L)B zrxosn)FN&X>`W8{ZjNr1AXX%1Yi>OTM49McYMIO8z7)As?hG`ExoP~V2H0aRRF2mf zSl*h>S}_E4A%tL&@<0^;T?dfrlpe>4F_VwAj8w$HQ79|GrlQ6oVyzrOV-{KW2Q74= zxys=oE^|KaLet;K4;(=jGYTMp$JxIJjd=W^_O1cLqG$97B}$WPgm` z=>PjJhZth_I)C@w)ta-ljeqh$7uv?Wz3tFTh@A>Az-Tp^LPJZhANepj zF?4Q@1@!chS>re?K@B$VHlugUuK50F_W7vn0Cy8U@~B0UayXZe>OkVLLT)=D6b1m zzhiFJ#4M^C6jFBM41p$h)dCOo=x@0u0J5%|c_}{gjcJI==)Hw3?RfCTXP~jotR{4Y z(Npz`n4Usog{M7KYZNz3N@`Myx?o z^D9(l=sC&Y*?e@N7>-x&KIc)v@-z&4UMcuOb8$b6p9bB+LWbPJMd%tcw_KpTL}#12 zR4>(}>{js=lO)_Jx=H~Xarn4}VHRcTfZA5wb-Zq0sQm)6BP!L zpD&`BsGK5Q1AQz!Z!H-E@a$xvqE5`Q#hc5B}i z_x1>Q_>TrgKR95kO>*(yh&HydKR@u|W&?|T@R7Ndv38E*gQf0{)0d(gF6iM~`8uOm zV^k=@Nm+*vJ{mK=m5;G9#VuTrp2XXG5K>t~={JD#q>`XAW| zUK#z~&Y^4X9z9zePZ`J&MQmaPZCyI_#sdtTwQHS)GaCwQp{5?>dMS(yrLbcxDNR7SUQ20)r zzTl$EE^2L5Y%K!cG{@7)C%3~#|Au-pv5?Vfgn@C*@7HYMrRARhi;TasCtmu9|6>nOvfJGXu}tSxP&;zH#e-Y5qVyV|mhg+b1$ z&vKHa1Cdo5+pjMLuOrEx{Z~?VvxE2vy8^c{vEe}0n4v*YRXZcbnB7(+RUdgOrSZlh1%SMPJme6XI2NK4w@K#Vy>lw8VrbB z@9RC;>eJZV4oz9CKo$n^)j-oep5ueR0Cmc;SaV?{Fw8NXyj(nfSXl-z2+CO7Uw7&c z^=qUzt~Bp%#{Qkyhagmzq-sb6DE_`m983t~_{<@Yon=}VG?WI9$R;x5~FOjNP= z39V#BgO0tH(OZX1jK_7g2E^HtJ7lw*O93N0iXx~?-JbgXx=N$@uU_%{0zE1?_zO$8 z%_y<}{>hH@m)+VmDPqNEcL{&i;0{tQZ_L$-ME2uqmAivF-p!Y*2r7LYMQ8PC30bQe z&Y3;@HyrTDE%WZWd(M%_ua;()a+><~ZJOG%ph$9MKYG3% zdlFQ{B97O%@>E5??RpPH<>O4!PfKXrj9j7P!N`-IZ?QI>S?|sAoLA=Q6Ew~wy+BuI z!xHsxYt6xmRyFFQPDE->E&dvC>Kd*i*iqm^34*>ZOY^a#i@#$IMNLn>{mq~8{5c1$ zYtVh(#G7pr{nORi}UcWm!n^`477wpe* zz+aDnafG#cGF6ho#Ok~mKTiYWYbu)0o-8zE`p|4@Wc-R9gw0|ZKcNKTy9T`Awg3zj zQCQ@X%0(-6gLWb)3!vl26Ge1X6l&9O@}^F}py&p+^fkaFgzdiy;n#c@9x~H+=abiP zpU@*cA7>2ku5ST9)CxEAUj#Dn`w?J};%Wf9CMGcrcDu;)#~uUr`0~HHYM$YL?OW7p z6a06qDSGO>VD2yWM<-`$s0Zl@^*`Z|E^T>C9npzFc1lSuS?T=bVjfD>uQ0TOIl0__ z9uqAO!~CmjX=$pv!D&GMfavu1IJT?dYlCqBG-j3CvgP-1Yx7NY{(mz)wHs9q z1Xi!+fED%td%=P5o5@iE4L_GPWG|v!hnMe+~bV1ui0aKO9h~gL}(iljmJsiaT4|aZ9Ic^%jdxE>nTRe00HpT zShm5$P7h3eH+Zb(t#XZl+06&>!G*QZVpzC5o6cCoN^R*ZTXaJT-EMCg2I_ak zbB;IFSpEgu;Ix zoqIbdua3fFmC90Z*of~j5*xgEQj0T3(D?9f%PA*owrqa!2jW@MosIQ zWm)=@>a=IS1UVHOylVxmFAl{OO*P+sI`mDF*pmJ)0@8mD>wD*dcT7cUG*bGtJ&y4X z91%zNPV(bZ7%S-V7;&pP2fYCr{)P~*gJoo=AHC+;%0FFH;k|=lG9#~87TWi^3viPq zfrr&QHu?yfZ47$Crf8;EKGBfsZU?9O90J!KX<^mW(49rRSUo$Av@w0O!G%L|gbvx~ zx7S(KjAt7_?JyGhw&N)-Y`WdDBn`Kc~g+61~i=OU;_U@fFWgPRe zd0`Ti99y?-hc2PbQVuS)V63NDjLSHEb8p29Xg|lL?D?kqB)n0jyfdX6+YHL%>|?l? zzEV`uVVHd7AS+{`G(KorhjpFzMAVXgf^KjVON2ZRpH?1$^J0cNv!y9wZA37 zzGgS$#?j>NPIL0<;qU*;H}iu_F8gIWJO5Vb4GcpE@&Rkercu<7?SZ9$OeCRJyBzxg zV&2a=1R{{kx$|t6pPpnBldYAqST9fv_vRc&(uT&J-LcRBfFDr+aTfM0Wa9!iz++Q- z#7>){3c#OhpSV+i5|4YyBT;C&0eAV8Ee(JQiG05WU%T)s1Wx;)MGKSR78`V$%4vcI z0NX8AnL##rlKNeDG3+&N7r-6SxU!fNaPqT{FkD+61vc8rZ|?uCC* zW7@Gj0jo;N8pu;6Pp??Nf0fd*`O{vmeEu%Dhljk7ohY#mhy`&U=&9wntH7XuJg=#w z5BG{uzk>N5TT8O&p(RR&uTt0Tap-i`iK!9BC~mGN*0rVg%F z&EqzABhi1XvMK6+36wsl{)^Cbn#>#@0KFpnn`&a@I~dObv6FaF6I0TCv&*KNM_hl& zVSMLOcu2KaM9gaPy(wj1yl-$D{6wg^|CXuzgx~a}Ft3@7(7>sn=4gX=Cl=pyWlvaX z3hodewR__vc(xZb+?TlPaHpKPikYZnB&jL4r1%M*Wbc>KH1@dV!03-g7Ud4 zDW=7eGtK2SD<3Iitv~HY;*G@{A}nj(50UF6?YTos9Lw91+yii)^;^wtNWxs7=`z{UCNdnHiH(a3Uzz=O{17j( zb6cg(0AlSz7@hmzB5r406M^OLBPDozTe-2C1xBiQE#mD^R`GOt`(}674F|*WlDJQu zN53iR9mfegF~gG#8j)D|Ika}{upznth5A;T?3h*2yI&L6^zGLWOLF;J?47MTy)Lf% z&r@qY=Xt@+hmh9Q9pJ_P*t#1W;Cy;q!tIY)@FrcR6&giCSomd!Bd0hH&(+tlcM8CK z_nxf#bjj{a8pnOFKGCi?b&B!!_C{(&(9ZCbFk1G8*9*UCWNyMg^wdq)>X{DpRByq< zmb>qn2t7(NHYI|PSW|F_rz5@ zXr^Y7VyL?_{b4SA&Ypp(gk_?;3)5=)K@CAoHleLUQZJ3=6q?YIO6Z>tsY|&eaa>>7 zf?%pf4BDWsP_q$>+{(F^@M^}KabUqjInWbXZ9q(Vt)j|wF)rl1b8f)E-?}%IucHb< zn-!qOgNrQrxNOX*Si)4PeOz;Fcn&vf_TPe&m6n#d{^Sc%{-Ndxly>aLA-Ane%Wi*g zT$y#y5k`SNSN7j<4I0^6x1+sl=Rc?BOZtrebW_m6x2?_zi|v_$m?#wV?Wv9w{IWBP z=$8&9EYbyP)#h?)1n4%|Ty0hBYQ0zfGuMx^mv9~tO0Mm^27sk1ekn+0f5qGZ^tixv zBTAs>#?JEgild9;?0|3pq5lce{1?_JtHPMSw5hRT;fYKjzZND6Eae0gU1)$&)7SRN zHu?`N_2+OPi{q;hTcQboY}|1FaebSQ+!VT!ku-r^1*oG+|6Qjoi-Kxj^0U7*w^)V8 zHf0jtpIjOZUe}3T1!1Q$pBCARJYbew)qg?4qJu?`e{!?AEoO5y67@J#z3P`-LOFzg z#5yhmXfeOY4S8ntnGhWjBzN;d<%5fKHBN~rW=TiTwlJe-=ITb;6$vgr<$D$BBac=_ z6W%14v@ijAVzb)IH-X%=qXBU6XT<`ZNNak!XKCU_1CmBfWlSVs{;La(KVJ+q2(l zu*aqK$)?7|_Ve)X{r3+@+`}9E^cdxB=hwwLJINZHbZ(wKa>{cqR9GQv$0m7H4$|{Z zX3nSbs{FMKlJikR1vYizdj*|zV)zVKgTl>+D2V)5k{K9X_`C{s0x>AZVvFVOV z>q|k|8Sx^GSSdci)2+ISvq5KZW*LKZQE?D_Bwcp>i}=YTF->x;XL5u~wo^Pk_wN+) zJqWH|t`TZuA%H_1kK2Ql+UNQPyi^e#{hrUh4$I%TtA8jRNYD{Y>o2O(vX(sfE|CTH zCC28Y(KxS&sN)3SlT{y|`u3XPc;T)*-tiEbT+Y?|pS~b328~z|`}8CQWMmz0M0%}_ z-#tvVJPSVWm*8tRTtE{&xo*IhJ4y9Kr{$W?nn7-z4rPY^`^v@3dA8s7;xb8Fl{_~t z`yYwaMPBMF`PR-(ris!4ZK?=p>$NxEgPH4`eiPHzY``tLIH-}~p|%xDVvPD-A=;Na zb^Biz2jsNWmY-{1<2NwAV5_~FFQ>fTaPqF6O2hG}97qe1z7p(c5Bj_A3+(^=;rOD- zIbAgC5P2X;r&dnlEgppNBMt$LTNK-Ubc(lfLnhKYu+(a&{rkY$om|6NycDtVY>jfI zqClTlIg2gFSiWWh{LZ7?$6_Rx)ImG1k&w6g{U3QMd)uP5Yv&3!RyS2|%1t9(JWQ!` zR1{*?OU7zidaW`!FM3+eOo&ZcnF8t+OQXp^>)RY{PE9I4lU;+oM}}&eP^-&azM<8T z({UE>IaCDfXLzvkPS7!qy~?Hf8>~;aAotnrZX{Qe=cH?p%1Q1TUA>V)6RiB=;FCsF z#@SqSm*(k{JH~YhG1rgtwyE3&fV8>Z=FKfk+odt6cqx0CE%Wgt@dr<8VI9-bd4y}X zsZr@`o5(i)DFk;toh08UwRzCTkV?+rbIHtf(2$)g!};bv9zSwdxx2gsaH(9O9JDL| zsOMQ&*@a4FlZUnGL<%Q0w#97RjF_C(dmu~u9A6L~GSrvv0jSf+q>BRx{3->P$p@`D z9-5ep&43hs>J(sJI@lQSt8S|mJ9GkUHjJ-UmnVG{+l-it9uTQ{C892Na*FT!^wx6I zCJqh@W3-lIP$r@3sKaE|*4wrFEa0BS9%uUq2s#-=iDu;SlBj8{(0W!q{oJ7{)UN#J zvN%#rm+^E=2bcJVNdy-Y)|g+>f~!8>G*puOkPr7rvUu`RAo)ueChQ^5;s#~xT7k9R z{0fN6;7IEO=JDXbfjSE9X)4hg@BTjn`Ly`;;yZ-WnT9g}Uu08N>@0PiPq~sUO(eU|dw>Ez1MuNjb z?BpeL+AVcy12|6RnBznCoVUQ%$Uw^YKF3`D#iae&VFK3PvmnA2o_18JMv0dh@eE3m zk%!l1zUV1^w0T%XWjUta3cZb#aord%@UrgD)meHlE(6SF+k*mn%5Cccf6M-s824Yz zm?J9)J@@<-{DYjby!9IT6*=Q%TWnRQb(gmo7^vd)KOt3CZRCOkZKYA53o5qI!4k)C zeq*H3r!P}UoMSx)G}PQWUr4&`8FHh~5mq1R6eMvq-{NkFRY8ar-{;9?SNnaXGUQK7 zYAs(h(-IFnEU1mqYXk3~9cocgJWWuq12BDd-!w!fHMY(DTaZ#OJnLJ~C%tV%TTMzV zT)*D1me=jcZ$m&pFZgXjE?nwFBlOgJ@492egXiROQ-jQaXUBqoEXX@fcazw@U_tqQ3{pR#(}@ZxRW;;xE&n7S(4 z9J%GZ2UCkJhvGJ{D5C7(OMNX}E^&ENN&l+L&#<17-)7RC93E95Fi+6O-*6T+zLMh9 z3`qJ3&qH+teVNYH-Zwb0tAsAaV7-d%GRqNgsTrf9d#nT92NxU%APK5NFx(BQun~Eb zxpT9z!=xCHp@*A1?}!GA%mKTO7u~aZbTP=0Cb^^ZJCnr6Pw4i(IcHxdRL|*eHu{te zToa6XIxwQ``lCL9`1r)-l;wjC`+Wxn=Al~96p4>=9>0uTPOcT?o|9wml)pDp>9G9< zDRN8@mP}3K2rQmL-|YFYTbl7v+J;$|>4+q|&HMV^d-*EM=&!E=C&OC9{mEg9`U=be zV;{6W-vPkb8lUJuG&m7ZmRqytOAHIRsPaN3P{+HVb8bx|**xyN#6aMaEO{ox3zbCA zc6uQipaa{dMidm7$Fo(gJOzsTAp0m@={w;-GLhIQZIrP|Q>&=o50EP#IQOwtzTnp` z960c}RBawl*bMjgZ9l0R5epLr3!UGNXmYu2(VI?tPt9)Di2SuJgePs>*Qakr+R_(N zOxYN{a_#k>Oc7ppD4p+DE_3}|t2=8c#Y|+|+G<+i!C2}W>F5AH&^Z>)?gqAB7kD7{ zO1LkrOf->asJ&Yq-@L?dCMTEBPizSCysrSbJ26{3&W^!zfjLRbP)^*mO9W6sr7Bed z4En}7)!n!3S_c>mk4bY%mOqVI!9R;rKYRGb6a8Iry;z-*qvkYoEdP>1*_ z&ZJN(Tyh$JuMBju<@Pbfah@1xXapt@C{?!RNdF+f3a=~IFe&za#|FjRt-Y_a@DyXh zdtE?-$~VmKvfDID3>eCv-Z$IvJ6Nf+dU&mV{ia(d(`Pj%8Yg;jnjL3Ac*^uN0AnOr z*S#%(EeX=r0ot`k!6sEaZrG*df|X66DaZ(P1i?BBYw<3!BAsasbrwK+S4x#CK#hF{ z)?4(JYkL*a7L-NLO63$=Qs8R{^r6EhsGrXn3jLY?4ZH(e0Kobu+2@-UmKE>b-hMCJ zW3NBqhdo}n!g#Wu8C!O-a*SbZY1JKwhk_7h%J!IBS(%O670o6vF1_9qj$w z7=Tx`@4sHL;sE?8U-QbrJw-S#QEQ1l4`AI}<<& z1YTbizDu(j#>k3jplgVm_|xZX70|?ZfeS@})@a}*Bx|eCqe%B6egdj>QW1bCWJ)^N z@x#t1cTT8HWHlf5_Zs-VCfc6Fli;k4BQ0s?GOHKX;1|WWpzmHAbev=ySH6GCC!?EY zl8mL!G#E_%qP+%NF>Oi}P*dLbGTn;aPHI*{P)IKGIE{7dgi2U?hhVt%(EHktPbE%g zfKhogpYsqjseJUSrob-oThl#tQrAFbp~Q#45t^3Km#O12-OAHL4GHQg?_m3pS#s5a zBXG(E+U9jnh!WECv0;t5(Dbmzgds5V8LwwP3vdGrt_nTsmXWT5=Ia6CCPf~Htim$8 zcLu7U?XH1e&>Q%xe{Jf|#Wrf;dKVL6EV+%_vR3&Fdj)(aafCW9&FM4X_w;N1@8m$xzAxSBB7&g2d(7^9C9A%W zHqm&K+Lk3*`N4!C@=Z7CuNcn?riri%l}lspaH-I1&{?QkpRZW?BS6ye|zcE zZ8%;Yz$gLmfKksE+hDv0pDe8eH#Cp~U;u7aISEY{V7<;zmAb=*YBZ##fk0x@r}8S4 z>xOvZQR!We+24}H=RZ;Uf1U4=sCu~!BoCwI;5TF~*7!D{ob zVdASPX_zT>XU+B?KeSM0M<9Q*`CD8w@VWuI*0+-h*OL&w@j@+1xfe6;_`SG4L@jk! zY{FYDumHpbN{RKv>`v4$n6}(!reS>uu&NJ+#$hP zNUAj(3lC|c!JJ#b-JV56?dEQo1`VB%h#tkt+%+8~G#>}XU@hEBZl7H-G7acD+4XZX znnD=coS=azF1^j$?Y4ea#t;RNP=56)T3m6M3v@rpOWy z(2M^_gH=!zQ(N85QHO-H&@v!dY`nNE_;51-5f>n^0{(e~<5i`dsIoQH!f@jNs?hcY z+A>D`CE&j))#L|A54xLt2Xc>^FbgcN++(2WSzmOoeeE;}*f&tE^5tmg`Y#OR&jcfR zTE@9N4~MFAMuOUeh8=2q8X|)H&+jpFc(A;%*;%>q-wjn+;+r=DaRV0xHK^%chM6&} z-r*Vp)?hk+{Fk8&U3n{g~pY`NCM;)(}^DR5oTJBNr8TV3R z^*aYpz4&zc0M?V03OcR;6f39Y%b$TPlG?p;oKB~182yhbWo4Ie2vFZkz*i+{%Vy&4 z&P>i&_Z`u|Q9bKyCqR`8y?>xc#tbY$fln#X@Mm#6KZQ@2eVCiP!9Hs^Z#%EWp_nlR zmw*}KvL|Rx!0J2b|*^y=hTM-#9fqr=A+F2+~ceg z<(aubtDanAyR28FLKzin$^^sPvrn=5}}DG&FNz0TQ18R&{!Hjf8*pLzK;#`C-Qo? zxKixTSHY%SX{TK%9QgAIy#j$T8S|cZYk#yf|1KeAD%>pAZ@P-^f>~1Ocxt@pqi$8k zRF^Qg*!d~eGv!T(zj0Xkg2`Et287GJmc^GYR4Q)U&OU`3D|10B_VK$N7-i z;(yV^=`~9>SxXGQ^62?+m69t(Ku%-I|^^) z=>N2));ZT8J5u=wy-kW!$xHK!R+GylDV;@j^W|sANL+7!`;?B!Sgf)xA#5zfv0Zrv z?qbVvS8gVw5tUd|`SCR|Ni;=(?!h2-94DdUEMMC+T0bLdx^KHTPGeNP zLw>tP2w?eFQ=bx=+#og85M=ypW09v{(deN6(fUMus5pFlAW%Bf{Qb4;0=1BK+(j1a= zqEzhjIe7Zw-ox*~l7%LK>cx(hoVI@qMG;|g=Ml52&6X*Rde9Y|SVM}72}Eu>wyHp> zLI&W4?#ycg64Bf^(+7a&3A~FbpA!&=cKiVX>T7M&aXOXZWnD}O91*LFkpW*>omzsc zEbx_@C5Mc-^uCFu*U6I3aJRn?k$2~_UPulxecC8=@Uwk=c!>qQ_JyMQ_9WI{8GMxx zuU30?;CzNSr(`d{3vI2C{HQPg&I?O1rV3y=TtS2*#e=OtK1odRM z8FcimN2wZ)M!OJT0MZ8v8N(@M;Jp6g%cji2y265WeC$#HL1l%XH50qb?_ zkDLIuBt=kjzs4eP!285i3u6O=cRRdn8&>!42!x^NsQzK0r|PxBV36TBjaO_!#Vg=7tH76p+Y?R%D|dSc-CniIVxef z+QP1`WCq(l!EyDg0I(An?D#tc_x#W!G4iL&%~P}Wd#yhU#qSa>mCv)rr48&k6iek1 zLI8Zm*Va4ITP!Y86CRs#wc3g`A1MNg|1H~!)c5#alu3O!a;=h!C}$jS;06d^1e!4` z-k{C$yroo1)je_4<`Kw-2Jj9_Mulu{WFYHZ@iO^CHp2P>Y)G7G6WjX6+B={_Y9W0+ zb+N4B7u%}@-VPREcas{AoYh(`m+hu9oN~Y@pnLKPnS8(F?Yzanx<>x?tJ+*myc6xe z*>|vW_xR-Z!t^N>`PQ9??o`e|z9|xoA)>HiV)JR#wr!C^j{9bl@5?_znw%VaD-L5g z1e|NaG|yB({M>4Wm>`ISgC6<UV*JpC7N{15zyiE*ltV zGL%#lq#3zW`*uwY#><-i?~I<$kV&n`hM*tE(AYB($`^oGIPLVtfYOxs`}1^5wX zKdLp&&#cP}hU8cT?F&l}SZ!&6^&2@^H@TdJxj zVXru*R}iPyQPke5-t7221E44g(@;W#PM+SEO6xlvxh=JC!i*;|hyFVtDo**hSp{7rOIu*dlr2dghF+kW2c3t-)g+M=gs3x`Thrwl1lg|SvoxM$J;(j zGN`M1v_}&;4%P+&ew7`~YyCYS48DrO4k*B*U)02cH_QN=tPi>vawUp3^koM6UL4mj z+x;Y-lxRC`?Cqnx2-qL zpY$y3lT6$I;f4qTTesVn)sUk960{et?3*S8Y!S)beGB4;%P&BActx_%g+LDQJv)yAe^$}@)^it zS3B)Ax-|v4>(sI+@JdQ+-`mdBaD%F$y1dJf?bN7uo0@_ceUm#c7EGqW4Re- zFKT5R$BvT!7bjwuO~-H>ejrlHeVc>w>8cMR34ypkB2X?yUIV~(9xpLck8jAB0<2rh z5w{uG%apBR0AK=K7;an&4>h*_{DF{ou7JYwbQe3jW;AH26ut_5ZgcM5aA0 zUCS6K9;bf&{1o3|4L>F3JbPa-XmR=VzKYDijU*J};XLYFKlt%u`^d^GR0O}oEDHZq zp9pokTcOkMM?yuOedGYn zbrmZSe|vAyugdx=s4-JgOeb+gzZ{b9-eN_Ju?)&>i}96-^a_5##J?S{6|1b5NOYXNktJ`5{?|g`!mAL%} z%lYKzV_?x?pxjM7bF=^|Suy_OL~3apRvJeUp?_J*PJbD+TnVqWg>M1bojDE5*(6)G zr_8__nGb5Z0JDgNA{B(=07xl+wqU&i6e+DufL&6xyQCef=eXeyKpzQOB@lD5K{zSD zLc^n*eRm_^1RC?`eM#4WHR~be!%nw!>JGX(?yM&aGX>i{9=<)AM~FY(+FQiM^uq>12{jl!ZnfK$C~sY0m&?n~5ezT8 zK{P~=ymBit?OG+2t^U2}z{N03)RG%O{t`2zA%X7h0zvs_qm33u9d{cv<`V%VppjF+ ztcPf30En{%&i+Roukp%@6k!q1kXn}#8#Fl^UW2Bro(~UbHXqM$v~@J z17L*;Jrh6u=|8>LQYAc1i?JIa`79F)CkV^ET;ao2-;cmV(1wl#xtPe^(!^9zxEcWg zvpUPbi$xOv_8w@`1uB`*NJ#=@g5X@BlNV@eJf|Ww{aeX|$W{r9APPi=w2TXh{6?;V zHUEI(=nQd-das{o$jqT>x^~(e1sM|<(u>Sv1_0@4vcF)@jEC`aKbgO_O-JJ?5 z3MwhNh;(x-1r03w>D7ff8S7baQ8I01yoK} zmaooimr}vCwEtfIPpeznmT5wG6vOf@C5X^CgeQ;p?=DCx5n5xDo=kiA$dr`FV>Z1N z4sluN>D$~HGLj-A!nzLaFjX$mZI*-j9s|@zUK@1JTgbz)q=_d4&_@-EEK+Ia+dfEJ zH~`CPJ%acanq46kavjJS7PXZnM9&jqn4DU@IXW}cqR!QhE{Ur49>`s3I^wuIA&^na z>bXD4{89Yt)_Gdh8S1PZtP?02^k0Yzew7O0v%%`3XSeLoD#>Z{5n~ZQo6GAY>3(%U%9Y{POOJMo0TFBvohG~DzNH+bh!sDG;v~7fPfuu zjSd#C#)~_u0QAe{kS!x~SvWd(cnb5us<9sks{)=+3U9{u5g( zE4a&DYnU;tKF%}vZYH9V~MYb$a=fTt~1VrV8a2?4$S0;=@xGD2xb5=&>Y zQviTtH9wfYJg8hk2tt^~gAS9gR|DXNT=#5nHK(iCH35sNy)VF|{R0!MB*w5i;(_`B zPv+Ql@prrU)O21AKiie7gZ?`wxF!wlS55~umlV&0%>|dwDtINS1|}Bu|8BBRuR&?b zR4$iJZ3;#6ycIXZ%WNo{;ZRMa|Ip#qHuQ{{OLg&F1g=Fq!oMn+) zYpSL|<>jQ;uG+Moso@QLM&Y}c*!#trSH}5th_#c>P0P!gMM&e|X4g`>;O-zrka{TR zQr!D#6?=5}-~OBsX_+Pj;y5e;Ksukp%h zqBe6@yWc8LdH8Xw&DE2Dr${lkNAYOu#)DeSTZ4-F7=? zuz~x}UlnT~4?|n;`Z*Sm4fOk0lln-x?xiaC{YW4MYF8_7fMH&L&Fl9kmYY6u80nPZ z7}gTwQLa^5MCo-WaxuKwTH@IMB;^t|Uaw+b;x; z&vqixX8`bGf0>?n~jP7}Xzyu9Q-I5F*2 z3UZ+Am=-jNFW_Fy?GFFSE5421^lue?=5ugpT}~xsCSQOIyPUR(PWBBF%rL9geXDmw z7_62mK^HX}x{5Wx;+B!$2I^-Wb)P`UJSuJa`+K3)+472cF+T^ddS8PD{$y+PxH5}At`v(hchd0JxUoX+n$;HKv29MI3 z*K?UQqLMad7?hM3_hdxu83&8|8y?YWTLFR_s9gKWvIRH1kpkM);e1T=%fY*|Ii&0u z2j6Rbr-5MWk1Wgq9^4$~6_*S~TQcxMMvar8(OH5lveZKL@vk2DCu-n|7jwbG7y#G> zd9>Od=vr{{=hIeqVa-0M2oEVv$fW0vI7I}vtJnw(=nA(NF2!9+F2%}$ma{G~=2_dn8aRPl+(aEU+x?IgFYr7-V`Q*suj7$A`^;lAx> z!eu{VUH__v6*X%G9rwU(Z%k{VOUwkzE@cNO6wNZHFf_h`y?C{` zq%=RDWp07funy2cjobL!Lf^;r*o=ELTo2nE`Bww0+VKB{{uYyx_D!s-i^~HN}pq<+3wcs|A0xeIe`9nLaNove>+VJiY z?{I~bvepzsAJ!2n(EmF5kntp{RoLDPJr?RPeGY_=5j#AsxXNQDj_D-s&G4ltg zW=vRxk?oQs?&Me-O!mT(TcNaY#)9%)?G8p;-7E|Z5n!jo)<#S_wr)`!^a5Q+Du_gY!*aFautc~R+OgEC@lfUy6TzuO!gFjGbJagYt^u6olUol0;Z4B@iF=`D7N zzQC79PVC0`C7fmxBLozcsScYadt7!eEACPKgJsS-MJszWS)s^6T_OH(G2%GYw}P9!fcONf9&kYGQ<&~b2Ak^0$z*2&cRk3Tnd#r_^C zRDIiE*O%tnQq!M0thsuLS8OCOq^nl=wJP@N6t#>O+na#IKi5@C6bJjJ#r3a`E2?#Z zqWp-t@36BuM4|W@8~61Kq-`^}3k>Bl-39I6W+DAaL7!Z-*}mv~0T@D{Ih(qmc~2YL z*8vD>ZXkTYnHm0VgwA<}D=fJC#bJ#Qh*+34X9d9feuVzCKP?~EzI`u%wyg9ubOacT zM>Epl51Kr4hCT_=RWGe7xHVncX}J4{?Tl}k2zS zY?OPBJ*bf+9yiB?3lEqT+pk1LXPTk81b$?C_)8~G9R2oxz`hoCyeAR*6Gm4z{&=k4 zOSb++_h1oqk^}+t;5I?dI^Fb*bCn{XxSeZ6qS>2Fc$`da`&sTBT>4C6TQ5k>*!u)v z6D^{0AW7o~ghTT&L8ok0-TlYeLGh}v!8ptBZ za8D`|F_|VL4XD%!P`l5b-4TAsD14uCaBFY*`c2LsY_=^ju%%H!&@E;1P%XOfc^5$X zL=O0o0*_AwK`WRM9hGZ<9J0a$rR~uH75pPP;bef~GsEx}C|6jVbbiD{W)5WbJb!(9 zm)aaXHFc11%-CsoX@UQwtIqAx?2n7O&o56zy$%2NGWpA*&)PH?zU&&Qm1ZDjjv4=4pX ztupfZf>xZ{Mf~bs{1NW7Orux5(s3P!vy!bqg+w@$f$avgl-lQ&P~y*&qy#@?O%9F@ zXwx`dQV|H}%c~gxHQjd4H$YRrJ%v}mRSbC<0Dmw#(&fwv?(~kH@GUhEH!6X+(Ms$Q zKE`_ywusR#E%BZC7MH}T&l8N7D*@ZIJPpYcu3SNuQRM2o;p9eOC9PszuG3dXQ9cWz zQ`kWoI)Ch0aA(~%`89~E=0$jt-aHNqsUFYB5vh$0#N`r&GFcH16lK+NmQfl#>&xS? zV*7;Bd)x;cVNj#3OIB_zGYMCDqT3{c4O%qLRd>^de!d5Y5{W9nkg~2{OH4QeVdEfO zAQ47(YkUD7GHXISANY_?;~6s&((K_jeOIXY$X~y>zhU~t&?d2Z&ac_c`*P|b@uvq> z6MU6!d)eQvbx|^HK9b_Tq(EF1D%nF~g(EE6kJLmM#)&ZD;+$@;yMD{B2;|;z|M=V? z_Ka8O^<>#E=?rD*Yv>UM`sB$UAPNceWzK8o&>v}*fjy<6nC_l)lkXal?0@*0NzM zH&0(VC&8HAJZ7Zt$!Yjj9Or1u&cFJ#uVZQ2#HW$$bf>Q!8dI3GZgEQWM27wX5` zXSNyA1+$|M61i<3WMLAkk___3+#yG6y)j360Sd}UAju{y2+nK_YElFQ0#Dx1%*5Wj0-_>xlJIEI-A(Kf~SLZ9`Z{1cJ#T=871*>|Ba86FNh_b;kaq~ zxkEy6mc3GS9~OkE9ov@~G~p0AU=>#dW4lUYi=J{csmW@mX<#{5ucyc%o4y4#fa7{n4G<|S%GxjxzRsL; zDr>!YDx3Ld1HTugo_SovssD~D1ZIKuI5=tiMRhMfG?1EKp6c*5BjsgMOQ~sNVnyfH-_{mdx!>(q z|3Y@;{fN^`Y(EPU9L`)eTQz@Vx1H(Jp&SJubqNSfS20F9;;yP<5uF2^)+4{WVhtmh zprdGqd=gtNvC=&MyX$~@@LVhPwdV_xkiY&B{J!W2Z%}RFaqw}T?irdbfx>1AA{~); zIQ-|Tu2(R1MSq3}LI}X@nDJ%<242~(s{?9{D9A}U-Jgg+{aQ1Kbmq7>kvP5_{^9Bv zEfCP|2v~U`ePBmKGz2CASiUv#4Ya>%;$(uAt^Crm;6I`T2UcEUevlD(bh`$Cd*)P| z(ICpT-%Qc9Ve!pJz^-R#L*hSSXUMO)^R{2Rw>)aa-TUt{FNsVXT3%>;S6ZwCU2Oghpn7FHf5-?OJ=!r3fYUX} z_8*a5!*sS{D5-Y2L58W6hnaJ89&wx3htIiZh+&rMpD+C^pl71&Ae`Jv^EAq|yv1ZN z3$6z-{A+6n3K}Mcwyt>Ojc=Bo54jy8-J-5@`iG0!>cp3N2mh!c0z1en*S}VR;Lx1T z+CnQrWf$)wxm`7UMsiIj7tk~5a5#(DY|%iDc^JXzBhCaPDJSZKtMP?J_vN_(o$(On zyTYK$1SJ5Oua|<$)mWDRC?C-}41?cSxdk)9oOJxF;*8}}`Vj*6PZy@*I!<|&*DtpU zJSD-oHG-9xtDB2B>4zg;?sFc`A0(IB72J$rbRwcfMoTHrcbCxGn!`rXQK zB%2I$Q5NH90%n-s7FshZnI8X+O-KH{;#F?a-yuM2F|sqVEwsReufI ze7}nTY-ks?k9{XIKT9{><>ACrVU{im?Gc#ob3;8n2Sgf*f(?HPNsj=&EaLGGFQ7L@ zw#)@+nsz4ugKY{?l-n>Bob_RF-*_3mN$@X;ey0bJq#}ZAjuG6Ic75U9)MQNxBFMwP z@8@NH;wzCf;&x<)&}?*=v7&%17Jk=|K>ciTTnXj4#YJXFZp76i(qK_@6=i;{j4szK zpQ4wj+uxxtORbRTIi0WqWqB{~ElHqJVGY9oAuFf0-2{SC9@rrG*P#H~*DC-Oiwdym zy8~qxX_jRM5>!0t)7cQN)hoxf+K0Llcb+-~@$mVGUx+mD{=+bKyHN+LsG5k-dlTfL z1Y2K9MZZQPDgW+qFKKP_Fi(?(o_(F7DH=6#sqt4B@OPS?Ls5Hj?fn}uQ5CYGFT0%Y zwN!McbL?SY70Y1O{+7No8$~C|sN;M`SemhXq8=%!=IcQX?T?=s7R05kq%L@R27G&4 z`Cl4E!&2E2UYPHRW>|roRB1bVo(l;8EG!;@jKnhUY2&L=;6&14A`7EGrk_oNz@KU| zEJQMg(Cgsv#}Go`oc`JQ^55>s8gy+=cDNN>D+-!lJl0AzKD>RClJ(;0*TA$=y20&3 z#ew*jeLFL2Hy{}?efb`+qgB;iErG5+`F8g*wVKI-eAKuk?!Nj#X`XK)&N~9^psP@A z=*@fAap=D>7P#&u>k3TfY{?41vI~rj1z?2)D(S_cKW%0}`BTgSK$gNcXwSQ6njcrN zi~%LQ?tK%IM>NONQuEm)p!V3q|0!;lacYxmvU>eztww8(bU{=&9eD%FbGP8@KJ08i4Y+Mt_!)W~vrY+j7Yw?^-dF z59EssK!I&<5}*J`N(DKfUHB;B3LD@7MLl+7HqsqsmUpL)t4(}}Ryo1Tp?>A;N4QKF zHLOHcrx&^krwE`RNvcr8zehl|tx!%yq0H0Jv9Ll(OHD#y{3Ztcx5`Vmqg#k9Hk)S= zN$>Tm9H5U9{AwTIs8=xerJ{Fm{5fPpEA|IE4PZ%G$f)LmJS7V%>h-Ib?;B#s^J|rf zFvV1{It0k+IGF%TB=4C;$M168<|PAM;eB^p3}QXNIY2Kv0aJb&bq%xs=gLMr>rLb6 zYc+*D<0tPMToMbD7Vcb*U7F6S+VGYCmxNlE+2Xluvrx%~=KILqkgm}_q$ z$bnMxBn*i32Y@CopdZROiLJ)*JVE1dm|>x*0wMRo^E{ewHu?BxUtdAJ7=7 zVR15p40R_S#&t|ikdf{#qyDi$9tiJSJg@WTYAV3;*6jS9y;XPi<@vv!58UP;T3TS0KGZjl-IS=B+y=eeNH5=9l{G z+7d?vv#zakEQe!Q82xDNPCYHme3(78pB?KUMMjK8@tmx@Uj~MNTUwHoXOr5=bMt~& z`+1e~7AR{Wvm`4M?8^~U&c>llL3cMj2IfRi1&AkkP7Ed{Euhj$4QqijCPy|o*xF)B z({353OWLxQ8`0<^X@?%B6Q}*>nxn=<82VJwS&4ldT*rR&P@KS(>j-gBR3S_kvrqCX z!bbemZ_Gw`CRI&JdAtJxmn__Vr;s#cUNUa_WY^NLZ42S7?LJsmej|tA7hU!squr2~ z`8Dd#kmFS~%JNTH$mv7UR`Va--eYJwXr2;a?dtskqA1$XnS0kU1y84jDt00dt#C2o z;45y1_$mj{V844R(% zSB59xSW9N|E2-CEUJ8u9;!#8{&d8oOJ?#1pmv(i1X#TQ zn81MP^D)tT@prHTO%^)d1GQ#>U4Z+wEKmS_%RW}po@!=5OIxrUBq@0JTh4J$V%@^VM``6;k{OyYKnzG7fL4U)24JFh+ zrQ;Td2|@K0F;Kp&NZy)`ifs-3#di{Q>WPtHUtgm&qr_I~TMrF*PtS#Y#V?x_XZTZ9+*CX^<-q3$?BMF2XJfL4Fa#l>(rGob=??2ngNY;iRc zf=s~nv9Ed?6BJTxZT%!1J(f&-@&|+7{;%zTK!ne$(Y7F=2^<>Ql-xTQZYZPJ?%Q*qeYDGP@d#+GTsyub*e2=p#Hh(YBagX_Od;atVT0#sy) zqI!%to_x6ue62mo1!~*cv|WqGxSFB#AAflkW}@=sglua4O&I^pc6YAFK%NWxcr}X6 zOmI}cjdk&2&^IogV*$6YhGD|(C=;O`y)&141wzSqPj6?CjjyM&JEK-UG=9pl0oT6y z&b?9X#u06ayfLXBP1QS^kq0VTPOug`LV?_?I<6#xDJUx@0LKWcY8~=r=VO7AmlBKc zww0pHf^(0zTN0G8T(^D<>L#AV@J}8oHi;{V07GexxE`_g{2N0o9j_0M9r~r1tNXtI z2|3QRprG-&u{vtPhw zo9~Cjm(6}OvIk_ipX$5j$|1>Tv@M5Uu+Pgk9kzk~!X?^j;4U2yc?f8UY)GmFJ$F!R zG}2Kr?6e3NaP1~fdQq|}?Nvl$p8E+_SeKkBuw5!QId$DPx8(G-9Z}o(eybnCIS5!# zbRk?9Z-DBaH9W2@L6cedlq)T?Y2!h-CofK@NockF%^iE5dB-Y^H^06^Yq9${*sh-t z<$O>2;4#nR$XNc^VDgF=c@p9a+sawbu5ES}*L#IM z3|1lIX2H`O!(Vfm`&+i(D2c9 zp>#sW&3&vRt_=9cy6U=Hf6`uF*ELq)w-yn<+e7Mz&<*~)O0D;$TYXxUCz$zYy_#J0F2OXEJt+ES^bxZ)HtLxBcyxK1U zNV{nOHC^VZ^^!w&OA^xeKHTUv{AdHP>qla)Y5y$CS6Y*?@9)z9di|!0Z$P}}6V|p_ zb)Ec~f8pO@8-@N?ov;Ju_p6W2R!K5hB}ynHMuYmZK6ev;j$Zn>)NVNlcGT07u{uc? z^YW*{;#MM=ks|$f2}aXpU~1u#?N>e1tTf~Sm3l=Xy4Hb!QgrQ(0GQ&yEbkdz-n=g) z1uYbqO2P+vfNfV{1;j$K=q+@Ai!a*YYKDls3h{nHE$8Dg8yKoTU3Xa*0)daeJXqKD z0XS)vRB&M2ocAxd@&chCiXr50;(%>xFu5g@15xT)cr8=6Pu6?v3Pkgz!(2aMvld@I zZ&S5SucctqH)w+WIPseim6TCmgO(%yuSa2@S0ZIE&_?pkk6gEK#SgGr(FfwVtE8)? zc$f!v0TUyn29jJ5s4}A6HYH?GDX*=M~YMws&S; zefQ_13X{D6h0e#(FX%Fd4uNDDG=x_9lovW~f&4C)-e}Rs$r%zD0o?8)c9LFdsx4ay z)Xf(`e?HM7hEU?Ra(e8te(!P*rQE?xZCYb!!aX2w6|;(HAOMLan+QitnB40FE!EDPMca*@;ObnoQ zI{T6OD((GUJe-4@Bsyi>=X?|LKI3~-P|iD0am1syK(o{5(Rk^Tp)No3LZYd`pF9&Q zK%!D`4+vQsN@>S?Oo8M-jee#Y+-l+D4E1-bWAau37CRlTL2sRuev|tt2Xqx%ZOWUk z|K9Boh_sibYiHsF-EhGP7xgW4yK29G%*v5uNlBfgeA7b4YtG(AaZU@R%uL` zxa}bo*&VLukR{s(XHI>p_EhA&9`**HEMI+^UMx2!hnybhR3pGJQNvLBvN9!yeA)WY z1b49HcggvV`OZ8)kH=FM6W5VAefJ;G2zMXetZP^hx{nZa{Qbk|v$%}p(3K`E%AkwU z&vwTq_Q_3nuePBP9_#AfbXOoqO2fP!)5g*u&KG9YvLSBCJjPq~gt7r{DD?jKJ~M{B zoO$i{(zd|{lQM*u@8_KH^HMwd;EGoJvKw?>n2ZizJ^s1)B|A~=sPpDImuj zvYNGwfeaVjz>cAFS#TR`P>Lbg%eA2OhQr0_Iv+23Wfw8AvmDVAT~k!}S~#oy(GCwj zHzzXYVyKJ}9i?p%$IcQ~odPuGXc3rq2@d4bt45=6tN!F6#i#dBPkG#lI9~jodF&Pr zUB33U9VE8_j`Etad@&12l)RFN<7>s)d^1K1)F9N!B1O`z*MJ+fHYb*T4?t}M-JFNd zLH`heqf!2)YB>)>8&cpQF3VlLIE;3Ir_*>XIUpn-qbn(R-fsxska2N7j0I85V!uYCpRQTJTq+$Gc)j(;q#oh7QT;(7e$ zDiA5T0))pw_eRX9_!)js5Bvg^y0(x-U-k_M!nUDZd4VQ(l=@6mLwMqr!8!BszxJR= z_>0dy<0Z$biXCEe1I$@R3M=P$GYu@{V)QtlsT~$a&UtFFp-Hm?uOSdm;7Pr+BG!FP z9ZC`Ra!2--@!m;7>4vqFQw0mh`e7Yrof96Gm^wBm8!m0x2I%KjNZVnA<9h{wKI&(t zPo&FsP!=SZiBj@_edg<5j9*K~4IL#5DWgiC14&R<)erlXtR-QOZtJVvVxXcQKd!|Z zI9p_*Z~Hgf$aq2@#Kv?}W!Feh6sP%a`-81VGTf3#%?tmK;BD#%@%rGtcJ{zdHa7&4 zeBP>=>=sI=r<;Q6xiww6sGUj5)yP3BRtP%DH z0yJld`YsrdJIJhi^jck{UWH}?dY1Qn`ZM^=KC^Qs%iLXx32WZUVqdaXQp3eEQN!kB z!i}eV7J6(9k`V1iyBoSb=-5YO~BGX`d2Lc+T$cdAJ$>n`TJAsu6ncShCo3=l6T&cc^2nquWfB ztgz9GZGl2|NhlCmRk=1k_RhtIe1*2=9oF4_O6T^xwXOEg+mk0-2C$Jy-304oBVCnn z%sO8XIMT2=N+c?(O(p`r)cZse+ZV{J(Giuw1=~#&3U+J&8g3?>4S_{rtq`F zY`SoyzZ!>mu51add84U(I`Z>CYa7cUi?ZBc<1{^(Ru_I~j0v^C*jYiEKqX^leXfYD z>44c8;7h-z6n>@#aL8xI5~fwr^?s<~31pXJ+#+nNZ-=#;BrfsuAK+f4v3lyupwS=0WguxQ8msZv5Skn_#qM34Pa(zIAdAAzt^XKa>M6hqttmLZL3y~ z!0-7~2;Qgs$;G$*kgiY#YqO3S=lTCij!d(wHOj zGdsL*n?D8X9L2gmgZGc50=Z!|R^?J-xHXiWA8G6lm>of|YB;}h0 z;U-knVT9aGRy1t5mfAp2>B%lAf3Q0?#K`MuVFRrLKJM=<1CJrhV&ws@rd2~L-U4To z*EC3HS8aW|fk~b~!joh}b+q~F<#uw7P>w|X$A331X){kBtRu1n*Fz^&5kD(4`mG`WPRv{IG#clbNw-m2rVRZXx zz6tP`3-S|~sJ)7Z6_f)ScnH^QFwg9+Xq{K1348oGk~+GM$pRhiiw0xso`0zZ|Jb43 z#>A7$_4tO@;^w&p+*pQs~MkV(-jX71iyQKYBb?fKDq z%)6hUYct}sx8#G&{{VsX{%iueTwz>Er$_2?-cPmXh3>z$I*FoQd@E3%%MwT|mx#cz zOiID5i!6)-)G~;g?>#zbDFFsei&P&9M0Ms`<$bR#Z%|{Fo&&gg1IE`e)x&oZlPKI| zk!EUetRzrZaX7o>LfKW7lCkI8urYFy8S>`8iTrBPk1*-f53>Y{XBkvmFU4t!Nzcbh zcRp53F=x}|#i+Sd#dbcUK>h0&kc`y#C54_xa){f{cRdYvhnjxLTX$MrCBy+(`N2(s zRlU$6K(9uFhF02yuBU?lNF<`cl&n22ccTF1AYBxZ-Od3(cF!f$t5vdv0n?i5)&%(% z^rsGfNp9zrw2jTpzgc7O-OJOxD+lP_6t!DPG+H&T*K()cDs%g7VR5gYpDV`n!i{zJ z*M&U zG~YiKlEwBdQmO&<9J(?O3m1isH*;7@Ghc^Sfs9rv50mbQV38@8Aua~1uD0>nyN2pe zZ3-RWlrM0U&ivl0ZlqMBi~i;LDAfD$_pRh$8bPZCyno09q_^*-%Tmfx(7vb9?y8FS z+x}m^%KUzIQ0|KcxyZV1H8m&c@cetIz=^f_Oe$Oa3`tFHr3zlm|M=j5uqPWn-8Gyz&Rg>@BEeS7~IQ zwLj?SiVtCJQy8&WF~c34sm3}7Xvq!R7E(p_=N*h4qwV5l9`fvujSXy6nvZ242@pZx7zG!OV9Jt7iLn;K`o8z0 zki?E#(t$59>&S4i4&*>xoxP5xbu<-peE~Fr0gXe-S^$?|dF0a(P*gk`R>Z@&l9eHL zwgyt-ROn>gGZCws=)i}&W)7=^L4bjJASV7#nF@@|Wq8Cz(#UmfF*rSAPFhJ(iQU1{IbuDB@#o%8u^=!=u50^2A}8Pb#MG3tv5X@g!{VWd zvO(#E1g$mRjUKK13#SSMF^}>K38@D}0Hs!@oj2>eG0$}r(yiK94Xbo1JRXDt7Lp{G zdgWEX!LC+I>;X=p*DH^4d{oyDsoqt7!W}oBuJphtS~RGEPI8H1{nu>=!fnb~sTe19 zSeI8tkyN&yeiWluXR61Y2AMw(aNww}lPclu8oG@^ufD+SBQjwAV@fo}${Z_8W?v3> z>kDKd*k6riVTrxj$#Q&8WXt&(7fL~bllSDpGdV7$F8GF!)C4&wP`m?J{Y3Pbi5m-k zvPcOb3dphKykVpmLl4|Jna^9Mx+=f?+J;ANriA&Me}7P3e* z$gEdz#(D3F*nqT{r_b9ixhxc!nf#e?%9n6Dw@#4*hlBs36I{c{{f=lU|Hlq-1WtQL#ONw>4iL0znQfYe*E>sZ)2V^K_DZP7+AD z=W#$1#Y#Kk-yAa9=j)YUrlsb441%cWK6nvkirvUz5IlTCloMCS5m&P)zfS-cuyl4= z0BWiq?3F1WN-xkfN<&ql{Xj}Y(7B%iXNm&&=YKySoqif75lw8PwZA?;J@vLfgHrM- zUK16v`rO2#BK9Ykfx6MLHqf=0Vc5C{=q0~4URmX6?QJTTYHd#dLo}Y@R(Xw2C-jO) z66{q=I9){+md0%Y9iTL2fh)XH<|_kAGkT=T;4Z~ zhQ#fdF-@BGzx5W19O|^l-dehqwg;G~Ln@;`|6Az#5!WDV?q(t{i`Qe@0>$!;TX>4x z{gC-{a?vw2(U@onFW9SBD>aHyUsk>~<^vi!V|kBWsYA=|ufxug*zFzpxtpmdRm0+! zU$mXf$o!cnDuP$MW#52=r;CjSpoBzy_VfqY+0wfpbM@zx6G66bg*(Xi!~*2>?R4J+ z!YQC1wQtU27^ZLqn|bv=oJk@^Y=odkzyCMF$0=;-H5La7(eW<7^A&$KADa8;VHy&_ zI?n&a1C?0Db`XW0bdG7*9O|FMg4umsh$>^y9M=-u#m`k=p}1-2tsYwOhw}Q6RLf^a zF%6Ex7$(fRT7yYUK(EI3T{~cq#Lc-I{k)6O_B%*GFhMPQt^~l*!_0G)*ZboOm?q&1 z9K)ntS3=A@AKgU9D+!$*{oITi-MO8?=z@YYEQ&r*uDD1w6%le3iho9^$sSS8tJcVd}F zG-qmqgyzWaEH>Ljpyv0G+lEAQG>l5Sy#jrn4kQAR`=GH5=&uwaCQ_&^i)=YwPbaZW zJpDA|tKWC!=?!#x#*t3zle5;r(1o=r&VLXr?!8mN~`-y~HL8R+jgC8u9_m{FPU!V)eMyI5j!R>_Jy2WvY}>?}?CMTfuQc zO#sXmG$w026VGWtO7?x;!SNl@>nUQiZFYWDsC(W$6(pNbc|b_8vl=KQh(vpW5Uv7; z88F72bTsv%Eqva!z5U|#D`qiUepX8BW6>GE_wl^$=!5?je%WwrV#8}95@vUZ#RVy7y?tDNv~|=9y;= zjWs%2M`2^T;DcBb=zyt`#V~HxTiI)1MR_7Dv2$^B^Z-1ZHzV6CaTTLee+5Xd_hdmv z+T?-}X~n0XOl7r-CL+>2nR(~e8@o2s%k&Z6epR>6m;L-BU6bo`(6Jyez;R~lFqC3E z+IfW3XGrF&6NVyBfC0Zl?mJ$~yPr$PHMA#2Bl$B`3IfT9K4;XHyxL`bqT=oDtnSmD zafElxLF+W#7qh;q4yz6{U_DSF(Ns~IV8LaNLP)4(Qrm)TSlsEaYnY%B_6M!|p#FL{ zixzbHiUviODtSw@?j>p=M`>OCKEI!>I0Q`;9a-FcfJ&y@X0BjxowZ7i+7A&DqMh8c?CHh3t=u{){=7qyuAh9 zgbcW=a*k}2A0aU-U||`q&A(ZDW>(Vnvut0dcqcUdOe}mJ{5@BK{m?=5Q=!;Sl2GsA zw?}rV+x)jGS=v6zsWW!(XXaeJU^M`LSiQ=*jSQNn1+MQYLlr_-65v%>>8^k(RaZGC zRb1E8W9|F9aq{iapKVGeR(yQ2j8A%@Ss$hVi@?$<#(hWsdA94Uc*^; zQk#5y#aCdCmw63Fcbp|FF!>3d1xOUR6Dr<%C7=rm0^p#vrr9L6#me_LuJ@qQx)!sW z<`skemqy<0>Bc^K6pz()+;KQ z4MfZjT8_^acQ>}nf!~8O;^ZO_y`ghfY-)UnD7o*W^HY2*BiStL%SM0wo+I3i!(>`!ZfDZn4ba5>HRO0wCqFKHQa z6n1}pC9Uu9@eR78lez5N=}*Sj!m zLo$d3aMS#QNVrgKKe3J_t7hJnAb#EgK!SA0xtq2-SlFnnkt$`Znq+(%WneffZm9M2 zEIl;dcT(?-Z%r1a1{1C&4dABs-&BpihpY459QiUjISq)TJ!J?08Vn^By9T(L-OY{} zBn7cpEaqOyTJw5j6~I^^g!emk5X}kaj>F#%Q!c`LKv_VY^Jw(Xa^w3-?}v<(j+~T5 z5F|AgBtrZg>y4aJlEly25=oc$inp`hJo%Kk6EpR~Crs zJW#)`;S!PJ>}Oup*<-YA>4S%|#M^)AgUbOEDVr6!wR2=~1F`jinx7R)E42X(C5XhQ zhv|<)7QJrH(+o#$+$Z(g`9m02+eG+ZfCe!VK2QAc@MBa~3{@y$Q(DFjkey1wCjvXoLZaPo-1yZE@-8nf=}$GSso zNIw?@`6$5I_jfF4X0taa#Gq@CS7jU9d>>4sUrz0E9iO9CV)wfgR+;C3E!tqR633U>U?&C8WYn>u*1d#-;GqB}DsIR&LcBglhAeCRK@P|LK6RH|Q}Mc0 zi7|quYf~utLAyukx$W+|fB`PnS*>J!>^QMkM__kuN16>E0_DfxZ9t}_r++j zjgIB~`M3MdqkNDgIH*M&uQM+sZ1+@1l2UH=1bA}WN&o4BJ;8#kus|r~gejz-DY(!N z)vO6=#LFvg{sLx!?RBG#MCs$G`%<^S>}8?S?)elkH=Ar=srF3z$)2`9W(v$Z#5tZK)t%G;zts*6&5 zA1o`i=KipiMXW-4QZH%Evql}p+(plx-ks3cqL5hQxd!BCLd@(wC#MC;6-`3nTi?u| z$dd>w0K+^i3o3M*+Ut`JfCvXKhvDlgp80D%<`S^BRpKW%yljk37gs)RNY2=)Kl^V2 z31WM!2TR;cU1t-4$<`pZhh+9zKVx+irJR94Y!Mk)vc-@;Dxh}=x+6?c$?Gad-3%7E zm#fYXaFO$3JQbbWkHyvNTIQT20t;ECg75EJtoc08_aM<^&&#zMX){NT9p^k1n3M%+ zsRn6|<9eQ7Rj`xSB_3x$qc_H1zU^#cJfZoebHCHH)WYa@>#^a3Wb494YO zH@}v1Z_+$?@SK&A5f3BsgPJrQ{x5n)_$s%b-sRj2 zSudQNO26z`%8jb3p2#0S`=>3BJ4i0LDM={nO>9U6eY`DlBVekIJ9CtRrE7qk?_%YAD#oGGMN_P2`U@_^^uaw^_}I>wHCqRAP1`!HLh7Ob9cnzXy&u zsG&!p1;1T8R8_`OitPDyL@<8KGb70@rc-!S?;kdM`99X!srJ@bWN7KCoB(uY z+Mfq_(6;32L>-=<(?3p49@a-)gP6j+xGK_1G+T7zf3{#}s+!x-UODz-9HO~hm&izP z0F{ZH=uOAeaJpriAW3-mBo6Msd4m|=J0=~SxNL?b9EH;2)R~h8q{>i+2gum6F79|5s%U}Mt*ECrY$h0P4367Z?>ng zu6ykatj0wLaxeiKSE7TSly(-WWeiS1%aE)q*28Q_ZhQC%kCJ_hOpu{1w*JMtQcUBk zTvoWl@3Wpm?VG)3hBWDdo_GbhWU)+6-cZIG&taL|5YOKvXl~yZ#0WAdpuIiiN(yam zV3Z_>ZgnwUWq1T5rr14^rF<~rBTntd13~J5 z$A?6U`ZNf`<=+Vi4m{us!X3Kp8oTniLpt%NZS|i$+P`h^Lk!n{%ph|0aipyY2~^CF z@mJ!$eKs4lZ^Orv#RkMclQ^NUNDGto&mK5KO2pw44MfXJ&S;AoJYifv#uMjS1CksZ z8SX^rmL_H3%%k{_00UR{tbpc^+`^@J()YinZJ^; z9E`YMCrtwNdPGYQ@O+d3`rL*DS|dZUhyAGAe!Fjjg %3e4uVl_1ItNi%f51qe_2i0-xoGgmFN_bL1{sKxr}?!!uHYXZ?e%_*vO>2S z-~2mb{=`$E(32A$;mr%Rv5hjS?dL zl%~>>9YIQQCDQV{&>iNQ=kZH~FYIiXGj;=I2FX~SE0aKVWo|gKJ_3J`F(GMMlOau0 zJ`OHuk>kg=IqZQe_x+@?obG{l7J^Nn)P?IADL=j`7QQs~<1CRqwSeUImMmq!jtoiX z6$5w9x2@oJ?KlS9G(TH{89%q-*a_1Gb~&2o3cJ19^$VW-XfPCV83-yFZ9bhj6A$NO1NWV_qQZ}+=;!oojn)|Yp}@rKm#!Tasi%qI3f{?kjQ zk+S}k(ivw+)#MqQGq4N_v^csl@s8Lsf35|}NaFc$`0l$HaXSYY4|IvpQ)f)jaL^JMuJSpGY zlOf@_ZD({BxBktYka>SqZib(YN8FFvv6oyqwX9+-V&mdzjt6JdLt%ec2gawn>HE#A z#Bn;iVocY={PeXra||`D35*E5_6W<+c({J8&2r60E-Fu7d;=P62olHCW9gxCrK;&& zRvFI6@2u=b<3oAvEI!>Idi;Hq{K1zew4X*&7=Qni=_ZFhVj)mzfAoPLTZRN`_kpm! zU@k81&22KM-Eo=5_vZ>EtOg|aC(y~yBZ>UK%`rt6Jfcms432|N*^_vmeY9=3{Zh&A z+ev$8@cCPL?Kt=`2G8_y6TF)cuZHmuq&%jCDjK}F%lf>Ww#k48FZJ`CyX4b%wBGyo znyYf=HdpjM{-Gz*^}<>^!SihLUBso!+8gUz_N1E6$Gg+WfJIH8HSO;C`@-FT+p=&w z^Hh#KK~q~~zr@po`vfg;Hb{TD{9w8!44SK&6F)6kp53p!H=$a_n#mMHO>YAi!GTEo zD=sgHMsu_GPm|x90|xfLPkf-Sl#TIGZ)#E!D zd7i;m7UD&4A<_alax|74)D*2P!=_sl1Rr`9#6tglI|RP*W5%jSDt_G><(O7hQZdzl zYcb8ib9#=pz}siv8+Hu+7D}6tvTH;-Fx#QTG5!_w0SnDJ!?ko=e}rYVcJDxWY;2P( zFK*M3o;YbX9_Kv*$rT#a4w~F*>ePkwx6{p+WFfZ>O zFaw(fP5Qka8{h>bvWYu9AMdT14f~}-t4QN_AiQtCp3WCn5J7rdQH|7ToT}>Y?F_7^ zC~n(1dv1V>^zvgnj58s4+MTAWYojz*L@)c}n)uxq9GWD!2RQdL{PXrW>gx%f=%0!% zI$U^)_Wyni0>dXbnVLOyEM1xaS9I04LOg!#p06`EY<0f9A}#KP`WJOQG&Xbrp97|J_iI(nrd++ps&Oj&0Phk;W7H;@H<9K0YwT z&kFaUWcg=RGXa;?@;VXNuJG_i!thx zTxc4Foi!<0?AkedFD-xAu8N!eznUEoQE5sTLAxZOd2f21#I;|m6u%2tp`dH zujVUt4-^dzAN-F&5bT+CX!smVu_s}_ciK|c{QaHuvfBBJdRh>_N?mTMssrEf|LXeA zuqLzT?FUg%5OGxmLBJId1Sv}BQmjbty^BhbUZp0A!YV3D3B3sfNRX<84naf&q)6|* zNRZwGB>%(yR+D|N>pfri!sMJYXU@z$_ssJ=u+)vZ58igf;q%pgzl%~(-!+*L*^LZU z8{$%@*-j#iH8$&r^$DQAuF8$@9qaVA1v!mV33aC_F0Y^{F^#C9SS4tdqi9pj|AuD9 zt~Qn$09hdPvB_7;obB>;vr`F*)a3hCfO>mf%rxbR6^Ze^f57Tysb&xUi-e;aSB9Jl z{=OVbDWFl1;9Hb_y)O+Gw#&K2HTcM9Z&`7?Dgb{~%b>I7f#2Y2$Joago-2P?LcplS z>;fJT`+m4rv_*cNSv_n?KKH@bX5UFDdYSGYok$GZ8_9^Tgc(r6nFl>9!qw0*#jIkq~Q6!LBdwe+(@wg z1-d)s4?@p(2yEfsp&MgyOdwL24h}Jz+F;Jq%9{9xOhfaL3n*d9vaaf7;l zz|Wnkn9{#Ynkg*-Bet@a$CV!AwfTNXVnag7|CO?lM&tvTC-+5k+bTtGKv03)u*>xH zeY9lF9*o&{-VXX*m4GlNESDk;PRO}WSI5ojN7Exk31$pd4l#~S$Hlw;Z09=;;b!uA z=KW>kJ}VUjPJLE+l-Dogr0GzlNoK+na#^12-iAx3>}z*w&b9|vq3xA1HwRlIVn$7tA;P}kg+}D+ z1>L@kV-IdpLAtZ$-v)lZkDBS#uT$Qci|CW13}o@5I~}za7W)HJ`7tp)%?YbiuU?=p znHb{o%sH^OH{%{aP>*`IzZAc#rlj=lymbs?uCn#+bBeob-<`)O?9q@jEj;VxwJ;D( zt@%<(j82VOq!$FhaGK%x5;vEbHeT}~l0Zbk6iA5w9g@7%&a9-my{99yA#q)soUie! zn7A2B7Z9N&PsjVPse>@`Xo|S`)Kc;_s<7(f{~qr7N4VH&70)hgSOzD|Hm&8Cf=y>?m65GpuPaKiQpaznfFn)I$tJUl08>ECy79Q*|SOS?>@|M^yb zxtjdha6NbdMiR~RZjLJU8>Gnun<{FYd^|U@VxVDG=5ELm-TCj5!JmXQQp;q1Tgs@r zT9jI^er`sSy1kk$2D&5zC5kgt>K1~CO_C#is^$#8z3~^|+kTC%1ayvxBwp!`AAvN1*O?@5a$f7(=^2$728MJ{WFH=u#c|n&Nx% zB)D6qqvPNQ?)8D0o*D+KXAuv8Bu+r;YMp|K+NODjn=KNad|CIbkQZWT*8DX;gb);4 z{_=e=o^gGcH4w=T%nR#Z+{8&LaZ0@Gn<=29*-0&=5{A=Pd8hUv{@vJx-+@Fj4RK4**Z-mt4nq!sl;a<6@M2_b)Bh@V)R6P z)aDb`XqCNjs=Ils{MR}lh#?E8UILcV8(_kpvLb@KpsDrB)d@pYx>Q&9eVeXp&{0tR z8Pe~PaDx9%dj-l$iVPYw^#~&#dkQ)l^RpkQ+1WcJk0CQzmNEfVsp$=vj=lQNp}Q%9 z#|CwO&xXK9agUFgWXZ+V6m0Q6(=?j4`{VSN>N@Zb_WD--uJ@;&zD=riVNpphrwnAQ z`Ye}D3$s00ZK|>s7S2DzRGs{Gid)#WtFWftJyrPxSW@;4B~A* zC~csasvnDsp4Jh1PYG|;$KYbNc)|Zv*Umefv-O(vX{y+d*wkGRKt9QAnf($@QhnyW z8E2EnOlL>-eSYhAf6hdpPe3>?75gbDrsnEKD>~*xbsy6QF$y^onbB(6BEhj+EVjAYIgFsub;q#b@$45`Bi&J!NVheD1qMmV_m~^S-nr8N1^j z2yf#;eZQbP^33N)4;55kb&9rnCFCq`?P`^da6+|jgUK6_L2`8f5!|yC{9WF*ESrSV z5=RMr&?;NCG?(^(5Ce`sa(9AA*zO=v@a)+g(uX&92Y-Fj71;N)3oMmu+d9`~J&9(S zIVdGo|4?N!5rZVK&7f1f+L1kqvth4g^Zio(FqNnD%83at*}ULI`}4UA&08A&=yCqn zQe{(C<_eDAx>@5Y8jY$Us5vp-n9J~IqOMP%qvPB%A&g~Xqn>&H_qBr@QmZSzI5l$q z2)Ki}oU0xwYSV>~TKEVuu5ih#9Csh)p2;7T*xYVp+YC@=?HMKuUVokBoJ4q6kTYjd z6yPY>VRV{Kz7eIx{4$Ht`&NAKV_eTy>d$W_3A6|aN59qM5PnIRQ33bj*TCL9xa-N=w}}(P6gn=RMBS@( zr(NKGoWtF6w7Y#l5_8iBWoRxZxfS$3wz*3}g95Vj(OJc+npaKQ#vyK60~r z^~_aEnML8`2c?(8UosEz4)J0xSoVGW(xVem6Nt#gH@BfI>y4-VVH%aCOXngAzL6y@>DOzVraFd*$?~ct z;wX)IW?i_p^J_b3OEHyT*YU!!Sne9!_NPRJ@ZYzsUy?l>R1lDvH@ZRGunw*0QJndr zKF=HhqOPEd`pO{}_|P8nnB2G=m0k|4qOvsb!DeBE?e%I#GQvw$UaxXp*Dw+O30IF* zcl^eNIfEKGHwi5+6m-Mt4w+;Zfk-tfy7i;qfMJ-Ip_u{|VYNs}4Jk;O{M}n~tux;; z{SkOA)|V?FG3m-KHC5`VmLtAze7v=XggMxeFMIZ(ByaY`Z__4nDWko9wbA~mue4c_ zg#Z%izT-X!ZoGkhczlxgy}D>XGyXde{GFuCLitvUc5k~VCC4_ZY#8c$9B_R&aYHG| zecnie<9pspeGz06)IMSOxGP-{rIL{ z<+Fn(H%~sHhQ@)a$eOD@Ev@oM8m#MY8OZa&7()YR(&FRY-pr?)*kBnSWPznR6{L`> z9AP;}oJ+{EklwENggg7Y0Ru|qFxy;;d&)Vm-+xdfDjjdWrPuJx2N+wo(1~Zr-K-Ir zouXRiqtqtCzvn?n_j)&c%`q1G8Q>VzcDG}j1M{dBuxp5x=){q*T#oo1`P0ISB&nxX zCS;|zU+@}|+x*K`k@!I^XaQgy28>DwsWv9=DWXk`qpD+Ix694^_7qZ;K89OO{oJiAKpL^4E85TWS)8Mt?uc2M(pdcO=l?MyQwY zA~T7dx})y_zkBV_5y*0~>pOEr)J%_l&)qD>Z>Ar-hhEg{lXr-4o`X;JSzt}ONc2|x zr@rXx6w=SYz=?IY`(5H!dC@WPZmywqxM21%4HcHmKSBN})xBZWsXorV6&;RcQ83JN zdvlRCD#%{z;S~$h^T5o>S!m@}rgcvj`YIvB?S-a0J2z(~NwnT6aD5 z-rpK8rUUqi06WVv@5xW8|i?EqbSQ8ny3HnK4d_W?1!ACMgv{W&>=C9$ES+XlC$h=7^=+MEwen&G# zWaw636NFV3TYs=%1pv{S=P8Qpe4)Y2t&Q}WQMVgyOIh(B@EZN*cP~IhV%G_^B84Pl z&bSKapSD{(2bltOGnssau-&+%1`Z^L?XGI4rD6gs+n7HCP&8^E<;q=1ec`Pt&&CU` zFgQ4qRi1r9>C}m8&xw>ZT0#oTb7d{`jbK4gs*MJLjqwfpLb>6Zu*shk$Q8;GJRbQn zX5mRkhe3n6kv%wDs^LCHJ92#ozRJ8o^kBKOinySO z0_NqJAyOz3Aq9ggfQ7ZdACk8+_Vb0+HJ^>Kw)cS#CstQGeD7R1dH9AKEAV`&c&0DR zZyysMR%|<6CeI;$duxH#dzw%#pEB4lww(*t&84$x7y=ptp&#pV#qSC6VoOcmS&A6P zOjtU*CcDFR04a!&*E+qbfkUREOhN?NRatK@}gO87d<64_d2 zy=#O!zbDEqSZMdtCDegu!VsO<|DMb=d2!h?0nSOR-^A}&I1CI|O(u@qs~2#PTLT2w zvrk`#_R|$B#7OrO$go0Tf8KAu&*G!`(3XmobaA2c`%`DJ$v)s|i6morxvh;t>*25y z!F7hLeSzeqwV(8LlG>veoZW)+4fiJwuQTfWNk7;I9D8c;d(ISqH47IxJN7~yDbA81 zYaV-xy)17N{&-~2eH_dF9B-5@H^T#H3_+$o@e)`tg#H-9zr8t+_E=R=6 zJkcxFwD@KRA>PF3&b#u|uGXUE<9++zj(UU_sF4+di2PA8xy`o5%xH?VSMF7G%%L;O zhR;Yr?Y0rVQeoTx`>f?P#xR&JrrjSTi$PiKy90F^jSEXVPq3hBc4Xg2Eb)ZxG#`3exph8E=V!KyU~e)HvCT;Tu6irVMd4t1?dPOf?!&T7&ifGMg7;`0;xi>8F$?BA6#bPu~ zbPxG33Tl0w<=o7g@9cYL47i2E#Q);Ij|-qf7-zZ0glNTEn3x4vj)&M-hd|B9ga6 zb6b%Tc;))ttVT7Shlfx((|0#Oiy;a@@2l=8IP$9sy~$;d_x=2GoI11v7jeJ^|2wel zICe$h#{;8VSPv5+o;Uny*UsSrnEL!#-N!TNtm(IG-hLyEg^vf!ci`OqZG|`x#olOR zd%NUd|Co5+NyEDaX8*kDA++U~P0Q-?j(>I?r zh1fAt=h)=(n6;0NY%K~*_UuGA_+t{TX1Z-jUW1k4o*uw9u&5^E z%jSNTn?5?d3;_zPeR#5~Q$Wu9)%{4pn)Z)A;_HkZ%agbnF(g6Rf$6~=^a=mghNTu$UXa`Q59JwKT!zK2H(P6^ZTIRcPQRPPB zDOy0M3HKMahhiGSyyb;JMYIEVmf}?L3R^jxdvkk70^mstj*Ut|jwoLcep*!{4hw`l zl85a?5N82IzW4iJpls1wb=Et|8Xn%wFZRQtY4p@yNI=lxgTlO&x;~?N%_BUXy{-ed zNnrzc!=+rsC0n1*V;kt1*V4xJ34a`i6xeg#NArWGjX-O{^gmc`mpn@<)%wu-SlEo0 z_r5iV*P*cN$C!HXyx@)L7aPSB-(T=*nAS|Lb>N~8Do_6o*2ZP|X&PV7m9l8+efbN= zS(7oKii){yye6FL_7YKLg< zqxxY)_moWY(H%yX&fLu016YIW}Ko0DjSvB zD0<4QLhX=Co@Q(?d4F7&bUI~QLy-Bz^~CJZ~+W7x}(Ht&L;L<5k~VvGC@F#YLG(3;kUBQh-F* zE~8uO^4_0Oeyli~EPCK&O>Y-?l4nFPbdm^#VF$SMy-1SumV{0{eW^2~FsaNs?-APB zEUGfe8|X0}Toq#GUqHTk5Q3rCZ~on=?TGwxwW^|Al^ti=CuSE5Dg-{}uQ88n#9!-ezQ}HEpM~1~Sq(FZ zbt*dq55-wHlr8ph>`#M?RW5d}$p-Xg=`m1meA+*rx@p_z$X7o%9fvC1Ar-kyCg19S zR4jhY2r6&l3v~?@Yy17eQ(GGgx&3%ky?O;McgDlp;w|Ngb$v$v&py#)QB5XaXL({? zkK*w?eNbdEc$4?a8rsrMm9}j~Dc4Uc7kT~o%pPgLP{x8(+0wjrCCJt(k3Gswf!G z@zfKb9&5itPdB~6<=&Q1 z>GdP112VZ!)<(8j8_@+rTG7~Rh^F6#UsS!b+IJ80jta7Dey<^<{$90JKJdWGP*m7T zvXmw>!8~Alr!15(ikx#$SFsMwjt1V^J^G*)`GDx$z*~`W?s!PyZCvzOvJ_sqxtsCC zN3$+M{~mE9pdfk5zeZPaa_^hUl7+OVvv=a6 zd`IkO>8POgRJur&$>vCR4Z~8aB`Y97CR`xc^F;$rBA6gK?9r~Vdq=h_rUe)%_{-~xE8Br&aq!pfYOhR?UO4Ob9AK3@Klmw-90;JGj|^#Lxt?V@3ZlBZ@RPh zIPo0}Cr)uTtj0?%ih0ePKWYvff>QcZ^db#p$;Nc)>|OonnPf>)(Y_+k*K*OH%mMsX%EaJAfwbb+A&Md5Hb?k=e{aKwO@y43W)Ydv9CFsF;8hG5Cu zM|5T#7v@07@QlvGWH=&Rhh*>zIzsASbv%e)C)As1UeHi zwI&%!m`itcT+(aZC5wfi?N1;m*H&QoKZA=`eZi& z%~}FAb9!eHQ9I8@8lH!rvc$jslL0E2i*VyHl$RzwU5QyY<7X()BV!LpTywOgAyBlW zW;ZD=&tIPvc13R)f^0HiCFR;ICOh@$$FxLqR!fSuG05TB$l%grm1$}DaQXHv>tvea zS+y`Kh*kF#?+vR5i;EY8h+Tctw{lKVnVchU$TD(c#DBYJk62xjQL%c?4o9Q?kP+%C z=RV5cT(9lA{#kF*fU)Y<1kIQvI(7NXO_fM7yBNOCxZqvW~0+3u%_*PD&Oh|H~j2ZKs$=8+*UAJfY!<7U2OzAd5zik9qUGa zv}}3ojqdFP$g|v44t}aOv3UrmfA6--wfe>v;ZHmkvKq_}z&g$ipr~IX`;UNpS>mT5 zVr$7mU*n<<2ov2(gCL~adF#~ID{HgFks|*+XjKXev~O=;u9+1ulObIN4QXL7(DyDV zShovOx%k5HJ&B*zJ3L(NcWkoq2X}Zt3<1ozox>3`HAY% zwv;+Vep+9BaJ_8r^~!umHMnDkDUb(Vw>O7TmaC>@w=JF^W8AhKqjv##bn1jVL4y7< zPXNkcPpNTV#XL2*M}4J`JSl?ayWil~LBP0HUGGkOBmPrOj}M%nlz_U>>%)=F@=|V- zi$NWTFAw|x!SQP_yx&4{F=u+)ki={9y-9$zrvs)WiEdIZtdy4Cs^~OWC^chk?{oO~ zD@+G+2$0)_8_aBaR$T%_!$=Rc);NHmLB^a(H6@k0zWA!R&W%?`aUCv#>R{`x(pc2HA@Tb&^IT6qwg8XpIba53OE$)p?fBgzJ&bs~PQ&bL)WLrk);49pxZUJ6gR;KA8K4;O8 z2_V(M_mUs3>m(cROuu~W?XS#=$QAgd1wcjJ^|g?4v+~vGY*?H1OyPXapd0wUgB7q^ zC-adLpMFgEeX;2AE`vdX+GL@z#Pv~+pY{D!X5J6|jNLl688P7b1W7ZclV>iS)2vMfRUeTo0-4Mgad*PUw`mg? z*NNKv3Hm9ff~Lnnwxnew6xH*E*+Ry18uu6+Fev2y9)lS8b}i>U1}yx&k4A6u1>H z71lV*8w2+t5Z=MVX)Ng}ZnJJ~wT$9O%xJH>9R_td;x4r|sG!3TO>XZ>#jBrmb|I(@ORIK@4Qpe#&Ug?6^}Je@;hffJx7Ez#SUx(xq`Gv zDs^qh0=99HVwDUzTQk;ecC7Yr#ZF7V5ZKt2AK(onOVNot`B5|a2Fj;ZB-BkSCLIqQ zzOq7L9mHFs3tT0zrMXJE;kdSY)Y!il4?!5EqGC=1BSHOF)+!`-f9%#P&@E*K;Z9M+ zi7`Jjp8`8ei$M$6(t_{Zu0*Z1D=&mYbdVP30`x}rX{asF zQIH=l!8Fb?zDn&Q>*F)BRbe2RQ$V~)&pDL+=;cvyuFi?BPxo9OZ5;WBo=|{P^vF6w zxOeU1X_Mp6{q(n3Tg;Qak$r|W`>KY&f{0(?!s{sEwM;!x3Qvn8?HiZZO2V49sA6k6d`(Srq zwFBgnGJ5(d(-WU3Qr>82REe-uXYl=z+G9&mONZ=@N7>Vz?M6C%jLOrcxELVBm$UgX zlb`w~6q`C%*0Mr&V|WgA@iXAa%TrijQ%|d&36~ICnybD(jQ)cKO8pLU)642t{PPMv z5}H5sE^;7`YRWzhKn!E?V&tWBJWy42JdV`uHir z(e>wxvg~Xcgfj=-DpI&!|G;X$=pTgh2Q(;6ULK-TH1T$T;H0G{9J)4zw9_qUfc&}HJ^cI(e-^+R9gNH4`k0KT*ZZytlzGC5rKs?O=TxM|e zd;j0aK1>^MtS6b9T&>*3J8QM)e83sABab2k$z9|SE_kkHx{oRDDYh2|C|=~3I?db@ zz_V%^2_i#Jt8kjdnOFF`KG`}3cBoB0VbD@goe(B3JB;+xaq{kcD#CPZ$`tKH3y33g zQww3W+&$M=K{HXWop#J^$RV7(KM1Qjs@4#AvAcT@JCxU|2na;hh1`pFP_{CvA6Yi> z5-FjY%u>q3a>5$SxJn`DkdRbI>y4}!7)coH-|5noONh9~qj9Sc`zU_2OG_UT_c; zWFi97>%IGR3ARyU9>Z?C6md65yO>dd{Z+4utE<~wWbMl_lyyG7O5-9#SyP6@vH<39 zQ}-?&2_Nh)lu*5MXnZ|;n>Mv6in+H}IkFk9Eg4?E_}Qfm1pD7#WIfoWy*Y`UwvADA zVd?9_;&!91T+Zp(maNABCTPZ+$rZ|dAY$issz*Vo-tZz6O{tiT*?;`Vl&4z2LR;Hr zN%67gn5BsgMVdSyt&z2$8UuoxbY_x>6Rbw6qxr&c{Q)|SK=ynY_n;h<9u zYHxuGHX=HA3!Cf*e#RKt zm}7_P$DkWkqsPT?Mc;4nt3T`b)?w>f?b6%jPcl0w@gBkb{_qS~1cIR*-u!hMy*Oh4 zTlm?>mYLQ`V1F?QwU_eGqm=C)?W`eRbjN6n6zsa6qRM92bfs9hSoYRTVMFFX2fQ8D zMYPb~armgUl=JmGWN!hoWIHdPG|3tw7F|X(2?B*;Cd9yfX9{$u*(|iXrAm7GZdAov z!Xg=%C1ZN7z-fcOPe9!~<^p=JJ~XEY3nTLr%ALkU!Q5t>lq&a3JDB@!?p#HD@Bl}O zlby1`;L2r7T2PP!u_M_mj_+G;)nog>nHkINh%{ZuK4qVR!dGC&*G&JIMkixOod&*R zg;lfcSI?iRq{cPs>A$L<_|{=F+1(^?DW9#<(sXlL%tsHj-hoz=2L7| zmP~vCe&3&|ky^72biYPr#wfm0c_AMgKMyw(IsZkQs-T3z(WC}%j9zuSgW>X4^Ge-+ z23iF)i0sd)6vPBt@&#km-xD8}eOw(B?fuCfa}*&<5lkS@%(c9-R?~+IJ-Ql1gKGhf z!&Vs|_e}3GB3b}$-`H5qA6CNUJ( zOI>+T;@o%#*b~EK3)1|3s|BY2VFIX!Kq2ZMQ$6lyTsM^j|Y z7HF(>#`{2NCP`O>&k*g4H3>)VK>jPQr<+!y=4EJvooYOsd!7Nn3a<7G_Yyx-DkI;cnO_xzyYA(!Mp)4EY0!QDa>%=I&!S%uZyrHnH3S;R{*-gzudgIhx#TlCF%I-NKq2O@zpLHei z=HZQ^=pf4eC6k|x6JMu+NVOm86Gh3c~{=Uv8H_0 zexSrgGzEr9pfF5aTxM(vh^o`OQOo_PN^$k5do>-{poIc7X?K+q+%K zQDa3YCkiVafttN2_TP6wHlIDf7$a7Gu`>?t1|ACKeI511Szv`)4^w1(B?i15OkY2g zlyfFy@w%&C8*p6(-zdB$LQULdHax(p&%?SeZnw z27n@M`AK}jF>=g#QF4-jbvW9?M-UGw)61^xr-OIla*Z}ZZ677}ZOd~|GRlhfcq^_r zt?ob3C2LC0I__J6UP?lDspgJF{gVyZgZC+TzoRPnNC8X{zV6cv2{geR0e0;XyBn%D zoz|U6J8wmp8jqyXea@-ZwzJxQ+N3gR({GxocUD*R z(9z#SMcG@J0lbxB+Ja2DgrX)p_V6oDiub}?->oL2=V|1)m>|}q1&Uw*`G-C2J@4z$ zF|b;st1@#r?(N=)u8EF5Kg7mmE?hrdUmU(_KW8COKc?{rJYB+uhH&1UlsO5MCE~JH zsL0cz)}|(=sG;Kd(KK=HtC-4>vGva{+)T|)*#+{WKa> zP^)I!a$h|fyL<=ip)GSTp-rP?*6l|2ZBEeda=~0Mx=Cfep;=(M?K5g3Mb$!P-CLUq zA!-et{UwiC+vU7EKLOV@XOtT{3pMD*oF(JN4oC);)I}cPu3~x(CQ+aEk;NVI^*Q6a zSr+{yo<;~)M)`;wC_*^&iZvvt$fQ}&yY*Y#D|y6`VE>pyby`&V+0%IDn8}Qy0s?WL zw(90uRaEH(GZz?TXNm}WE4W2kIw-Z$LgF!?|DQY@g3Nl)I}2@vv>jiK11aLS(;bd2 ze%g*|Mvc%QkC0wO(*(ivA!@n1^bB13SkI`0XLs@~u$tWesu%Mam#etNTQ-D3I}mu& z{Rw}}ZO$a~#k}RFcKDb9qDkny`*ioG{Tos{y-mJz>7Bid`=JjYPzj_=#1Z^G?(^GW z8KUEDG-`94D$|`|>Lm}nGmPDh*r{-HubN#?3Fivy>4%00yl9%$Moly{oDGpX3#wlp z;HQihDO`}kn{$;5KX_dEcYk`wt(~?Ka(Bg4p@orcnLO0GJu1^p+OFc}!g7B{O;!Zm z+;P5?H@Kn!wl$FUA0^{)xTMp&5q$pou?#7(_N~|Xk*j62epMDbF@$6I;TsQg4fEcg)!?3=u0!6RZq~X=TyN4| znGCI~&^US&Vhz=!Xf^^*E!{Y|J|a0B-Tw#4<9x8j+iPgfSMfT#>84nT?)Vl^Cr~J$ zif}uxtN-e;>pK`bbCY7k{b>QEKZyb1!aa5o&D=V6? zbkIMi4B_euKT-H+sC8snwm&&KnKx7P`(&N&a;&Zn;h9LnB4a`a_}RfTC{J3Ql!LYQ zD9<FHw$0h%p5q5-k zeC+0D9@NRAGdd)j&DkE=BHHX%D^ zGo6PvNEv_^J^NoxV9%AV^`%FM?8k~E1w8osn9wWj@kNmYeAuDGR_P0 zqMB}MUkPh)b-8}U;KY&X<>U+KAyL=;xA`jcQ1&BzN?f8~#!~6H7a_uKc1Cghh1Hp# z>etZhTKqrh(+XsoGNjWTx=v;4l!-((-Bz2scfVWsW#om+QIn79tu;<=i@AK6_H!Z-Cl*U$EPozlm2pUpIGlYxZib7o2` zjCZZlz&G)K2QnmeDu$Et}dhv5KALqlg%nM8p>vYe&nB$|li?sh*^1vEo;zz0rQ=t`)!Pow*Biour)}EBR5!b z<_YFVZX>z~OCEF-cqdCdeWaxn=5wdg$&|l>Y~@}@uITz*mpb5LfQh&~BEr?F8t6Xu z_4WWu=kd5>=<&eHTu|hy;58B5tD@4PlG37A1w=%oMMOvyp`e?R fLcr1af!!mY|G&W78BvvkyQFkS{dV3>%V+-wtZ?qi literal 0 HcmV?d00001 diff --git a/Intune/Intune-App-Manager-Web/pmpc.png b/Intune/Intune-App-Manager-Web/pmpc.png new file mode 100644 index 0000000000000000000000000000000000000000..cd254742d448d05dc764de7add5a381526b1935e GIT binary patch literal 180837 zcmeFZiCc{A`#*lSXc5(vN6|JW3Q=RL&`LtPEJdXW$r5eUM9WRlpe#?NC|Qe?8e6+e zi>)FasVHq!v<^uVEx+@+?(uoQ-{1e>cO1`i91ohV<-E@Gb-vE!y6-vRV7Gem#OV_W zf|$H^jfEpY$kNdNQWEgV(wRzE;V)_5HJbwnLRS<0FTzeW4I~IUvDU(T13S5=!JGy^ zlredaJ6o?OIDaV&Y7l`r|M~AwO4@&ZfPcN-!4UuN56IbyGyeN$!s3F||Exf-u#ozn z0qe9@{Ljyvg*4Is{=h8mg#3U1OkA^x{GXrYJ^vMfApX??0>!^t_*V;m$l+fs{ELNu zvG7L&|6<{fCjRAxf3ff{7XE19Uo8C5#J{}oFBbmA!XFL%i-kX$_?H*{e}@G@&&TF< zjrFzs*1_{lho2J*Nf);_(-J4`TFp!rUtDF^!ldQBAiQ3?ex16IoJ1$yg`@@>bauD0 zl1x7qzWZlj!@<^N?dx-DcN%?EAAKMMg7O^N|F*WG<2e7@nXSj^o`ds)N=Ndb>v5vbE+?!l|d@BGyMW%-S9!h zg0!*rYGJ2s>}&YguWmg}>POb%+cmGY=AYM?aL80<$S%aGCoYPUH(uf+SpBVa@A&V1 zbv6AbG=yVc|JmOAqfXN3Pt7*Llm2eQ@&1g+usHsfD+2$wZKJ0y57aLiyz^E#rQy$% z%vJFp-aYU46c;R1=m`&DeYdH4S8)Qh{^rc8 zC~DPD+Coj&o9mVG%0^BqC5hT6&*xhP>8MP;Y@lY6Z%oZAwM{Y=Wn=I-z z++DfGxB7yJ%YoSNukY?0uWr3sPg$15`g6ErNZ1Kk`xU21if$iRs6SG@vn(q;!A=G5 ze`V62C8uYKAAPn|)^+lPGgZnh8|C!G$~x~HU$GJoBM0S$M;TcW|Dh~?Hosk>L~%f@ z{#K#tw5G>w<3QWcy+5cEnf^JER<>1dW$%%U?1=PgNmfhB_o-#i65LlEr-m`8?kP)j z>-(9r6~q%yYpgmxs?xm7jd{Kbf9|9+=o$mD@r=E zCADOEk;Zq9AEUjAI)=|7>^JM13(pZ!A(t~TC2=lM)ZnHurGv*ed3G#EiL&fvhVTSU zH>`TSXDNipN}REgBlP=btUgv*^oZYYd)#fk>2zbfJ6}hryB3YDaKS zbg$DB@BqPu@g-{bUx{gRA3oDjnegN&!FB0lwAEaoH1=4yA9*gr@o?hyl6SlK&-2B2 zuL`;@9_ka|sbsFuer%|d-Tz=n8p3v&wTUT=`U5=7~Z7S6BB#ZbDqwz0~R=>H@dz2ta$_xUg z@Ymkv2yYJjrPCV&rV_l9H#vq%!W}Np5biKpagr#Z@mezSepb5AWI0L)e}J8NjwMex zi;2v@A9MAEx)ab#=mb|pj^;O)PF)1lt`Zu`$00Qk&N~GbP4Z1JkT04&Se8% zygxNLLb5}g@IEV)xL!&qajaA7Pr)iCd-31}f>;%LhLitig!rEkj(CHRv4YM*f~fyH zBP+f0I3>3CNeWryx=I%br|TtR+Oou?NRrDPF+0&clA$}$T|0FRmgZ>>=1R#)=qKLn zqI;hF@)x3n*kE>6x}KWd(&1KxQyjxX?Mjcjx0lA>;s<8JGGb%oDV%T)2KL@lB0%dcDY_B=@|$!!vsC74r0 zOG{1U<;R|X97rowo!WH9gYw?!%fe%r-*zl~e9wdX_}lODwIamw%x3SPJ=fhfZ`{*K z^UJ>)Wp7l(ndlQ`B!hQJv!+bIqi;wz4xvp}UpkFo&HP3BYAw{!k&JAfICjlm@7juz z*?4q>(Ct||5MHvyBS!1Qv_**Mv!t&~4wA`MR%ZOP47k2(X$Wo^lJ)SZ_LchzuA&1qi9o;zKf5JVxHTRPeS z_EkTs#qhsd9K#}p2$_X6c=4vCE2qRbR*Voxig6V@lnN9l(yCC0Mh}W_6KBZx@685Vi2*T&*!@XU{{NiIZ*mr-V3_fnm z6hBsZWV8wIUavrj%Cp#*{?T1p;&--Wu@XTv*_t^gl6<%Q-*cXt%q{wOwb=j<-#e3X zz{In2AKuhykT{cUOz@(NSC!|J+|0QT@2ftMmTK<*8f@)h3L&RIsFz{}fwFKHPW$}% z)eRE%$x8^{mLCght9ItzgOIP;))1E!T&A89QCgJF_p5Qj;9z=Cry*(Sj)(IUCcpCD zB|Ao1Lze{!W*}re-Aw)0sdU#QMAV<-;Px6hGwr(}R|7+@nPE(~s{~<3@E};f{A* zrr_~WNTSMlb07X*s+`=Oun!dM3FbF5Gu#!lbaqkB1x2JNmOyAQvAEpHDIIm^7Ksw| z7c&r(osZSH_C_+&J5)c45^;KhDOy2ySu|45h6Q&d^^i zoUwD`9;e*NA8v>e+~wkt$E2k;``y2n%5P#}oYV@3@z-wLBjo6AZ)w(Tn&=G;`Bq8qS5 zuzgxtjGxMoni#jO0;yoy!<^6dmWXD z*^_ZL)iN$z9EAWwMn`Z%%bS``5rXM&Fe;`g9tqHRf3#m`-PQ0W#0=!xKf^bq{#?8o z@mDhh@L1n>O9mU)C9F>kG-aGuuPr(M5qxw=7K1KvI^{deX-ic@!g`km!zwiSsao_M zSNb*`Ep>^)3}JJG@&M&KA#cA2EEYUjD@NGVYPhX;HyrbaGjupun>{~k{JH<_u`3us z%8P`{&Mh@3h^>MTO9o3FD!|c_4dg$Jz0?hU-kdvnymYU&B+^Ip32OQJ;NZ%&8k1k` zTP8xVj*(oZ$PCSIaRyT+Vmy)SgbBp*wT4mz&;EzVYuAzW;DDQDv&AE$Pf$D82U9R- zc}Yo%5bOvO!G(j6OF9Fc^)_D*PpTMPxEp!uGoh!}PZo}U9SP1>6ai!}?#7qMCJ5?T zfJmD};lk3wfxc*92+wU?{odZL!(}=*t$J5kjF`lCAG<6+1-n{=u-cI@M}lfMwoi^M zy(A0?3za7MXwSx4l@KNf-Z8%N1i3_Be*Y0tzRAV`KNjG9iPFhzE40RRHy}ag&16Ij zoMjg(mXu8&G;h7Ow`=c8oT6C?%PAFYRdIqPmQ|3JqT;=DDc$vuz1-!W5AI!Z5U!dm z)HEj~!cRjsrSOF^?5v0k9vMTUq*oE<+qFAqsrIf22@|qgebF=-eVx&XWLck@mt;BAy25E%R>E_%#4bt z)-#wQMsRmS;1`c%Du=?VtB*n2zI-ZLx8)J#DZHfiBu?jWyX7{5uwtL&T(EWZ+z198 z2v7QFN!jVV?p(!=$;ZyfPDYd1G8Fju>k&PamWaI-C9cphv3q!h^y8sNSK#HNgv*Dg zLt3FAt9}8{>%y0(-4rdoCmzYYpXG1E?#1~%nIIh6>~F}v2x^%?kn;;FRiyUS&b?*T z%V50H3MgUPjY`ywU2Z=nh5eUJrL5!$NQw&-Qn+yd{HUr@}V3nI$7_BP5 z7LI&`ju+laEv$SMGJTp~%BK=zuSo=t9DTE7@R-V_|nR%7w9*?gIDVgO; zX@{vWY}xWwRZiW|i68=bby?|3vbU2*c;`~1VhGc3#?K@_8X) zgvpnyXQY3dt}cMu%mU48( z(9;4$hrInlv3TtSKmPWZDSi%!RWCfR89;2{Y022} zW@9gLf_J*`6z46ZCTcq%2(*Ur%Czxbp}hdTn)|8%JuVvL)XNAcw2Oke`*>4kLLb_4&Dn$-zzsy zB(Q#clO22a@)>Bnw=mVJo$aHR+?kNX79kQ9{+maREVzFOM;Lu!a1-a#4u!E6SS(Sk%F1j$fETqmPl4t z$r7ZrB4*=6CUxYN2+H1k34l_7A$vdCwA^ic%-PKOJSpE|THM(iS!apa|FO{PFLOaL z#8{IQk%UUf#>wPw)bYgQ|O|GRAtQHpVD;HdtcUq9L zeZ@N5F1b#nzpR@ec$JG}XHFpSMikBrrI>8F;UgRCptZ6Lm-vD4INXw#Hlzlg|5T!9 z2Y@hXhYGQc1L?q4%W@y^a`I#Cv!ADmF7cZ-Bm8jpQith@D@wl}E;@1qDmKy{;0TQi z6N{xujmN~I%Z5}HbuVe7V-!+dL|zNVMsSl+US~O|Z~lHp+XjqH*5W>Yn>^neXz(N| zsUS;kLm)3RH>ejSc!%5$+8P_Yg*2{jb@@SyWSjPjB3fAVHz@OINbki%9!01CeI;_WdKvNdhdd1`CPbk9 zXb&QX%A9zcHUMGy@~foLEL^3Ca@*3IZIo%JfP^RGNb?UR{gjQVfe--{p++ZTy00G# zuB)lDM07=7&g+UOMU5UYG^aF~#CMV^^ICk%Q#QI{}uNOrG zXOqVID+m4rlbDd=WX|LuCm4FpetmSiSy6_2Bc1 z0I0M3vceOiaDh8owtmbwb*}{L&M!&A^(Pco8Zn5|$%9mWz}4Tl$7`v&(SnV@tS1YL zjyQxkIK+QA7Ill@YK7XcFXbvWsmw+DbWz}ur1a9w@;ig z^gP}II`0&sHlK3Ei_53Z=iC)@s9$+nT1f&mpm>L=?kGDJ`kKMrE$M9V0Ev~@jY$#q z^Kkp1eKHG>AU;&{t>xyXwvt7$q6BF^>{M5iaQX)1yw7NN<>f`0^7gbhkCpPKC?YrE zFQTxs73>PGr3fFACBvxBxEmKMR+{>2b5>`;3?zphm2C)IFxc5F28>xVdj2Y+gwr>ZN3O&l1I(xm7&CMW)3z=% zL~|&}C~B*VLp@BVHy#}c{@UgTQO5fGt%O$l3?D5@5jGsmF)UF8Jzrm4 zJYxn3G52BU20#6L8A;Zja!LdWe9CuK<+kRDz&?SmY%P)}N>wU=a?L@xJ}r-a6eGuE z6;VghoQYQpM0q9cJT4%!G~0H}t(!#Xad0kRX@gS-CS&8CGn#F#Mo_yfxBlkD=g^`aPHJTnSl5*A2T*8{O>JHWK4 zUpTi;h7hA`iGx(iLa7K2I@J$o6VgHCI|^9jNkTzRVL_yw+}2mC9fXW?NV5&xm5890 zsHdViZz^75At#UxP=@q|cit896FZ`e?12ArT#s2>wp6$|yLg&=H*0 z9y-Yh5b@Y7x`I%S$r#z%_2wKhL#EJ-F@R&s@)dZsw^R#WE%Z-IN1S}at{C6{n1X)h z8Ok1$5u2(TEwYCUMiuJ3&mN<0lD9>HkS z^`ReFc^IYPXIpZibwkKkFYu_VQA$Jn#}A_x3%Z2}vvc^N7sP+&W?)wMfX`GS5+8)g z{8)u=CNSq1Q;YlH#W#hZ_C0oZ?g}g%UzS?W{g&h58EF4|C{;hc&Mxd$#7RCK`s+b#M$US2sB`qG@dXpW{f zm}lfDuEz)-59~aE>Of>OCUr-|+5pJzWaC>E!UrefSD+dJ6or}zJQ1h%#AT=|9^xVQ zXHLhkU`@f^aBM!XHE%hny%G}lS~h`hKg+swacJQwW7CkA&ij}dpW!rLnh7YC#Z7!x zyOfj&srDl-S3y@5>5p4Und%iJfaku>(S5S<()|I$N8{{tgk72&SmPXtV7p#Kfc<)ie#X#A&#F@^lcy&VE!&=5B(-6#U;XnF=prSwU9E9PW zr4R$@YvE-Bxv`Eo*i`O6OVkkStL7$iAH;pD~2U(*a5|S(a8+p|5+MQ%XF#R9_x+=LDmL?*oL`4G1 zhIx!%y%E}WpeMmhpdG02EXpxXS`Iob)%uY#1%}rz!#M|cBQy%2d11L8fTq@%`3O1+ z1nFeF%HnbQ@ISxdQ-YO5*#?qY=nC|_%r?FWpJtY9tg8u#n5P|{;{w_ChOBAe!s@@G zz8YIMGY#@bY?z_@Ja(cWxhw;aD2;uaRZ^>GKcX?(gSYw zMtAXG8c&O|PRxs>Ij;sPU#7xG1yoW_WPV)PWc4K!6_4Bn6tXoTH68d_BBluXuFY)z zun?8!sKvPa6lX7(o@d$kInj4_5n8!`TKQpx%N$+Jw(=d|nUj%chB;K_zJNGm7VJdx zYl8CNJsh6srt+NHYf#vomaMh`Gt|rD_MZrGvb%X`E8K5+{6On2qddnx!?B_Hxvx6y za2nJA-p}1+rS|QZbIWSq_~!m*sL-He6a3soI{Om3IO0#k^0$)Ba=9ZLAIg&C^sa}P|EDzgq5kC1{IaJb9mVgVcN%|k4~d0HK`!E`>D2Q zQzpo5k-WORKMhnfg(8Z|7ngtkBKeib{;X$4gW>kgkm{CzD-k}zX*aC)g@5W>Wuck~ z6}JNkcf6|dpsihwO0onuY5(_4rKtmGn=q<)8rc9mkC;m_7U+HAFzVlw>8=LUK-=^C z&eGMZ;atQBm0hwo79V-gY$QlRem)@-)n_g3pQE0+HWAD}OF~M2NJnGkiw3E(?c|iMrT9Z9pBHo0j=~J`A7LABFU-7di#}N*X*I zU{gE9F&r90J>9gm_qIKeaG?;@2 zmH(k|6yG#)o1Ua)2)QsBoe>ve@=%CLC#cUBgG&;l!Ev>#d%LVxf{n>GHNRQXo1_d+@*2fI+)~J!ElL-?E){KQ zym$w>kR%R$yYtiK=il?Km#sd!Y_v1DwxHYYUEybQjd$4w1aC1V!8OM|yC^-PkPcBK zngf3B*td!1SDYs)NnA-gcTx%~MmQvGT+#-1xj^{j)p!u0L+W?>(4UtU1Z zuL)cDJnG*%dUGqN%3Xr+U@(Z zLw0oxI;Kn`$QJ^`ktEAzeW%kXt9eRw7&T-4gOq7rw7dP@=nx9>n>LA-?(IJb%QpU2 zP;6Q{8^$WjQ8u^8mtW?sG4lQbe5Uy`$0upML-1@z(MfTXR- zUp}`%(%leJ4pw>7k9`5HWY^mKi0mqGd*%EYbfcbzj;H4DV*PXH_Q!~>Ac&5R zg`mM%ph2?00+t{g)>VAu2J@8`!MU`|ptC!RZsgt=0XJSVoCUv|PZbY?+qY*t@En8_M?z03X(B%kicc z1+fNiG(ryY%`pYKr6)afT6Z_=dr82_h-%7O)i=B~RCSLOGq;0E8B|e8kfu2bDWKi$ zC|}|Kz{2p$D}I)=ihkL9AC9l}8KFTe1L2qmA3%1)ki3Z_52+pJAGATV)GYuFwJ>wu zJWRYiXwjqB1&C~EI6nESjtdGKEnl&Rv`F7*d=$-D)BtrYDGhkhqC-*mum~F3!EIbiLzw#5=&bg>*O^Eo&+4%yo6}uK ziZ~pnogk#mYkB#thIxk^`(&-m@(Sa;BnVP_n+_~Qj1WoaLa$|c$h}YpbRe6T5hT|H zZ89QH2`Wh~s4_djq`Eu;1hJSb((2KyZy?J}i7UK*@5NR$&$KVpB9pT9;Cn2=UaS1& zF`VWJV0fMdbcE^c`~RXno`@uVQFNM9`28*-Zq{Udbp69Ki0h3gd&&vD4?k#i<#>0= z%WncT4m>ep5=4y`7B;g4zZ5PwX`ds9)*;gi9va(fl-B9_KZBHVpok|Hee*Kg zrL%g~oS?GbpTBKWhv@mVWYY@RSRhKBTm!rK&bCLwV|&NkK~UvSz;c;+{HBAxH4{P` zGF5jO&j~tA^ZSdIef~R;6mwgS0uo)@8$TU^O&Cn0TplSf`Z%?cG~UR0F&=PX*d9DI#|aH#@K2z=L8@YLaP!Ved-IW$Eh=b4d0sxDoy}9 zFIpfT85P>lX!sgnf*3un6WagN?#IJ4@(CBcY)`(owj3UOLJ-um0RKUwCe=wLc$t%2 zq+3{qu^(RZ@&eMs)ZO)>kGp`aP~)8`iOEu{`lmU-u|qsEK7OdG zn^W&z1H?p(|3D6o(lJ(-1pU3tZtMS5#vnnSw^txD;5%C zE*2wpgYH3D_ps6T(g=)$X+B9ZQ7-lsA1gU|&}W1>eC9~u2EgFaaWC|B zsvYc*h2#l(`G>ZN`tqoI@%*M5w8h_Qs7~a?-DsTLAQ_Gy++4K8J6GT?;^Bt)mt~s` z{hRi_=R7o80mCOT5@G_)Zx(8SFat4ynOnd|JXOl~-h>UR>i50hI)k2hOFXjk zR4@y8X6d8uhK}+`7_Y2@6?7fb<%$M6;A?3i3i_A)!Od>czExu0zEvu@4Ww6|PmOlW zk&{hW8XgEYwY(~dR0OP--`XIe5x3e+LmQGW=)>^sxaeUm1}rk#<}$V#!p$|S1M+_$ zWb6sIKCgUl#rA4}vC%l1k?Ypvt3dYAwipDNkk`|&v;9i<9GCv6GqpuqDi(otT!tK0 zlKK6S_!Hk;>t4T2e~J5UuS5DkC(8@MJv z!Z4Bfrt!x<;-{m+<*f6U`vNTy-luF4zBV}N`pH6^PclKP`anqctsjh&DR82F+cu|q z63E-sP`uAh4RwYeVmWR>s=^hI)b#^AS%bDS#UslkNy__+`L^>Z<_hW9*Q|f@ zDJYLeC2E&Og^l-=s)?7Hn{Jf91}o<>4Y-b3|H) zvDddqKI(1gsF8=G3aBg8aR51;k%eR0)E<=I4JBNG{Np}H5Im<3@0hBQ1cU@x#cnrl`VRRvwpYeAex`rgVMXl z#KCxy&t8ihj&Fllep?=_I)V#co(AxWwOQU?2CR2fT1scYTm^RaTHsx8ickp8X%O|B zM?fuvvaWXu+)`n+v?3}e`KVGO_@Ch=8ZDsaT`(3$S5}GlVVEGOOe)@|8+{$}gVNDd zqeZa8`69%bd>D8hKf%p)m=hEQ(KHnK)-n+fPe9Bp`VTvZbPmtn}7_0S2K*}O)1dG(+B0`C7X zubD}QvnU@60(v!sUC4Ia#+es+>LP3tPJ>oL#mBjfS4u-I@bf2d0H_-pm%?2zIo#m) z6h0eB0AF1D1N)*`$Q1cnZM@>8QHpMWbBO_*F7TppCcny}DDV}081B7US+w-<^;N_6eI*^n;RG0hm1d7dxdMGIHYyevpK<*%n}_CtD?%H;-k66Bp3Ccm*&7kARA=q4~6K5&y!t7opOGGyj5kV z13;09#c_r4)S?5Mgz<>AY3u58+u^e?fl$P~jKn+yZo@MiH+UM1;71w2j?-5ew>zdI zPGxP~3f|Tpkp|;!>g~^*Ir9qDg-0Fxwpy0Q%V3EYiAO3~I#z3oTs_kO!>Z~$Es~+I z>5m3bq~QvPX^xR}z#O2_GHzsnimbYhb*Km>SnKv{qR0`m9cl5r8l-~+b3TsDN!0q& zL`zpfBm*wRfLirlqe-mtHyxb-J2}q+>krv-Cwv$_yoml_!d0kAH(Dg?bsPaH1UC_+ z5&=@Y#kd^OqGK;-v>h7&G7?lmIOvbLfr~!kNfgKM`&K|EGi>=Qa3NM>MSB(MjS{?O zDO6tcp(Zb3_H8bsuR?MiEU&x(VkM?V}-SSCVu86$ojG7nBW2(;y(x!b&LYi(_ z)DP8M=)GC)NPb>{kQvHht*2!uQzvP&l@?Vq+UilqD5S%-SzqZXvTN%Y>O?>-H-vK3 z?O>pK6D-d8R8&;zC@q4W#^OotJxC}OC93i>5 zRv_X-Ih^Yt?_?14iYz*w*(`wEEPCUT0NAU#@%-dSUHMHA?7hPU{kXy-?+Tn(tk6Kk z*)7(yv#?!?I~E+jj3jUZ2&~C3goh~5!Sony1>Vm9<1H6(rNNJO?E4Ajeq9Hm{%l>G zGyY$tK}6RULiVMKG&z7DTr`Ts%I!;nP|15-(9`hr>5-EmJrW?>IZ(BZ#x&T5jXQ#* z*I6h^bUphn>Y=g1?vO?y2*|pz-+B%E6A7wHsXdLlfJS%X3S&8fjo2uw#%aQwfhBr8 zsJ8oi$tE=NEY2A1Z@4};I>p((2mm0s20Y=aY!4~4q^C&qSEnOp$zJ1xz7ZPe=o)=XLV7Se!UiEhTwP8ctKYA@G?LE zYQhT`a32vz@?A0hZ6@{SK8_!Phk=OVGQ?~hpiAx%)E>+`$#FtI@mE1LS!8hSkO@lZ z2-a!c-#IizSlb&vSAhlt-iw(Aa3no+BUbTov&BdeYElxc-6MUlH212S7;Nnfwb(if zR~fWSaaY8tkU<~|)KwvzIS`!YXpo>(VUHpc>SYL|3m}M)*~+S7e+hvTSY-B0WRAwu z$O0p76(6mTO1V?P#_iV)f~av-{HzeCrb}o6{NzN7B4TwvT{@b2JBowr$D9t3jb|{q zzpAdi4DCO~)Y!!2B4~rl#$Ax9v}e|r;YXgqB&r=Gu@Q6$*O!z@_WAtIS-M0QCSpdq zEYiw-;n9o&eKGW)CU_n$9mYi)5!OhBC7<)K*54;U_2epu!?Q)M+5*=T?(i}*$|f$X z7oO51xBdE>6>wnI-9S}i5NAU>BMsAN!&s3wR5G*M`z+9@2~%%V6bW|1L8s!pZJr~r zKt2a`iwMCo_wHs$3gLaFeoBy(XZ-%sy7ra#Vd^Q|@t=CrwS45s3uL6XsU$R-nhq5` zfQP0b)zgoR?DQN!snfNQ9|FObawPVe{05a`-D$Mnc2JGBBmpSD9UMDZakyJvzIbcZ zN~F+0!AJPZc?wbrR|=dIwUhLcp;F@+Ny#3g7^=3Xc@p42rnw$-i0f4%gARg;q_ytgfMfyDmD& z?h9N)LVMxL@xKWHyl~$ua4qs18>MCgutW#G`Kq#l-}u3g&S#*rQ?WAw7gR*_Kf+9e z4Ri8w0(IZx6jG0+iDmgYlAEOI~56++9PL=l=gXo1$0yF$C#POL=5`O$&dO*Z}-zGS_51JO+VZ$`+R5ll_ z6G2FoU_E-KUV9&d5w`V101{`?B#nEccS7o+RAk)?I}{Rf;1F6Lr!|lrF9-OM520NA zRO$j8`lAmL8R9Jt#^{2^20ty3n5-ZVxn1#FSkU`$NRnpb&h6l+y{?0Se9XNm7h}e?7%K z9&INrm94q0`73;q*{;tx4d+^vg>NGWo+&ER7eZak^2Um}1t}O+1we0z*o*IvVltpY ze9IAd;tG+-eCe|UwDJX|n&g|=KuJe@>(bHUPf{PClz_we^aOQH2yRxZK@!S3Y#<3x z7Q>D;aZV7tREUd(%wCic`n|(dJW>0@!DQ^fb`~s+8$;wB9g)`jSXjn63FlsLuO(Vq zhxqGnD=a#jXZZ=+0o&%E4N2Zx>0=3}Ad=h#c*)|Z%S^K~=9byy+^nJ^OaZf~6p&xFztYD9ar2dvYTG3UVvpdnDCTCCG0wSMaBLvG za!g0Y&idziy#}tso434&8ZMuN1f6@%1u9gy7aAHv-n4-k85z_bQ3U_2?z;Kx*=qEF zM9NETB__z_Tn%C6QSiG@qtM=in`cQ4gxi!Ploj#rLm$ge1eC=>?P)MBA1~QYvf1@w0r_HGpiR1Vn;xsY)B$Y3LA?;+|CPy>^jPr(P;54R`7cI$nS zcrAq^&yH~miXOwVgraYdm|Jm9m?ku>!z+<^3oF_yN>krv_T$7$z`5RIig6Z+Q ztbcm@5IitI_T&C(v314A3TkVkxa_CyDlU*#Mm4!3NSsha>9wf^y6W+Uj$-*o`mAreFZiS__RNQn zg5^2zcNYuPXaJRV{SCD0&lwB|4Z>BYenxeY zEMQuIG0V68kLBFq(h{GUYlbckQ2&irhxgXA`eQjDPHZ{A!%8#3p>=Wy@%-=+bvRYX zyVKv`r*W!ca%;-xZmiSp&lWB94A!7Q%XWCTV4RZ&-UWl4AAEu=BNcrygJ2Jb^^OnPY_`@8=aGlFm2W^4?fQ1dgPw$S{ z{s|VbFaj~m!v5@2{+mlnx(}*vK~LlHN+&n`k~@Z+;HCxo(;X1rx}qryQ(gPjkdLDk zd0pSe3Z!x`d#jCPS)Xa|f3em=RWB4p!Fi`KP*f1-@g;>ganRlVQQ6J7$=$2>s&|6X z;fnDrK;ik9k=u|t&s!i9kKiY1D8nsdRV|Z|uDj(LMKZY_etfsbCF+TNy3Lq{#^=N#coO+R_hP>aC-Q%CO|3 z%6kX-hvv!&CBm2SS74vbcpv8f0WB&1F1ikP(ys&2QX1@YWbO0|Z1a~-FKy+pmmD=k zkTO~_12jD^8l7k=PF%SQa7m`BU)Kw_#y5LCI1*88aPp+3#?I(c+-5db#D1g*E}a1u zaF)Vtkf&pB;rWQW?=Gf`#( z)aj4rHS~x_e){PrC24KM&V3N27jADq`U)JJ7cDpo+0Q(z@SS$Jnn2>A@)AEu5VEBy z!I!`1YlPGSI0i8g@ILotMLsAk1Z82YG*nDau)(3Fc0e9yGl@2=q{r;+p}KadhPRmVb#Q9?pnLo?w@msP&XwTIAF z8sLP?bCJ~ZR%<*RS6FuM0{@-DWmJ)`{Z7+`Met)nHm(&POSr~#xX-eNU!lzN{=(Y@ z&}|Rc3qiSPX*6Aiy#6|SOE2K&&_zS1=`-8 z-h=F*&`teO?AOg-J@Iq<%x&0W`27K!NMW8oTj|37=sW8DS=DXZ-!Ef(bhr4YqNZ?7 zpgpW_iRnxcg+Nl;SNcy1G5g$GC|O5_UC;aS4`svZ_2jTQIN$npQMF1zPqb$ZN>?D17q7QOseLi=%~9^5-j^FL(M& zS}MHW_f6j(j-*@8_Vo~NJr`X?59X8m6ws9C*sX31* z^Ttu!aud{#^UEgWXDG;SwQs4eT!G&*sTV~+h{g|PTAE=X&@eaYS*vQ(M}l%ayIbP# zL_}{sA?-9vE2NbRTd;Q`JW!9_dEW~!Y(hnyBqRp((7|B6iL(zC*CKh zvP*Z`KIlTNd;dV29xV{Os4Xd^jRd#6fV3B)XtoWcmZVpU0i^Bq3`8#8@Z|>pt9>hr z4u1Au=hoyh?vGqN=5w`JwH@~HMHmkFjg>14l@^FV{uAh;``1U6&BicV$_aUQ_>glZ zw8A)sCpg=~WzgwYpwrijqAfOjW`LP_AMjr=3&Quc zjQ&E3-hkeKA+0Fb9fsB>)|rw_bmacZ+7g}c=9X?N8$)j`)v!+=aOWrNEa+^^^ze}X zUoY<75n;de>!izEnNLg(5Z`xX%hbir^v`DM%hcrWnH`%TxtXrq&L<}*&C6q%WfkZY ztek(kMoxY3`Lm%rPxwuzKNOy~^V~6VS7g%~7)xx!K97 z)7V*NQVJ7}Nysn|bam(`wY84B_>;~UbJz~{@j2A|?%j!nckHAIH;eKhh}oWDZ%V>dYR{I)AZeP6+2dVz^a70H3IQ@ zGn{Lz!5UnrD!wJ+obmmw=TAhWIhPV~Opg>BK|~mc#h1#Z-K~4~?$S09g11cyWkN@# zP(#J&B+)wkMjE_*-7GP-V84cqTG7{%L!`EqZQ*(?#p3nLVXNZSf*#F@h_OWROi|&? z2-CgHqeN@JXID$GT&?Il607{o4pSORe~@5X{|F}798vS&89WF=B&6JwP3d?MktSQp zPEGrGlJn`imk+8_s_$llkz}x`^yr8I__JkyWt#8#@Sc|z^0D(Z>%ubjn}|U|hk>2O zpxzxItfYW|?4>{lc(CK{XJyI8?|CROm0lFaJowt2naBm~%=0MShrTa{P?w*HrpV(d z@_5P=k&yLT5`s4$jkvF#IYF6(J^O~k(M6rJ8iE5`0>OcO^oS~I(>v#C z&ba%oYj~im7tnw}&NRb@Ee#!oygAVbPr(Rc&lG`)ln;p{VY?}CN2H312>t*HD4;(z0x*_B3b;6@BJVl?~wVcS@vggC4g%=#q zmaL1&4O?i)4O?`u8y2r6eJ4Ad-~bz3h`KWhn| zrb10~eA_{^7Eec-+$4KWZK8Y@xI_rOD|gB0z|gFs#GA5BnHdsPKMkBmL)D9bkmZ*XqLNT?n zqFP~5Q!LBvbw(0=Dr-tEq(|`1#uGo+T6piB2}=2*mM;YiJGK@pUWf|Vkr z@3wrq-?dp9zjU+H?%G#5KK?cJ5v;|GBt#)&}H1}m!9MK9-QR}v9Jeo(DK`=$D zDpoq&0ZJ6|4Gmm?^?e088l{es8A*S+IFkIIB{d~U=2JvjPaNO&#l48^uR+bG#eJG> zS28km=1(A46-bMTi!mg#6@-v9%getKK0IV}keiV)P%=e?^%C=-12FanrOVpEU_%5bE(m6zBE_8{c*E4-X&s(-W1pc zc@=BnpCepYvc@(^d-Le`$nfEXjGb<7FD=)LlSg2)k>&xnN8%v#l*89xqmy`}vljz1 z#HG|a0OkUprHMalJubYnvQ3I0`_;dlY3gWUNy{}wr%Mpq|GxP1ij7udoij*Vf@lij z320l{7;9T^S$9{LL+~aY1R}wZ!Ppx_0wLa)HCRx-vbitt=X@8I|;G#7X$Ser!|%ygj$dsyyr9#0FV5ixhH+MUgIw?1z+xQ z;K75L^G45=X}P(%**=mbw#Qx!ylJB~MGFr2#Q=fV(iR{@zOk}h9$*LsX^Y0`f`W^4 zWQa^VX~hm=+~a}?xRBX+QGZvLg*#|Pa|W8U7CX~@&?YO!@$LS2X6s$#LuPvK;p?7Q zarnrWD2G5LYl#14ZHOA|2-qZg4QS{^r0EwOK>e0_c(|O!#|O`>d9WNF=fv22u~~MS zVU;NHY5mWYK%qe&K$~3uqaf&{4?4YK1dEr0Ph+waknwuPR6_YCNd0}hc6E8TKf0zN zGVZI;I=dzlJckQdfYh`{ihwIZpiJK&K_s58c`*F*SH_it9rV8$6WCWy6 zAg=Ud6&BSzaFQ(nAr)u9+D4oAe27?h!Pk8dKABpPG9O-Y1JelS$dCo*PEJv@Z(DFonvqj!u>zs# z(C+Ofm%Ar{R0$VaeS+8QLa%S4d>G#rzU^* ziQV@RCb0j$o|T1I=gS1_(=(RzZn7A;ydNwo*6AQkytc-kTD`4Wi6FP4WD6eNeY`SpHIOW+rpbRaN84$Xm-2*Rip^sXQCDKoZt-)0|lNLoklNuJCk5leeb`N zmG#}CR1Mp5{JZXw-V=X=`&%I&DuJL7L-`O=r}2SJY2U$H?U1iLe|+q;=C%d{*nKH72b+0YZ=^+b{ zyyb||?&}#Dmy8aUg#l2Qex2#Nhtjsfr1SQO1sC|Q1bTa|v|2P0axkaT$YE{|@*waD z)=~X|r3p0;TrR>JatpBsSvnPfO@Ell%D-AH3QtvlGk@vo!bw`(M%j8}2+QR3N;9K$+a80QI2qXPn6k3~*X15U%WT586A{VrbmD}2pK z+{Hj`h8?5r(iTvUq94k{;9DrUyD+zHN&|)?GPHmkxMpr{ALGjIgW>DG9|qm9s({yw zYdwG}aBRElzY9uv=hVGOl=j&kr6C-Bd#w;XRDDD@>ZR|t)dXl?)$bU{KM9<*45AUE zO%8oa)uxteqV>`?F=C!OGK-;Zc#;()U(q!~x>-Qo>o5xM)I1350bwe!FqWRnoeb!dl6gb+7s>wB5NM4n$1t^+M_xgQ(MHp2!cH51&c&x$XI&XbbO6 z<|Ada!S{G>N#EVi*tQoWUTJ%VvOj_*zG#Y?9cQJe~ z+B4+wCnrGql$thp9dyLLZ7LS2s|6V^=`YZ?pKWxSv(Fd=muR_{ks%fX7+!$w_^9SV z@Sf+zcA$te2i!y>gC^$0dPgv5(~NPDUJcn57ljE_MnxYcRCbrYBDXMr+nrFmK5!xBV_+&IEp6TSbaq~?S_K1G zj_1%}!A0=Xc9_xnbktq22{!wS@E?>%jlc*{qM-ib-YNl$QHFgSu=`_oyh|5@uELy- z;_$5#q
oG6O&)Z@3-)HDF0R(W=@)=)1W9EbCB@uC78mEP9>d_?gn!@!j_l>3CA$ zv3C&UE%Y$!2!cpMI^-4e_%jXUNNX|oSG@BCVR-fH7ga#oAbBUR;?(1#5f#t@2n*ZU z>V_T8Md625KA9hZ!W1P>I0zv~qqgz^ygPhlm=Y&Mq5u}QQ8=WqV37e-7mW{ieFu1+ zI|W=imNotvEZB@$8xt?!`DJC@cS4_smUMy}Sq9BrS(rb#p9dFD1px(4NxA?Qii}^x zyXfi(uysIC@(^s5afIC{oCqB@NRjvcRxmIx-aAj&jsN3p1%lYw?lK{1J2+48i9_%k z>Sx>gADMiHbNjU_qw1dC1@L+1dN((=L_WCB8X3P#dQ&EEa0OnW#i&WjJm3S{nf6Tw zPofe$^jUUxG25@QwP3&`<7kU|O%d3)hbQsjfUM^Id|s*yVCng7jFCHlq{(L5x(R+4 z7VNi$)URO6(lC{Bj3Zo#dyn!+QxM)fN_HV_jInc|5PO~z8JxxP%weHR;HcV~@CrJ` zr$s~$rcPeJC>QGE@+m|U!W}~-b)XCo zFw2}%v5ucRqcDIK>{S6gKd+15ForXVC3U=V5c+PxCZMtW$$)PM9Ao(x9}RCQfD!Ve zwf#Eoxhvq83~Lx~2n6&V2RX~3`r`vh#OpzHDwMz!EJevPoKC{_N1lg}$3upYw*bTv zC62?Sq5=Hw#RCkJL!+1~=R?0pB(*hJ@v#{8YS!AZL{kCXYRLr{N8TVHY8n|4F;ybV z*kN_;UJ`z;1dMYrK))pJ@olXZ73urn6v5;277r;Y>&6sdE?i}|58Q2b%Nw>^S(ebG zzXw>j^w~_?`S<^#^Wn;~tj=7yufU?5nxur!tAb@p<+ zele0x<&WXuHh3t1i3*ldVC)x6|E8?os#?ejh8mQ)E%g1o6~qjjv{?$DZEvop?Z5nU ze3fXVWDLJJ>!D>06d&GL2KUBcpX{9o)f68{YI)5D$r%u4)j_|+WqSJtE7C`8T`zXFo^$!| zn+vr*8r+aw=V1d?#*{%&pZjYUAaHDXxtm{WXJ=;z0|d}3_~#gnfj-#iwf9JF6vyIb z51(J70$V8C1W`k>tgK$G8X`g(6c?p!erMkp^zrkoA%*HCk zJE@T>3*_5Y8s%6^C!OqRQmfA71lsxmKR_#XXe#Gst5TPLzn|qcm|RYmYvmB8f#^?m zb~YE@(AaW5$PM%>U?Rs}!%7daAWKVFDd+F13dhbEGc)>azB!|P3?lMi=Phm^%JpZ$ zNQ_$lk)Xvc__d4uLz%;#@I?d($_jNrRj1iPSEy96QCrInGo=U~J2Tc4D*vAqHXKbh3MH_4b(%yay?7W(_xkaFBj@d=?e~UJx zMvNiYwF)3VSfn!YPTt_7h;`S8sNZRUh`SXcG1>i*^tYUBamqS_fogW%K%{RNH+F_X zfd66V_cpt)eS;;>vjEO&XCYh$b%1YgGcn9{HyGF?c*>1ju>Mb;kjWXtx$5H)b9$f*c;25oaTD2a^!o8iH_i^?mfZh9Y z^Z>(8@bz@aH2(fR1-AMJR3pR0?iV@8YVCJhVz` zzM{X%boPTmzqe{H5_@JFmuaLXjIC`&d$xt)9aN5GU2UT z=_qWWNRj2Azl?|61}66xTgYo7N)9>Oo~ThwhtDtW#SwfI* zwXxZwc02jo8mg-REJ|5EXO7tQTwen$R2ejUk{}5aywN{iC zWqR9n&xz$1EJioBIsq8*nI6|*W_sKP7PJ8QUooYgR0e|u%)VEE+dzFWnkN$>SJkW? z-);1A)NA&RE%=Derwbb1Nm87@4#Mijvh(tq8&X3Z>i6sg0j}H&mP|erb@EH!@!A&3=E0uH$pimjJVVdUJJN6lBXDx@?Q`vk*CA{4 zv}+u7hPY}R3ERQ;D?hPgqsyCALYy>)@a1+RkrB4J!I6h89kBa6C%EKutd~R#RFt!gJ7t{r~9aw~(>k1qSrnlII3EDO~0f>%I$~3va-A-B{~6uw+PBGD z6eFY|O|)PZhm)9$l3I?9a)z;UVlf1HK3V!T(sPg}f{qAQurq7bN%e3Dkp;^NC*k+A z)^~^~-VHUe0E{ut_Wrn%iB*FB_uk4zw-ISOD93Wuz7w`he$x~6$NTD(SDwNR<_~+L zW2OtePZ*8@3sIKB#xi92t!Nto3c^R8Z$Sl@)Zx&@Arr9ESbI}Bn_-=_f2 zV(`sr_RzSwSl-{W=jVyQ_+~h<=Y^r}38JBHuEXCU87Fbpw-^F8<2;RAZ^tsI4jb?Z zFLHlRu19;H?7n%`+eh z4fjBbSI>wFG$^FMn9#ZGV`OxARC#gQ9<_r=wllv6G?boL*tEv+?1aA_3nA^A748rVd3>=$7`V`7uN>opJN2J ztyTLpj0ihmJ1umnE)~+KhWS&Fj7NjMY^c1fK<2DpRWd$iVX9jJGtcRm8BXh?CIEVn zd_f^e%g*K&Y_zIg8g_(yuE2Q3yR-B$)qk^?gC@6W)=3kQy>qwj3d1COE@+fbPfXYu z8TkglVJ@6b3~lS|{0N(os|@y_K9vqzaTd1X3v9(H22^1A-&S<}{xB374l2=Gu&9H* zF=1MI^J?d}<5-tCr@WWXssFPw*kr7nB*?MGiWpXD#LunG9sfK+y5R*0gcZx@7q>HQ z^MmEjYy;V^K2l82v>Tv7nztIPui*5G;Cr4JX_)wD@!v4Q695*r16=MT>7L2AyZ=-- zU4_|KTWhSr2|l3MPsz||`C55Q(rP_iuZ3p4S9&{3{}7NwG~WJ82@kGZ@3W`Z*mf%w z=2%XKb%XaMXNyaf!;c=9P+1xtty<%zFkY#bNskvbzy^2NVChH{>e!nV@8jniyjwly z&MgB##0P8?6Sd)#j!ZW&l>(UejX_37mQ77-@~>W7A4|xG!%+;I*Tzi+K)4GKs9}PF z4#sv5G7@LrlsP@`s#_lk80b+l21@z&wnbWG5=6IjBY3RVf^$bA#gZe3-J}%y-@uG} zH!@%y4d6$2L%)8Y3jC_Z^0}4M2)nBHJKT(L4$c#;=jmjs=;(S;VyphYEteA%>b9U+ zr~D4k=ibewMD(#m-^wT67z+!_1P~;(l-&#EdsEhpWmDkSPO*?0|0g|WiotTareYY5 zf|L8>EZP@X8nFMWvA=e;zrD=t>k?jphH$u0CCwa2fb!9Xm^&E$@H`Za{zu5#3bOUL-B=)_iJaDK4?T?Bl-r{C)#<)*Fty|_4@<|gu>2M2RaA|>KlDE zya-%BXD#n4$W02v@FkP7jWaTkFU0E(8h+VC6QN6f6Oh%#Cif7(sY#{6ff|?0mB%G1 z*?_fTJz%hK?r83O=#kUBSR_mZ+tCL|mleD%dRji--mi3`0o=#v=ddDT6J*$U{n4$7}-OsB4l#}Qm z5`uaaj<5;I;W)$%R>2KO=0-+t^;Br~NPY)Bbo@7q?%;1+^ehN|4Ox5IO;wN+d6(FJ z-Jm!#R*@l}ujf?0?HUyjnBSlYqK33}58Huxi2UvpU(|xo;NaGmU|GQoqf|O(a3f3Z zxnWi)#ON6r)eTqE!Q{s())?cZs|1%{aJ-L4pT$%>WlaomYC8Wi3FE zG&;=d7l%V+@K5-(0$8{Vgk$s^3hz}lA7`YT3LMWFfjSnu>aFH!WF!gKt1aU`2RssF zesb)7zy5T)M1Kr932gW$Tq*%dQY)M)dY@6=BEMPE*ZJs5zpZ~<9+6`z&I03fkY9Rv zh_VmPW3U3p=K7$WMBfGsBUe|*F1QdCAs;ES97h{c@nFKDRB*Ia+ku;S?KbS2!O|8E-)x*zBWkF0~ZcKWtp51vnYrZW#^3pzD?fJ2*-X+ z7LiB)hL?dpbq+g$$3s6>6O-DZltXQUiAO>%{MA?jZC;x%B`@Nt> zMm}K|J#Q|l4ZFvP>k`T{vVujOBOouc{COFDNCs0lKHqSx(@#-qh~#33bN#^92j)ct zC8HQY0q)k-^?C+0dgB#v?kE~i?mJ#VwJHAbS`F?ASiGrwBjWMm@edr(h1M+iJq7YP ze3Yb7an2JXOP6LIu|bdCN6s_m*TkU19H-~*z&Z8e)IX?9WquSrybGugQ0jiIT42zW zbP14a_*m!4Q3XNs7;P`uR0$m2$3@_AoVKj@Ky=UgXv4GMs5|L&s41KYG&JC+9Bc}} zlE(ww00RIMqNFCVFsSxWpuL7Mg|>t!G#|m(u_Y#bZw}wt9xsZ%gXFa#af&4LNN~+6Jr#w$0VZ z$bkkH2j>B%42~)+2*T}NLHpOVh~)n<#;Q@431KAQuRk8qbB=G+k}k}YEu@El%tZ#) z{wND#Ne=Ls3*sLnSNp80p;ryhfbo<4_3m>C)F{m!;*)*_Eqodevc?CY7T!eO{Os)e zPjg)3ptb^s{VIA-^rfX$Pa24qF?ltv;`uBS}rh-Zu ziSM;$kD5yyvh)4+H{ah6o~SF4imcF|=OAnc@`=o!nWD!7g*U~8;Vrs<2mGdnw531| z+NnU9{t-@o(~Q4tKG88{yBFsGM#qbE=srlD4yPD7Npo!C`sYrAO1gy)S75TAuN0a- zqes%7Shjg?bGEk)o751s%cenjLZ~BYHiRtc&G{<>1c7yJc0ApV+XFxDIFzsxUNuw? zq|{gX!a_I3=FYBxa4}A&(iI6DtKGebSacHKY}TMqfAsW9Qlb<)8hi>pUQKdYe{i7)F#-%F zINcdjV1lCGol3V~B1rl;-hwd->x&Ql($Sad73tv5vtr}@2(sErXGBJ(o4HsM6^sy^ zQO=+!>DS)`V0CT9r`td52u#Hz^*JKbHI+-7#s%E*Zmx5r-UUiX%rI3bMLYvVZ_a9( zQbAUX125^l0hutvD-#h*xJwqdCH>bpLo_qnB~V=z`+*KTZZmHnZ?T16wbc194P~N5 zmTJDIbSF(Y;34czS_HUU3zDL=w{hwv@=IoBcDlngzPewJtUa$1--1Mh2P*v@i@Jc~ z|NIw>L_YtBLCd+o(WD({)>H43@60R9)ddKo16Y~Z843PWZGKCsMvhgO>dkr$s~`++5*uZ1os@FOCc?6&oWMK4#he z*uGOLxnqI$7LMVIALpXT9 zwbps7N26gl+){z9Bvq7Jj_HNS)ia{dlHPkR2${_}QbWK8i9F-I%U7e%XUDjS@l z37)%=r2&stt)WTOn{mM>lGwAo2Xdvq8TuB3k+}U97Q6`|JG#I7%E3>XkY;Xob+%-% z5>>Rzo_jf?`N8DCMxVbHgzy#v4em5PKR3W@q^NgBE}ku-d6$Ja_@~>#4U?!4sD4U_ zW5k6KBGZC=+urKAcN(VNF_BAZXi)TLgll{y=Yon@ssmsE)E-q6xXSio)Eks0z7xk( zihHsYjrJnTU4ON^5Xt&{N0X-px2?HN3X`{bpd7?cO-{I|&iH!z_)K4s*xx2d&EYb} z6{=<5GjhbEIwiQSPL@;rxYS9zbqkVsp5(%WjL(kqI~<#ruW5LZuU9t54-G|sWCU+_ zXK_<{RZ*jsNmPuTLE3!XtGHP^4b#0!a4dtGysFSj;__J}@=hKBX{Tnya~Q9t+~{jF z9KJYkgH<^Rk!yI;)pmLOfqxFJVc5}>_%;nTwPwCZtc8P!j76}Qp4~TbRY|a!`?Kr6 zF_$e=o^MQ%pCi=gww*0xTvYc>mlQlpn#KfXkk8vb+sVWVmOU3~4?j8bfna9C^v9f3 z^7TV36-rW=-HTM+pwm3QNURI?iPEEs#`229!n?D2?}ZvcCC30hw^Cd9%$}Kp>c0uJ z?VY$PC+Pe6Me{+k$?SfID_hX|nX)U3VrKH%F)fd$5R6=o=tV9qP)%*_ivIddr&HYmq`%g2`&fGTh8TT|4lc^d#`2tiwtbbJ~!FO1?}^j#=Ad%D?;+lYXgsz ze*FC3s1~`U`EVIMkV;P21oZ?%H<#IBMV{ZK1+>UqTy|0Rh#Xu&^hNf*6L)N?UXxnC^WvsVe5I{ z3HETOZNwAkC!$q z$lWdbRd*QWL}!=pQwSoq{02=Akyhbw_2I}YQ^725ckAUgA=R$66d|Ol<-^KvdNH7q zb1=Fk!DAcr8MIjq^n`x7neDWRiKLKg*>f4W^-ZDfKe*`ux9ojT_Gf_CI=$_(&pKVk(i4wIlV8+R;Ve^?Ya+BR#kqdrz zq4m)Czl-c<7p`-e|KnrDE`TIreuTOwO4_F~n0n%fNLK9K%5FdGb{>LqF;l<-fs}V4 zUPlDo(j!!THIeh7o9Cy#TFy@eY9DT3Hlh|OI8y;6h9ezrMP^( zDkEO@o~z2nk#jW2n3v0=V7)StfWnFn$LYZJfyNon>>(p%F*Dw8XOQ>1g7((@ik`_X z71zNt(4MH*PB1fxD%wH~b18TY8Q34MjrZOMoeR_5AE^1Eqvtqyw{a|G?lwHe z7qH>&;Mzs7RBp4*v=F*fn0pG}QVV*DM=>yTh*xz4BtIGR%)U3B3hq6$I~bRtjHKN( z`*O5u!RE!M1o?~?&CkervHhx?afOR#Pnr0!v(KY$fN!M=a}ri9nLB*9j7_i{+fU>BBq$Xa4i{~np{aw2qHXp;8hYqbFg}Tp zytNPuynPs}fX}~F9HZs>=@oPLAL<+TpV>FhhpD2$Uv0zb0RZcrnBb$z{VacVI6E!G z*}>5j9kSUSEr6+ps;6%_0Yx~tvhm1gVY(At+Iwp(K} z6zhqt@P6=yi;dXqL_j0c&L&Yk^~`XMoqiT0YP@qSeSP;r1uA}Wd*mca_JS@#up2Xi zI-YoJIM^8kt?SuNGJ^dYwLu_kH#Xr&^@t0_5&`ZkNA8xL6nJTIzN}cM;m<^lI2zh~n|q&A{#T9V&O566 zk*RijBTHMV@GyRaWdCty>cL#Wmsh(+gP>=lu`$xSsu?aNwoJntx0M>noa@k)KmSKJ z$ZN*KB&uSdIwn2%Z#s22wx-<}t$kbZ?jd95YRCj2`0P7aI1kfc! zi`<`ND;B(7TFQaxP)t8aDCF2$fd4a7{j0C0!^jyTIiZqv(*k1T1{;41_^Yh|WhSbQ@+!HOtR&BLMuW^alCyHa(N5bx>~LZ{!)o zO)H2OeDc6I&c%U3fZ>97@&rw32$R&S%7Q+6k|x9w3eea8b-AFWg`Xp7mTVXC-p%GP zKMPeSd&OJ&EXX|v?^q}z2XMGLv$9oX@-8i8!2#dB{g-F1?g$E-Ju1lDljVZnaYM-E zED!^>7fF7JW7`n<&{7^E5eorl-5-|g+FSf~C;30~xz!yp3Tj$g6$UMP257^8KeNw< z!`3EIwi$NvF~00e5iy4Z@f7Lg`G|4JcOlQR{AEb z_ds%G>1x`$mBoBQ96wu-b+>HSkglSX>@GAG*8)qsA&(sSRG^sas1FK-&RbQse7S?> zBLzgH_<0m+riQ~{uOXZ4l$@n~OuHvbXY>KQ43hN?1T97Ji4j%M^j7iFO-txIt!ciC zr4p#l_pFLwBWbP3I4t+sXV0D3hjETnS-M@M_ipHAD4HdUVwml?i3am9rC&XAet+5( z6M?EDlOLQ>foYp&Y;KX5TRY9J3d+v?$;+*W3}^|69VyX$8yhWX5N?>*R@O2fLK~j8rWrkUCE2KnGA@bY+mYEiK`Dh?oZXT}iGOxS>pU}B${@P$g z&4xhY!|&ku?&ZsSa@5$WzWTBgLPYFOWhr&~$o6{BLfNUbhh@ zl#?ub?{@ozgJ@PrC6g6761AAm#rpd{^W8KZ6FuiKWu9g3qYD&>FR5Cve+|h{#(t(2 zpLk+1(DJ*Y9((uWn}Pvuy^YSuy@7X6#12q%?&Ek`&^1uFAUIP@S;DN1242B4*fscT zH|l6Iue@3Hv>cJ|e!2CY5qXDWZkQ{NhSf|rVA50gK7C*$`oS3 zR>J4V?Q(~~WyPzNRNzt|y!SH)JR&Y|Wy~H@VAAaPlYZQ*GpfnDmEA&?rd_Cv=j3Fj4e;O?aE|; zi<)Ky<@d{;0!;B1t*UDy(w;}bU+lTe8PFO#CP)rP&+i(sG>OKG<4uqgnrouEGfFN#pBIEMBXq4nlA<*b_UA=PewB}q*?Zz{zNe&Tk#)N zI6>9{eIkWCsAdv1IsqkA9CZQXbY?t-zQ5i3lJnKM z&L-LRLhi!^%azoDQDD3>x>-B;DNbx`Kd$5e3XN>lhAU8Lm#@d+g%hwMe5(|hQ?oBc zx=VDsRr5MzRz{!ls{(9=euQCbU~!HpX6DVL*aCS%3}gU{#sRq$PBd1q|Cj@Tw1Mvw zc8q73k@!b9&?3QQSPhlLz)e4$hQn!_m`|R#0pd$;eL(1!d!ce3AGjg8J5oi9DhmJt zOALXr3@+;)GJZG;q2YJMa*;okL;`d_EjU0IA^hQpsv++-Fy?arkt9!2-%=UdtZbyz z+>_-wVCL)hY`4S*uK4)8s<276Ujum31Gl5n52eixmdaBM!O?`79lm=k69iP>C9L|KH#uAj^VqxeOV00Tqtt!CXRQ-75Lz6ET9U5Zjp(Bj^fI9}8LWEa0 z(Hk{t_v^%}2krxP!D504cP_eE%&GgpFLv>AMR80@Yd|!MsLopUVaH7|M^1#k-{8W)sCWu(;dX*^uD?R>H0#V=G88j@Mq$Q2b;QU8`vl z75~`v@87?yY$|TBe`SI}*(~k)pkkI$QO2>L@X6JcI_R1n%##$n)N@o3UHHu*fh~x<71J(5 z<1=yrq01?C5>K&GJ?8bpJB09ER`3BV{451+QAtvHoTD5IU;k-kG)M%kPtiyi8S8?@ zldmguSVVWI{>T#zN^}`KfOdRq3H<^lOu423ew`&!jy=uF$5sZvLV5ZWe1oW0ZVPF< z2<)FYSj68@_p~aBeZW|h-2f{`29M|;?%ke(^#DjgRHsI-=Qb_?$MymDa#IZ=VH@`Lj!0vt-~Nkdb9I>NY7T9rASb--W0O4rPmYD z+PjE%t?0Plm&fubTT6t9buV$1FQGOhY^~jSbp3XjYL=&g#&v6>t9X2Gl17l4!HNeX6loBEbabvr|^yS zch?jZ&)$knT*ywRT?*rS^;R!wyO zUh3tWR*gwWyZ^z?;PD(Kl~nA$rr6tJqR;EOzOwozhHuH0>Z(u(Ju{;`Ey?@@^_C(g zHd@j!{)jS3vrv zm~520LtN=^|@BxtHXgkp{x*doBB5!X&)K zn(0JMJ|*8_h>Y#At8W7tO-itTQb2sV1PE%STq&S`=rYcT$C5aB6+u#XWsiro%sT$# zo2Q0%?61X_*|M+Z`WnJ*%82t=#^Okm>FuNGb58}d5-d+b9{~AZu?Z2Lj8rC7 z{e_3ymr8R_v0rkiTpE>$B{R(KPd}vQ@5I1zV=!@r8;I*&bHl;izCD=P*d?tJKCs%c6#v=T$TCk50t`3U{`s#-) zk4snOo_cCcS?dI>bp*U|hR^SUs_VIjvnPzK*0G* zHk$NTdae9Y9kqHfx8pg7wBA4+(-f40URs|%fFw8}fi*s;+4n@Fmci$_LwA;GyGs={ zNlQVO_zPIm-aU9I=^M{~!E0!%1%p!o19KyAuC%#oTENvXqtYI3ft2wzBZ>xWpg|2n zRkEDC&tm3w=m|D=KpFFgB8}sJQK7L0ysT+-w;3a=$c)yHr}Ls?p_GD`&f6byY`-p8 zK&8p|b`k@M4g(oU;ttkdJCw%6r4sDvHjtYu=!eekj`;vsQ51(5**sM~wqGefXf~vG zvlJ`La;ruI^m~;8^iM$L;&z4-Do}(p#nJ;3&|u$Bm!b3sKH@tBB#q(}ESpIt$z#|3 zkV#l)g7w-hH)Z%TLnQQt2!1QfAuN1Eyk?#G>t)7T2H8++VTgj)z`XtCYLN z%9h_rMDlx>n-edPDfbz1KpwWQgqO?@IGtFREum-ac;fcCLy+DI}QP= zW$jh1&EuA~B;>;5%K8tl%uGvHmU z;DB6*(_teYP)5Q~o?qoe$jBdj)X;K!P0_RkK2eo(g8IQg#ac<1|0we1cM#DTP4fyq zNKLLb8@3CamO`o_n6>wHt-_@V2T$L-ahOfrFO_o!E4+`3CTSG$Uxl z_E6f*5-vZ>O=cNt3f!kr64#=a*TIN(h|v6Dfj088Ciob}Sixq&MCl(XNst@QKbRa~ zS$`PfTlzt&SLGED?j<}bSr9<>)ym}Gt#aR*0IY-Pt?qy^`reTF7TixDtAh^S=IDaP z_JVEW5t}P|gR8#2^qBm!RP*t!?jp_lS6dD4*9PM+Heyc4g z1f@+MaWL((%WhkusFY)Y7#N7$%99tg^tRAjdGu{%uRIkW@oF0y`F=X?zft1bc2tXc zQg569fN^BYdGP}p(doEyf{5va0! zHM)w%5^?O@k6H!5M)tXHd}3eD<9Jp2)9Vf}6t(B~A+?;9=Cqx6eEd(gFFp^|uAxCw zPrsEykN{-IFzi>TB>iJ>8sk2^XmW#zh7@C@#1yIkjQC0oHkefo~R$KxS z>9XGz4S)nw1yaW1gtMLUW)@I&|8b%F#Froc2q|k+~0@O3eVq$dhfF!-$_d~pnsxIqGxhW9%X0y!XGGL(W(tj$X)%ImB)brra>=2--(08AH?&^Vx z=0jA5AArh1f*;@F1`4V(-!>$F1ro|J&=gcRH6?R$f)b_QVpt67b_=b#^*|KO!bsji7-c3dRPVqCVOM7}- ziagB}rXZwSn58rbK}oULz~et?b?F0uv5~Z)3S64=mF1n5{4`Is^sw2j?Wn%S%{1pE z?{(+66!fn+iOp!*i7of07ubgF}|U_ zL}~x+(AuFjzJ@yrcz;4RIPF1DB|>SK{0|Ti`)+2%&=_sG=CWDV*2{Hlzshs#ArA3* zQ*$R>&lq@ z#E1>hQvH=n>!nIqAj#|Uz-M6@2Tbty+JkwU`|)=O_{3Y_)xCL zxYDRhU%Z%_`q(}zbp-Y_da1{U0p3qYg6pq#Ou*HIyw=IyU7ma?fxF&(VE=U(<~6Gh zZw5d?={UgM!xoM$bm=n}m~E((B7>n{A?iQ7zw^Zc&``u)a5SF? zm-Wo-fj8M9GHiu$ZfiWDXO(PR{p3Ez$Z#T_UJCe_o5o=%Dk;ZPkt&`2wxJzl2n(?g zb#WctH6(Kd3aEXRF@+iN3r2} zMRq&CX?aHgg$pdHqYd$dGq2%9<;q{gv66V5!vTpK@eH3U>P}ZYuIaFYj*9-#mpgC` z2)75R8u6sx$@AGTqo7Dm9?oCVD?Wd3UU?$7&3v(fm8=5tmEA*KfmzN|TU1+81X@KO zGoyK&6gmG(t!#VlOE3&u@#4(SKTA4)c;<7!X3cIziFWbOLroR_vT>H>{DIwOOTyv` zU~i9)6xFPcW*=kQX&o?N&mk!6uItf~j;@@1O0cwFq@lCAN_)y{Du=oSnK`ntRZ&V~ zlrPglcjFCNUi;B`0-@U8D_TyI%KKb*ZHJ+?{Axd3G8#pdOvE~L`X?mKhbap8(Eh-E zy9L`cY-!orjfwWOT3C{qK2<1;Ez*b1mtKnq)#(sT)%1 zpg6<0+k3cT73CB#f%0alj4f|h!`rlt44KAWu5V8#2ad)_GPVkh7cB7eBwv@u6Kdsr z{%iJwVOHuAX0jD3T~w6%f?{nq{|#i=WPr)JM`j_CR={ig$&+!Q@m zA(KkCoy*#ksPIsZKC-;N(4Rw(8ExVILG!Z(P-1f-TFWHGm}T-K@$V;@;VUyT_+ylf z5BCR38zuE*{rqcn1F*hz44be{k0$eopEOiS;cqOSga2M=BfAXpVmn|VyxmnMG!)l*W24(ck3iGR2~7%= zE7x;P>doC|Hq_poT>N)>Sc@~&Ukg-w=r$s4pFQl*M}w~7Hub9-4~aXzLonw1WBNzY zZmtT3a?eqLj}YY6vqw<`^gr0zn9gZYL05-!|B1aP=oBx4tlVSDK;G5^zi3KLu>9kD z_8f}c#eU0joz^GcqrY~!6pWU|^@#=D41Tj3{(KJaW;w??!~zW}7;AX{rPl$;OAEw4 zrXs8^zd{lMOOgc3^>Sk%Si&b%BE zw%~B}acCCwxx-)Ax3|ARc~7j0F%N%V(*P37^b$DgLW;E2?)ULEJBjN)kie$+6)ws$ zpfs!_@7;%VpzR5lk{(xA{~QW<*bh`uL2!La=tM}WZF&gqIS|HUlepkwqD$8<&EO3F z`8O}J4phGjG$2*=NV9@lVpKBsAf3La|5mF*v*7v~)l?R2ouBKIfJ({>fG|Kl04H?6 zdpOkUIHNy=PA0Ns>~1zU zZ|^DMzdi#T6c#dTL>0Ie@O-TlKC%k+weV1An#_efhiBm#G!2rGA8?t`#Y05Tzw-Y;2pH%gfH;o0S9}ILtd!qJLIgv zh_j^3v*hxjRjGZiUOXKGYBe+CPawa-vdKA6Vaqb*TK7>;g<|>XFSK_2zZM0wT=~h} z9ZDKJiVa-!UE3LAV_ZJRG_S!;Mt~MBB(FHoqJaoW^Q?*#sHHC`YkYwkbD|zY;cad< zkOjD*iBb*PQsA%B0W4naX4PJHw@3d31}_nu-Nbd4#aK9KNSf{u#Y0pm{1v3-@cJFE zfP;Wyc&O+EUBazSL+cq)2m{Vz+o)umqNF5nEivx{9uTQS7k^B(x+(Q2jCjNste~Nt zT+QJs^PwksO@WqNZZ>480N3+k@cA*tz^Xo~2(D^k@*M!1e7!Uj3WfitiH+O`R~XzG zqzRw(1lA|cU$A$xwcwvXg?(Rg*ihrAU^}1-_ygo*p)cxm35&Sf#m643)t0KuPkwf< zL={EDnL8mxS?;tAEcb25_}>Yc)XQ7@fm?lA^|bsp=ive+go|=0mKuO|5PyZ7RQDo? zwd_XgQvcBYTSfpC(OtHWg&&(&|L5bq7R;=PbgTz80T``jTHcc0X^(ya56?Yq0;N!C z+yqUzXO>JoygzVtf|xKoyYT)bC+|P0k<2Sty8&UzhGJ!d1gF-?+S6yR4jyC9ppw8U zDp2nmt^1LTOL7UCb%c|gbu404FIL(&@&21_?FC|@|L{ZRd0+iV^>zUZlPF~c%FeUM z0_?wU2gpyJ*axK<;)0G}uen$85CQ9Z9RL7T9& zxo_t{H1|G9s2mm)Y+D-I%kwjn(nUu80mtBFeT7+Bt9B5gO8*RX!Z}>n{5g_)hD&}6 ze8&6XpELzY zQ|||EWp+6OH6+@&G_^j5ImdI*c=0OA%VIlWkV3V*UIwv7*J~<29D5DP?wr6u;q-ls zQkE1Cmo|gc=i-G6q#qc@_9?cy0`ngp44J=ycxxbzxFd+XFpNOp@Qa9mDj!ja<4%8LvY}{NM+YAl8zqOONP6^y5^O#6h!Y8&w@j*s3 z&F>(v7Jl(Jyeuj6%|HN2Oef^ zvld-(-db=T$|DZhPErmcYf2%pLcN0u$@IgfU%3-Cn$uGp+Q&x6M-34X75Rv4%UJ9TYPq~IXP z05%)r1H(dPHEsXX3(&_MOG}b{=+*AC8!amXH(B<7W)GcMujSvid37&wYJ$Y5SqnhD zbqRXOAkgz>Qc@=J8a?YvDvHpQ9zo9f81UB3IivN$5!I@Srk)$nqJY;tQxL>zSf34Q z#X@PSW*_(QS}A~=>5-PuBRAn1<_dhKXvZ-G zzUwM`RkYnAnL`Im@KtCX!SQFnl0hKn32x;9;o3Lf^`d-3SUP&fELL$xhb+7R^An9 zQ26q$%Emlx`J>9!hegbf7w~%>$__L z!`10jf>#^~_7^xcIE?~*orsLf9$)zaG>kS;Oe zT)8k1wz)vreJ5ORQnM+!JU+awyNya(R6Kk6tEGZj0LKYJvJ&>tmSyuZXwU)xaN4tb zssFR4?~^D4YV(s)wOs$M{&G4;f%oJ%m}2Sj(mH?86?CF)zAwP#-RWxeD+#@I6!fj~~z2#5cos%$)r(9{51 zl`V`0U>8rC4ZZnQ>PYwPB;B`k*6PeQf^2gqY&<_!+P0a{J(W}L(CnY&w}QhJ{O-Wy zzR&EJWMBaw-;UoE6x9RSfrezUaQ)zu-H+%T8OD1*-7ZVa5>OSwxJp^nh7E(jLO}fQ z!)%i3zg%^AFjclMgoF2|*BHFI57zp63*9$Ez4qhkTqY=5 zSUfwoRQ0LuN7Qf`u(g5{+kn1KtpB=4)@agUwmIt=b-Gp8h-`NJtZEoNYjv)YUX_B$ zDY^pgaSxaB#WvQ3Y}KbSOeoCye+EdN0c$k(`n)vdbm79v!CALk6JOM}vLqfF529GL zqcc@t0qcxN&G>_}R5^NvhFs46)uX3a3Rr{5oKm*n}eLMHN5ul~$);sjCE0@M*zhty0n z8~Z#p2cAyN%Dz#mE7scsI#lEaQ*#<@w=$O- z35>x)SSAGrbOmBX1p?)4Ns{nQRB3VXBwNDReqbwOdrav3hrsN8nA*%LIM?$DQq~6j zL9B~#w3Bt=n`k5jv)ZOFQe*3oluwW~Ff@#}Rj^{LQ~bP_B=zz>E2$saoJo~HoalT8 zjvI5XXqF%NOp1A_6C)64p-vY*Avi#}Faz>&5rVpL+>eD-TGfDBn{TcWGhLdz1JC&a zS* zJ10T?+M}2sUo*O>6$oYg%5LG*vF(O=S^|MafGSNi^35J+k>@+m-aKn|s1Gtog2jwE z-+KA-u3W9JJz0AtdfsJzx}nOfTm*m7a9hLf$<8ZBlv;V=C4&0vLUwz(Q&fCt zsmtEujfXn{N&O${#q6^@Gk%b56f?utQu2d7){FIzZR8T9hPD4crrtap>hJv@KQm)r zrwodSRz+0SgeF=fTPY-K8xls@vOdL7N$FMEY@xe-liwLi!qK!ZHz+DJQFy3Q6k5 z@cO=pDXZhx6{O-9%CUuu$;8glM-7A`jV+_$u;=r>6vI#2!wb6v1JK_rS$|t3^O;};*ZjeVtQqfeic zsC!>V^ts;QrQXE7#PaV0n@2^(;Tar*t%n*L&&TjU&)D< zB2HL{a6aw~vy?t7vdF;LmDrKaVIi}xN$XHDUZhMuA*@Iv<#n5Vuar^&JtOx_O3o>7 zyPp#oqdXJ9jiBts#3;7l?rR+1!^(ux{}P(~TP;h6&&ac>xbt(zou6Mu6>8D!Ka)PV z!l`KuOUGgKkVEf3`UDy5#>l!oe*(1zhshRbZbOR1gV>Nv)$!7t-w;5}1UU8&vFJ~5 zO1})}b#;}Mv)++e%XLNU8_zoQCWfk7gZ)rz8duNUQ!^3(wBc$8-IMThg3E`KCmJEL zx7eXdJT7R=oLw6=YMX{>UT{s)8d~ujIO?)G7_{syDC`>fj8UIdIkhR*E85Lrd$e2p zdGKo!;8epMi0xOSKL|oPJENNt=RZNg)Nox?9iJ_$J9=w$p9mv{e3>F*`}i-um5)d>}fMNygkJSPvjtwnVi0aT;*0Aevt0>d2 znrxvLZYll8-=TL*y(gB;DyNJSY@?T07w?qC%y9=>zenOhy=e;3i=)TaHEmy-oo(*r zW4yA1aYcLB>@qLD+^$_b0%-w9`j2{SPD*jtM*&w8nyiJUUv8j_OG?->I#Lx$++t~e zQg(K?6f4zFsx*DK-_^*;# z(i9tyN2T=>pBLLk+4x92G9j{8cMh#V4*wOCf1F%T zs0du^G}W1!DR?*$q6PPc78ni~Q?~b&+9y|yJ|h)-hhA5|tFi;iz`L?i+mPmIc;P$DnX1gP{>Rj3W)IfTpa#rk9>TkFgGD~&5NAtM~ zK2fB*f;Yx-a4m!z?WN`c6e4!eID(P&h7r_t*x){OGx9wLC8Ff32?s;+N3C~9@CLH` z%z{DoOlOhfwXZ^)TA_&p|7pXu;~_O!uV^Qg6_Ij6LX)$qrJI}n=;{U$Cw_)9FoFFd z5P5ln_DTOqJICE5W;dL=c7jKEn5__aG^Le7vL%>FxNDN+!Bio2V@P~B_F%G1P^B&r zoRTCL1>u<*xioq$xXvAEaIrhMmOdigLX#w*sP`y###9lxm5=z6vCE$tjh!R-E^_r3 z#coQ8gW5%ehmJg`pAauox0+$;&{hmaJ1+2EGN{&-u~q0vrfK4g#G0+Gz>$Cysx8vJT}O2j`sw zDnsXwXa4u>VQl*`EAAjue6WO9j;7I#MmzZ!$}mIos+^uwaZM?^o<4!U_^w6V&#}IxZ}UOdCr9w4ZH;3h@_w za;_&d-4--uUetRKJ7f5myX{?_@QBeT7guLq9zjBX1s=luS#qh5(;i<2pwTRkTA_mg zYlaAKZXc9)hItWO-HheGZ%23pA~bc(wi_Bz;adtI1xwBuxtLvN4@m#HeFL%AbPh;}7}e<~YMa&w_Cnz{e4x3`KrLPHxd#?In_Y%Q7k87`Hir&*W{T2%bbcF!FLK@> z|8b|6krv9qPs4gX$vVoss9*p3^{R#aHilXA1*UYwBF0V7muzlmg8+7o%t|D)o<0}N z-(UZP$X<_&TLv~$RzAFcNj{%i_d6TzeKT+@8Agcy;||cxLkP{ROMVC^RuV1_FTln5i5u#MiSCz1V51X7t%^TmrWe4!x?=PoYB8F7tI$3=F6 z)=8KVxoI}!H&d3cy39dkycoPFZZcVlz+N0I!<+q?%EeGncZ0AiX{f^vWN^B*(tE~E z9TOHo_C^cleqZ#Y1^ABcU7AIahkYs~F>7cb$7=RkT`|?-Z5{@vP!3mp!H?<$an?tu z4;8*}Z#51~JB(;&Kz`}l+qNo3)tU&j{D#z7{VS32s++4F^%$~SV zIik!l2A5GqzU^?Tp1o+3u^YG#6>z(_le|ym{8K!;#xn-NM7A4HNgB7+4p1BMYX#uP zKIHCkQ!$l#vqEwe^j?Dd2blAvtWMjCF^ZEJ1&v1HPYT9AOJFr+lVd%*zYrK#3ku2v z6x&roVZzh4Du9D7GD*+GvL08%I%Umr}aVpQJ`& zT&--BLNX_9j$+X=ZVUO61B9ev2ubp#klz6)lD#8}vLK<_`M=EzgB%V*gevcBnuotH z1zUp)4I<8ZKHrWZ5w;}|4brQ)L5A_G=E-|&0gevc15I~nc&@5odm^`JU&qmtdpSm) zX)EQy*Ja#B8W+HKXk6V8MZKoqB*&e2tCyavCy+z>6FOe2J_aJU%RsOI{LhKi3)_8m zvEkHe-ubk5Ns+t^A3RFz!!sn}99xpXNvW2-b%*=ssj_jd_u?oDA=wdBi)UbZTj80O zcM0{29X*vaCK8LEir|Rei=>6(aJOT2bXthbN5U_M1wteafUCjTEfAjJTQ`|PS#-VbLef8AuN0^;4Z@s{(|g!Z^9Dsi>?74WJoCROs&}tt%kS$MVJV~ z=I`*8>m9guDm0UXG+yTJLL1cC8}WaS?tr|i&6fR@;T=6VX(Yf8beGX>#E?DW23rRR zzbD`>KP0(6%1OTq`08tkY`hYf@9*B-uw0i=2%ctAgWIx>Wtb3HJ(SCYt~Ow!Si(in zT=yE1T2b*%^P3}kRSvfYJv$`*wBZ)YPQaBWVx2No`S@|1Wx{`P*NffdbjZTAl~)>r z*CO`5O?8l9x;XT11w=JsrUpA~D9{&F|6jXB#6fuL44jm0mPS+G+p4{c^stAqAr?Qm zY90&*{b&7nlCwZ&KIcd zz>Xr0hbY1JybYjA>N*0W6QG8%utfK-ijiMk&3L@GHbBigA>J45u{zi>gxIGWAV4e0R8@ znOO#g1Lu{P`RkyP* zEV*o88mV;T0XtY$#n!GcKiQCerRnCDyl$<%yaeYaurk}&@b>FOw{l2RmJhAqZc-MU zov9VOPt1Nh09o#SFGgHJ!E|c`=U$d2s7-M$>s&gOqd*r*&GH^eZr=GreKk^snjZ7@ z@#B(fhbj)9Wf*bw#%N)^=>SZ%r7I5jVhKTb;&OeN+qLZMBY^|6nog(ND}v&+C_)t0 zIUtX&vZ8F#4Bsr79^g_~YDAO;4_t7^%}g`E$2Iu4(|~Qsou&105M>P6QCWv+2hVWk z{0Bi`{j7g%OGt_qMP8tsdHQ~5LzX4S==hJg0Kcn$^#qwF(4(KfAKa4U_vcxFr5m0pe3yv+LL2fMM!Oy4}?TS;GZU++jN?K@YmAHW0lm{@}*xs7-c_V zyccA*al>nfderEus8OrwWkyf7I0-XNpe)Gz0LuP6elG0;RXhneu=Mv_IjOJ$wJydy z3b!)Fil&bPwst45twG@?^HXK##;<%UrZ{SJ{i0^xS5F%Id%WFr+CD(GuRwJ?gQt?v zzY&&xBX_m-T_p82LbjDVV0#k`Xf$-$NMKS@!g)h|kIP>mJMPX<6RYFGH?*Caby2kp zY{pth$-t295~6qsQ?y=ZfwJPq!fxyZ;iSI-V)O0U2Op>w+_VR7&4piS4xTRhr3BXS zmX$ggVg0?(}R@Ad0cevJKlJHw-_;E)R69miTA>E1jQ zrJw7}SAgL4E`6-^-RqMcs+Rp*2Ty*_fa4@AaJx6wEV$kEA`@%?4*K?7SZ_IXAoS*%%2dyw@HWYMLnYXNKzO?I*c1&jrs0 z#$KP2L&&a&RDSTbJlp-yp9E zLS+rELtsA1I-mFWMWmco=UxDWc|gMC6KkZ$p0TV(*4=uZ%k`|i7(*a!LfK83**zii z+b)4y`#3rI(I$Z5@ew25DpF@w}y&6p%;G z90=kfiZf{i)P`rYd)!0=%Y!LvRiW&f;{q<;U`bipT;iNP5o$L7=uKf7BsxlNV!}7- zuX|-$rcpU1)syLFBfF6be$}V&&4hy$19NuABT|B`r2lw-Qir((!1iBasc) zqvI*YLKZfaId)0|@_3siSb8v&9!2MPg4RI^Ys-i#-+S>7(fFR`1F7(qE|k1=HoQKC zkdHSpsT{DjUXwwbc@D{!(*v%IkPRT?69Sx<9AhlK>=OU`wN(R;HW11$jm zvdv3)Z#>s!j;6`PtnKhdw)aO4N?^Qg`z*2NA|FJLaaVbsz>4$jv;_k?Yj7W>xujA% zJ%2w#!cru&ydL0g4l+hTf%*)cw|^M1s_=hO&}!1Rujfxzt$xl}uKH7?@*luR6})~_ z)3|)S(CAHVNb%M$Op?<;cF`00W4{Tm5Y7aaDX#*h)}Q|K{i)2&brZgl>nTTKc=x(m zl~^%y!QQ9l3I;-V06CwZD@=`QkqtE?s*M-HTnd3(5tXFs~ z4Zoec#9y~eNK$ByOT|hVo{wDd8>VO+!5WqisjW;6tB>TXkV3k6zqk~bdhA3xFE&5P zG;_g6#=>O52eCW7L-R=uOJWp? z^}ACnu4^hfdbZeFv!TcLS^euly-*7sty?luYiA8Yr;`EbD<^w=`9WpST9!I+UvI>= z0zib2bYL~Xz=N@XG@ki=dOXaJ%tlo`6)M=GnA+kMr;4ZKIDUXOGDbvWi1d6N_cKl+ zox>UGxozvtPnOb;cX%;9VA(%HXQuWoCzJvv`wdMPSu2>*`mh=!Q|@-kgBAWAaNdYw zeQpF^-V*5B1I(A)kJ926MSV1Ic5F9p-{-;ro9zZY{5~kGYynn zU(wkm6As{-jkOSuB=FcClfMFpmvAKXx5S4kuZbE@pHf)N_FzYalwrXfa zUVzLR{`)!EVb>qO5KD407Nm9p?LeLAmIlZqT%!?9N2)L zZyQA1!y@J~L7&JBPr&F~@zP%(@>-*;91~eS90CEieewu%GgQg>d4}&>x>!~A$Q~1C zLTdt%<^hwWzFodvfVN@HcCNU6+hIKZz|=u?W^%RX-ZludKQ%Gg(-~O-sz8UIo6P4~ zXQ^YH#`5zz`wVzIqbr2c4dBJSfMM2o-)keuQ+mS&Fr|_tK0B&5crajTJcfBopJ>Ba z(UREV*FZElbYwZHRZ}@*_76tyj_^i6|K0E~Wqn9xH1Rok313$+XkRI~;Ch+D3^~R? z2UM@`?Zrn#U(^Am&UTjA3DeeYn#u5>pQHQX{QYiTT69 z)~?a^G}6s=mVwYRkj8q^y^!%NSL<@( zs){v%W(97%9n^I!_U+*WQt9IW_(Muuewh0ApNw*NN)s9b&j)QzY7OJbcRqAz%aXUA z4!lBFtR9RSu6B70QO~qZ@aTilKXP*%Zk8&Kyl_A*`{woFvF(kPXu5{Ng{+v^5^zDx zPVXQ=n)1j8KEoG07%u?3==~j8%EG6?@n%CoWgmA)+*2Or5fXjE-&KPP{i+7~PO z%y3H65m=ao$o1EItBNsjg#!UYC!c(W0K}1=6K$(cBf!9LHSXx3ENJkH@B=j+nN_puma!_B{a>-lJ|ULD*43+n>4 zWPnW=TFNY{CcpR%9S7E%v8GqAU#B_W>HU|K-2_}db;cvDQw`zU)3VtpQjFkI`p$Ni?&qLcIAK z+XiYDa+!AlN>l-w=Lq!W{NzPLkJEo>eCi>y^2TtdAkWfnii(^}k3Y>a`^o3MKsTU{N2ws|nIr9t_*z zJnfJGC*&@;FW}X8n&3dz<%KBldI8>g zWgoKv0-torqM&$g<1(At^I1vkb9;*{<~x2~7j` zjL{t}1eCk5d?8Hj_3OcnW2=^WY$QK zp?GowSouQqiTh(l268|%GRPGDSr&L9BlgIuR83t;o8;cX=2YP7fiVQIuq zzY5^LlY}X)w?xpWI5?Y-cb5l|%0a#Og1nbp^&5hH*ZSaM1rLYZ1SpmXq^%}fMgX`* zwVnhbz4lC+p%GjR-2q2Lx;#MoH{O_q;2&ZqbWHip0gSyV47Fs-Fg|Pj;-6a+_B{Ci zpS)PDhevC;*r10n1w>!5p}_Mj5#|SdAn$hE=GuSr(SHogHs*6&WnB*;QNZ0IyY-va zmfo0J+NTgLl>8Z9mwpLQt@5RmA=dOsOtDmvyKnh?uy1e#uj>hS;b)PZ%ihGUR{0om zm}od3t)cP6G-Qj2F$CFH*Av(ZW93D9j%DW}952g^f4jYe**Uv;srlqb z9)=t!oq*zuMR`}fDpVG5LhUOLD#O{hIiOWM#rG1dzdeKtpW&BXo#uK3g`WXjqpKm# zRxKv8j=UU+fxY8GWF5MYrz;<_8`-*nr%SyUm`%Te0^s%WPo3%Tx5ETDkMEFXzG_5m zgsQLGYDGiaiYzLpt#m+LISaTBTm{4gv`#2^weItLuBIkOV%X( z0Uy&2iheV;16(Dz0ZLHKc)Ry2ufR?_Cx}GQe>c^u!7CtljK3cPMVnY8GY~c{Ha!sRW^KJ22tiN- zXNO9wv*_FR^?b}$fzw>^sl32(Rn}yaltKkC^ZiL?8|c=7@`i!3hEq<~)-c;)s98@+ zBio12X3=^?jOk?cFw8~>D++RM`eYfxciIR;861u0TfeL!n|5P*tiwd4g@79 zG@aGe_O%CI-U~5VIDQ4^?>q~Fz$;u;R}vMY-c3yNIh{@RF*(_u8!|Tbe16j=@Cmk1 zpQNOQKl?~v)OK&57>4{`UX&W(*}uWJrfSI=(+JiZ-)M*}fobm$)8WhCsj+)2h!ghK z)@@K_o_6HN_@DyTew~V(hkwkD_9*c3mh7jEsvh2&n~_mdb#m=FI%v;&Sou`wH=QV& z(~F1{-MGmBh##arBzGer!HCHg|F`X2)OcR|nwY5zuiGVluipfeb)#6sD|2W-Xzte- zx$X18{Ec%BEPTkj_-0ZRD&9~jm{u@O^!kz+Z2-?Ef6uc|^e2l$%B2oDN-mI6j6U2P z__fVo*l1}0w}ZU!mgbokFOvD>vh|+{NoJ6qZ?f;_tc8A>l|7&9kQt*P43zZm93S!p z;YN~K!8y^6TY;mJ`6LLAfATen9gLsWhy!#2cSqdl?hxNr(;!=}7}Y15J=*h>+S9;k zXp#M}qv^?08s}B*{9Ntt6VR081cnTc&atg-`q+NNJ4FN;+lnV-f<^{Ew>AKL!TtAN z$0dl{jo$whz=v!Qjl#$?A6gM`Z#g_pMv-q9R@56d_ET$YW@Wvjuf;cm?Ty1=pMc7}p24+EDSp>=tSR?s8w4ApL6zO+HtC%#s4mKvp*K zbP);~436XPFG_~%{upW9+viE|2SPa-w)o7Pcdq8P6!FZsRxM~*Ek{_vCY6`>Vqry65!a(^1Eg4_Pe_E zz8JD^d$v4mLf>1{z}{1(qSbK zY(l=q|I&fYB&v2u-WBw$DC-xB(=t9B1&0R*@%_EuAlh*7&k>gNyw8uQrld_)~|kG7QmPO3Cc=OE!>5Z21Jq8=Gc^+|~hD2!g{L zTofVBb{he9{QU~(0LCraT8ONx(PrAW?m%GDoSuX#Jn2>q*?|waE%+->P`8Gsg0HhI zW&terTpx2QCb`9gTfS(Z$e~u~=)l4jn-JV8BjgFl=^7Mz+!rgon*fcF>n#PhqzDrH zRw5lXGZKDk5kLhGpgv>=m@BBuEAVpJ7-`f3Xv?8-J%>%~kUM-SIIg4qg!WLj5m-yQ z(IuqO25qTwYxvRJSKJ08k9r@>IAh*e!@8C=OkY0#ce%Jd0iMl(tSd*E>NJA~ZeLj} z{PpYC94Cf*eIqlK)R&AHx4}~e0licDusa}>-;JIMThOu|E=@-+YN5s)mO2M2Bhz?^ zb>q7R5D#0JTTZry3D$=bHqcU1+^a?DF>rNZQI5~FRVko2YrN$J z3+vW94~`o@z<_L8Oq(RU6B+ey+)|s=8iN;Gi-{BWEp;Z?qyntZ3TMhqpYtN zSsr*RH`8YRQt-B!B_FCjKM6mjI`KyWVY_ft9^S*|U18$&UPa?v!LLk-!CEy-foyxiM=1OA~y4J5?q}#YU)QP3U#l#c=vhjZaeHxL`|GKI(xWT)ntSa72!XkSG%t>trSIgJFKa4@d6HfF-V=R-Yn!qE9*Fh%ps(Q* zvI+t6Hj%r`+7KgY{cy*M?@Yl%W9xW?wK=TnAYHB1@Q!cfK!dJe zVTMMTooM{wcN@R*BBcu^O5(p2u)mgpj-_MA| zkUlSE%l=s{r1t_wJ-v}mR_Lss5Jx6oTMZ8h{m@zF)Y)g<`b??4-67gJ4Hi#*`en+V zhr)KaMV(?iMHSl}#!!my;>+SqoS86X%fKvqG)mtSg?Me`>W4oHS&Gcp?%aTsDox6z zEtb#Sw64-NpnJ$B4$yr{X%BZGRQ)m4PxY?Sbop;0@6UCn3UCKum)WDLr#qh`wV$Pu zN)`LIqSx>MHKXfM)t|GJo%0`EvG%{Upb+d`NU7MQyhKEz6?6JqsQ#4pIOXz&8Xi>l zcrN>l%+B}Ef031LaTUsn5STSclebWu2^SI^T@&s_7y4pDWE_~=TTT$l%c@3n_Q!?M z0@hIl)J{uXo=lv7@ZpC({KK1ywr+Q|5mju$HQA1`vn7a^@^;&J zm(ymRfL=wg+Q>@w>o=gCu8S3^5eH*_PMsJEpIE}!IM*g-i!4nO{PU!U7Q5|4_<3SvaCrJj{Xxpk=N`hA3eV&0Bsgy9cLuJei^44TVUeZ6iLzgE`Qqq{NtQd{ z#WqUfx+qk=*kWbHdn=@LUzlL1^Pq>8cY_F&2A3D6r$xSd_-HYUcsX+1f}TkY`!?*XFS-EO?2|+0o57D zFwrHsnLX*&1oYi0ym{=lfYN`pfmU_oAkMC3GYYa0e(awg%r0=xuP{%cL-eytmyIieGZuEA9Wrf zZ*WHqM05;)B(%Dz=`dz^(Wx`9ND5s{`|u+f&h0BE(R;E?$|p+&DPF|rp@Avua(Gg& zzd<*X7)9OQP8W>Qx<=@VH&x`RO9|kduj&YJF>8sVDxyQjLGFalXN4GS1CZF64Sd)U zFv*hg7b_W~KdN4`+D4V^1<-Z#@aBi~Nu#x8;=T5IXM62&@nnhhWdxFXYeR2Y20oL~ zkecSBTHk_=G|eCrDK=K#1jZ8ZMGhF*WB_b3d|r9jk+Q}{C18zo*<%qzX-Y?mmT39z zoC|Tw3C1Q4>4eiOE5#>*@vZ!ue|5iJ+UPD}g7G!nFb{y#v{rr~DBYj;)^t;Wm5=9q z`0-hDN#NyS8pl&WdK%hudac8oFKCd%%wMPk=Y49uH zx4ZIM$<=#+V0JqZgoaC+7(O}GDBe54-`i!JZx+()VuQ?;_9b zJxCDB%t}Y}z9M-vp7$_@NqD*SYARREC4$l&UK!G$<%fYl{tvuSJ@h&yK?R&_M-cDb(5T;oCVQWiOx4qFN}Nz+moH; z@7iFxf=4NSkk;Y%Q<9-^$K|~!ins6=}gob+QCQRKTizl;(MmMa*sYsU<+NHl zQo59DO}uWdt->Op@oEhhhDdkv`v%t7!SpZX;%Q)xr2s)nQWhagx)v2i%vr-XrwMa#=cma4APpn8;- zS6K7_Mf=iE%Z3I59}b{+huK4!Qd0K`y{~EkXXGA5$1EMJ(5GvG$zy+~@HIc5>a%{p zKCvFH225-zvSuIQ`T;;9;Cl|wLX|~maMiLAt!<71(qTdz*1HK-I>hf|HAU~#B9efm zQFsHI)@9j2?@0wsZnS3T?K%fk%t9{!dsYfN2RAP(Mdun2uUo6D+yd59>DrT=hxFxl zy{qW4!vpl8floi4qWE|SGhf8!Nxc}PK!+d)q%PK)beMCLs~=&l*;kUa{b<@Ws@``f zuccKm{%8|NuhMeDTc1ZMr@V>5$snL!h+O6EJdVitWzQPRQbDlAqlu3ZGX-`tNT>6T zp+Il-a)5;quLyEd0mDRjDK6_{&{h9R~L_~E*eGqWTG$Cq|;^+Q?Pt5zI@)UP+0zOq$F+93J@ zJvL{69{bDpRDdHAO5ZkQA04kxy-_{Vka(~8SlV9HdkJ3-+;tZZm#(5Mk}*5muk$+Z zZRC}KVczPr3QC6+OR83U;Uf5wRz9jcNUG5clUJz1H9j3=q&_B#iJUwsL=6L~tk=e7 z1btcomnNY2&`!EA#I70IazlC|%|)+>y}}h0)c-P87{b3*w}SuNy$6=zAS$C>MvC7C zGx&2{TO1W{Q3F}@w)~TYrHjrDpk|J34{v@7czTCACW5={5%42*j{*hYNhmO9_|ukt zI(a+yO_;+3PTO;L4kP1@`G_k@Jgz>SSwaAk$y!`*=7~Zs{JKsMh z5|{c(uOSEJ2~!tAT{iwWU?7KnGPM%^r`O7=69t|Ft_Pv=%l@DmkWu{2xj;|N&0SZV7bJ7v3 zZK1gUqFfG&7fV*1*doE`#bfRHKV{$j&}KMsjNJv0h-GgrHWyV0hqa7nX1Su79qKCM zJTOAb)V|VD)hJAT?tRdfGEhn(# zkG4_isFeU1u5=BU%4-s3Hvo~mEtM_%6(T`Hl-4U6qVcYFT}>njE}wE&lG4FL7RwSpJ_=N_8R>Y!D;M4=jq`gb$SbE|O3e zn<4rDjl&sa1*bdHyiE0%eZsLD;q$sX_rB0vZrKHbqL*-dz-Hqs!BNKD?N7EwOYyx( ztCmRiU4kte5CUPwz;>8N3GZ0T9YfkxRTAo9SQ5y=3ewr%6Rcmp73>386+j71VJ0R5 z5uYJ~E4zfOC875`d>!WdO9*q-g~YoE{OTHA*wVAbV5$yLWQZ#+M>t2gsivBrjB{RY z70)3o8_FCEl{>nk)D%F8KkyV=1N)A95Bzl`#}$>2ySjnpLOUV5)3KjYoL07&XdtWO_s%B-KFqj?yFTAS3DucXYaz&5 z34139cb&mTjhAAV@X22~r6Er3SOy5Pv5E1Ry#+gk&z^rfWZ#4Lb(2~^l>5KJ47#@d zpVwI<)#0@Uk1)c^vHdWEv5XrdzOr=!1Vd!9R?N9y7j5yA-}#>Yjc^Q}M57u2&|`XN zRMm4}80ODqF-NuS14{%Yz06c8syssX0EpP{<=MOgwxQtBkRIA{+*XJx2G)7Z9s+T+ z!(&3%LZ6WHHi!X!hAr0r%h1%Cmer+sOx{~q$y*4;3VG&`mWOJ(l^Te}yTDFxzV1FZ`0gRyH^!#`%U5XV_As^46^M7hN5K2IJ>+Z_ zHpp^23}pQAkj~v48t3ROyVBeCrDRo}56xg7E<%dbRuF{3#le$^dRdb$Kq!FVrBK!V zzQYIYxPk&BPuOxFs=Yttw$^^?v-SVDi_SsG`1qmGX`c8su!&RMJLCYW2i)P0_rxb~ z0+!&tu!Oqe5f&W~Vpu7Ty#S6t1iGi->d@*;c|3G(N0?NBY9?OA`dT&9cBSHp6># z3in_`-~Gr#-(T#jILbN6&cB7%`z~_uTy%L14eni01s>{B6@9Nhe^{5UsUfd%EP$Ah ztXz3S!9+(0n}K;yD6hE6=j>GGvKiD7S=zfEwh{&x6Cz>!cTARHQtuC9*X zjPF27(Gf&>@ff}?fZB*cd07yNnNs>0zC~Y)1f?rG4>10ZSqL23LaYX3;_km4z60)% zky}#CWIIU5u7Lvj3x=S4HCOJ_d#ARvg2ZnB|6B_F%u+`Z`hedhyv;vb3os-wBsO;h zd|%NOckdBj z0cjgwfIXO@`sqwM%3*i^jDS1&xtv-9rVwxD09PnBbSH{|Y{4Krmc>94@f?!*5!Opq z9-#`n)B%^e6c7raG&>LMI-E0RHY7h1N4$-G8-x^sK{5sSO&OsckMJ;@@46P3CXP@4 zaRQ1CHx)%h;x+J{EGm;BSZ*`}_xv6A^|!!f3&*M==T!6VGjC6_Y1iQjqz7$^sYeSONnz?kCwtS0rC1BIwYEs!&W_9pzF49 z0S!d(sE72DJ3M~@1)R(kB(6IPR21e4CdF{O4C&v%Nw#gj3e_JsZVM|5q!XXPYXsj@ zYeJ+|vkQaAszPts2Fl9Qg*iB(rE9%a!G#!wMoobVkus1aQQ!Mk)%c)eQ6SadxLZjR zctk?S+8ii5#mgn`AjbX6RgYy=D}>Wn!>{O4cbO6(5WRQ3k*!FujYl9kmC$t-I0wdq z?qBSiWy0}tAcCcfuly)}LP7k#|HC$Q2;KI5d^`Vu`{YTNG2@VrtZ1^I)iI=?D_C1@ zwk}0Lx+9vF=Am%?i{EEqvpO1jy#z>`lYrG;;ThzNIa;+7 zA3QVH3sG!acG;lMkU_<7fU%d^;iyNU69zr8{hJk`>Wj0>GA+Hv)5zresUdsF0R9J3 zS#-*-@a8RF^g0QP;p_p*!?TO4T<3&G+?Cx|zxYS-DiF-zMOvlYU%oRA`5UJf-}odd z<;9AwO%X%a+3(FuN1uSd8$J=lxl*4K4|nvF{sU?X<+)1epo?#5l9&jtTw>nW3C65_ zemdI#d3t>#q3d;!5l3%)Y1JrfQ9_JvbE#U{un3uaD__7xKT7KFz1djAE|T2*5FoT| zl*p>@+Mu+7$x|KAJ`gNv&5sDj@VM-MON5uYzs$uZ6ruBm0xJx>inI2CbS!v;duk;P zk{HJpODrN)W>q=Ua;^ti;U+_;vK(ic&Ge zRLjZiiOF0ez02vGMEMKWyPn6diIyw4FzV_8j0#J3T#`YoN^?kDBf1Jg1nQ`VuU|7f zdX%wKc%;Pw50oU9p;i5+j|q^clA~-5BsYUL!*FGj40QeN=jNv)MiZf>G~ibk8U7tT z0n%*`R#m{ERQ__1=JgkQ0AuIyiMALL_CxI>UKINN;~)Hk@Q+}cl`u`SjopcpiNJss zOQ>ARi}}dnS&Nh+fdHRv{xjyIe4vz~+N%i)Ka(5iWjl=Bzmtn7s~B+TYjrvKj!i%{G7RY>>cO z8pp2n?Gq5rzf2(-Ga-#$Q7D4`_Druu$KO*{@EE7UsIR*heJPJ6Aq7H47ZJrTh3xyO z0jDJrJ5b~5*R#}tHypM*|<-3$NbHCh2vrSK*Q@c08BfTpD72+VLM(DSZC7t zuvtLZKR%Nz*VG52rI3@y8+czL7+39Cb_}4VICw$o4No(N=@b9?!{9u^7Djb62`#<% zmPqInfE*baVGgUDTsJSXQA9CRC>y}V_b#zj04~t)yxa`XNS_7u)Y?HZz6vv+26Zsr z+p=OMLgOd(<+cI4YGJ0<&ei_iGGf&2$x(n;aL}eL5e~SGetM~4I*P$VWsJ|GTy))3 z{S?MWHGyG1v^0^>{tvJxh;bea^BZ69f?>||sax;>m2hfEZ&Gnu3+Ray$0fw+-W~Yr z8)tHzm=V?2ywoU5kr>|USa6|buhW1oH3-Js4@~2b|9M`8of#Y=vebo*l~AepJoj07 zxWg-dW7zZWKt}EKE0(>RR~URHk;++PU+UMfDp;kICNkFeCk7PYaX z;eqR&OJ!BEKkt#m&TSE^^(r0pQh!VXEIpL;DgtT(Q~I_1zj(#^9YIWDxw$W)&=ul@ zLnr*6+5tc>3Z4+b5DI*@-0a9Bu4S2h8nt~&P&$8&R?#-210{BEBPfOp1fOw;PbJl5 z)CT_C4xU6u$D;-*Dfdw^3chdvw6)$*S3WMsu0P!fNgqF%wfN0)Q#HLWLQA}2L>-ig z3;{^iQrCV1Xp~9w0>+~fnC7P&$Cl_YYBxr(4;(@|de;DJXZ_24a)pWa;reI=eYgex z*o%G3PJxnIm|H+l{OzqTr^fQlNE{BY`0%4CML??Ah)hD`KTatlAWRLS&vYO02;v;k zmrKNo00h4rkx*6tWk%SEJLy-t2fdMrisQD>VL=qH2fI4q+a!-&ax>7B0}{#DTEJBA zPX~-U%qOgUrM8uadRcBbN_bnF(Epg&0;lI?T17BzoY^qGZdQeq)M1$G5PI)30N2}# z5EYC};RPY=63FNc`RviMDxlP(-1HJon=n^Yxr z3R#-sRhC$7f`VcbryaEEbv;>XVQeE?5~i{xmh=PXU~C|r3^xqK{q^%dCgnD5f>Jdt z_fL88Qd8vqmj*;1J#?Ms0(Ac8+j2Sz_+(RXWeuRj3__LR!W0q&_+SjV9Xiz5?m&ZV z3VN({!vas9c9~dBdn~Kc9wmCENDf;D(YeJv^zcHexABX%g=%tY1nCd-f})2Hl((Xg z%5Bi`91lmzFyAHBqSR*C3PimCwB-21c*xUnPgSzkfIz*Rbjqx2mOKl63V20q5o_}H z2VgbMjE$twfb|A9Md!s1dn63mm%~&}--9H2>Xg2m_c?m! zDUJQ^lUgrWjpWTRO^X9!Ske~Z+Q08g9NZ`6OAP66E=38O36R9#dM@#M>IfPF4uAw6r{fl?^S}X>bid@coymNnxizLVx1Uf*(Nj<`*Q`A1s^U3?`H93 zf>)u+^bM%>Vu=jhFLTa8_*CRs(YZN<`1?O88RVLl{*Hmo`MZ4-%AgSk-L`DuLsQ)B z)EeqgSx6AThw%*ubyQbyPiM3e>I-GSpWJr`85rEuliUd2yvC(UU6kb9U;uG6aaC;V zLb|}L)Qc93%Kb~CY9$SlP{_*4zH9xOI@o4hYXw-B1Pm?1Mu|piE9n>-XY0r;$Y|jg#r64ggMY#Lb@19bbr8IU7 z9}|36qM-m)UZ4UT7yU`fWoeheY304b*bWZMQUmIAoQJRI?{DJDK>Hc^ z{Q|Od>)SI=1H590$$h$q7lKW;6BN!2+7Xe($yR4!g{9!3U%~z>sFiKA+X2@NSxOBJ z=yd$@|MRi$9#odWK4<>aN$@DN%t4{xf}=E^Rcu)m_bP_EshYrgS;dB`z3o;$WP$HF z4)#vhf0V(JXg|S>y4FG%U2*a5RO#oraG>T|&7rq0YBVmbxglZL~ z^(7vLl19z{M(CG5fk(Ovlq=`Gev;v-=biw;qmsuupC7_*ym<3v05&&C8Cgko1O0!)^1Aw6}4Ac}~ zCsuJ1I6f%x>=t<4j{69I@DZ1%MlS2|V&}?W)fXK94g#^)(uV0z>6|pHxB<1KmsSZA zLMWx$P7@=6dg(BrBSzXAjhm8TX^d5P@)XdSNsI=herKH>m0*8=bfvwJE6IDJ?}6qP zn;oc564nqX@6m+BfW_#_uSnxnXn;)i>={kBkP-~;-@wLgEo$Mh&IP;=sN_>4sjf79 zroU*|635~)f6CWF6*piX1uA3IxsSg@P|9k@EdMg_Qm=VwOTc_$AS_WkG*j>3lqmv) z2ekG00vb!qPZPAKw#rxSVBU8a&>Q8O9Q*rdpT{`kJc{4ie1*XLS>1={_9U=C9Tn*a zR9Eh068i{-se24A=jp3?GbX4~li@AeR@)`pQu?*y ztV+y_#866(ySge?g%1YRQ^zw#OE99&g$8#JYBzXP)S)-5WQ2X4>~rX_0DT?yN0}lA=*! z++@p=B1KB1MN*bDF-g|3w%H}SHd0EBA|XYEXiy_qpf{P> z$G{Z@PGYABPPN!6N?0)EFoNGnZT1QSB)KE7B7VhHJYO>}*VdhwcF^Tm z&?5=H-IWa^Nlq-nUdm8mb*4EHQs>s)+Y$=CKQ|idGIS12?;8n4C|=mQ^2tTX**MM5 zGeoG_$lJLhw1gxFXx@4(K_1m@W0IWezrMJ_9f?X4x=*;P=hnr8f)J#Yv5Pxv8uLHT z5w%T}l)rmftMKuWQPQ3+!#r}wB`b->*%UJJ7j8KExp6V6Gli1rSVP*j{n)w~HQS|B zC<`3eWM5$x(yshP)ci{+y#ITWrv1N`zuh3M-4?jv=eiM83bwV)`xT+NPeSl~;fA!u zlaW<+x+%$DmR>(q#DH;YSspz3ux8Y$E8~b%5XA&Qe!6F{NcYD}d0)JG!cnLK8Fj3D zG0Ags&f~<(tWId_t{xZvh-H)Y?-<@fW6soy4mINTd`}mVf!CN4UYp5Wu()RQzVWN^ z9lkf1O~qqVJt7fz0dWH!hKD5PrfA00hnUU|T=&Ddhp$PkZ}sS5MEwu~U2WSea%9AZ z+6TpP?#ihKx|;b^V}LvU3%59J56!><>^R|>MR(crXZn782ij+@sT6CxH;y7=P1YyV$ZasG*S+s*yzUkxNBb1E*=jP-i5z~)CI zXQLF~GH9BVm|OeO_p1{J4U>5}FFo)LUM(Qp%!RjmAGGHWGHl|K!`yL(%~3-?f=#oBcs!iA9mpRnp2P10k5OhL`;2R~ zf7``CMA`cPuS|XV;k^CH)$69I=Cd_-dgF6qzF5uR5cPyfo-nCDtU6qb7@deux#z7Q z%yXYx+Nk=G8j`>C*=4&uVoQ|y``3~FV+*^0HolAz{P_MzX1;8ll<`bd{XHP(+JH?5 zmqJZ;-xLHJ{}nx=*XT!QcEI%={-MFEXVgs;`<-_8*m0WOpRHCZw`j|m{Fsn~ilNce zy-C&~3j%OjUJ`nwQm0@g>4dpp$FDv%2*B`xAt;Rg_Wk*H)cy$Hx?_#@~uE;ok zVT6j$b@Gx~{A~YfmKRimG~1Hsyym zYtWzmRKjsd#Bu&qcm{W;@RU&UC3Y(+JtX1!~eIQ(&-V2^iv z!t#O2uins!G?emqt%*(BoDf>Bi!NBVzq+Up8IRKzB0Z?Y9H{Q(EFVSg?5xQ!OGG^% z$aRxu^MAm#Mw3^%M%^K1_RbE#%=tb)4TL6Lw-RuCs2wCx9tD>CsgT4_Ys+0^^!2|O zc1|h2Bo0mm?x-RwF_qrZNd&|4nRH zXx4RLkF`)3e6!}63panH5=D+b-!`Royz_5Ecc9?)26HoY#~;w2Z!^2LW#?4gQQM5J z0d{sp)QD( zdy9x@x?GDy4nl+?oyAc>59G+xZ=uc8ANWhN{_9Ow$kD+GZ zhn@VY*fxa{qTz!I*)9BkYB;MigK#Qx+xW(d58QC=M%sx*wRl*Yl zR}p_0-8Ks(-ni@2)Y8E>jwf>Qd@ffz|sH&0? zGb;%4xG13(v0-Cn*5+w%r>N}M+b^%VlV<98^^>&8PwqJeIqFekA=06eaa1>v)am?~ zn7;w_=|H*}tp0948VxetG>jQp<)k>@DM$Y&&VSUl=g2FZYTCSdr0_ua0hePHw<4FJ z_HWYH?{Yhzq@()G2$1o=lDKKmzI;#5;E@ygE2!j5&0bDKs|LXm`JHj*kma#ExeD4C zfn1AGL`u!tqf)KNzbEDy3de;*8|=TGThD4Q$xp1fh-Aq!lrl~e$om&GY}zo^7?lq2 z!l@IF;)p$^2_%`)Ya0%`O|!`XyWlgcMnTxbK+9*#?v{7Kn4fmCBmNC~5j}(nM06nEy008MW-jq?L_O2!c3IBFElaqh=Esz@@Dfo<~jA4*+AUP$pT`0UZ?!xV(I(J_A8 zVAOY`)ZAN`(5znG?VsKbelM)Ok6Taf*w6RBh=aEdmuh;<&xB^5Ih0)9_nOo>NFrOd z+_6JCR2QcEP2dk1lKbX%CB56sZ-V)GFGUj;N4J$R@{uyGR!$|pzt;e|B`y)t0{OLJ zt1j$$nEdE_erXsUwc^f`H6z?K>a(FNfOB6?oBOTL#7Hu9sAf2++pgh4S*XnrRr3er zu9Eq`0p1o>O-@D`^Q?vK=Mzs`A@_S0M`@uP<6YOo;Ga#^o=P~SQ~dbLD3c(<#Hf=4 zjCjuKl;iBKr5i)NVbaP|<4tg>{IpR&OWlXOguH_Ex*zK^~Y= zyMrkzzxNdwpK$fy5uiXmCSIx~^gwd(VV7f36Xl)okvBYc7VxQ_EMj3EWM*ib|(%#h3Y@N}wvom?P4Aa16Iq-^-tv%3Vu(=m8*NceD4 zX7Es@O&+{w(ga1*TRB^{nwl7{7p*}Xy|1>JmC^uTd{e^eg}25FddEyh>D8yjvj|%^ zzn7Q*TeNMWTveLI6%Tv8@(Tt~RMUC~_1`PyEp4BnJT$0OkADOF!*6%KDBWf!p3ZR; z={*(n4_#p#?o-@bsD2t_KZ=PZubR{x_Cn}Q?{?e+0^QVhpSfTMh6(kWJouV`(4kps zlO*_Ozm63*MOcnHp^n_;eZc-&=wEq;F5Aw^OKUvY5u z1&FFGW%5^9BTivlM%N&8_>q{p<}@P%LEW{(q~yxm{qi?Yb^FxC5=rtGJI|6PS1Ga$ z-bh06t`k2dP>o5>Jf3Jr$C?3LS5SodmsFGdq!Qjgl$=G%IJXJ;l7364P6`Uwtx$Op zX|pMbqhmauU-DTcI*BkE=MKvSC7WQb8TPe}H_E4Dr3?r|(_U z!Q^`f9YKhSpiIe(VS#|zS7@oIiDOj_oBEtAI}OjwbT%m}WpZ;*ebFR|CBL=AD?T%y z#UyS?*WKuf6K_I+x-O9PwSwJ#Hc?(R-_J5WHRP(}3CVM(fab>Fc!rcbBc+rpcGP+@ zMbBjGC|3x9xSY%*S(QI=!RP3|dm&M;>`-=O-&vBhhj5-xF(XCFO>6ny^jxP+mnETb z6r?OOr?W0npMQDEYr@`l!FJZo+41K;G>_glZ{i2`p>eHe94->hldUMgEBNF0cQlpc zk1hQOJ`(O&IAT*l_ird4n15X!wKB>kx#Pk#m7iT$NRE2yY7@_>UuGh6gzRnXV=rt@ zTuRzj`@It{`Q)6g5dP?WdJUxh%A~Eli(0f6+xPqKnZr-@3?ZB^bMG+N=5zaGLeWx; z-;_E>isT$RO)D7*Zv~vA0?zj(dV5D51(6+wMdH@NkFZZ09C?E6e+UP4+15>{a{!dk zc}8q@16KSB4U!|tjU(VdBW{cZ24Vj9z91;h1Aa5Ib726ac z4y6sx{~0nx{NhN5Z`qZSY8zFO#lI_1wWD@x&eg33KugRP54IS4ViKtnK zJPAzz`u4M&Nk<-K&DXVF>NEQOH!-1Pv0%jcqS7o;F~+iiM;OO!j-QtGkVePUzD8HEkXR>EU~8xRi>q+ zT|u?uOpm`ql}OVV4K`k8JbqsezTN914DJ@I`4WSpPG22Da^3=UhnyG7jQ#AjKedF~ zhoM3#y8596lozV{HGAOf{p=?Pb)LMF8lIaIq$8{!e(p#re5W3 zC$=N!u2yoCA==S8^m)p4Tk;-)7+|enOH!uzt)&Ea*PUx1$muIPS@YInY+K{+XMwg` z#|`)r_w;>UxD41b+L{!{2fZhELGH}cQL~BjX^Fd2DO0EX8@x*Q@ZAIB#(Fj%&S*Jw z_s6HRHsM*;QnHb9gsoC?gdyt9YSgQvofz(>gXq`S4wCM~m7evAZKtjndNxlH1Y|z4 zw3U|CoVJq)m70q1M0RhkbSA33MXkyeGGyuc1Q}XqNqEnq<=lmL3Nl)Z?=IwzDqVG` zTxC^bE%4m|g&>A|KV;eu)h}(j4(6dkN&c(!RBACr7hi?l(YNcK{f~iba#dP(Wnn`2 z&)$!jC4GgnR7hIGcx_Vr-tDDg_8-Xr8tMC<-iCGF9d(785Rv?;u_HX2!(6wFstWxz z|4iO+iQ=Yd+lVmcf_A6lbQ%7-$qCYJv`FZElYuIET`+hSdN;mZ4-ESfDQ|c3mc4A0 z>yCydrX&&mgUzw^N|G2mkgODSE$?OUJ5m-<#Uff0YbX1Aitn>;>vg{OKlv5oZ6Js& z)gzuytjx&XsP|Rk=kVIXWY$ZN4fQ8OF@)$Pe!G5&rQ+G#1cGFUDQ~s2YxwWa3~t7X z;|k;ll@6M2*HM37$H3yQtlMMXfg~EKoAxyq{lHI+9_IOFrRx^gIJ-ae)W3J%Jgf@~ zv>a1D7E?s34NbN93Cp{&&`nMw>8xGBHhRoOlZr|nv+_6T`2WFL8_pL5>BGV-d#TuC zAkfukkiGkY>WC#}m$;}|#MuP-a16~%_mQtp-8cQDGLGS0nU1Zdn>4@03O4k|j~<;m z>fl-aYLg|+cPwivW$9!gf$RUscz(eKr};J2ElHBXy~#ODbZ8^ zR6m5g{vJ1slCo`N@T!9`3w6h+dp2Qnm#ad{>AAg0UiG_(K{}zJ|1F7-s76Y@Ze00d zj^$gX=#TET3F7Gjl6bZS$R#-yCSRTDJcF;Sr>3d#n=FUDG&4dLhwyj3t z{ol7Igr6XyVPcvM3qNcfBi*Kr6Y|g6$|M#|FII~!h2_{V zfF5gG{JXI|-OHm74NMv6&7%VJP3b{?n1>IEoz(M|uuKre+ks{sb>B5_N-@gze6w$$x9`pM1Vha|dCWblWE5=svcFF!mB#fF zWbd1ZTE-4kFV@Y`*okbnvc0VLSK5As+wBeZS5r#_AapTjuF4SKY6v=A(zKutDaK+d zU3S@-ZW}((;gr(W`)lCAu_lu|WsRNkI>uf<%NXn}#usJy-3P->6oxS8g5h#+C+m@v zz$kHB7;g6l`TERdzmBcuT1?x+I{7XvJiNcZ`IX}_g@RR#g82{f)tnRotE z?r|Bm_rRC1DXU5>R z_fC`PrU9rJ4Md(?J%$-jntb}2J4~e`r|7=2@CfCbbM-_tH%nHNe7Kt&MFt>(v9Wwf z;tKx7&qcF4hw^vi_&+OYTu9tc?(@=;kg>ieL0(pki}zTj!|2ELkv3YFUU?=`3T@fg z|3JTQ7%i%K6*kGuEcl$KFmi+DGX^nl8m^6a;`d;FG!|rg;D$86b<;Y?1<$T#Sp(;$ zq$&u1}hH&8;M)?8jV_zf-70la!S^H6gDrulKC)t@`w;eOe*=yuCNE zHI2O0RUwzwcF!nV;U-3w)K0=wLhZq+hJRx4ThoSM;EbE!uGg^ge=qx9zvIt$M&^Td z-K`fagppkv-~I;pTODw24iPFsIIu*n?D=(j0(WnlWklSsckc6IeMMw(^_DFKQyOZO z9-z%ppzmSnv;bW@=k=3_X-MY{2HVP5hQz|g_CA6GRJ_|q0Ae2pvF%Mwa(}&3`Icu$eG<+|?^o;j?4rJlXL?WHTIf1B8`uFS)P-b}sbotl(8~ zxe{%c)SP4u6!LDb^)@pnECmAz!Yj=^!^D(3KGd_wr}}g2_N=^*LtDMD>s7a9@k*6P zc{h8WejGyv<{H>6QsC9WINdJ!nwz#< ziIpEWjQbO|=vhX~t=q%M-l7OE26xk`SrTcQ;LCn5u;QnJ#Sk;LeDJE%Htrh(6^Eah zucpXITio@^e7m_YvH?nX-6X==e?faiuO#s?^OY`g1AnE!teZD}LixOVXA&vCE|Xh= z4&ae&17WJ#^QgxA8=jRsTu9g!lrr(1?L%oTR3;ur@baEtgjhptItVlA(XUy#4;^G5 zJlMvz2Fu|#+LInFoCYXk&{IK#S1_rsiYKzXB6=K09Kf9JC55EEMBeTF{(H%iauL<1 zzE0-&zdc!V!a{-!*+l)ik6kvxso-XnNMbrG>K@QQ@k{kTt~c5)>AngJ#^WZ+IM7kY zT74`yt--EaG+h+QjHeZw3GYpAEi((a6x-ulO&JZ@@P?0M6_;-^YeVR4|D*wbz9)`; zgS-LfJH-a?6v;zaSMOmmWOk6-@FLVF@pb$e?zeoY6Pbp&Ua!|kf~$ol=s~3k9I;9?`8YcZ8x%n zx7WIEiJ_}3j#ng!8!v-Hrb=%@5U0`4wu?zb2jqIdYe9h;c9m744R7Oi2`o}0Doz1g z%l3ok83`xvfJcD#fQwOoJ=0A{>eZgF zarRci8_ld;!LHDFG(c&%&&%{6s|fWyLUWY}!jgG_eY&rK(Ch8qZhpP{`n}|n=ApWz z%YZ0-amiR4aw(5+<$;!!3|f2)iD$v@K(?!$fLmfC$>a{NUI(-6`*7l<=I3*-_bnB& z_C9J4TPtsn_~mX!OG$?Y;q9ePvZm%ciMQ}|H+?c-kq;@$Chl&t#a1cM2oEXl(NqZt2Qxq4)1z4o2O7yNG><(afh?m>P9~~>v z>OaWB(V)7V!z=S}-LlLDMd^i86iDNv{}$@&F2S{_?uU`MQSKw_F=Te6t(4rxO%mzm zk!g+wf{FKGb9dJ=iCmhd64@FUfv`U)J7^^s2c(LC>soSSXw=S7dkC6n0#ui z{O6D`5gJ)eR)Rbk6Yml3;*CqfsZJAj_YGyw0flZ=mno4WW8&)$*#Em#RP zFeTwZGcmJ}O2=l~bD*<=q>0c>^DUEmM)4x!{|xj_hPf_aV5yT&Cv{)?z!S16)2Jr5 z(zlnLvk?KerV-mn(J|Np@%9!?VM`LL33y|hgdWElXD^>6w=@u}S6mlN;^LB6N!|D5 zvs}SKC$nwi4_?(ekCDH^?_`*@<4Q^AyG}#* zG-e)v%N0pyv$Xf&x8MU-KVQg@z#x_eKz{Os#zm32ru;jx`A=o8Da`(zWt6Sr zfKfcjo@XaJOM9vBse7S#GVjLA=nr;_YVWS~z6WYVLjA8$ zK$#6m17vM1GFn7fccHab(2#HM0w}6~ILT(WDlW6@zbU#Y2wC(%-WUijWiW|$;1^Zm z{#~*Ng^j`!7qo5K7~ElV>FafVlN{@;o&K3_=Wetk&&~yYb9RLjVUL7C6^-bTCvQ>Z zvS|%NmXx*4g;T@-9>)ywcH$q(v&ff{i=Zy-sihg0crd z08)*G1$rd0K2oj#@@Q02!|pjaAT8(J8PA`5`m+wFfwJ^G!X8yVEj@T7ac}I^7NVAj zZK>CZFlrL5WO{$4=j%j4z&SHZmx{2pWvn)LdU7W>zFp}v4kh$4FYp4` zQBw);@p(54JDZSiWIN{R%|oz?v#7TCF~@aF(;qqFS@e4XsXG>Sf^7QV`U*b5=(pVk zXSp`cU(z@aW42%K`T9`Zj#oJAygOm9fkMPI%ajMFd5*pU)H$?(56YiVnWkfxDQnPj zrSP<_<1rn^&UJszOkFyLSC|Ie*D6WOKBl?Ajq)z#-vFDuWtkB^=WQL(?k-ZloATqg z&y`){ISthMzLO)3Frs1MRoKFh6+}GWlUsfg+)c`NP)GH1Y1gaevK~ja>*~QgWu6!# z5FWREmuCHP5f*8D9yx#o6L-&PiSVTi`9ml}zF3Wpf8c=0gjcb>1<#K3+rHD{+}8hMhNkvxKH48wLRv`B(K(dsj}N;}@p-@kq5+LGqnO+w{vz}ga8Y!W4dETD8o>a|LCj(ew?o|z)&lHdl?Ys3!|-=kO^j^gIk30A zF=pX{WX;tr zOwt=ObuHc?buh0~VWc6%*qC3Si_82A!m;L!!K;k$g09c6LRnS2T11e#S4Oc;{*fhZ zmT>p^-+!FKy>VmGV~s0e%bK_Q-wACfWY=%?`mUX}4CoTVDmMyDz5X8} zdav;>9LdMI`MBW<>8r0-CS~5#)#0p*7lfR@>l(BGT#)o#cM}ZgLkhkw(-IWtCz z1Sm8WM~uh$XSD_3{L_B`4MqPR&&|Ae*EN{KlieDd#L`=5Iir=zo*m(vRL+qme!mt6 z^N0U$kXRp;na_K%{B!eoY)y}DO^oknVZdb6p;mh>`#T`O$%-UW4=w>mC)^7zV?R5x zv*f83$EM`ItZ*#d*>|ugGRA!WN(4Im)~r-7LI_frg9U#v15%g>L&W1kgQfS4yMOAE zC8!!?!sI+vx7%CQF*$O93cBJfo>;I`)?@y1!mm<)?mosonLI~OdNGakyUjLr(|N2(*erIAiT?+u#@26viWGfB~Y3M^R3`&s#C`W+fJ#}AjA z;VUm`($2aNJawKy#WX0$ZAlY}NEf7hLJ?aX3kUqJMn+v0lXzmiQ?yDII zu27Pe;S9b{Sul*$DdWET;2z+1lUM*m_=s*n76xfE71bnWS8eIk0k z&nv}^L8@Qf`j>H)&gTA0hx|+fvS5Q-W?Vo3F1}l*Z(lsy;2}zC_r9UT9Dvea`(BG= zj@v$53}q9u9OX$`@RbfiOv9Z%x6HkM)Kpro^lR=WCzBcZ7*$(zH*H4N( zinpgIOeez24hWQOgYczq@nbGM3feQFB`R(`9wR_OOhEPp?Jbvss*h8?q2u?x(Zwnud-EwWU4h45`K?ajx=2(P0VNl8b2hB6GrB;rNZL?}yebH%`!5HCvqhF6WJdSzAf za}F@_b*Dy*7N7VOJQ<4|8Tqzh)g$p;qbFnIAMkvLsP!n$K%%_yy7_|>z6Yo0msjs6 zRk+wZqZL6c<2Aqt7ZG#4Y0n@kDVNuApJIc@>FJqL{P4-crakw?{u_N@G_$S|qLa{K zf%o(-v%W%I-p};aAfdu9W=uW@uFDuI;g#tr&<#~fx?W9=XyfYOF_NJiK`YMgLI(9* z6wv(h(Z^pzWN)=WngeXji+jW-?AVzA$W`W2g@;gg zR+hwcJ7-(ytZ5WFX^)emi*PJ^YP=5&ZKC;>n$Eq z2xD8~$Zl6y5dN&d)bS(*Icx4wEO_y95GWU(F*?A*Vq|KBBxT$X!J;nx1ZcCjq?xW( ziPSATGe)1JF#j86<;f&FHZGjF+Z$wYK0l@<*!W7myqs$ONJl5x!xcj={G0`M-$k0V ztusD@)C3G1?X>mEvH4d;1+pWi?>M*K|W zSp`V(0`0a=pdSU?F6gQyYCQVJFcH%35+sxlWAwc2$GM(Ee^RAv9i2=gbg-wFzejf~ zAmij<-jbk&zSgk{^87{^iZN#ROy=|2+tDC+^$}uV{sRtj?i?+-4{731C?QJ=4Z?~0 zD~QKY8m}geMbu_yo=s=v+dYqEOt*7xK|^@H=kf1>9}?yn<%ng&_#5;PWrJ)crz z^^B0$`S%b3P&U*RPjPh7#Dd&IOcK&K^Iv>qdd)I)YBrAv9wIm0ZWA=+!-hno>^Xf* z;;hh<3mp;y#FmIAI3)8re5K)LxXI^#I*O(7)o#W#DY=^}$CR+0vEjGZhFn_sfZz)IKOpr zLvz;_D>9o>qM=X*DJHS%18=8ZT{?qe%iCAymtokI92!YD3C25^zM6=pv|cwBs*3s4 zd;ga$*jJGY#9T_pe^au=Y!-(j1N$}{VfA@*wwq_hn2?m2B_|l-iPm_?ime^WCJ+q% zQP`PY-OODiDL4Bh7~%wCWy>I`DN8%IG5Eo0rMN0ju}D#k$2Xh-dzDks*Aar0hBe&P z8u_VWz*XQ69{M~K(G#QNTEzL{<$Vf?C`#oWjG9F1a;xXb;byU<>=ThV;5d5^COO#5 z%1_;b%^>&HNvjIKQH^j=Vm=IGs~D>hVl^em)mnS9Du-i0_ae5{bPlLg(!AwdKD`+n z;i>*SB{_kJB;L9+f#t!ehn(JRK0Q}fRh2T`uO=+N-j{U0M)#65u@J?X(c4?xf2)n9h|L~~|2QD@WdlLbO2Z(3 zDY#^9$ zwrkah#f5$&M`6bjAKDLtZKCGS3eaaU`srxgQwUe%a5M}P9`w@WbmTM!@jVV3izFlh zIf)O?qo^a5>Rh%J=q1O>KL|aQClO}^g30SghB1i6hI?ACT{KC`m_60x2^@+=ROQ;7 z)PXZbGB3Gtv0d&bb2&Vg&R#a>VH zW_7^vk4C`g+luS3+9i)th{&+@x`j}l@-#oZ1x!#bNBEx|Bd*+?A{R1( zS2P^hTH_fw6a} zll*D~;Xh9>j_>MHB`FIX%qP#6=1^9Rw5QXJN9b~yBXIhpdF&PI^lW0;2CkFBIu8Xi zyf$8)icoC>frBHG0Lxwty><*~aow?ogR#@OeAd#{2D~B-x~onE8uZ&`iTj3ALnKJX zgUEKSD%Ard_oMV2LM}iZXic#yo8+uL-Od7+MPu(nexfaKt|!7)5O*C20*5M}fM@Ec zEieIYUZ76+qY=wgG{|{re4A zV(){+pWT@kEdSaI@wRa$%}|lWwLKXvy~uD@8pjk%kg5+>l03L$*xPgESJ01Eh(hOt z_2pNLbV=Wu@vLDI0)?80gQ^_Qm0+UZe=1Mb zME4^{v1<;JTpLqI$lR-?OMh+eeIJ8+R4;H&V)(ajcH1xKBtTo8@a5!lw%W%y=-{16SC*^@#+?k;FF>@3rQ8Wltwh+2TxhN z65I%-5UA90bEfD9V07b=lS!<6-_x)wm%uye9st5bG!ncsrt%fuYdz@8V~~_3PI$RR z)BU8R+*U=W68AF*^@UtR68zVKi3LuY0JP@rpOxrDkfN&l2;|`PVB+gQ9p%q)yBC>m z*d?g0YL9#CWEJ}lV-?|V4RqHhu@X&>`Jd@brn<7k*|HRABHw3|BLdFc`RRAB?B!MCK;QIW*iKZUBX4SmI&bYXDXW2s6bIgBc%lzKts%(rw@*>ydFwY6td@ zoHS-A<#5|6PS8?O!t)$-pbor{vM3>mcq+RNHG;3RRCHcOJPU$o{k(r+?_N4&#qhGhM}p{!IH~$Lxj@P z?Q*Hul%m?>YA%Mnj(Cj(lSj7_OZ>_%KihioIDBHGyw=Ltc~Z0SsIY4PpIf%=Q&rMw z`27TaT?}`n^tKd<)h_VoU%}y|2DQO3adeh|@&#|zCo;=8yrR#}L*2KCcW;Eo(~W@)tkP zJwzr9(oH{sPBR01^PpqoD}isXCGSej@+nX56H|M!h$<4%jjR=VBo^?My&l%Cr5fox z-*@NtNsu;YaOq7uyDb{!l8emHy{owFaYl;(i72ld>-J1QTxk{vcpb3xVaY)!B1*#U zNZV*EYlF+>YqD>rsB((;ol`9?T{Is)@%K0lq|QA-yGdfU?s*&MmkVURJpm6m`7MfS zkyG^&LAzZNLs=yvYI%EDihL?Em!|{RTl_Xd)E;d72%zkW{kTB07?=*>%smScHG#{v z1~plGcZm%oZIA!Z@BD5e(x|-6By|SHH@q3E@Y{-sTVG>}7;5V~ptouVOT2v4K#o1{ z$-+URjy#m}()xiV5@?{0;a;JCCmGBd=@H|so< zUnwDC0jF@YqTCpbfcVS)=wChm5z2(t#@zT3U@m43_>^sai$nB31$&qMeJ^P8n2Y0rr^fpgnqcmWOT84 zT2_#mEl6uW#_J!fD4&7g^DBvHh4wCqhq#Ojn@~^TLEX&YRZ~&!bXB>H>=Fc0h5qq2 zkTNCL9{b-o!3}@~4_mI{60)n8ngU?*Tt@zWyf*QbsI+hSV{9-23aw>_@3VO+nuKlK zuYp{tvl@=XEBhX*N#ZEUcbrE#f)DdNF=%rJ?tf`j0uD1zLelx+<9}`uQT6h>G8e>E z7;OR8@B@l)DtSqyo+_siBKa0s)xtG@blEAAzkVQiq|ism-jWEwWOHv>Wfsi_dG%nf zV!jWZYtvY+?2TBqhs`0!^O4IZXsaVwX6%m>bH=qgwik`d(10c}op+8#i>^whNbeGu zTRIx3JMa1(O2vOC2s{fU+8Z%jz`ZTD(RwtuC1b@PX3&6(_$=pifQXpp=f}Wa`udl@ zyg*68<1^z3OQLlAe?v-d#-dI;o+XG_)r}xI6ZFg?{y?+|ofggoNfG zV5S^^ZsMNuEVs{ADN?%xzdo!sh*hyYOvn#7a%69$!Q{VdTH3Hc7db{#sSxApL(0BK z*!7B3XPoS$YT_aF`zJ{dwhIlMk_`}(8BY@RiTfT(0yDIDE8fel?>yb;Mq;CZO|E)@ zPOVovp}lX!K(&rjn1!Rvd4W{j_!V;>=<=o*A%n~))dMv}(qM_ycdx9lThzb=yk!us9XQZ+s?-PrUZxkcR+OvC(VfRwQ5$gW zkbGD+vEbJ1?}RJpoTRiD!2x_?ecVhM=pHi~EodH6SoQVYyHlJ$xois>!2dFgaNE&6 zjjRSfpFzzfalhlcnL#+`01)!qv)q_R{`kZvK9vVpO#hK;WR3bU{=`aGaBd|FoV#>> zuri6gisSZ6V3NI+co_-7l+PnssZb~5(5SI^_jiPPHjCX0UxYYV*H@mFAYLsCg1~88 z&~S`nCk${H3=4VHBXFpR!gyBR1?|FLs}ycZk`ax&wzB^fpZ#@O2*JAhW9zs3ddz4R zX9c`r54}Sj41jzZT}#C&T);lyfNzs2e~#+>8CQ(5;rtic&rR-7;R)FFBj+M0bRkSa zc<4<-Q2b6N;WS)bN)HA&j5TgQ53CXgAkWIepsP*;CW5wwCJ~a*rcQc#h3a;dxj(kH zECzHv`oVuOxLpY|uD)|Ih=_{m`Et%7X<8n+H1EqOA^+FC#y*70})vqHV5Qp0V=t>}B8lk)Pq4bMCvHu+8nz$Za=;*Qktr zF(%w82%pEulZU?ZyZBmSZo2V!9>R)rUe75x)AR!V*sqG%E2mnEkR8GdYt>CO$_$GY zP--N$T}o7sBiKIV1>uhO-H9VkqN@$6_1~s2W3I5x@6crzM%AyX_FgH%b!oXssS*pS z;7%q=mS{?m18QCeVV*1=P&Qc6Jb^W4dcG?N>S(*W^* zfOzo-2@)vvop2*6Cc!1Wn1Us*O^F2h9N4&;VCXNE1quhn@>*poT#b zlZ~>|eOkX>+#)eVmD3yb#XDss9QkZydEjDKRfL(-ari@LgID%Pw@7UFhW| zt{_cC6=hKA2p|#e1w>iiJm1o;Nq8bBN6FOy92mRPuN=>C@Zbt~tfO|X?KeBNi z*KbK7mT{B{2uVSME$)HNU?sBm#rY)k5x;Ddz29eQvr4PXh#*AUmwP#?x$SD5qCIL# zGZadh*py^YNJ%vYYoyL<7>Hpi1xTDu6tpFj5>}k=E#v*(K*5w5Sv?<{zwqc_p2HbL@w~W4T~yD zc(;{f;*l37>>#kXW5PcDpkyi5iNxIk82?F;tcFv(McO9Y5JYLa^*{1k+l#yOJldr~TaagcrM3e9ZXF_`>kvGW0hYZr^kH z@Xl_h6WT+zu1sKf1!`^6ySn6BvGunPHC2dvi#Ch*Uq}y#tIw%cv`l^_w%Y3V`?0w*``+hHE+0p+eHT+XsspKJMP{(#P*Mk$`DFu4JfekAMy*6$3+<=E44qdxveFx7<^p`!% z@Xwo~Vql{!FN_`-JDwMMM5OJ0>rAhxWk zEp)#n2nD8Im+e-Km#tg$Abj*%7a zDUxM)8K}X%)*=Y%mx$B{Pp#|xwQTz!1TSaBS9Y2#?l^zSdN)(`jpd&jPj!w>IjHjc zest@7WR;8K4eiJ|*(Ei)RU9FZAm;X2N1^8B_)2GIHZtD8%)xA2!VWo2px zF0+iXkS513T(hRes)wB_=^&rB`20tTeTi7u zLJTf@*qIu=abW9DOEpQ=EoKu{=jm~Jdpp+X=k^PKrkr!vJgGoLK~)_W@;J>;7N7yX zt}FX5VZRJt9DH|TIC{%m!xt9yXT{v&3ofa0)K~BFSz(#_%1nZY?slJ&C5^ar{+F`1 zZ^Od089VwW+sV$EZpZdGHpp%_u)iN15$2-zX9zhkXgS4bFvnG`>Ulubm(xDX=y)^U z=!cT!nZB#H`*#9xKQ43!HN;{~OmAMi_HAA(j=XFA>Ym9HRo!$9g;!qg7T7D)+xG3@ zzw9s)#1w+zyL{g$3{rwpG5z)ga*jK#0V-83OqdegIu`0Mni)Ms+sZjHl9lvhZDt+j z*xC3RZXPM5)F!6)Pr%Tp%z@avDE|F|DJhH(-`W4?$NKl)!-lEcVdZy!i?96FR|*K| zQ0Y7pd@*^DFG3c*s!2r{A!Sa%vmQ!-g=-|`@|>s5%|DC3x_vE7L{~o}Bb6c)N29QL zSV;@&n^taEUG@G`?JDO$?@aElP7Tg*7g?z|_Z@c~eecU+KXZJj4c7WQq7ErI+Ol-(3_@Da0hCTNZAoy*I!*lBUZ3N; zx+8~EoJ9_D1(xbVmrWl9JdnNnD6LoVkg^VAQ-h{`1j2l z_=LOXkde|~db`k5(sCTg4~G<*fBv3?d0tJ=FI{EZ`QWpPhTO$_8&+>$+lcj*7ZTLy z=`J7kR~T+nwl%$Hn6V1vFjV1ux-&grK|$~`Y{Di&w$v4}KyBKY1KPt#W=V}vE8+{O zN=9~hdst@_^?60%N=mzJ+o5Efj0C3lpgrAitIl0>A{B-fbbrMuZKJYd8f_r^A}UzV zm+*@8?RjmpZl8b9?N+WXkE*mgD^0$I=~MKwO01;6P{ZJE1}05--;+{u+K5C?hMwAC zBGzUNtbAJ|g_*(hbc+zmF)*T5Ydes&=S8Sn1R=dXT)CEgcG7sTZ!P!+<;cUiRq!J`qem{${3wvQp60~pjBWvr$rjqvl5p?MgI&K3WxhzPMO%Gj>))*=?iPLtmHi$y^xVWuJXLI;c~xjTV4|=$jbuC(_6b-*ZxGtAtdOg(Pvv_FH{@ z2sWJB-GaK76q!M?^(=l>a~>YG@Y*@5zFCT6hYS;a| z5HG%|gzbF+S0J|N-~&oa+N=@R=c(is!T9Zm$-T+oo;1DRX5}ae+)F> ztoP_Z5eH3?CRXS|6{_1juST~T3Ic}NWu{LjymuSbs%&rIWkE^G&=3$YoY+AHU3k+l zPnM8tomb-kgXQl1ekE$PIkg+ zlZ&r(LmlFMMQJiS(+_qKVI0m(9sEFaNNhVBKPFzwUSlmm&Pl?~?%8i9DaUZ1()YeV z^AqZhcKMBmhH$qWoIA)17buQjh;H?gRjpkfru{b-@JV|9%RQ-3j61>x5!P6BRf}$7;EOMWPK<6a5Iwfe_ zNGZaWsp?qWkd2-4yToXyNbH0?+ORrXdzT<2Ly1^Z&{Q}Yv+kwC`5_c4q}?_`>hRZ9 zsK=3b7kD%Mo|9%F($8Kic4294^9I*WHzFEOP4F(k8w+LP5BNs-!+$F({9nI$jR3cA z`}BOnjB${V(DV~8A|&(U2RJc@@&Tc8tFIq1)pWonE@2V2%`1^f7m9Y&!oJuELDS=D}3yU?G|+&e#q zPzm?+TNCmB|J8L!4f8Eryt)vSeU=~7z)<;fCsbeT(dY}0K}FLOpB489B4jN+3-{N10%pADg<5x^KZ|+aoYyhZ=;LcZ?HZx| zdcfn_Cp)o?>JCbmKJSL+tWqYCcERb7eo}~hB&nr!6XcxYtR*$4-~EGJc1UahRV<@P zY*v(EhGvjHzUAs&csfZD)6ujS!rl|4OIuMx9!Hn0Y;Xq33&*J0Z@s<5U?40FQnWpCA^_>v& z3B6p4-eS+5A~9F@eo|_U;&eO9R}!W&cf~)dEZl@mxQXK!=f-~4w;7V@fi#e~*Q)=Q zc2XMb4>%^Ca~YMK4-ZBW(X*Sy&;xE%BY$|i2)jP8(itwLdC-P>EYU>Fr3(hlJF-mp z-Ct#FZbr;5QVFtpS4nNlGqG(s-dyYl8h_kF3dP^D@j-yoJ;`r8K3Vs1kR*4~5a|v* zO_jB|GwnU70$73A9_u?ilIN)0V6w0ldnDMfTDtyF*`^g8D`2vbRG$awQhqdT8 zJ1FxEW$B@~)C)4Eoqh|Io#Uuhm0Qze*&xAQ7-PR1@>V>^1GM1@ctD(k%z^JsO`0}S zs6~Yh#Sjo-amO-n`&%*aehhZnB6f)ew3s?X$fQ3U6t+i$`?yT+sno(c>7xJ;QYRPs z0{lV@{)4O1=JqDLUc{W;R^r9~41;lcaR#L8+rzF0 zW+|D>h!tU(<95qH2JTG28Ht-ez(mVz#7a^|+V_-~Id+k`b@?wSS66F+6rxh`DHNk0 z1`N~!v7M8VOMX6-e`FmFf#SI|Vh@{VOA~&d)-K&$0@CvAsVCNy z?RP+$#O{5j$fvgqa1vsK*7B0Y>HSC0=2=2oUTjoz#S6vo{Bh_z^Cx&aUIz)bTEq;@u4 zVNUT)BxtZuB>ImX+{hp~;?qBHF1oev1#dJ@RNxzh`Y)Q?~j^Y4V;XN!p)yX(qT8D|Xerh^*J8Bmo>Fz{Qi=Zg9-sEhHwMG2Br%?wsH z^0!g};72P?&xbcOe+v;=90)bZ8@ds`Td0h*4v5uIjR}%gQrae0cO1iF4zfnS8?Vs zNO9zx|8c{zXcZ}7`EmAD70?xg%GZI$-wqcqODXpmMwmkf0d48E4ja6@p`Qkqtr@o({` zKMdKZOVShR`clUabO!yaFl0T|40H%~vei1F2Q*{<15XKr9sJ>a9T%Cy{hdMkT0JNfwCNKkJ*kXP+PacZ}?+>|eFRyq;J(KUq1nm3!QQ|%L%XKgcYh+`|f}}a(uYNASyL0i9kV|*| zE_(2@)F_?qgArj*ck~_5a$!Ppo|X^X?JN8LsQU7Fsij_Xp$(2Ql>i5EJMi@imoZdsf1|web?4~-}iU^xVQT3wb!$r zd0NkQLF8PvX8(Tk10wf&pFG`zqCfSAo=?ht|B@`QCc%4ogwzIswI?4O;Jsdr1uq(< z_E{a0Kjt@4kDpqbZ#X7MZa{%YM_!nk!e`t9z5SNoo4tidkDJf39f}$Y%t8~nQ=o(k znBpX>l%S~f917!^t^J;v#!BG3E#kiRmLC%Nfh)%2M`n3<}A zmMHk5jpn$h4cp+AdGDPJw{K{u#D7`3#*LIIl94PqsT z>*`@iHrVR)ptWn#r0LDs^1rc0OHX2FP-_EVj z{+ag@u$8Fymc6j{34-Gb~ zC#UnyTbj8l>AiZiyQE^Z@k>pGyhU=Xfu30 zBJ@es{4cq-TA0F2<>8`wv^X&aeIIuE!MUa;enn#2ON&}XoEmO-X5rq?K@TUIa&$$L z!OCvrd$MrIT4;hXK`=*YH35rbG(fo#9aTo4SWb>FZC=RBv1a7hsYhUn2eHIgW-q3h zVeT#8>EeR$h{07}tYVCx?(WFcn$pKhk*1SIg=h z!tUS~xb{W27*QW~6H46!rMMbPXyRI}An0Eowo@VJu@~nZ!6$DD|2V@*IWnlHc?);K z$d|#wv=}f}Aa#wv@v?BEDqyXBI?-!PBniBEkOmf@Cp>>N72dPQF)p_YApFMMPin)l*b z0&rvdQfLYcy_a^gwdTZFPrL>yokcAd|64{F`H&Pbl0)Yk{9?~cQ0X)lV=E)|PH{Z| zytry|@wcuh^?(?{dCozr7~^*)hmqRWEneF1YG%32%pd&xItxg)#3rpZ80)l{D*dBO%!`aHe`ms1~R{kd>* zq#x{e7Cjh%a9?M}oum~|jZwoI79-bQQ^n`VChKyt#7rzBj5CM>_4iSiEuO34_R)@V ze$;E;yG+J=GeYddshUDY4X>xH_L<&{iV%2X741y$CKeUmh6c0PEZamVkwugQQ?Mu^ zeGhUl?(R;tP+5I16IcB$#k9^m7Mo-VSf(iK=XC9s;B6sJr^Tb}CjR(v+fTyY@eu`OBsOrnc*695J=+PrgZx-{_AR;iKq} z4N*MPs{Nd(^KuEQqnoqgjW&t+%fd}cIKHxo?|%<)N6G3J7lw?OX;??5Ee(Bb;Kv~A zU*Cow9RT)OUuZ%#(9S?>Ein&BpVshCyhJpIo%JuP?8mc8$6ffGjWmb#y>vvxmJTWx zZ;)+Dy7+>H$s>>Ge1QeDN+f$=`^U?~QUzUmqVSwtwVLPJ46f>8kxV3S1AM*x9M*Kr z`F!wJ=gaEVt@4(S|34n>SKjtDtYhO~(YcA%3fPAa+XK7~bIttXcH2SS+Rm-|Nauz; z=%f$ZdDQM*#bu!O{`rRYQWX;*gL0Zy%FulhRjtNqfp_Gl%Ixu7U#A7BYyAM=3fA#U zPzjp8-~w(D(s8gMvuG(ic~!2t22^@gx4VQ_z@Xv33j5PJ8w^3)-+>{bQqGUZsR_9! zQyxvKH|vgEjKDm296|4{A#GrdwnV*C_!zRogqSNC! z>){8xrcdaLrghbsbz*I<>z3B+_5EsWjOcN%sSugD(cbqO#6Izz%RiL8BJZPB!f3K^!+@$;~Q%)=$KG$ei0j} zTmqHP*1c$oGK5#xa2QG}a{HF1Wf`vUI0k51C~3$VZ++>tcizAiKxR%`IJeXjB~yUf z=jeZcJ>p3co_@akWmOX$I(iU?0dLxLP7~>gHKqwUQQluF)1o($tO)CCW?}E2lD!E$ z{dh41QKZz%J>HxonJ^ELn%9FInBotl_hCo?q*#yQ;KhH|CP;_QAiU-@VUMHxa>c#tVBjh8<&D37*R=gHPPw;1u)A4F6`eO>Dr7ujd)LR2> zuT6qbPkt6$!Dt`U%%GIn5p?BZ1>%EeF= zg!U3d0{mg)9BmqvHpZTTbx4mKlhu2c?M)gS4uf;r`yUB0sN4V;t?Txn*;W)qWlZ#R zLuvLe$mr3$CuU$7AvqqW-D!R&Opp87GpvK=v7@KRlJ(37T=tb)iF8zCp^a6UzG9CT3l3P?m14s zp0@A@i1jc-`6gCgu|z=RTabGfXzLc5vioFXuCZD`EG>vj_iUZYsw7qEAD4tErj~0T zBEhrkXqJ0L$0LC!JhNOco;frD?iTfgwoYzVUZl2W_1Q6j_h_NpWLmE$Zce>Ms|_`@ zH$QK=EP@XXi$BWS^ zo9y@K$1xv1d!mM9K9XO?@)Vizl$-CY)jTMG8}g@0K)mbTgabKrOpcriHNgCK^OVB$ z!F^Lfit)%dokx^VA{6nu85SZ>XlC-u^;1I=&sJWf;kiS<@Z)^7pJE320 zov4%vc!3X@ov6n79=&w*K4tF3C%5iPw-KunU^pg9H3FQ~0saW2#(m)vwU37uasvEJ z6J`?m^|+c@gu?bJhLhpcee1N` z4*7C`M()3TvnevoO#RVQ+zH6NO2P(Ma^bw}LjlBN>HNG8kRD zfh2e>&cRZ^9IDRh(ZZ$V^+Z)mf)<;_mtTd$s77ZZ9H&kllbq1(vP-q}bNH@hKVh8C z&c6AWH3R|bgT7IDiBT}aPsqAtjOSRFO`rU_{l$2vS$_p?5jqqi{)i9+Lx;*GH-Zrp zlDw9e?kta4MLRniuf~41nW$H0e4jL%kwIT;4+|%OJKm8{W&@08d-~t>OQ{E45CbL( z0Pp?Q9Opm1^A<3#!#Z_-s(T+j5g5423&144sCkCKLm;$ZVu5xz&K5(Yag?2dn$06>y~_o}sx zqF&N9Z#nY>>D@i<+kYUFv$^7vV}m!JSA+0CCWCtf+5MxD{4;4a#a!~A>M;*Pt}V|o z^o-cQ{OAe|3YV-~Hf(6qs#G+~0*p%HOZ68qzI>D%-G`xmjHy~oCth=P1bU8b%YWjD z4WRok5=xg1|6q|p2q&7GW>Mr%V87{0h^xoZm1QCd*%K5YwEH}F%1~Q=F?<-F#PL`@ z(&|ST@W0fv97=HS+vjisyo0g7-;y%H(^JP&0B(OyHq(lKb>P+{cqcUN4vz;5TI*bz z78XD6kmf>(XwW3rJJ&Wun-^a8R1BvCO~h4AM$p)r+WhpC&l>KlZB-r0&kb|-X4qy@ z9Szx&Hn-SHrhX8zb8KdLnJNbKGe6kP*!%c;3IATKm_5d?ag=u;sB9*rS^E)LEhBjXN|gM4Vm|U;d)y?$7hIUV2N#zFvHR;9@x-p1$i1 zRFlT#Vs(@@C^k<(w9Rx`uqu$lK3QKcVfT=W*-GM;VKc0eGd(Ac6 z+Bu6TtKo83T8Fvg&9I{rQ=Vj~np`+UF^%JdD0j%7`we+nDR0~rInrZp4~nQ^?M@61 zc(MnM7nA+AzNqr+rKO)9>7C#9a4IEm&&6tS0i%@Wr?i1}u67XDiLft!b{8ez^m!>r zG5240JW_u&pyX^fy!+cmNv=%d8k~1pG=Y+)>zfJ51{Nc_Npcp=_uj(Vb9n&mK-bgs zg+2*y_AQ|fmNUFq>cpT@gDvV>tCyPq4*l}Rp7i$~b1WtMI%{LV}rdQYZ#$9efwE+?-!p1yGIMbwnq?+2e=90r(7AnWzgv$hmFA=BKP zhRP8%Sz4aE_o1L#YtkxgF4F7t&|sj(?R<`l)ifovV!P{WQ1o^rd}3x_#}Eo?U4HV- zl%9bV`#EMqH%PP+Eh6)KZclhBn?XGu^l*u`fG}-edINv+{0APmMG8|@bj0rjgF496 zdYPzEZk+VWmD6kHQ1t1EI>k=+_T%TkCFJC~SS9xeP}22!S}!xiV4f+by)tS)RqSV+ z^&&{&+r{d1HJ7l*hjCb}-Y4KK0vV8}dM;@`{F3T@93?!78L=!4Nl~hl z7F9Qkr(w360?5%32c$IvH_D=}K*N%(?YdbE^CSB5Vj*gNQdQvRx-16d5b6%`g?gj3{q2Vua? zy0ZOZm*D<7 zf6IaB1n_kRQBZH_^i0lG(8_L4xU^b3W-62Io)^~oUD`ce4ug=|Y7R+@AT4u{+!13+ zOx_AY?Pgk7toeB(N*;$lk#X^UKG86Pr%V~_|9!Le%Xm^=q}+tH_H+JR_EUPHdjQQ+ zCxEM5jUw&qhS%$UU_@bk{HpI4#%>FnV(fVrwV0^}HkvDiuBcD6W^1sWqy}A3JA7Sb z$I545*?Doxaf|Zk_sn12NFNOTW5Z!tfVvjFPac;k;>wW5OFl%h-n2A)YPh?fpOQ|% z!^F2KS-)qpkO(a5!M?^m-0g7(MGrWFqDG<<-&}0!@bO#(>65Xp=yACeE27MnqRK-2 z``JKL^mB}d`kPSWGJ2S8%W4x&N3M6neXi?LMM~!yN+PDUo?Ujw#j0Nk%VMsIsY=6L zlWvTGPi;XrtZ}1H=h;u3y38I4iYk2(|Fw7m z_gv$OWa0a<)*Re-aO;VoC=j&_)-y8zg)|Rp%I3g!;(}8jjvhzIme-8o~Z;YtsU=n^&QHv^9Xw zi$KQfFie2>ds%GqTlbvnOjW~bqN@^MX)AL3UiIm8E`1*Ib4$tD=1)B!?4@{ZY1E9Q zFOZD#o1lN>I}TxtH?{qJV1778Bv{@H5w@f-xccJhimA1aULB0k!lA>-goH{<1>7QZ zyid@02$L&D)7OFrbaV@jiZvcxyK)AlAUEvGTnr8{Ail~Q+8$P4l3!k`((_8_czNT? zSSS{gOvBC#=USdx$2eD|M(Faf+j0h!$k|1J`%tvwCZxwhz+M?a!S2muwgu*&7n_(H zP58~MQ@eb(*=MuR`WRf>aB|R^)!)S04hEW#Qh`rPozQ3nsKKm+gpJUl^@m||-0ITa zebN7D4u2@~^6N;cSbU1LYF`l1p-e%W1F(mQf}0^e$3!N6-A@4_?j7b~6PNVW2@|$n z5n4kw8p!*gB!U>n;!&cb5M}Yk90old;Y^w$aid;dxYKi|f8aV43A^S!eC9Z&zt?tC#?kbG0AANehhx|DZUL5u(mJRC|E zV0s{RWv5?1#Ha9X^37~P(ZuibzvFDu8(mJ$c0BET_Tz>F;xgItiE)KNhE%od`8ui% zyfBC88;g2Jz}Kk)_?-50R?*D!0!zDQ}VpScza?>`6T=e`ia#o0@-O{24RT!{4IWB>m8dny_Jk#N{)5t3gw@<3f{7+LNv zSRq`Z<h#wsKN8c9+BF3v>lO#g#2>i-%$Zp`#BelG`*1f zgXYSsdwU^4we(%2)(W)f45dwHO&|;ORFSpw-AIl>wKlj2h^knxQ2($FJzmr*>FIry z@M&t&>eG>f7)%6QNO3SHP3wm=Y?!aJ!kElJb(4mMEa(?=x4SSiD&0kZqPCRB=T4A5 zW)*bpQg*Mthzd3O!f5K0vIs-3-_hAijl+Y;}`@td?}NrkN3L#3^R+DThRLnjK; zK-R$M9tqzu2e@k$nJD@GIBZ@*IR5?Me65#rS$YdAF2on7&%Q!YzoxfJsln;DcyY54 zEc<>b;T~#m)wm_D(FbsUv(UlHs&e{b_qIPOm)V2Z`G}%M~PM zPuo>C~aQOU!L3t5&HQf5$ABgZpRbLSz=4X7Y z5-}|ldtX)z=a29Ca7*GTu5-8kbib0%H7UlCN?VrlN|1~MVom|Z%0d6R@GItz;_!nF zQ2Z&LjRTz-ds5Ei)rRz#!?k}mY;ip>L ziNo|et8B-9&abaV1djn<;S zPy8yz_a4HO=X{iIlulT2iNdDJ-z@?HwAFqhdhnFI-V=PZ`F4) zni=s6#jfcf?0p@b4<*_X5x$aT!t8&8mI<98(2*d3y$te*5aTgz)TT{RTbkm3-9-=S zz;j7o-z&hTO&okjyTcY2B0E^?ARKQ)f1oKMRg+K404q6p$v4p~cf51AzEk5`KtET> ztWm3L`7O(?8I+#!@K)v=D5M=JukcPS2LT~8q)9I?y-dfZYVGEZf^|=~6>UtH(b`dR zR!>}oI#%__o8IOMBEi`!P&sljoF31uPv({5wjn1I(vY zVUG~d?W};P)3DLVca*6u*VlI6%xDn_nJ&QocbAF~8HabJ`_T=|DJgYqtwARMTw*mJ z)O7H*uw6Wlr~~4m(8W7cnzj-HGY58`UPAIQ?D}jwXb-ph&_YpXpFaJW(TiMRTdlB7 z%DGSP55GI4E$c?HFMsKmrN=NPf8P?g6*vg(Sht)Y;O2y4Sd0Ru`_>171;`OJ#NNHM zZ%k?AU7sgEdqz&G5HQqx8sal}w3~;W_iQ{jWuPQM)xA$$Uc z{K`vF8`KVw(uOIqP*(dH)fwzX2s(=pG|)R=*nR5AJHNe%yetk4r;g8t)L+gA1Q6Ft z4dfB=(06k7bQ~(uZ#hJ)`IV>36U(G?W!e{jLkqjJXYzG)-y-jooqvnr$n zvML&8o3hPu_qKdt)vrq%%Y~>Gf@m7HcnFXV9UzKee#6cW!V3ZH_QQ8CGG4?7P91zh zA{0rOtzj4DDlpB7y7(9CL(XS6;tu60L~cRmz|z5$2?2C9{>szB>Ku-^Ox@nbX?wNh zD2wP{|Bg@c`~*Y9on?~@#VwL4Iq`SPihquh5cJx#V_>9BaHUABl4+>k6@ANkr5e>8 z``^ki5wyD{62Ha{m|&)ZQSUfGvj6l9;|lJ!J56A3B-%`l-j03v2`65 z6V&<8KIiX``Pr~3S3Lakg}szUwAT`=qBwM%e|!+?0ws!lZ~S?i1fD!`xD!rd%RCLk zMZGbLkA~VpDgJ+3OydI&ly`-HQGkx)qO#qw3%0!P5u`oM@=T_Y0}k>zUwA7FdY_8$ z2}FcyJ4?rLGCK;;1R8{d`YM39J6bA92^`(rt*sA0!$Nxv3){iTrnbhOfRYcy(Cs&}5Kj z0m8j|k8b^Z25-h2-prM^%6*luMqAB4o1G;*a5L9mX?)DER1Eg82Ax;<`z6b~X{BAzcSTdFJOA1`W6rP)pB}!K#~yaHBB*z$X0{Da zLsUl@oI;|Z#P3GWf_8KLqoK~@bl(0frjYMCb_)ncRd_(L!~8m29*R}EUr2iS-yR%VC zQVnh~*Ay>RDS96N)$9U60y0t$Am(G-cwPxuhhp0xCns3>G;`X^#k{+CH|txUyfB%1 zpym&c{}arSPO=RIh&4&Acv?UL4`>hXp?Pp;&?G4^x^#6BIi|^NS0(Z}u{Fo%LQ4y0 z%K1-AXEL2n`T;%fH zzA)Ulqgjf(z~RH8c^_rlSXndWf8mZpd)Fu`rGH zs%da5sAFyGYRle0BL}z&HlW{vtFlxHitp$ymy`djSqu&1CI#)6-Syw;g0o%fr({Jq zz@J$&!=*WVL4l%0{a#9eZ|w0npiu~iq*enlr-Mn`aI03hlG=@@mx&X0y>Q{THgjXj zu9ZPebxYObsvvRl``-;n6*Ryx2Z)N_AyOqsCDQ27i?y_u@}D}w=T9JUo z9kd4=*QB1xsG4a|HD3Bo`erg{S8=RbRo2Db=nV-`svNUrBRJ(o(QJ{wuN+Ku7h8o| zuG!C_71~18QnPmRDY=S};;bYwuaunlUdt;>aghMUI{fw0 zjk;YcW-XhdYRXx%_Z`(rK|~DKk-b+p_nGeDt|Wp&+MCPOZgL%6b(z z8T-Org>e{9I-mdL@d=bH9^5=2CY%O`fVa`c57!4s@f2w*xNN`QyM6aNlXt4(Dm1j! zL2YMuL&U1GAHLy=r>sRhJU1uxx_w45kBH((@gH>F9B87`;ZiYJE~WvN6%xzQ!ENwt3{vvC+(sY6^iW3 zMa)Fa-^sL4XCdP5Q5t<7);gh~Mu;lfH6Rd*bW-c7?^`}z1p7qlwU7hHD8XuEkKzDx z5iBB2J|<{Ej12c-gOntXRBDo1GC>8y!gcVVC`o%2`5~?zIb+NF zZqOpaa5Dtk`+(bW$R{4DA@^uh<=HDp0(X84=iYZOII5_6O4jf|Y_vscR;h#-Nt@{em z_fMZ*ua9<(kaUqG;uhI|it-0Yp-CI+K<$6&7ztW1ZIwUfCCpn0u!8Q-h_a2dy!^&d zlzQ*=N0*B!rHuET_}V8s@<=B0;!B82^&Q}L5IbG|jpXpUZPu~Y>CstR)+i#YQ!=qt z0%Y<3CXEW!0}Thfz4|b6PxB@TQA|(N2dbWIeJJ3QhGSnT|LxD#MbJ^~4g=H%1N1-> z*)n@50qWgaLD3M@(%3%P0>!F62T^-k>ft!l5Oa}YX*K?l;ORiHhFh{waNYZcv=iW$ zW>mK&v>a)d+0j{-%O+Aj+dk-W4GH*N2f!m^h3oX`=h&SDGa@Tjmm8Mup7AQzDsCp# z@alm-dk=x7sto?o*wilbDPg;av4IkE2v%*MQNx{-drgAU2|6wiO1@`0w$zG`3J?Kr z&<{;LDc`Z`wCBU?b5un3HgttAcnzbXlQ*E)stj}t@Jdn5YA`aJWZ+;xb6daU+Xol8=xccYe>C2c}NB>8`$dSBO@6%qIsLX1c0qBYWRSy@awzS zKTCIm;gGbB+5PbX$g=yh`FxNibu*l%$)NP!s%yQpw1*uAM-6={uSZ~TZGwcr$D9=y z^5#;|MD+AA>pTVa{Ga~jd?O98=jHM1pfL69?s9*vM+*qhW!=O3V0lfkl$~UJ*-%~@ zUkDj95OXP*yZB3i@V|%}uMdS~8FQb3(en575>68?1UBGhE}a8bLK#c-r*L&jvAPyg z9CH?ofw+Y(R(|^@=M-lDAr2P!t7F{x7)pKzGbx*y82B)YUaC}oP0JNk4#TJ=2Yb2_ z<(EDDKE-`9yMJ@$5@CZ|WxHiQ6$`L>n#CCT2*7fTq|PBRj?W8J{0Z7)MdK?d2|5p#uSFxZu%Z}|I&s@JV8>s&)(M(Ddv26n`4s-qPl%SY7M;<-~42ke0Xl6<;+o&w6 zHp+NW2vuFYL*hx~>DZEe`SG1d39$tl>m_n<1BtDCLq73ZvAPOqp9S%g$S9QAw~>TT z>|Y{(7%Yd4>8E3l?pNW>F=McHOv{RF*{1Ba7o1*{W#c<)-Gca;ORIhaB0#Z?tMice zudb{0sWQL$*}Y1-3GbSYMY;^qJMD8f>-GignFGOi4WsV2unE z@7stV;YzW3S4!OW^>Cn~O@$2>GUyz34$jE_)l8hL>a+sde^yEb+i_oiGO=i?>@9I^ zvuk@^tp1CSk-&%8c8FN-)SkELf7ThoQhwEkM}bseS{gRXDf*9pd;aJ}e*X*Zpc#T; zcM18EC&CCR5Cm0{yG}w~7w0 z4ElF$A|;x0T+vMm$0zqi8M0x#~v+cJ7qsM8UEYu}XLhPP!DDR%Vz zg|@-lr!Mh9BS^~EOU1*^(#S$|GKL5zEt`$HX7!y9`1j1o!*+1Wm_pzNs^R6;g|9Ex ze|T}J;M;|XY;NBNp$25}xhYUH)-ESs;#@VIj;A9x+5xjQ_A#SH1%o96@@a7~!&?uWJ1_6E2CT?j5dqCk`&M*y~1GpYS$ zZr_`?K?1eI<*71at~VETn*T`lY|IcYW3Xp^G7$-&z)@ul4H6VfF*~^sBJ0ZYC6@q*-)5;ArDO2?#FtRY{1Ix5z-L25Zo!loG-Vp9lM zxLL>*|FFEyOz(94h5pNAtQ?a$md}s`I|i_E0yqwrYfccDfs!9kUK<>s(qqpbl1!FSq%cn2(zzU9m> zi%K&7)+mm17Wb|W)64aKYig8bV;yGu-pg@!T}&HH6d@4UBS7z(4!H01Jh5&FkqUvC z{rhEnZcm}Hj=54}7*F&*k#y;?yW@|iA+dT!z9ZGt@@FD* z-PaQtrnos36)Hy3MrIBnKBG5@nKd=qICj@wrd1nDDl%N|Z_bzrbxI1x1ujI8||FrZ$@So#(SC_GH+*$BYzk~es{f4 z7v(aMFh!bwuo)DbvI{9{fzOoR znCE_*)ODy>4ah=3l31d}@nqrDBjieOtmck-H+D8ecX3x8i61rvl7K59f{>F6&~_I2 zlq6@u`O^){?B;rJt}r{zMuQY6@pK7p8-1# z^m(Npm}VgLKyuH(hiMf5wp-#XQ?SGNplheWMcwy`)o)!&**}4Hd$6c@xxC5fj;Tx2 z0+7GwvKvz+sxkYP9c!0V@aoPUZm z_@tBeDzIV*fc8c=exJc@u<8?k-JKc}29u(hfT>z2{l<&9*+f7dJ7#91-Op>e3nc{k zpcPQX*PICyt0`OK4nKES3*DI0ly68>qZ5F= z+fHlqzV%Mv^~Lhj1w^`jLM=qOBocLien_MYJ)t)8p0gn%H=Z+AQCm>|N+T0x=^3hN zzR1Zz<+pFT$|xOqm`-9hHY-@wW4nt=`{bi6A_v9^m?&g)(*b_B;qYAcX+)%Vo|!_qIV*IS&mj%STdRO|Chs_nU&c0kvo*}QC0bg=F#655WYGFH*jSCF1l1*^x=wsKp^e!_IG zQ*@}&mqruP%*nC7YU5ZNHD3OGW*oJt6%>PXc0F_du!I#)@QDs55?9)7McP~&mBw`! z$Dy53ur74JNXwyWyfnP$_Jfs-YV?}2hx8}$Q|xTIBL_e##g|DQ+G4k-?uZqt3!_i> z?PQ-OsIM|bGS#`j!fiS93Vz+^ps}d7hGOaGVZ0Z2u1T;T?DFT^eh!BjTZ%TK>Y0Dz zcXqa8D)YQIZ%XYUY4(HLAEu^}boG2EBy-W)l!-j6@@)&)75su{(Wxj+yJR<$J<~U9 z&DuYe8ho*})!k1yeXbCGpa3nKXL*f{W0 z;T2L0z_0q$yi>C-6|0->K}w>JM*J(|ooqjFK=8lU4EU+)i==Qh33rq5BhE1LVNVZR zt%aV$c$>ikdndAlfms9esivSWZsSg1_J3Zk(<@`9Be5?MWxZcvP?V(SnJmb6 zh+`J!31r)X4#z5f??4X^0DfkQ+2sbOd@0w6I(SE~s-XmPxnTqaA`w;rcR%ztE+%s=aKXLY3>zOPuIqF&KZ~kgb z=VAB%iW=&lHs|y_Cq-WRdgJW^X)?(>7R_HRG_-t%-t$tq^Q;LS0-RU5Q;()S(lm9u z+W167V8(U@){2&fYr2Iq4_z)>^UI@iU&_J5zemO9_|_O!AR z^67TEls4~J@P2WLQGY9^Q^Ts9B1wEuI_&mILAMGZq3*`bmyRNB%Uc+fLtfb>zuj`m z1aO6nb5BcmTCrV!#!6qWE#e!XB{tg_NgTWgG6AM2WXJ8?2Pzo(F6A9J6mGZ;!(n?GPT|j0$mU z-OUddHpW-UzdiHnvlnm3_W+-p^3M`R1MyWVzNo_Av(~o_BTu_obfSc>dgIu94(}oB zbM-x$N`n9iN<4L@2Bir9DF+P^c>m!z1bX;!gTk_@KZ~Y?DkppK|L;2`ytBRhuA>yPlLm){*b*e4tWmQV@z+V& zQ{!gHxa^z2NK}lZ%&f{hM$T&aOfedQq>eJA#FKJe-&Umb(9*)s*<>W~lHXJQTZaOK zsjRQn8?HWFL@AQ!Fw9t*AD%!T&nIc7oY;^2IVP2s{A3nB zx6`>BDnl_>IfiqXKI>p(guyO_NvCgQBwZda=Hmi={SvG;?fQrOy$$0Ax=38Ofj@l-QZ|wa!!m-3Qz6WhC7mPaqn3I!)AY z4EN*NIJd3(()jK@*K$TXgPYrO_1hcDCjnBbd;bfP&a=+VqD}DNsjkmC5i560h}zlR zBqBJ-aL5;%B-lVa6F(lBa@f}4sgEAp5m4ODF7=O_Ik#uqYz}X^b(_D0fmy?bj!2QV zbpA7Z+<=kyLe&f~fif^9st5v~_azZ5#rn`(aV^owIp*ruV#?S*dHGSF83JzJ$%#VU zxQWE>zfXGWbh_28<>?c2iwWDh|2Xzm&Uj~al8CJ0Wy)c4*JXwQuGyp+Hix2ik(h5P z5;rbMg9p3%a?H$I9#d`E=S#hOjl$&drQ-q7JI(q@A=sUfWeEHITEgBoO0sv5TM zGV^bx^L$J{m?@BBi1x43R%S~Q!!}t;9}Dit(h7tMZ?#HvyS`L~eddL#+4dkg%D=;3 zlodzJM7&fvu=8&0lHU+Mn}J_(@_m$dv8iY@8xd;Nxrm{@Le;%J=1{(N6}y<}=b}Kpz%9drKI~*U(yd zoElS|MBEP@E<9AlzZ)BQR;!lcrWobYYtlg#qI8wEH)1<Dj(r%uBVPkILB~heT4nt8hZBDU2i{W5Q6e;a`yjA1t7Kl! zHm}wWS&GrRr2k#!or=k6TM1w1AUz-%mVTV}0FZ`H8aw94(!o1r^WJ0|$+RHkt%a~ZsKzjsr?L@0#s+I#as zvpBm?AkAN3m}QmM63=OJ*A@JcD*va9WfK*{2$ktdV-%vDB&|sEyAT>`N7h2ktRT-* zih+w#ZEPl~oUYux#z7K_y7hQ+lu)-i;qZkAh!+=-KtI^PiIXn9__8c;Qi$xp*udO* z8c&9*g#+{LF>;t|Ia0)^wgnHibeKZjIqzEcw&Iu{y>6#Y%9`2t4oh0@xpXDR?y~sH zu$t(dRGNy0ErZ_W*bZoe3Sie@OVb^Hvc#?8!G$%m7n#R(KxUQj!HF9=cF-XbkA++H z{oefWq6|ow*VG(=@uTx>LTI*fNK{}h-RR>W3bOxrI_0fhjtaXgpnpnQ89`}O=QytT^e5Im@W1l?_U1|B{1M#i5Q^*lud8yO(q(BFKAPrOGKG zJeH6%dG<^3c}ptOiYsq3czZOg8QprI>am?!3vHZ=>%e3NkC)Rj*1BZcx=>ygR&5z$ z-dJg?yGyJsJFskZiDGzIQ>NT>f!6ieHDSOzi858Jx`+#U30FAv`Hf1VxKP$BQ zY8ztpHPDBH&kE=lyz(ARrq>47SWgg)U3_2Xr}y4gAL9$ny~^Ts*Xv3*JyA_I^tG29 z^55CK*#2#WbHpv>`$|+HR8HD#P%-=xd^uZPDOHZI5fbw=KE_m+<XGmNESoJeM=kdsQNt!?=9lVU_6;lCKNfp7o|KoSj0H`I%6?v6vK~Rdsec zDgL5&L{x~ceD{{MOMD*d#YnqHL=6}QC{sQu-=VJ=ua;7~l4A@K1`7%tSeH0iEoO zq#2OHtt(8mB9%0I#1&CJ|GU>R%u*d56+-+Fq2AMZ=jQ6T%Vfvy%T16?(TjvBI3 zlY1unyxI+hp0ZT8NK&NvhB0SzMR?VuL#gNCi|nQRIgSQpZ9t( zZsz#hgR^ipKf9t}-Cp)Svgll>dQnDFl60wI35c@Q=FJM|aWvIvK4P(FLjHXgDFm0Q z$LNei2qoN0%AXteAVl6RfWY@@DTkN%9yC}m+q@;Yk+g&1{ymme=-KY+<~)iE+Zu2s zBWdKE|2_UQ{M^wCS^BI$grU$*3SL&e<4XsbT(_2`lY}-mm;@Q7+W4sA^XV|WCL%yX z;l+$3Tc=Z|D(AI9|L1k5>i7pSEtw^Ct{nx*I8vg)mV>cwOm4t^U8$CZn?|gb*ljE= zryL8*nd(y7xH(1rnsiTQ-!aMXST?fs5sP{cXYzt{=|8JYx{AxM%&b@C{324?3n|sg zTEZfY+JjCJXGfMxVaGJt8fYGjX#zv%__vcBHU_d1ku#J9Mgo+rvNxH_cp$`kE095OPf`;|!WrU;weI=snK)F&hyj|=s4e8?EZ zV3f2!bkGHwfcse=MgVKl@fn`eVfU(qp|N(z{c@~1!AgwyITV(hxrT> zb_z(?O%GHpd_`OZs&zhKZ51_dQ4;;k>iRr6Bu_SGH@|=Fsc$66aIW7BrMvd}HDDczDI+exzL$4Eder@-$!=2}!XBm7e^MCY`1U4OJ3`jvpls*+ zUg&=1;1kBT2>r@tDu_@!VXqq|n{*%DC3I2j;zV{^(JQw+O>QgjBF<`Fp-|6}2N))L zR=TMlqx^ccu$~7dtjVA2zl2~Z{NFZNcNQqxu+&N9;??Crx;{;sU8StanP8p950}`6#uxkOn4NaOX&sSR_>=J>RItN4ll!+;Rx4h% z+7$A6k1RKh074>CwvnH@_@AOfOIOF`O9@Uu%uLZH-E9ew#?;D}HhJg+P|rMCl#AOg z>_>%GmNpcPF{?ZFQ&i+qA8(u>cWiwI??NgA-ybDDA!K?QAaB+3QRTcp{HMuCC3I|C z)rc3>J=;lyAp}NZn$B6P;Oe#Ojr}_t1^*2t!`~n$6KKI^RrXIVWkZ#4cPhLU{WOB!Nf&NiHZ<=2vI3T*+Cg1%5n&^29 zw^fysCb~KNzL-iCnrCQmNSKxH!O>wUTx>2$~HnGCk- zsBP(#W;DjhiWH0p4eKj5@ zQatb3-s&palzGdMMctQ)oF(_p;POEJoXK<6hQ8U*;UdzOia%W*#l)7pzx_`s39-C_ zILWdTrUwJ+;1Rce)_g1NM#cv?6y?wLnzL4Kf@%b&y1S&|`mIwwtCNBES$a{z65?ARoJU|m(alLStjh?g@g_M zZs)Q+>no5sY$EbUT=l00*jHQq+B-yiT&GvpWScZ06*&i_V|^D7>Naff6qhkZW}FHw z2wK9gpowk6XTRT$ctK5Y!b4z3C_GZw3 zaMR|b_ZvDKoladoz-qgi%|{KM_=}VFSAg@uBme1EK8J<7QvNKSr)1 zuvO5Ah&cC7n5uTZ=4VB8B$c3wg(?fo^b|*mlt;(-6)uT63o7U&i7=j+2nb7t0{+Y>#tqe8>uqn3s`kvk~=qFh6eR#NtYtK z*xTHTY=b*}MBcjo&-_%02e$NHmZ%$9OSm&k^R1}c2)L7ZD663jE8 zhjqyK=zLtPoJ>v$3c~&@w0m2j7qiD#R+Y7^`SG{B@c&2DTYyEqwD04y3oIQ9l2QiJ zETVJ?$08I35y`~@l#)h?Me3*+M=1jV6$Gh0iZr-@7@)vW40;ifQdmkF{?Fk1{r%5% zy>-1hJD-^+?&p5)nPDU2)B4O9NPzIS!Q5yCjRgXATCy>4JvRRc8=?tU%BjKiGQPp$ zfI~uIjHjC73wM3;{C?zbFjl*FR?t|grqvD2!4<_2#-2akPl+FXo)?CYlKi-{ZXJ+*XXZ3Z_^zpSxqv+JCwR}iIE08xvnD;k-^|clB6kwu z4ct+Js;qE$BOTRmlkyn?dg3^ZnPyK!%AbOCjn6&F2jb(+m5Who#Se2~Bh_FdFOIL1TNrtAqq>ZwWx4i;5Ch|Y-V2wAG9 zr-6Kq)I$GekSwhWcwGOzun9E*LI(ZjBM)V_i6l9aRCbDoJzUW5hT~+*xmg=gvZT$G zF(^#(Pb77X({Te*g2F9(BSCn~iRbVd@EX!G4u({D5?@=eAHkMtrwCWm(?< zd4lr6>#juAg=jG4W4Um;Hhd2jO&vS0C>oMp!oH^zmo=*^GAX7PAq3#yrr$WQLT9k= zAxy)CamJ^?;4syBFN>XZ!fMHxOHk@|4I5&LU_;GMp~%4Bx(R=4>8-cETAS@a>-fKp zxL~1FN2tFPlQDw*X01>2D{%%cAj0c8mj}g* z+tlz&fw(aU!tgrWR}+q~I{8~NuakC-pfpSlz?a0qmt^#R$WEJ@zRWMoCt?yyj77%Y z5l{!|^Ev^mtq2$dQTzUl6$ok6zV+lC{CQnds(_3&{ss*X;=9*s=YVYTIJsBBsw^)B zUgSLR(M<*_oRB%N3^ulC3MFVyxd^glm>nWe3!lac%t@4YZT`ErJz|I+h(H=~qo80u ztZ)&L5hRxb>?6Iy3gB)o?R)mQcu8(dKX1iH=1AuyH9r=N624y?=({me^Y;<<-7SA3h2s;bt#x{s!6qyh2U(V?Q6Q<_1O+P@C z6N$=0wxJ#=1MBA^0o-Js9-gm8vdrK;-1Sf5e!ijvP_Kfk%bb9(BpZ7uwH)IT8dGM4 zjnYD70qM&XI?usGbDELep#J!j~oi%=DS$_&Tf-s8TrdPGYo+j0d4yln&sUOMnD1_J!d289pLH zgykd<9B4a4)`otw1t3tlqw1WDph4OKb>kpZz8)KaAb2n6N|zCR)9NX?aok-Il3l&9 z2}9?%M($0w^XTp=U(2?ywX(YbzXUvoDTiw%)QLB6|7Pv&UFocyGZTS# zq)xvi_x)omi(1bu>gd~?^4;i7S~x(4l>TplFdC9^;D|~QJ@qtKt>*QtWEmf|tLr7X zw2mbHFB%@8$-=<&I!vKYc;hK|xF|wwC z22?N3eXe~su3|q&0amyu(4uqydezr6?Ac6d$jsQ?J=c!xikdQ4!wHN~Je{M^Tu`?P zfqF(h#&-+g3(tLFwDWDYS;L{zyO%aD?<%Dlv9Vys-&IS7y1FygRcsjQA)Y%bF@T3J zkaW7ZtAtBPc6rK{Kr>XOs@uPs4#gBA{gzdS`Ro53VHzC6gYsbVY6H3oT zjvCO3v7FMTu_c8FH3`RyIs!9R^mLjI#jt1B;Kiufso|5^mh_vqi}{-d$9E#yxpQxv zHU>Qwq)Q}dDBK_SMWa~eGhXszs{9OOlS6IqUAY9ggy5s6PdFq!Ry30aD|g{sPyYZ# zcUnoH@6W!C%Dpq-g99`b)CwW83l1%rGmnUWHE@q`Bjz{YXkf-m-we@!dKG}*w{ssX z4{1Gw`(3$&D)z$>m^Bl@48PKyFoE zRJLys<@oOYXcR0@8G@&)tXl_{@>}^^t*?{ZHY26r!k0)Hg_Q?>hg7S;DhY z^k+X6pl`~v_k3LVgDm>`UxQZfN)(GOR}9mW5KpoS6n&T(YL$T2$78ip=@$&)K>soU zMIm`swDJ?k-^Z|??BKj%qYQ1n#<>jF{M!1*C9Du}^Y20LGpiWTS?7A|5kbIFYU z%mn~dSu{j99`G%LIFtIo``e8h($j2qQHSJu{ZGRNDV@75tcmE-*n6T|!FzZlT(+It z)M=8@O7KK)IwLk}-Y`@$mQMIMXrF$96HGq(B%CloJg;+|iAviWAJHaOeh1^2m08|; z2;IkMgy#Sd3IRF4cUVS-@d({=T~pkq#oQh3(I;jralNGq?x77wZ>Rr1qMXe z*OF;8w3W80T>s0{BT|%kDJXP~9{t~V_6|uCzGKJ2HUvIz^XeAU3-v8Uw(*>zO(;zr62rv1H$%1b{nvADxI4MeCyhyk@K(m=Umx{;w|lrz}2(r2HQI zG%kb4gp=KHF*ElDLlW0P=$2_6zkV3Fkp)Dj+}jZ7|4$sJvCq55xAI`>hjj0qRO)kq zIDi-zqyVm;vrB`Jc_(4JLIB^c{nS8kSLzGsoq&$nL%e1GT(4;ccoTCU)UW4#^p>w` zZN1ZT`{1?-tAH-EkmQKCc*CSw-Q_{)I_mHS%+5W8ANluHZDT5p59ME3Y@%13JSQ!C z|38J1Y?h-$GKWY92ferbPRk${D`N6s2$NYi3kMRarv^Sorwp))#3b7oKpPcM274?&Rve=MqZq8lpM`PP|lRggttIQtRTa|NH$-$Y>^Ydvz zqv6P_k(Z^p6%xvXL2lmim-dBMMlAHl z24E_MhA0eQ=|^7=|6@Y?{bL}8J3yojc`q&SzEo9R#v^L4G@lSe@#}`A^ZV9f7rJlT z_TCxdcD{pZ%TxV_C`7`6gAjs=4(e8@>yo85r9EOdi&wCjJ5WH#(D;3&Lag-2aORe1 zt@HyHOg5_bSA2u)P?j}73|_GTtGPd{rbdng<5P1YA9ZjpUXg(E!DCB-cY&nm^D_dN z3=mM{en+jG-j6_q0IvknbZ5_SqkI#%Q+3z5DBku1FXH_u%x(11uB$weWVs}RaXOv?Ti%mA{)$~dGP=KGQ5@pb+*F!|cL*I!C*66qcHAgKPcqRE2j ziejx$(ii}S(2k)MxzXdUe$*+*e0E8I5qPhUjnTfAE(uJ}32Gom-*TPN>W!Kh{Wvbk znm8>p38U+WGklL45GVr?K;qfl27yjiLG%g!0m|+lAKxZ-KyI~#a`p1e0oN$rO7A?s zd!~YyE8s*W1{FoDYu}%nz#SYjt&_#Yc1i z<~%BBtcLe%Ptaszd>`IJwC&prU*I@}nDX~8z`=9fO^>hUe32|8Q4Qy(LY>i^gXTIS z^El*eLw~&v%Y~bMAQ&hxtM7y!S4xSX)ajsGqUdv9N{Qli8*ylOVr(P95^==Qju&V1 zQ)Z@vr(5(z2sFOc1eV-*=ivw52TVDPFhjGz$b^AzLZ=!2WXRPkZYz4{6nhWC+qai1 zZbKjegWK287kFH>w4m`>iDG}|Gd1WL#tEn<38Lh0rd&V&5G1971e1&temXuo=Q6g? z*8`5CUkT4ViK^;A>r^SSa(4W~D9DV)4hu{?DQFxdt&d{EDN%wT?L&e+E~91nIuszr zk#D`9{`~-_jEQn4^&|Q@Du|}+!QFT1B2iMKd5f|iCNzewXrvJtS)S0`Z1|>GEKoNi zp;&s?5a6uDMUyjPgjQ4NZG{Z_g*r77=V;?A@ z?6%KpL*IOH<13PGUe4Wfa^2-4KqUmUo9e#cMrv?0nV$DZB`R-a(|Rq*6(N(kf}Fe1 zoP6vtDb3`9#fF+BnHcK=)R<+b5rJxii@m*;FzzNjp26a0h|=N#cxsncFqTU(^E!OCWo}P$;PC&@eP#$Jv-~?e)y19oH{{Y zuX?_1{Aw4A5k>+ARXu5al_HZg7L;v&T8}Z{I%G zzZQ5<5D#Zv0-xPlu@zq+OxLF9+>3`Adq)ft>p?Qk)&NIlaTJB%r+s?1bX%?Z?9B_Q z7LeZ&F4B_&KvhUizk^9SjO-p40T+Du9NhK+SZ;{++AIFLYyIMDT4shU(vcsLld4-e z@GR>7n{VYu4rxI{51P+H)WWx$Ecoanke-;Qp-CApU>Hz!Q;R#wgulA)Dg>~5Cb8q6 z1gV5dpcWt1g0A56=h}axeT>r$ls(D!RAP8BkrfUcLLG`MK8fBvQrSnB!f6HBi02*76lWEI z?gH%-PuGkIoq6I-E6EfsJjl5l;!JU=r%IKt1pu%1d_fkpBh9tO-w77D1vHH|KT?hu}N5h=fgQ1n$dj|-~MWkDnG^{)V$P2?|j6Va6SJ^X&W*)2ZUzk zX#!%d2Vm_6Aw-Cm(Ozgxv&s>mW`VnJixJ?b_~fa!S{p%6<)-P><%;szMRB?g8%lrP>TgT=C+6kto_Vzr}zLO@ZW6v;8klhNUVrQ*yn5P6#thdzUCoO##IXNPO--AcO-=VasQ!{Qo?RVht*- zF6(fV4014PmfzHm{vBPft@^^*3)#;@(3>#HAU~#VN8P`@9Fhjl!=Y$@h(v>$A-oi) zu@4%zH6*wQA$$@ARKmQQLsGQ#lYg2MmO7%$311VXA!~pN^3TBA%g6Z(p{kN{u9w*G zhYhkmh&1KBANFYMAj11auoAz?e3Y4Qadpq;EKVDy&DHSHT{s>fmZ@-uBsWu^Gi&O) z)gZ8V%>gC1g9JO=fk_6Ph3LHtMNcDrp?=x8w1sTl*8<`F*fN@t_dgh13G6 z$}TT{TK`8|kO>mr5O~5=o4n-(z{Nzxd9fj$n6v&rZ1w?rK*7^_)mbWZuth z-72hHMY`v&wn}(RcJ;@Z5Kg1dZ`(j!xB|goLOzBmeT4Y+Z|ow`|uR#+%9!0 z0h)e(iKeDkDlSQgych-l$?wzx>I@{rO`t)go27o6_2h>@<1z;UKf@Qe=`LGqWII$* z(D*MAZVOYuMe@|QA}&_ip}H6(X5PZ@W1z(vmks@bjd$z;I+e{8K?{Vg+x`4V`QvX$ zxzor-h`K@N=vTK({ECJz-(TI`{SGqX-&!v|MDs9W0rOpt>H<&$irH1YwM5>5xKL9` zdWkQF9o-w!>z9Dq2z#;@9n*#T(&He!I+C26vEcUe`*{asTPFuSKnO(IYy(=K!f%bn zs>EjZ*WvBtlHHia8>^W`q$$fGB4X}WpiM?|5dvOWRvpw&KXBTfNDfn=oY2rF+ZdG` zx!sVF0PuyaF6v#_z&m-AM}e|e>7N?<(t`@0r_v^K3UTVNCy>GJm{`%3{=mE~Yz8&Z z>`LcLfF{|`S1lfjz+l3Cc&ahXbO>dee-YnYyiiKNF%S?3{aBf8Da06*kDtoSJDIgG zS!FKRv?ed|-73BWy4MxYy}Oa_unTs2dls@I zM9-|+YGj)9v0V1<%cy(W!QAvl&-a7=pV%m;jx$ue-4697g>uL`zB~%uE0*xfMZ5^O_N(jfLxIf7Vj-JkD1|C#+H z1M7R@S2V$DW{*Yu!dBA(QI{mjLfZ~yK)%hN>}wOMay)~1M%G4q?rse249qZ_oCyqQ z%S0fwKNR6{vM`wa!&o|_zp0vq8nFQ0B-+M7mVt?RJp;b`MwE}An67i%)%s>*KEUT6 zXq%BOJ^`L&Cb+Va*C=srUQ`iagl7FLzxk0iOMRY@L}F|Sl!J+oYW6BZe@givD{1z* zD8=gAjaMMFJFdN%jv!fRl`dtc7|T87gdnEDEnBr_`G6$$TB7(`r^?CUbQI4LG?xF_!$LE|3*-nK!s$;%irr$t=k#28HgE~mb!K^F#}8Bc zE^K9c1BzL;Y!)I4=!KnVHlZ*lj7p#L$(RQNL3nVKumJIH?%h~#2gk|pnFWn$8+$+! zq;5C0=4VgBx@`xNMu>lYX!jv4jm`?)VcE5gc-5O~QKl^}l8yULWmvreGQ5EkIpp|Dr)XRr z^@Fcf(xH0~QCcp8$kTgFH=hsD#Ub3Qkw~v=F0deD!w*4<1QVH~ItJG(%m(kExGk!Y zZ#MDp(SNiFDUV6arHY*4~_rumF67Qs?Wa1gFv?I?a8*I(4~u+SH&K?4gQAp=(3$cr+aOA~$5b zJL~vn5 z$N`*p5lFRd#_-CyS!Qj6Wpv3L3++rVh$}UYkcLvGJyoR2dOqpO__woKK?yq~CVJDe zWUIE1NF{}Z7m;7TPAR0#(;2MA>zPg ziF-xG{D|=pQ1WZ;-so5o!R~Qzw;NlTSKjLBDxK1!gxRJ0++x?Vu3! z?tar!2m1)U9jOA=Xqc~S}Kp@6hZQz;Tt?VC;&yU=0`mSMj z8&vTwEgE1CbN@LYckQ=q?sL>{}*KYk-snW7pKyEGAL!mtTpjX9Z0Q zI8xd2lGZPlki(h|1@Hw?lj*v?3ahVsB)5Dz=Q+=E;NE@iBI6LYx_WU=eo_2iA7wI0 zjoMl=JEr%!vt9g`{o)}$UL|rqokrza-n=|nvl{MgPEz&F^Nw&~?fcUGUw4+jvZ~FG z@r~5VvW*MgrUS^1gl#c<8FZqO3=QYDA}#fSsS2lGCx`Ud7k$}HdnG?vrVqrP=Pdf! zv7SH^YH6(f(HbnrO+>f;Em=NuLREXtaS)~EOjSfN%~%L>qgJEHFfU6sd5n)>{R8?s z<|kl5%muAgt((*=lm?Sk&kBrKWe5l#-BvQzX4R*$l`TZ*i)_r*%yCD1R>HZ74?{tm)WZgZ%D-sJh3ET(ldf zr!?nc$!s>p0jlrD=Ff2HEG82F)A*~)#BGW~th)wd3ytm#U5{_E&yVD!@c zD>f*a?7k!dQYv)>;2*uRVQM`$t;Q>w*l?b*6};9KwK&;Hx-87zQuR-qtA;HKOON5 z9rc0DZWbtbGH9r>TG-6(gbI1xfb+Mw#lK;6K&KDaSsMn_URtMfKb9-Lrm|Jk&f?FO zlKGgCIv}qbd*m(ImFvKsp1TPt9SDJo8NgI!1|B-IbiEyJ4R%mTY#wAIuN#Nm|D=pw z!3i7ce}60Z0A1R;ZqJZ@jIW)R5Wt{|XEJ>Aoc+R|+()aQ-kr2Vlyhf0i!?_**BaE@ zBX=rO#@O_Dqe$}&H0C{2`P{Zq#5#ymT(r`sTZfgRjJGigE*OA0=p&5Il~Pot#)J);u{xjY3^c}8M)Q4~VF+68^Jg6~Q0rWT<_G0bN{EXv;( zGso}DiFG(>P`=-3=i{dD2rD><5-fBC=5iDg>~4q5SA;brnrAQ{dCTj6*ilw3o;ZJY z)V6zHrL`$YMU3+r_rzLuv!fMnuf(;-NY%z&7?JfU_xO1ZF3d*he1ZP-n9mNjNhTS-j`(36C;?*grtu?h|cTc%M zM6)AdLzVA^&Fseomvk=fCCus7M-xOP!6o-RuIVZlSnnEp@5}Jpy>*CIrn}$wF^Su& zkj?hfL~F1f-1YJc+~)bA-pw5RL|S9v=wNqLK{P7cjF>VtVhdwWVn4h}RO^yNd$Ox$ zzq$`BlF>)tmFV&fiA}7@Un=UkD)J?`_~UEzK2pH!$}J9d6#$7tq(7N=9je^y#75Q3 z$Fbxtd$k}7B}pOXei>W$VIPSh#0E8C2Th0&nlW(3hU#+gHGU1I{tx| zGe!aN8;%lVw*{JJQju~_M9@zhs9`mX=a0F53@|}<;b4Nl&rn-G^CH_r^UJ?8;@G_; zSs9Tp6H84vq>r#MdX~3OcSmrax~h;8eAZ_VQyyvb@`Vpda-fI!cieBU-+iKRG_LMg zj+Gq}wql8O*l9Coq7ucakqOGLui%vL#h-)}wxImf$>z#?QyU`|etpq+&&KdS-ZKFR@_acWBn@sWavIun;D@ltjHax@Ix5}i(VN?XlmDYR!yCWd+7mb+uQ z&0ID(k=kf%f~mwMhId?z-jm4dr`g*ocUsNa?2r2Aysexce|TxpE=2Z%9S9o9kYTYz zsoNoAjMYae67|dcqmKCpzq8`rPievl8d5KC--z8C_7;B&r91Ys&HFK~28<9#UvlB|GeU6&vHf z9nUu?WrrPN_hV76*CMU5kb|Jcv@o$~Kc!SwIaN_U1WjFG5$m4Y+#9&cSgsd%O85BA z!Mo-%#vF83$1hhUpIwdak!4|0M#P%fH;_VXdU?aYyrc@uHc_{pH=6D)Bq4H;%cuYn z{C9jSe^>i6fx5ep$!hXbcJVoc?&p~;@J5Sgx$P`M&#GFvKagdLnuW~E#4vzi*>iv@ zKwYPo&c<%E{Co7$9s*PJc;jdwQvqE+s}a-MxO_unyq~(Y{b&fvrUPvww>jI9D4`a> zGxmPq=YxH`y9wNoB%0Z{(sQ>m={3>|&ASgG(Ok%oTbZi|B9SO3pi{ewR6nt6zwNgn zsqW6q@!$6H7Yv@QhC}cx9snevV!%#;H!}#S2^GJFA6~1CF1zm}lM4y*R9xj11)nx@ zU!k!q(|8S+I3m$>82nV_tKHo)JgCXfzIXQiS4|H3Q#gla_awVcMSVbNe1N+5H0bhf z;UM+sWnxQ=I^)pBFIK>9D9dM88J1?Y?r~xm;+Rl#nMf~#;G_%smNsD|)jqGh!!A0y zXOu`5hy3V1kb4a&zitgaTaaj&?HIA`ydlKa4$7Pwx`o3v4BoWoac~9c`V&V(o&2ae z?yUIAytR0p$@w>ZQ=?p;WqJ!DOM!bdo{BOmW~J`+)e#ZbUoXx|$v@tBN}!`foRwzt z-t+BbIg9>NX>e_u0F(`_2kKk(EP>=Rn(r4d)G44gyiCM+&#;qPsV%wSZ9ae~8^KL} zftbXd9q}_JeeRNY6A6^*f)SteY}3blRV{5r8IE9s%1>nVuVDp8$zk-?2$oDKH%Zjfj79uDQ)vZzd={`d7i zE;P1ZY$!->2M7ISdn1v|cb9jj*4UHr?~ZlNB+7G~9KXYlO(*-=t^74h*->~_;Eb?h z)d%siN^rmGuqub>O5}3*;__X?NCIUZX0H=KU=%j5mUy&|had}ki_l(Q3iUs2>4n1E zGOiZ$?{xH-^hT$0Ubksvf#0>iB?Q3T(RoxV;WGxVr#O|f*P;hA){mGz(bO8e2%5hp z+@#`lTJ>sTT&jah0Y=(i-L9phhm)2{vs$p`f@4j1F)Df>c;vnK-@rEfk}ItSsWIDk zEz(F_YQ;Qbh2H($;E}pv>_5V_rn_%nM)XPC;1NsNNe;0!jgAOrp=3dV8tn0RB8etJ zR6cv0iUaC}o~sa>KFt(d@I@B*JmsxZXM`+1gjOs2%YR2#t|*MRVVceA9$$EA)_O$K z$HtKr_1GS+nwwXNe%4A6>@-9&OM^d;1KGYu9qk!R0k3gzH@67Yh+*Q~VrL2JEi!KD zTi9BZJKk8yi6$RAweb5;`Cl5--T!FT9Us~C#+z5DqL}B`!nvVJ(`9z*fL&+Asi6(V z7n%o&(QYL?#MY;2QIFspAisc zr8@i#sr%-58xJHY$%U~8vBC|Bv(PTbx$DzpeQWUE^IUWrD8a~~>I0L0qqzs_8WmFl z`Oaq0E~T_HtstuHw9*D;&LK~`W4-+0gBO*MaxEmrr(#RN&)HLjqIMxWV}r;t-!Vi! z|31bA61)CVKVEA|ORoSn%FghDB9u=J7vy!#G5|(W!9{(*@AhLyhR()?F^kT=ppnxp z^$R;Yhx8WxX#9CuO9sJI0y1X;_-g@6UmgnIKzC1TW+SPwk_Zgvjk<0KtZnH@60iMO zBAWGb*-c2*#lNinEWed!0!WCCKu^Su3$Wre2*JBANuQ0cV8<(bZy8w z9lWwX7u&_$Uk-HH)~{Do|ByHTk@ z(}Z!Y@N9;!uwpTMJ3Wxm_-V?6bH&>kzS4jjoE2f-?Ri98p0^xP6y&;-Zi*KlaQh6FUpux$!ou z%q#!V98WF2&Ti5ClY$*)++#2X&mYPR=8qpBH8@P8HzacU4Yk(=PGDW!uI++EMs%PaS~@Ie~2 zb}XyZEeHWt!~Kl9zEr#AdeuF1kgoKK8nZ=uU05R1p%9n4f?d2YU}U@ExZx1MEBfz-?Tc21t%8kjBdj zE*!Gx`uFpyRzqy-F-$pDTJUpDIi7tAr?p0I^syMs{49LVW!>Vz;+0Eo(FO1Kb`t(i z3lPIfpt5hUHr(FIN*M^#n069;VfreuseP&vk{y}XlC6N?4)0zer6z6}%B5?ACb6pC z|F`x|*Wwmux}g$3!-YPUlq^5-WWBxI{=M_dnZ%v`$^6$L#UIKM57z~Sr zVU9k%ael3A>kzkAbqKdv_Nqf3G)0sfKjQ80C4u)*@)fJJiY85D}JYS~KS#tcF zy7Cwls+NJQ)KA!L{Z;MCJY?7t>H@n(MSp0rH($I+gk^)m@5^Y5(!l@@%D@sX-ITnp zf~)DXc*C(fWD8FwASF2ZLOBV!ELJtHmN?Q7n^ta>$s%2LHy!E}E4@EOVPngCiJdmu zib&DSFOQ4^90({wO?{35(Iq>;Fms- zasBKV)>9B=l9Jxnn}#960Yt9?%sVhRGE*^sL0D6HH7wi8qAiq{HBOvs>Gi5IoWWpz zx$t{NSHHH^koxJjmr}IciN*oRFBtTZonP=kjb?=M@xx`d_gVNT7uR;baBcTXGFwl% z%~h=}nlxg_{m>L`UJ*Oh;3y@y@+x)Xw>_Ux- zcMNG~|E$}=)B!ls3UAn*CiqzJu46Z?t+GP=n!A}9 z641APy`sLF&`AEp*p{W)X8bb>JqT?+8b6UXe@r4n%rcF)A(7vNqi8SK@m$zhhAL74 znM8(|`ar!vow+2t?aKkj4CY_fuIlOo*wmWV75{vkInK8Py$vVZXFMcd5iWPr`BOLTgQ6q9zY@g1yO$h zhtTa6FJgJK^2DDd(g34!zw8xbycut_COe%7sQ1KMZ{7`t*5=~pAQpRRPU1n3plxq# zib~AE>2(=8MttGHUmK-$v%_3(D3f1d(?dHH!a<5kx-whRRj z;k0gqI2xDM;w3+Qd?O?-XMWkAZABty-f~r_#=kP{b#hn5e?Pwv2r}*EXTmHyMyvR2 zyi6n?&A)mvMg{F}G3Gsfw0Sv34(Yd+H9^qbKiWXu4R%&KVq|&t^pQ1OeHV{HyK}s8 z>yF9F-^5}sob0$DQM$QE<1L;HA8!^y1;EZ^><5c(>hygb7g>17f!oO?bU=eB%W7Qmb|IAkOX`nS&qCg0y((G=8@z4OA5MH}u zwRJ})2Vv}|A7r2gaper>uU~Urw%X18WgwP29s>vJVF@~L!0aS2`Tx*@b!|~aYnbY_ z8+?i-923aELBH$DDD28VH=zpo-qfCAEPLXx<_GWRepEP#3ajwy$5vF6k^A0JeSq5` zG;=?W9q?i+x&ucu>D7Aofd#pPO%}@7ZgKg5zZ*oWpx`~Y4gY0|{mADmjrvhEm*5gt z)9I6?tvO|a&qrp2x;%G=SIT5}Oc8k)|0Ih18aLsHOwI_h2rZJbU@6@(-F=MHlQ;b6 z3SYR0$y}~?bo8lEr_#_hrR+yPc$0-L;;Cu7@$Q=pgZT4&#-pG$rLJ0}RM5KF8MSF& zMEtgG70v4M4c?hrY5l^}=EuKI$MPzUnLWS*Z2uKot_{{fQQ{pK?_v*vOW9BkfMUBlqvG=VV4wRW{?B3s2fh<@-0_^K|3KyD zdaY#|kCK_CvAD*%&qF;EVh0OuJdBkRKT{#MZQ{4@4tc<4ib=*xZg>V{EI))u6%KWjqBcnYt6{D8ya zWZl=YF}EtRm?jsnH4n7)^U=! zmWw|Dmh=wXlB#oR3eF#;XrV zhDSpT9D8EX1Cek^63d}XIr`u-JbRt;*oWf#@VBC5Kyyl9U_?y`rJlDO_X#1QV^KtU zFFqKtN>5avzO5)!n{SHgez^YH2eYzD@#gL)4qVHgFJI^sy4v6oD4Y<%Kbo~m&HS}Y zD0_%G^5=)Epn7^%BL?_-7Ot^FbL?OobR&&e66MbQw&4nF{{R3_=U1P1=j(zxWNSj@ zQJ2EVqkOzgO+kU*p}VRuhzFSoLr@rweu6!hFhU zQx}W!rDN&XFc#O!y)&F>6>bATVNtM?mSu%ebq@hW7jIl^!PLh*gEq;4=jSz&5x*IY zkbd!k^Y3@%nrLk~ z)J=7nXreduG`ms8Hos zc(FvF)L^P@tU^|4Up#6~JxksnL!*kzcRk6hb30T10ZNUtUiK<~rhzH#d((eCCxoD0 zp77vLX0E)qG9l_TN!gh6)L5k8^gje1d%ZbYxzC~Kq5Uo zx_fP~%F7Bx@dBzmPArUdju@IB&V+i>rhdmVE?#;F^cRrFs1CHN0#r6oayObc-2&Se zT0d5JfS3kEx5B_9oR5lTHsRsuPA?O$n{cQJ@l*FsdYRYz0n9gM;tsyAKVCbPuq->| ztF+k2Mwd*=_y`wZjc-kqvNp`wCC^AU69^uvT(0;u)+ta2r#q|z@5Ouxtk=Th`f{re z7=WEg9XmVNzHM^|i4oK_h^K{D4qt*e)*i@_X~AcRndYy`_zlx;F>_q^;8KqV)2}Yv7o7=P|+foJhTk*A0?His_xf zGwgI0J@8IgI#nTwu|mF!slcivNyV>KT7O(K49HT)goxaINE!IMvnm@5v%}=d_;2}Q z)MHDa|ANwxW+Pfnsjt4TL5d!&a9(^c32{p2KvKl!-;?L+@=}8{{3u z+4b=lOs$#jQ#vdm4>XbTe>i!Rd_aVV)EHb^6muc(aiyIsRK3olx+wX(2S*7~InB-4VFR85dvN%-gZrG2vJ5mSWS4W|P(m9J;!a&r!m$6Ks+0%$fIeCZc*USIM%dW!deWX03#KuaE{iOuGJSJRu z02y+x#r&r1Fso=Qx(c|x=5%*YYw&O`OO zJ1B^R@v+vf=u|(QccHn-$fEU>0jq)p)JOv0o1AK$oK4g9B4(j(TW^#@7W(v8I$RHh zkoWt~o6(-1Aw!jEw&Fs#;8<&rue`{v;U~~dG1RzVrIxUo2_tp|atbzsU@U}jZKUrT z^if-5Q(O@3kwVW>Fx>jyyMq=gjbC=GGhFcdz_abTJB>nZZaw*nsAv=jC|q6Dgxs^ zfGGN9JxIJjHbGC9nmT!!!?l#emHuSFE$LUz-I}$;O>2aTQZ{Dr4iEj!pU7on z!9X%#o}^3*vWf3?i%eq1y8qK!+~Es8$`bpGH?}2laupga-u@?B@N%QsP1#i-nLf6Y zkV^dntq;xcjL$-_C~n4M;Uo9H*GDw#)@O%2C`3CRuyP$7iL2Xe2@NkJ^JdU`USEy$ z!6ji+Jsyu94voQB0YgPOB#28+Tl4q8ah0=>%yF&I1=la2GPmsA#8%p9MJDi=Rg-Eg zU6vN1K&i}`h}H97gwsk;2VP!S88;ylsGQ|e3*OaPaSe$Fc~)Yw&YWRUMEaz)LHNQD z;{_%wZ}t5T2fJP|a!bB3nLWOBZ46>2E0TMXdzC_ZTYords*krmkHCls&$^F%UyP^~ zvNv*}NUwtzpez7?61MJvrlUM}mveg^q&Dv~<^mu(xR&Q>=3&EJI6Vjdq!x?sgQP~e ztSK?tfdQR;AoOa{YzuTqLl8JKUBu}#xfN?$%-Di~FpGa)DH{X#^E@M&&0_)2I(>FL zP8YO6s$MVV_#q1$|G^#Vr&99!CU8RI$2ZPM?Q1U)G6{KDgP6Nh0xzCue|ow}R5`8#Pee*%T#duo+$i;dXo0#> zYzp7N=y|(I)cA>{3L-sv`#N^yU1;F~$4En9`82Y_APKJ(5c0BJ0Jq|6lw|9COgN0< z1bV)po;HKrs1x`nQe#plYY=GaWwNWqn0ioR z{Z@x~A6k;>d-j{rW9a>O`>?j)0JcWjj`tZp5kN}cUT=T%H0ku`s8U>xX0YMx#)8uk zyRDi>q?H@ELP{X_F<8OL&B_@Eu0R;8Qy_6giY_$Un&7eaauyW@MsB# zEap8;#yfyd1H{(pnR^)4pKtj%z`VSlxCWAh6`Xm#K%_tX$}byca|V?KpYrc$!cBV+ zhc$h9+Zuedkyq!9kh{~b9ejX%X8Z&Ivc#K7_%V#^*ajSjW2x>-FuBMakOw}G>GVQ%U9ds%U zo&0p5u)2G(4o^-QTAkH3krCOPSkH*b*)zV-4j$Cg{~OvHzZ6xF{4cGMU3kcpQC@DZ$CRST5lIF!Hfq z*u3~I{(`@l$=3jQX#P69o`I4<5Gn!pNv|NX$G||4j!4wA z;g4Ojydc?yt+j)GIaV$jBD&dHZZ>w+_^91i^U1jHvttf3JEa(IZoW&b#`EfmPxa#z zFtoNn;cG7HF9Ky4m!8z5qpG*on#s_)iZ_qfd|3OdO@MI- zO3&wd{?IaXnKSxbyfUs0_5?hDtoi`1KIfWFN1xIb+!V70MD0{Dh-4kv_0hZ<-b8o& zOo7{$gZFmuhSus@X*=)N4;62ts! z0&;K-Fd_L#er5e^!M`ySYGnW4SfEYikgfX6k1}-s7nMd_$832w)Z|2UTgI<399=eR z93^r6!414<<@Flywz&z4-*irf?OI>(B%+163=>eotBC4W9wcz)>#!3?UrXxbF`)S3 zGN}&ouC;z42Gj5=R)nC**St&<{JCYhn_UTLZm-Jy@*U4Y*NxQ%R*P_=1SI7wXra35r zzz@mW)d#vk=^jo%-otBlUI$ni|9siqRKNBo0qadd9zbl`4SI#(4~H)uZ&Y=uf3b+m ztw17mV$MtrQ5;9qnjd%ke@tC@Ae7(wKd2~5lR^lMk`P+73T051h%7}+`D#^`60%KE zrjQn*O-hthv`8W*Nkv6PX|pD!Z6Zt7-{-u(_jm98mR)A8W@&tg{#OLvOK#j!UkbDwTi7WwG{yh=&1Lb{h zqY?e+@yaFfE~h0%(K&^to~kaBUXCCitfE^E(d1P=vuXDr3mnU_IcxY8{I~r${!bJ( zV5Gmyiu74kSWv>mLu;U~r{WE7yNQ!K5#IX?^S7k={Pe#s$8@fb6A^UNjF6u&W69*m zH@kq}lC*0G8uhD&^{+6+-znsrZd9Zq6O{(jhBJlmRyX40=n+0qRi4sm|mQ5o=UMuHyI zngKMN?U{+MBc9u?C-U^0t|VjwDXl**kUxk}$49AMvStfFHRXpoyGw0K45=UwNcNu(>$ zX3lW(^Vx=oGy|Lqt8#ybVAhXJLt+&{4UUD@1oW$YlfyrCarQP-p|n|F7VLk6DS8NQ zOxh3DL7OvWO(Hi!ah%hcb_VQWFayl++){DqKoSv@7-YG7uP_gl zDI%mR^I>dAvHh*@?_|NO<5c4|Pb5~$7FYGGt{}V#=)cq0DZq&&@N$>Xm{`-ZBtfM9 ze#o15sxOeqOEi217%IPq^Q7gG$dI(vL~nt3NAY4Js7iQn>&@iIxS7qFNp0)yl`x9u zgGw;`or%M6o_J0*H)ynFnrUK(vKl%?sEyA=V7+gwl~9B@KBIh_HQXS*Z#okw$4<}s zHiy!Y&F@M6on06;j3__f5RtQOOFMg2?|+9_g4&wcHG3SK?pPB&wm5%m@mYK)lGNsA z6=d>&E}pk&{-~(K0nz{I1( zGlt=&_FF5)4$9jXYKqCCh&bR$nLrpeMtqhOA#vWB_fIMYT1Z~|7HUek=V=sF3^?!+ z;;_m@G=jHdx8foqloPX*?cJP|>D!wuLv;h~>J&xMxq9>d?z6G=6YI}Ss_I4C9_MOk z&!6SL2)7YmCiu(Xgqy)PDBWBNSx`maS4Mx2|7R{UG5dV1O)okbiLsF65T z75g#?qr?O|sWOb>PyZEvbE+)7YnifvokS=~KLGt$AfhcrMeA8N1_LiPHG2vdFf(4HM~mNl881f5jGx2sFIr)*u;nOb9+e zve~ZX>sLqEvpZit!4iTIes){b}?^Ra0_8eBoq1y-Avfj`N*~p}_js#B_sLl>#kQuE70W7?O4#HKCuU7( zGV6H#j%8oy=N&!4Z_?5l>{b%TM^4~WX6it3VHVP&u2$HVwM0YQkjGvzZa7`S@n0O? zSadipM;-3|?bB3hh2JHSfo!1}$OLpVLM82RQ>b#uO$CiU6rK@GjKxW9kXth!$Q7^) zpys7tbBwlYe~2pIEzKg%)bg@V?&_F8>hC9f{hYNmMR?iO`QY?l8jI+p1_dx4iH0;g zF~O#s`Fwl+VTXnR9Iu+fxF;?AV<`Hq6(t6DzwI`54pUx4%W}-Z>jzMh+>jb)F^Z(3 z6uQ>_y@W>@J})!^_p>D!{d^f!?man#W1d+cGR`b<*%=lWzjK!ID!6^=OB|@A2{?%a@B#FHA zDT#FkhuR8|uB@#1`Sa%=S)zW;V%uPGwN@xz-sc&1?oYvBl(as5EuQ|xr?vOxH?(u? ztk(DUT~a(C@`7J8QLwVUP$xfK$9IPY8UGNa8I1>4XGMrv>R?LuLiP%^#xBjAmj1)5 z65b`Qk-$jCn=e->Q`T)txNBN7cWG&9$Ye5}UNtnTQoqBWQ}Ajl;jP?#Ch9_1rd|Hy zJ;jY~UQ~xu4E`#AxB4c+Ex25D{LV)&L*8sbXz1hieQ;Ai4dVqX*y}Uu2uZztN^IZR z%T;bp8H-tr26GQyt}?6;>t3WFMN)BA(1Yp<8Rc)%B%U6AJnDsh$2N}A*Lg(nPXV7l zZ-H%~OIqg@iywPBDeCC$5`}k}KGl$)Coh;-Z+NK9buzK#Z43wq=#e7BGwj}ndj+Sp z5OOT%shDF+zfs5^Dk82|kN8b?qiqx6j@y1WJ#6(Ft<0*%3&K%~xe39ZLSJX3jK*2;H{h4KJVe&)iV| z6zg3FVW;S=weQMu4Xq3yy!C(f6nC+Hy9_pN9y9*uW}J9Ih>3mLE?JiMoDoF*V#&6R z(ITfs3Y$%maRBfrdOV@$!bAMDS}`(y<2>vKDLRV!ZX^yR0*|;;Wqf>rb={6XETpO4`5} z=jyNiAp5=>r{t89M!{9PV8^sh`BS7@5gJ2PwcgTUOP5-slc@-=ZKrkrm0N?ALA^H~ z$<(BmU(4vijC510o4KyTaosfbnEz;7ZIQNnT4x$_(^>pgiyv-byir8Mc3_6>$$duO zyiVj9lX`lUjz9&(AL0if5ELA|_k2%r-Q_AB*z(BnboTg*7C+jRR6o23BN~ne-dBDW zn=jV9JF!Jngg{YwMe`5v6{q4pIqO|&jiF=4Q|p}m=OL|x^3H!E>x_&Cm$rzcYh7sl-!nEJZCZ)V4bD7w$X^Zlk02Wf2^ zMj9*3pPx-|3I^0TSN%>6ordHLbZ{QN~QtHR4FFAwq8R)YZEc6Ory`}y5; zw@vhIfzPUpkI{UaHAt=>n!c$LPn%GxB&+CGt>2N1HWzpL8Mbh-`DL6BXnYUo)~~lF z;oUdQoQ)1!qI>IUqmbU51;(4+k0HVtX(LYe8LpRk+ABip=oXN0ZNJ_wj?!i5n%ecJ zilcg^ueYqVuiK(T=iRU>BUG6c-ABd~L2h5b<~pA?kE9~0dJU^LkFI5G?2#lP(a1#v zaZ1fg5PZo;oavJ&1>*p11r|R5ua+NaSnqsRN%b`15Yms~Cz3l^CoDveW9YIQtvMl=?Sel_-*w1XT*<`MjU~DxK16$uy z5;y;0}Kvkv-+A*IU<~WlOb*~fi#&@dtR^+D_R?|?Fmz8Pv-iWjNvH=mO z_2qAE{dRPeQ`+r1*{*NoQ1Q-!Zzp@4jYN38XpJO4VUq29=TBFmv9^1oE6x?aH2jD1 zE+lSpAgMnP)_St%$}P5IhW?#rmp}Y*S-kk*DDvS=(W+4(KBPgkz-xdM7|t; z{b|I`e)0PDYZ=}NG=EOotEBqky89XSW-$~_#?ZWlELUfqKWaqj&%*>mC6UdN0dMHBDI z3s%aXrD)kPngqrS+Ub+}ksI7fap2Xj-Tgs#u37wW;GAxzn}rxfuxVAsVw}80UURc5 z&+9}=1YI~$jI63d7YkR`k~S=|H%5&q@gpBa-;x(adWb77SZvEsc?24GM=sd~E3xQ@ z6<3yI)GeoQ+0_2rB#j8{872U9m-mQl%7Op{sUQEmAK5Eiy4L=zmKtW(8xOU%o_0|I z$Fo?zsj9Hh+Me*PpWp3I%-0#va3jMV!%!jGd|r=e+Hu1PghVF$a+%QDD*~0N?8$@g z5yYMPd$~%X{`2I6eSRC6@xq&OWkHyvbVwl6H|t`i?6=ddO2a#i6fcl^d( z>&Np+R#}AZ;oN&mwY0~VhHAIFLiESr9*Gtcj6Ge2MEUiGdF)#A5^uy~N272B4OYQ6 za--JfWtUO6kV3_SdF4BTKxXInpFdYj5aA`j9Fud?@aQRD8CL%FfdDa z*RsI)P9~2C_V)*DUXs!G{#%!b(!Pef@GQpRI5!k|5OLIW_gNc!24Hb}{Se38)Dd8i zuw_V|YHkcVHJTg%=O<>$LDwF<3U7Z8LtW#IxBn(uVBPUi@o^IndfYxA{&Lu(P8nyKml$Ihp7#PdsLSn5S(S|y2r2e|MK=L))`!7xoA0I@9^hLh;G*NJ!IM}Q z7ueo`f~#gFtx_2F=LfmjYziVTvqYmi42_nIflB&@v_7j?h!ukCj7r3 zzEIb6 z1bOY1E`VMuEMob}vx+z+zZ|wywA)U`FnTPiSH=kn$tR_;=m>8=%t&=*E0U0+1HvU zQr=3N7h;^ojD5FLj7R~E7BzKEoEKC$hH$Ua$Rh_5p3B~#IU0#Y=Z=ImMc-fm+{i+S zu|L145WQ7@=UJ|7b4_^kwtQ}RI8^O5&O#(L{A(G#aYt2Fp;Bq~W7T2msY}x=e$Zf) zJEc={Tl}`j=AOeXt#}^SXp))>9=eG21z$Rr6x$g!0^9|ckRcH@`w!~HUNiaj*_-DD zC4(e2N>c1sN|M(MAoK4y>uJD-q%q2_Vc~ zi8LY6P3|%XOnvRGnDn@GLDU%c#{1!(d)~hrn zBqJ6R=*_2Dh(O*U2^-$dBosq0VMci;ei8WMZCzNyO9Sqk2a>rrh8s@;w^h?H@{ zyPN#^RY*-QKosvRoDQu{K8rbUQ7hqUK_}w)lGT{y#rtQ9Bbn>ox#h#K#E~^xw+<|g z^t|(U2c3ZKYkJui#rkA`HF~@EMq=!2Plqiw%(EK$oIA+PoU=TW6EQaZK8(8+p{oB( zEb`b3@sT#SfG1>b7BbjpKVn~sp+n|;iMeFEQgt=FZO>Cbq^q~-k@7W{uVqxIH7>;^ z9o%uyj^xc#@uJs?F=LZ87a$1e-8c8u+~TiyAMfxZ#D#Y6NG%y$w<80?>x~?uYBJ>! z=f{M1HGj!-LFOZoXye57T64T^h2Ycjxi{D!Q`{gSK|4@{FI z#E3lYLgn&%W=yp_1NB_KpyI(HJSh-!$OxTIpH8px9)&D)&&AcB|IQ=4B@}f>T-@5~ zA~zkhFX%tqBv#b~K<7L+Y<+r2AFlr!~tJn~@_ER3_xliZWf2GdsP8BdEDZXM!apJpCpsY?E zRE_Q3cbtng3w_EBe&HkkWpvG41eM>`1O3%Aq{k(%F0HWB`XfdCV$rhl)qg z`jgZexEYo&wwthm{2;Y+s+fa>ECIIH8y%El?Xtf2*yV?OT(m(826v`|%RhCEfxS-| z$=IRM85#lio%>YBX$Nn5!JE0@4K`@Wh%Cw*M1Fd!8L=K7@&m0RM0im%2XwEW$(!wC zbkm>?LvNx(YwWcCSafIiITyUMoOx%wuDFD>WfowvE?$9s>wu4vPMfPDu0Eq$>G9HA z&9xOVww0aA6oVJIx`|j&Co8lLo_ahT$w+ZS{*!jZtf@HFjl`J2%2~cC9+aS{piR(b za*(QlaINWniJO^APVeG6a@Je3 z`K~Hn(Zfh7&N3wOsZIPlFVHiQq|KT+?A}!MPkk$nT;o5F`dzMi&OH53QHdXu zIFus}7;K+haTS}M^jLbmHSlhxB?)8T5HA3c)n>pFxug7e!d0`GS*#=1DK@0IHV5fr zo%AA(((UOH;7HJ~_QMn~Vvf^grv6x!F++bDL;W#t2S7UIcj{|>|L~QaE9BsS+Ey@- zC$9x9=S|bn=WLQ`&?_k40f(JRF*U~RP1PfoZ`v_BHY3WILv&<|@e|qKPp;wn^j>QV zQTTUYd*87v%a2HqpA4~N4qc>UdX;r#gKx*xHJ|h50A{I5sh>l-!522d^5d6KW8>YY zL9BCz)9^%~+m8j$cWed$6mzX0?rALFj8tSE!x*WIu!K~&9ha+q%B^|*kUY0NUv3Zw zxs0T8sZ!#U*g4^xZV851DTdg0-zThDb4p^K_lcHD7!$ocCn+AGyjt;CWJd8OLlmIR zi#TVpO#p1jl%J79c1Kqyn~0Gl22lJMPZ75eq3pvi5s_(yhR9rTRVA$E%GxJ&q6h{} zrW=0#I~!7_mY&}FSke_V$LBGo_?`_7&1U60Y&k2prWLqsyZ4kq0H|I-sh$EQfHr+Z z=joJ+B^n*I?v>j*blP1f62T{`m{S+<`Dus#``k$S z+E=QqIo%bEFunfY(AfBnr*zkNXXbwf~?6iLyb>^%ae zxi|05?1f59SwekXA*04Zi^8TNkPlTaeyYQT;p$; zyTnglo%RBGj7OLCauTQH#veB7+2@8Hl%x;72z2ntL@xKBM!Wqq9=*j);LYAUSmQ~Rvj&ne?XPR zC=oKAUW-+4LqS3oi(`kl!GL41}EfhG2FJe5ENv zheiw?`BFm2*&={!Dff6wF&Iou|FFOHNB3*@9N_3RPEso}o;(aAn0e>IF)w`&q>8)u ztep#klmyYdA`~H}uyx|0mj~6UkoA0#^kGvQaPv4nq~VSVf+jru59C1xtBMxpuR@SD zG_ruhIJL7Ka)`P*CAT*4-L4289eUh)pRm)tJRedTZ8wadmP#23Dj4 zhoyk_rZ#hbP%vxBQbKrpXyy&zO_A>%p1T`_d%Z`It)g5<1O+x~ydP|eVuco0@u(Fw z25w3ZSy%g*!k#TodMx)(Xt@hQ_Rw7mQ0ya(JWTSD%@#^b!^MJoN_bJEn~lf`oHhM> z_F6{thceWoKCKh3??q|Qme#XA*cbZj&UAzQ%6U=bk!SGid_qC25O`LzKbNkji|US$ zFsQTdB=pQ3cs&hiE6H9=|Nc;G0cXC7VB*{#>kJ4|vC+4l3hxkg;`*KzC zbczw5sS?`;^0RMk3z-)bCP{eWG@=Mhp{}FR_#-GTS}>l{QFBEzCpc)+8ptFgzgj}-AcVEx)OZmBln7@t8 z4cbm;qCP$F0)T+sXxC3?VxZRfCNiu=TSgP(+fF`{EhJu#JooLwe|iDdehxyErc8H~ z>Nk(UPSk$PQ^%;rl><->QfCXD13X`OHLC(e6d?^Vi48*itCE^nxgyP)P^7>$LD&;U zA)ne#H-vZbo9h2OPh;M5J!ckzq3*x$s%)P?IS_akn+E)D2XKJrT{EM@uyAXuY3=KI zroY-k01Gx0u(L%Of0TwoF>$}HMNL$Q%5UK17;uHRE%KG$iIy7}icOWZdO?yfno9Z= zvjBsmbOF-Y?mpMkZ(oHYzm9A{gg!U{sp#v6sCWn`?ZtA4Gzu29R>Bk42$E^2S{f-H zqzr~mprUg=2j^LSCtwTW?hq4|DXs{Qg7{F8dN&B&v?RD11|VWl7*2~DnQb~1>u?te zn-(dsna+KPVnU*GRu$&z-tWoz9$>vVO}YnDY8^ujS98>V>Zs!+oziw4QJJH3la}$! z2awuveXz|&oZ})4#v^PH>Mvr=%sm1tsXt2*Es*_Q;?dRNTYOPqbVCjkHCQ*YR!M!4H>aQyQ6ckM5}!j#nK9KJB_(C960^sbOyM zDFb(qsKAi8nr7#~0ABDosxb$Ti08|RLSk2zJegdKh)6hAJg9IK7Ee{bh6hPW*Lznh zpnMsHWc9o)bRoVOM)RQ{^#$JAGqz!V!LuC>_$Li^1pAS6NQ<~%f(`pfGd7GGnx5&u zYV3S-Jq_&Qrg8$0v}C|y=^bvoXD3ZdVozfAT|OFA9j&afCFt@biy`Z6X0c?5K5uqN zg>`bODB+q=V4Qo2@dJoc?$XyP#Ya|TRv9{JgH_*YbgqVr)guc;@>iMEn$=WTPx`a~ zmW9)P5wSkNh6$(S2=m^byMr~lbjFy~L%TL)u2)w5UfmHs`@I*Gwc8`(r~P*VSp+V! zER|~Xz1+EolYlVI6=-3dY3){3golo>=S!y~j6Ua0$1L;?PHu3ITtHS8F!atvnqkty zbBrn6)E4AdF1B9S+(9Vi3}L$8Eo-;KJoF#}!Eq*?5f>}S#;W#bN{_>)+VQ^Kv%o>o ze)SH`99lL))i8H(?HV7k{kLMX&&Dl${NMLwo1Ka_?1m{A2v*cCV|XcLr(E?@{J8s9 zsJV+{+u9z)k=a(nuoz-dXs%MG zUMwAC2&I@ol|mj$5eGa(fsH2)P%m=K$oUAzAs<;Vv!8-5Ph|QonRRcfuzBG2IZp!= zGd!73!4NDFh@D}4>igqjk?no;BQc%n^~uHGw?q%tmK#VzQwc?DDGtpruV>LW)c!0f z_Sgp!Z%;PzqRvb(mT|@P&%JgiHiRWdK{4p&A{lW3fX6AI{Z;j>FldpbfEKdc0mf=^=`=FVk>J#DuE zoqQ@Ky$+R+S%1K#z(~VosLl4e{st%fpGYSaIB`+t;}%t^52cf%2VC5m^H2{RLGxNJ zkJ<8lyI+?+|F!0ayPPaF!Pk?Kl~0hvMgX94otKZ|I-{03rDm?ZyNj>2JTTimvW}1h~F#X@R~Ve>5gpg zg=breHi92D@gX*a2Pg=g2BXAihN1VV;@o48xYpa-L17Y1fwNuL;zvb5#`fjaJ* zL?#9mj)aJ50x2IAflOTsygmY_mF2KyBl8mCvFGh|_?dgfqLw4SHAK*-UZIb@GoPgZ z8Z~&jZG}EAtq9_T!x+#KgfnPOqNB#N99xEgV^n-lv=}xuv83ACk%)Ntr#*;(E zJ--dQ9afpiAoFDl>B6h)6&q$%pmM86FNh#&@wt(A4r5Zsb@NbGQ%MHN>zkuYKmYxO zU`5X%f1lCidG7a%O2d*}pzHroT{lDFe84~Z>>p|BgsFmPtQrUwaUNOObQ9n9Sfh(n`iOk z#Ca55ZhflzYqS-bv~Tyyv`)|a&(0d*rL!$ZAu`&U%RBJp3Bt1M9wITl|23 z-eHOa-uGMho35f?y>)-_X|{2LMXg!)Ve3ev<{;3gPFsw)OKC1BJ#gtFBsJ<@tGhZi zM&9qTqL!AwU5ja-Q_Wa_*c+Dbj=1pFM+Q;QMGix#)tjoD{5w@nQ1E@bdfyz#1V}H0 z3y!fHm=t~{{0+p&>fQII-W&(Iwf8|$WoV+RXD!|pqAvwwDRlc38@U%!*Bb}F*gm3o z(qdGl1~vMVg9pwGezZ=;o)~vM6|p+?b0Oz)tK8{aJ@=bzki8gV46(%U+(AtMAsNiJ z?~Vwn8^!9}VJ05*Qvy7pg^#35*D~Z-z88wHI)&4Y86Ehjg2-P&15y94U5F`o-kNhc zNgEFqe*Us(a1mricOSULfWm0LG#c2*mHWMD4j6?@>A}(Pi$yOG26bOMI*-+lGR zJ#II}tF-gRc;W_RS#KzX1wW%k)8v^OjDk}0ZVPlV-Q z(;P|mfe_~fcwHHLSnS4)&Cttf z(-&fJwZjbhrZf+|*u3g^oM#N+^NFF`({ zh6#ux3$b_J&Y$n=4cJor{p(srR)PZIO{Xmuyoy8YMhkt2esuQ&qkjN6eb(?LGy&pz z(97z%ZFKx@@S{l7wR~gpK~9;fRk8%k`)1Oju(AqQ_@i zYzx;7XDrU8;T#M`oqmzU3rC8e&92RW!DLVFPx+G-)Q+TPd>WpfHt6;SbZ9+5-p5+Wk|jUU*hQJ%NXyP@5-ABLV3iRL-F-T(cI2BMHMtsnnS z5mGlf)=c~9_~Aj%{Z`;ne<-x%1v;=~S-{UU-@ByRX zfSt1DN3Tlm%xx@uaNYQ>tRVF1G+*tp%CHES**OLeQw3t5MC1>v zbd@L1-*I>21?AcI{*JN@21vQG-WAGi1VBB;%^Q--Zit||4 ztbqeH=X0kgzS_M`5nN<9-%w#So%owP4Aj2veE9#*tK!=bvy!ZIh`{T`ov+R8<~Do? zO$>74%h!E0?*4!eD7c;Rn8o>m`_Es$rb?nIC-#(4>%+C+z_z?-e#Bk||9lKw+4yn}z-`961N@2(HZa(0Rj8}Y9#DC_#W)>b zp2m)YqQrgGV_&mIs#tR)Zh9hG&Pevi>4_iX%K=UJV3TOSEOZ7X3R9^VpH&9r<}3@` zco|xC{N6;}U2$>+!$pX|V|gC>cCQ!K@(WP`0ABJf3}*4#{HFess6?2(0Oj>olj`PSVV#`l?LoP%(2YVpnX7z zwP-)s6pdrf5w8i>Yk>FJ^gA2#lC7^GbaigQmwuNr&l&WURb|an*oF#7j^;EQf50-H z=yr8=i4F&x+38$l`TkRkC2&rgmY|>CWe;3RfSpc0%eOHGk~{fl-IqnuuTc7sr<#?$ z5+4t?PNmGBF0adTuaa!Q^9~)ojr&Bwt~p!X|6u$Bl$kc`LQed6cL7{KP!r8R6(4P> z3J5&av-o#ypu@X2pybpts<0IoTVt?x6jLttgu2VnUr*f-;Dz;SW-BKsX9tcr?txnEX}gWQ%ZuwEK?{M zuW^8*9il;^-fCUu`N86jmMYpjLAX zU%^;^ToyPDgK^K-UU1cEm4z;CNZB6msEP$CHwvI8NsA~?)IGlBYl&xp@)A&f>h7}< zgg4SM4=v5+!|~_(J*UNSUtBPy$jV~IxWeODq~5xwsedZ`GeM5b?CpnEDR8;*~_#d2@*6 zPP(;7`xY<*vtHcEMGWvXfuYGRI&y9hxVEEBy?NI5sUHwr2`Vh9oXinGk=rHIdv36# z`ui52kF(ismaw*@BZ(~EV}8C6P`!9;+{_EErQ)9tJ;h&Y*e&@O{5Uf>4)q%n?CeFX z-wT>=$fAX$Dl^a@j`=MZt4b=5#+Pfd4H<2e@ug}Yc*(d5 zjd0CzwaaOcb?$d#->>P39vFJYGDbk_=*Z{jv+RDq@NnJLgvd^#{#(usS5A-(-%*fQ zi}vv28qGHpS%`4#1mG;E&jxpIsRB1*X@;O}x41HgR<)CE{$ASe5IP0kW@c;GDJ^Q$ z+@*BI&U2{!%YL&l#sBc~b}LiZ-wIY)9`;*pT4LIt3_|oKY^84;|DM>}8!Un=?>BYW zm6=b+UuJhrXFCFRMvWs$sqy8$oPr4eAibGcI0bqFm}Z$yQydvaK>NDKv7+2cMv%`_ zD9ug#J~-{g5b9=BlIjLBa1Jvri5F(=1EM_r(9Z8Z?YCMI<3_}nhjCmPu$B3 zJ%q9SkVds)-J<_$6eMdO?}tt6c76>D>(-mO5daY>N{qFr^WU_h%rnIF=dw2XimQ3a z7N8z|#ctlTA~{g2w`3H!HpiTbUVSCh|$S|UlmrnxG)rrkIq4)!DpS;TQyk&WJ zhKUh_yq-y)C(I!QN5A1Y2f`qY80E;r|6g1t>LEQLn>MgZDWFf$k zm`J*n85EA=CyszUSS8WOCnSPGQ%D4LIN3gl{#p%JQ$%>)87&t)_6YMP(*e5%sn*wj zOFjX74OzR`+3=DsKA|Am&+aV$qTcMMx|-B)wbRM$sXR$X)br1pK%allQ0iSJ_Bnxm zk|U|V-EDAjv!6DX)K@V6<9ZnCG9>8+R;P*gx^L4!ITp$JKtxYtr}+-(lI-_|Y@EuI z&zePUX)zYi{NBkB#0#V-F9iVWj`(#i9GXK}v+ZM2nf_lBm`y=})IFit z-7UgkO>FmA)+1_!O5~lb$~bx5x}SU+m5ETJ#WT=Tfpj(%`KFRnzLG0Hnhhh`u4T>m z5P^!0Y*MT$*cwoi7peUUtQoU(Xid7Pb~O7nznEl81($um$Bj@t)>^ zfm$gDXb+r)W3k!}EJwk25-SSq0QH|IQ$Anxf1n3`G7utAW4NrmWO4Rwh9eIVTc)|X z){5{ZF3bCFUc!XXdb1hgm(jd|Xa0{GU1rMfB?&kjAh%eY_Z9Kq>(P;m8legsIFxzH zM;PYuhnTl>RqnW-k}4#9YO|jbt7tlnLuRMa^~F7iADDKz%sgYpYjOqdH^7 z&|yW5NZpvKVg1=!Br#q}G#DB3=Qldw^2tqx5E;fQWEcPx+Pr}fVvmr@^PqReSi>$1 z`0t47jVDyWHU)%HrX?rl}z&9TT@AjKElM)LdMdQ7Eq=ojm60|C@wRy>W(hI zn^5VgMr3uH{l>Apr%)e!nj)Z848>Hd!_?FT?jKC4)7;@9!aYFK)0qQ{x|qP@Db;bo zFzONo9L96@owCWX`XV}xL?7{cn>D<+#SXZ!fx2&`QYW||^W+ejfgp3>s{@CMAqJ-p zEz679$U93>mpA;*D$3ojbT5UdKc~vV%j%(Wm@1;@^t>Pccld%#>8TK{Od3^^+4W12 z?FgJg5AdsT2u`V(!1aRbF17W2xm#^E;SZt=&`KG|pg3jazSze|2KFFuH;Cic+3P$i z6%{C5aP3rUWE`@y1jD6~442G?xRn0wZi29kPm;jP9gG3W)wE)J;Xn@PF z{e?GA;2J3)ido5l*^9B-B~+KW8>k*q?1o5ipx+ZxZaSmV5C?(t42}xYDh2dz`4y zdV1n9exL^yASjNJ9?yga+&o6C4UAaBY63U6;>1gtR58^7-_qNN&i#Xtn+cA_Y+NUf z6G@gs=Z@2?izqM!0HM9t)M0|R3YhdCI&~#~<6h+7&6(l@;vI09h*Qq`zOQm9^W5e} zwprv|VK?5S>lq@nk}=~HtQUJc%B)~NthakID4m07MuBBc|G(@q%65fRY9g^r(PbZF z&Ne|P`CNY?qMaCZhiYFh0(6D~S*j|VhHO5<_082toi!rbR%Oj8$ix3Z;G|vY|Is*5 z%M}lm&&E0K#=)&B!^X6#V0_X&vnfIw>Wa`rds&(1BvuiV`A9NKJDS$^iGm}73$qd} zeD#64#d@vDf~VE9Zye*#KRT6io*`jAC4pO@;oo|6JeU^|!smO)T_>NXHs5epdHYUg z5`7Yx>X#4Dz;`swAbm_&TYtZ>>T0B%*+{+6>4^{4sD5D4EgoAYbOGs9Q^+9WE`=Ik ze9|38^%7+85U#?*R7MoVNca)I)#fF^_97@#9L|T?e~=eRSNk^@!Z`mv>^?Le66}GQ z4XIDCeuJ8eYt(NgjOCWw>GZN@9?w5pj^UiM18_){q&)a@b0fW0pbsv+^i7SsBI0aX zO})0g^>qNbeZlagKNI0;e_(R1`mNLflfn$QYYPwXC)s1Dz-(Z(uv9}N8R?8c-ENOh z7@_#yHR%yxXP+YFTfKLhYv(tu9|y4>A{{W#@O7hUAn%zag`*%&!JO@2?fugB^c<>3 z!T_qhyuoFRBYLqG;&w8V6n3AcCk@2POGb)6PlB8VIaGArIvtJG-G040WH4Fa92IsW zRNX~wI4wgsa6;y+z{m|0>Uh5xnS|sbZwkF1T2Tc`l%FMn^5SJ8VQ!1_u^crIEKPR1 zfz3jS^Q175x*DMgV@7j7+s}}BXCWbsK;ets_~8VsrjqyV?w-nt02txNZ>YSx-l=&g9=&o_8g7LVYiM?aj+fnwuiR2-Sw>=cF4+(kuS_Sxc}U^MKX4<7(w+ z2y&|%JA&1~SOsB5vK$kv88NOoaI7hK$&1}ht%N1k2Me6XUhz%V2|uPSQta72)f24V z$f%3-=Z69G*&aLh6GeI(ct+39cOn3*n2#SvFsYI>!w-sd-R9A8w9cG8b0h1za?j7# z{5_6oL-AS^*0D*zq&UEXz)Ks|q1Oicp(^DrS)-w&To3Gvr5iSiR-Ois`*t$%PYR2H zA>Jb}nADiTz}+U#rpvpBy;e0$L(SWrCN$ zS-;qg|4@mFAHS45I~IOh6ws%jCo3V1`qQ|%;CT|GF0sq<3NFbNbXq~Bxv7lFl}c$Z zFY}zhQrQQSoWq0~HS&xZqr{!>uXc_BozJ0{J(s$S-1C;HL>-v|RWWmYBYJKJESjq} zH1=iF;@>adXdT1UHFthL?7_({D`FIq)Z*-*lA~$JMdmWzDR7)y8~`rRjs`^u*Tr@m z`A_x__Eqw4@|_v*IW@%l6Y=GDMmEJBfa)5YkoKQ_E_##TLYnJq)^9fp@Wh0vKfz%J zj$&AH%pxx)eAwSjtq_XM=WB(V!nb@9R51ZXNMP$Sh}PJIhHctDP=gEx2y765KPq3h zC>^*h{6|M^Jq|;TJtAg*mkFnq2~#F#E$+k$4D=b^XthqgF3Bj`w65(THMj@T zB~|=3G6!eL$mjc^K8_!%#gm^;MQPyQH?}eca{IF-=gQhOVz(#LB*S|&D%zVKJF6PV z+mP^M0J~^4gHXVHNisMH?rBCQsCsKr;MdQagvxl3GPul zohX*C0&5Yi-PD}aWz5TUn4rr7^|~PyOVOvbsRYDTdio4G|K$0A4SEw3nJm_9il7b{ zqSknimJ4FBw}s3^XBfn3b%dgm9uNe(p4$s*j#0Pt`d&2u7*ZEgk-pVso&kM>Q9u`1 zM9NH598fIOx{qbqGqI_a+r7wLObD+xvgzR+q>>jKNwJzOxcdIu);*OGmKg5>!_}MM zYR5@Lje>t%U(Y({)Ol_lTp3@!!fRIu)PPq?lN-uWJ#l6US1!2X`_)(qvFc4G9Ho3c z@gGQ0%}ZQfVEWMuDO3f*x^x)pdb=EI9rIUX0Y-Xq2SrnvBZ9Ux*InN_?>jY8jrfx} z8_eZyXP#b-?GSwb%lW>H{x<8H+Irj+zi%1$1VARo_|CNTSnLv}+-CrK<}vhmRa3IH{x%4zs z$GLjQO@9})%v+B~6n0KxF?h~>KC}qX{fZxm$`}^$cN`PP9vt!cVsbuWY0KXfCUDog z#Nxwv_vuM0xomliwzTyK2Y*xlI*a|r*wA3fQG)er>I8<+&|7}6_uXtajJmQ2 zcU!ST@UP)iH)z!s8H_S((NQYwedTM^3&zSB972*XW9&i|jI;(>$yRAO{A&gSNGF@p zLP65%g_)kkiofq;1A{6y-M~=LAM#3+>0}MV*g4Z_`aGn2H`^fxIIRhjLW*|F&N96G zr>q78nXLs9%!cDjS-=qV3YDYgywuk%7({P&0Q|^-`g$XTO6JgdgL%NZl$G$)%%0gA zhOu*Wn{OQAcU`4NVRQEvR!Q<&iX*Ztfq6g9u&#S>u*y_sf6fqcoJD!d3wOP=D28t@ zM_tK=uQ#@1(JFme@#W6SAs$ok`~x@et`&kJw-~>c0>CmaxpS{E?*x8(`jSeIA9tKu z>BL8tsFQ%Gf6a(y2t2Cb0{1G*T}_`4E5EQr5 z337Cqlq^Gj^(<*Nekj46imyxYknk5Z2{K?-)~v@awG3SJ83X8TeZzq9(ip@D|7N^g z>iR!c*YzpW0$KM6hEs#82=JpLb(%25(>l+4&Vf@cKkGF6*-Az#8{x4vROo%rp*-Ep zek7?wjn755`Q98|@WB)(z#v%IUh+g~$gczTj2{4Ag|DMPTKz8uU;B6n1da$FKgCb7 zO(rvB?)p5|u8KOe;r7d=-W=D+#k@IP#3z-OQg`rhhAGHc8iJnkmH0 zgZF|ch0bp{mlX^Ki)?71SwF4H5+3xrM;LyJ_I1jYKYcJhgO&|N&)tOSq&PJF>O_g6 zg*Ms#TTZQ?mgb6n^t?BN_)WG2_M{~-hM=XI0>IYDq=+UHPH4|gZZ(AlZg0d)?^!Xuv;=R znC`RB`A+WwK^%cYY#7rEoC3GAJJ0)(6{Uz#+i|)m6;LRj4NsBcOM!n|C>=14?t^3W zw}{S3W#rAfCxm7n46tiLRXm$Y;U~LMphkHVH$=!0X!F)1!i2YAp!UgGljG8pr%~{> zhixkCS}PejME20rToW%)NH&!^tGnjcKdxXLdczJAsFuPmTw_rNg&_668S#2SUVUnB zoYgmIKeK3XMf}LWtmkxy0U^cWRQ#)k=?CDAzDY4NWqMg8O;);B2YIZgDU9@jvm=`h z&6#fVmC7Zn!)w>^2=_j{;M%h%A^2vm}s}}s-C?kj)9j=wb(>j;i3W- z3G5k*t=W6mzuthIdJyb5J40elSBz_Eg4m zgwP#3-e(P&x#tH4iun9{uW5!i=f_=H32zsQDgVZdUaRTeKy4ZRn6kVqQu4Upf=kj8 zKW-Vq^`&g4iS!zVpt%gUt&FLiuUM;z0X7|<)lhta2GoTe2rtO9;2*g<7`JoiNeOsKBOOGw`mPSQ+ODN^NJyZO|)xYN(oTr3L zMN-2{2U5K|FsmWtf~#B1a9inNpfooB%J8K{bV2IO9v647oz6FYpe|Y-c%P@sJm-`( z)9S^Vv(T=}TeNgF#MLTB3Rdyu6d(F9Xk?HSI9DH6cNH1>a}e|@H2l=0{ zP~NPDTZlxrDw|)ez!RI^`J*vqh~*iKn3DFymuE=QxVZ0$v%0}m_^ybc-O2-?ulvEp zHL8CqfhK}ThA&US7l&NM?~hRm;2AB5=6iS+U&P+=B`oL#F!Fdm?(jH3p-J#(@iAK9 zG>{6Nw>?Q-cX}8Ll{gaaC(p_s(Kd(K5Y4B7VP&@OqJeNG_jwvcD}-eBF~5nr`w#6a zcDeyA*i_rmUH=rwa8-K!t3G8YPIpAzIr`WI>e=<|{oC)m`~|Ud${#+Pc9hZId+Gz| z0wEzEDbR1gzx0e4r!X7(!R)vmQKKq3UgGRB)bM2``a5AJYy9Qt=Ed_+aEW|gPBDV} znO5+8*WtKWVmzDXTnB>b-UI9RuCIfOFy}xi59GbGNN+@R`CJ+-E ze|ViBG!9HTKKxaa@n{S25vx;5_ZE5H-;-HjP><`lMyx71@b1~i)NrTSQQ@Rq*Jbk2i6WWuM*dx9BBFlI4E&O&;G^(sID>?EO8uLBj{oOsn`_Au{(QsLvU0d<{FCGmmzSBSOv~vlj z_hivEYag~eMkg>gu5k{PQ`UV_c&3A{t}o}C!r0wiV4<@-v(CMYm%m64Y$S`YPqsC2 z{`(Ajo^tpUbDvRKxks?jwGREOSdEESxt9?IGKn>)*3z03zAt zoGa}%qhA#dAO9Zv6=Q0@uMC*Sn(20_@9v+Q_&Ly1w7AqxXQSv+DAN6FYK_iRQ1n21 z(1uRGNv!aNkO%K`m`cyj;+eUyIk9KDJ3`_0cq-j!naMN3M5-L-`HKib5_~|*7>e5m zs3IwCTV!~Y&Rg?;?S1(pl-nQhv1H4dZiLV%ZEi-&l0qmqN!txwV&o<*21%4{YLIT0 zN@co|>Q<64Z3r<&m#!3TOxXrkDr8Eci1%~OGw%ES?fnDZ=9e;ao^w9uvv21)z7FSJ zVGYhJY_$LyqB2M%taV77+3tpAP}CtEn{>s~jKFbm0uEjbDU`6viG_w9D~s8%?vCl^ zE6z2j6xRQuBxhsc4S*lQG-8Ti*2okr60Gvmd#4vdHy^!i={)$;o2I|Vs0(yTQ$o0T zk1TNhaNv+y@S6L6a;Vpn&O*%4c;gihlLkJPRHbc>^MxZ3W4=|K0uC zqXhSeHlVmL+kv3_7G~-_p0DAn;lfAIYnc332Bgr+G+I|;K0k2dqp+$TW*+{D2Gm98 zAp=7&(2X-xaq6mOu2OvC+tI*Etnt1AW=VMnST-~|pTJ=ZEq=OcF&1k9y%!03hx>>f z?DotAM^b2I4Y%Fxr^5rw(g?~mK)+{u$ful}4>F>!2RGGdhJ#FhjI^m8#3C_P>Dyu* z-o=3bhRX+@qrtz%kQz!)(6s00D?{qjT~5Nsm(btmKl-ns=noo>LiZdnD7E!PKjAD? zLr@b4T|>Z7|C?cm#!%bG5vY(U13_46hFCH#Kz1znzUXTM_7Y4N$;4)bYFjD2V2Nr* zW&w<T1^2#{&rZfZ9|C8s>IQyslNW6TG^d2Roqt{wQl>i<(kW2iCl`5;KDvn z5Wqo89M>A|YE}#e{gWY407;H)Z8;S&IN>*%WDAvn*H{e>m|mrSLP)42-)0pGDBZ>c zPD!7sMak*jtx|S+*#L=fGqpk}&OLh;X)1t*jAe06`i}yy9FByhgk~NL3tvkpx*uqy zgL!&4uqIEp1Vn$kZ69p#5uwqA;@l?LKpof`%3q6j$a8@#vT^R14@}F`ouX=Hs1InG z))C@xt|qd9|E*4JRA!c2<>mPEa02@^eAlD6a%@V_9bTIM^S?O4%ulO2YE?g&2 z0k>l;RK&hb)J#k~Mn9IOE6>8N0y#=gemvRzo2|e_NiLt((ML>#dudaGJBa=5&uoB% zQBHyGK`C=PAg3=FiT5XWSP_cYxYA${GUa&>1gCY3%VE1Uy;y9w&?b@;N2$;kmg6D6^%r2V^BucerU9WY%fx#7 zeGP)APbM|V)`80@%7RU>vWXF*Zy`yy@=xEMOobUUgDfG;SaBBwHzmR5%{LGt-nJy| zzB))T3^?M)=1svwqaT=;HaOhn231JVmJ~ZMkB!&Htpt;%k5)UZ_?6xRC&=I?#ODwI z8e&d5brdT-P8=>p?SY~c==;tgpsn#URt5Bl2yDtUaKR!E}hlkNno+WZ|`E`63X0 z_gEACWi!CjDQddbzs2{$0eW>eEIzFo8+PQ^pQMIC*)iB5TK)YX`1$leFs9Nl3$HeE z#`uiY7#dzP@iKVZAfsup&36GTTl*|PNlq`ZFbQ{2E+pd>mo@aUJt_fB40%!>gRVxm z-va<|tgmX6q9#lu18A$p|3ha;uPd7Nk1PDeQ3BQ3hG#;X{6_TQpJTI$5Zxr{V_miK zubbe@)P0!XZ(l=jrRV*X-bgmnxm!stiiNf2N)v@t2Wl$4R7$2U4 zxqz_|Yk#v_X75Ly#$n^cu^=|=0-1qljtS1XKNJji8k*eQAjQu~2)Ck8S3yuWtU{@! zQBq;wzOL%AVKR{5OEQZ)lMqG<6asP5&}bmBxIAwzrs0?PpQnJE;PQSXg)B?!PlA1k z%pLI7Mdt4flfmnJYzgNjToN@_tONcJ9u0WG3TlQHJpzDVKWtYI=l)RHIxN}9rUGM7 zAU|Pz_n^+T?sWV{YQ;qOA1Q$S57eJ z|?uCfyal+SCMTP>r?i64cPnbaPvg2jyEM~ zhpinS+)H^3BY6WvM+)Ph^8ua%6}BG2nzEeI%s#BxLwpGcrTRoamU2%$IygF?2|kwx zOnI>la2e!`w^UQ@0{D@KhD?nDtnGM@h;p%&g2YboyUvV(NuVV@W7>D_w8tXgTpIua z=?hv3iEa@})gOlz3AlU%3;+<5whdgy+fly&^Dorxc~cRhj*X@nHPXFh%)~1>y8i~W z#ObBkuM0TipCuFPX6*+nJM%(e;vMcVaeXqDbmRr8xEocm3qL_;^sf`b=#bcd1Wfo= zO`N{CGgLJlq?XqM%2rzqLbO*Wp#9f&hC{z;u4TqeZpF(fhzvM&T=IMW2ACRnC4srUH z(#Fma6S`^0lJ?|2juv@LLJ~$bZn+FrQ|qsl#O-a#38rZdnBdw^DDMgK*I>)@6LBhP zzat@d#3iQ6baQoG4ww#8qRI6suRr1g*23|?#HeHr)&i{MC-+(=CVZrcB0@lR`GEBU zf$-~>=AzTl;7DZ2nx_l>wa_IE8B|c?>b}n%?7<8EBcYI@&vjj5=BjXhLTqvw z>s~&p=qYXeJEaU9lRj8mJeBed?kM29%Y1(+|&Sn%2v5?H-w zM~Efg4nH7nIiWjU4GejUb2!5fem_xt&}ZN7xrF(kUmtOI5Nkdc|96}k4&5T~V!ecf zp*J$%+GtAgpJU_lmlD<{+#`8C)xUpG1ZNFhB{3XQ2iuvHuoiX+A+HsQ4sKo7QzPEk z2qRJjU*&89f(ykP^Ebea=s6twC_4Ik^Dm$N8OF@e^l@l|gpU<408JlI{N+J+f(4Oe z-eRKfk$T!*%RCSHwzIRr`w|u~K_LhNB8f)reU0T|JEkRlE8!K+(SuKi`B&i^E%3_D z?453-`pKt31t{xW(K#Hb3@uIR&{dC|Nx+Z%W?@gh)8_5CUmiF|T&lB@G+bk(Ev~9TD0Q7c33WZ1yMNmE?ETsM;r|z_Bb|&tg9}^ z6g0#yKqTtCy4eHI}sX6lui zf^Ua7#$>1wq^s^!#X9=I5ubIcs%Aid?DEXX*t6MMl#&3&Lys)rI5a@9Y~1R5=TbDJ zXdS#>I1`&(eelGuwgQOv@<&}T$2`nRD1x$Z1w4Ql(+LZ3ZGinMucjoGC;5Cv**1*~0_kkemmhHkjmQddR;}_uzGa!2@>-4#SfNb{FSscNe-q zB^I4oO$076?QC83Wa)*bQpl(w{NiWI1uQ4g4eS2k&QT8Blc%x@a0M6DVa%g3C}evU zUMdZvfkEEuVXj)d{&fPjTY^LIf)wywyG0;Jh~P(5P8vV*cq3Jh=p1N$4*p8|H=KQ~?y8WL@MC<4jpY?o>(sDgyk15m3&p12C2~PLc#@ zY-3GVP-&2`1De-+J>lB8MGgC@p~ZQ6NAHEag|WOLBBv}p%rG2LE;zfKWfDI2gZ4UZ z(eNTcrmn8Wy$0Da2I8WEKm%M zCYrkdKcitd;1odXfMdc|@T$gtzRuOh4w;cY;LEFGyTds-Z2wqUq^B7TLz*`g8f-Gu z;dMO`dOfl;{V$9$Be(lP=v-ePfPpF5`w)Y^iTInW9l$mK%)`}^s5hfJ!6M|JJ47t% z1-?nLQJSy^u#SN`n5rTj0K{Nhsm1qfFHkZJo5b?;3xe({B4mZG49A1 z`p+O3RQp%~1=QXb<&u1DUw>$z`Xj+OBog{a7~N1y#`+W|#*i_kX-c6RYo~*!!vl}3 z$w>5`x!ZPF__m3xkkssm&qn4-VX(YT5(DOc)hkcemoJqC#|Gw8Oz^lVhGK$7GiGWz zaDDSXU~$mT6#B1%hu4{wy7i6>90q~pQq6XCH9f!Ypm%w@OCSQh5AVJJkAxcR1`#S& zN>;(33c|26c(cHOpk5G~1fe4Mu&Dk|0!a8~2y(U5%R)cFR_s6#wA{F#ln_SDfN)7m zV|Y-{3rwj-8ew$^MQ>dC8`XjtClSw?sEb-N97=#z?eE6f7F+d9S_l7#7d*qtCSE^Ebu&Jk zGP7L|8o`{;vA7q%MRelGjrf+vP-@dF4Y>}(#i1eV72dJNQd$Qaq)GiV&fUl~QXFu& z=VN6kR^E_*Kn!JvSo~NoZVA~|${K&NPXhc5I4xAgeSNK5k0}j5^HiD}!bLUMkwGC8 zNBS-3+WVWYUE1FgtSAT#ugS!AP7<LkqAb;w&I6Lywr3_A*>z7A@IX z8wm_j)bJ(aNf+|#|Iq)7|)$bvCfHI z&KA)-zp-t=GA$_1)s_n=_9y=6Xk310b=LznjO9(C_+TY85Ttl#OjDOc`L;v_jQ;W< zkR4QEbJWM=_WcPe)3 z(J^9&;VpC=Rpc*(i@Hy<14vFMva^h-+iWov#;{^2%11iZbQ#egKk^U~eRbesfOvv` z;(CJe8ihNK;shreJ4^u(2#2SjR0|V_Utb5Vjn!RZqiqM>ZREn>SUuYwj~)&rm|$hD z_vL@2)f^g-gsi$_lkscfq;;&o>t~9ATs?T}8&M^!^8b`Wc?zIzZ`2gBo6%*2%slm@ z@)E3aIhEJX}v{?XGFxfhUm75QEp<0W&=c=Nnq+pen^TxMAW=K z;WCuJhOn@x<^fz0wndU3zsuIbOF!DG38#EMka%GK$2pi}qCcort!ReQtkqw!h(09# zAg{Nj@iDtK2k&gZEt!t%3u_7@U^*Q7+{8rX8Bu)lh1wfq9oPm&|FTsNUT<&Q4~sJO zmvMSbVVs?KTmr!XqYjV5BKHnz8&yw<4)LSN!#zSl6yXHuv@#%7fN5&lSnbuuhXWZA zBZUYN`f?8V(d%XS$3g7Z;R2O63AMR&3Ze2OJc4X24EwVL1X52Yl=wNEq>ta<*%6}9 zl_+L7s-`Y!t4<0lP?&4Fp$CrroBm>^Zt0@kuq5l9c&=ZQK*xTB(_X?YWvd=Ik#(D0 zKKbO;fxJ%E*Tw9}p;Mgu;0mNe{p>UbB!ur4!gbe{g@lsyofLS}sVQqQc;~6eo=z)J z`^YT7QN+M(YA!Wuu3A8tFpE^!{@V2yD8}ubg&~np(&609R|}p=jiurNo^zDCI=mt4 zkfju_oOt*a6h&ukZFtNMtHO$fZbNPRY>vj)#z9ACIo>nyrNN1O!K&}qf!~!V7$;FM z8Uc)~xCouX0qCQ;`omwwSH*S%Q~AO6-M>e5JR*3%x|WcJ8$@74z{9mKA^o=XWB^g8 z5q)K2Hs!fP;GsiYK=P1C1YLU158iy6u}Ok~%Tn@KNd$g3(1o0&uLBH3v4rth{n;k% zOKGiE`p6JMC2+k;6Gy4A?KvFp)&Tqa7`wi#K#IkN*We7v+4ZyFH8(^Ub17jABRcvo zEJ4Bu2O|EX>yzZGAIJKh3Kl*#uOCMyW)PwXIKZIg()qVY`R9N-I9O2pKPXB7r<(NHC6sF=ltYT2*^i>hV{OgkMnF09JD*sn_x1uR#J5~Y7?87A8F zpIeI7?ZXkAdlQM^ydFn=7dA9l;Wbb`<)-p-paC2LC-!q$;T$S?Z_rUkOh9jIXv@-~ zB{*M)yizId$si4_#WHcSh7!Cm&*T_4Ih^F%6Z;*U@E5~gx1nXU#sqt1+{qM`_e0m1 zyFK4z?y^N{=sJn||03bd;sJ|zHaKw^zBrU%q*0*vo`yyonYeyu8OBq{`MhMsl-7?% z6NOL`tOtS2&AS_LBqXl5Acirq7XDUKc%O)JxL5c;xm(tZdwCwRg?ItPDoB}N3Kv5cW=Qq1$J?<@-CR-Nl%4&Q*4 zip4XtUAEyrsRfe2L8RynFolvwj53HMpt23ViLg$}IVIk0kQ-cc=fxZt_3II4;HJs{ z{7jxVyh@_sf{1M@8GiC($A_A#l>P5zT5^TJ#bfQoz!2LoLqG#1iAh;{5MnfPf@U{B z{#vX~HsEqZuvB}64z6NHKlA<0t-6~LX{K(j!K?^ z7#xGbnpB*a056Ghi^thAR7ZKhEEz!ev~8t=l4+_1seA7wB(zZ+kQCe_T$v<$-xm+& zO{TcU*1kYp(sVzL|5;e$&^js!kI_0zXa&B@z;8>EB6z2A@JQrDsInrP1i%fq1S$_`>MtHT$ z8iInFmxk{s!V_~nC_O1Kg|v~Dda|~HO0BHm=EqO{*fW%Qy6SuX*y-^%@ZujS@9J=% zX08uWAY+tc!aIN6Bm2qwcz)O$>0TC8-LbWWYiF1`i3#GJax*Ey&?Uf>2NpmuJzb(J5V|PsW>5x&oiTTugIa0+7eJ-@z<%CR#4{MH1JopaLp5j%CRo zFAU)akoz?86Ye!#-X`r4G0Kc!uxZ#e6BrbBR#kwyo{m*7G9n#7;2OF0-nwpcSc6ko zZK4Zj(rV6;tQ%MML$!ZUqAUb-CfNT+?j#*08W)t5Hx=9rI8-^J+Zt9PRU$QVdfi{j zhBF>KKNKkSz;chie!afbRDmEhCJd; z-Phk2xYuG>=ztesHBt%!^`Bw$b4H8kt2sIn?GL3vFDCZhJSI~T&dse!^1=Ls`YHZE zUoKrsADHS;{;F2NuL{MpQ^d;|F`Xe3n{TtfP z%2!s%%Q?Efc)Zr>UC3LwB}sVv{9cRjCfBZ9lI27rRQ?(+S(+Qm9trd~-B@K!CXJx! zNaIPBN%IauI*AulR}Hy&oHnmomVAlnvdPJN62Ki*)w)mcGuG4d!VFq%M|2 zsUrL+1s!KG1s#3zVY}hKqnzG3*;l@%$KlPplG;i)W*9p>Ry$fQR7ph2wFmgzz8wQv)v=gOY7L`2Md7=9;@h?PMdK zVqT$3$4L(@zp}57{iqYiM4$p+~JN`{%ehZ>n|W|FY`Xt?t8F_dY3LIO>O7@p$bawtrBc z0MCr9sVpU;AI5lh76i_lO265YS7I(5+X>Ilzw-I#_k$8h`jfA!vbBXfeuVX1Oj{jW zU}g3N5x-WWKf>d*+ZsJS2P=%!FBS^w1QHou1{u^*f4xz&&O2apt5KAkFLo<+G6IO;B6YD^;c!c@ za8ncl=AAQ^Xior|t(_P36CQX@JkXR%ks;1e9j7QQhq!{NE^V8f-hrSuT~XO)^tF52 z&$lKa3(Y1OtTB)ul|YAn^OY^0%7^(j=Q{rdy-*{YLllQa!pP|P-FCxr>`EdSI#NT$tUJ zs^XC{C$QbKBwqr3d6TCi``um>k4GQH$e5<@=oamEQ76IIaRjuzBRNSM7%yKqo+vVVcZjQ!6-Hv8P`O$v0k6SOytPN z#N5UJg`d`ovJkj-RXrr|ycNR}e&U*FC2%fKJ!9jyDc|61R%Bw;x(CR&tNB8GhUc-*Qum{uNq2nUKQdXG^0 zhjm{;_b2Nsr}8Ed{$G6MGu9}n)@ zh7Nr_cBKyP{*`{JPj(_Jww1yQz+r8#eziDqZ9Qe-RXvBI_ZnzP<6%NgF@ALLyy*&A z(@reEddgZ}t~#~<5T=3Z!%cdMZ~W^cR+Cwi#k|J5{BP2}oE7fF)oSJCU=V_O7EX5r zq5N7oI7cmC1-U0yuUK59rbKKoeKw^S;LXg}(qFo`hbIV~DNyLXLsn0PY*HITjO$`p zYF(1+7Rvgx|9w8c-I3U&^E&aZ3UD>p^zip~71mmNa`yJs6L>i4lzl+A-CjI?_v9+y z#yV(i8<>y1Zi!i#4sDmb;4;~W6e|xI^JH8=fa9{1SBg|Owz^s%z8m@l4{>&^~{ zQvp^eR*5{1#Kiu<*pU`4bosuM4WBGRPzA1X&RuENdm^_@YLjAWU@c#`8n`C^5JzTjmd zSq#EV=nIuz09&|rgL(J7E11wCg~QZFEU4xH2yHZgx8ES)0|yD#jENtoi17_R3>21x z*42kqCVnDkJpg9W%#|%SHaZo;0Qbu!E9ip15AQA{nhH4|qnI6q7hYoKZFFjLRz>^> z9p%w~@^9@v){m_zy(<+-0(HIit*4 zp-wv&Od|q@TB*z@h3hO!!(QDi_CrzaDG6cWhxikWAz1frFom5FvEE0@psXHMRM|C6 zmT>$@x?UE+XrohDr7gE@A!tl?J6Q;wm{{oV>3d8fKWzD3PPKAt*&l z_K^EL&{9X{NK4P;9m>bT%r$NGB*v!57i|8@{R~|*_~S4^M)zwFkqu0%Je4`pc*&lV zmbGFuO=g48I6pv<0@mG73@plraAcP#;z+xX)*kEL@usu?@Y9vdrI}$JytQM$-I_bd&FIb{Eh-oy^Jzh`ImRMUiv<>+6Etn(i?p>KSLT+Yb%82mP$J_1|Lz z`-koBSopM~dUWA??Sl(NJ$=k?BiXq%gTLqDG$(wN9mMNE1ZnqhSa*D?P1(yp-_kJd zO-iew@q@dFb-tf-g=e)tm; z!tetV|DRw&G~U-Ffsd;2^+&P_s%4i?>>Hs=v+VxwAMn3~laT8ApO3y1m13RviZvI% z&EkJPKPLErM9dC9_}~W)e((XM7=OsZ|3eluQ@o&FDWQVj3jiqlVPxR&j(?Mcv-zdx Ua)0v%Fc+;}>Ee)Q$2k0d0APheqyPW_ literal 0 HcmV?d00001 diff --git a/Intune/Intune-App-Manager-Web/robopack.png b/Intune/Intune-App-Manager-Web/robopack.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0d7623f32e5cf50f4de8c81d18b9f970289ab5 GIT binary patch literal 54589 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ís(6Xa032_l{z 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 literal 0 HcmV?d00001 diff --git a/Intune/Intune-App-Manager-Web/src/Api.ps1 b/Intune/Intune-App-Manager-Web/src/Api.ps1 new file mode 100644 index 0000000..6f9f381 --- /dev/null +++ b/Intune/Intune-App-Manager-Web/src/Api.ps1 @@ -0,0 +1,2613 @@ +# API-Endpoint-Handler +# Routing-Konvention: $Path startet mit /api/ und wird hier gematched. + +function Invoke-ApiHandler { + param( + [Parameter(Mandatory=$true)][string]$Path, + [Parameter(Mandatory=$true)][string]$Method, + $Body, + $Query + ) + + $key = "$Method $Path" + switch ($key) { + "GET /api/ping" { return @{ pong = $true; time = (Get-Date).ToString("HH:mm:ss.fff") } } + "GET /api/version" { return @{ version = $script:ToolVersion; build = $script:BuildStamp } } + "GET /api/status" { return Get-StatusEndpoint } + "GET /api/config" { return Get-ConfigEndpoint } + "GET /api/settings" { return Get-SettingsEndpoint } + "PUT /api/settings" { return Save-SettingsEndpoint -Body $Body } + "POST /api/settings/reset" { return Reset-SettingsEndpoint } + "POST /api/settings/test" { return Test-SettingsEndpoint -Body $Body } + "POST /api/settings/logo" { return Save-LogoEndpoint -Body $Body } + "DELETE /api/settings/logo" { return Remove-LogoEndpoint } + "POST /api/connect" { return Invoke-ConnectEndpoint } + "POST /api/connect/token" { return Invoke-ConnectWithTokenEndpoint -Body $Body } + "POST /api/connect/start" { return Start-DeviceCodeConnect } + "POST /api/connect/cancel" { Stop-ConnectFlow; return @{ ok = $true } } + "POST /api/disconnect" { return Invoke-DisconnectEndpoint } + + "GET /api/groups" { return Get-GroupsEndpoint -Query $Query } + "GET /api/groups/rpa" { return Get-RpaGroupsEndpoint } + "POST /api/groups" { return New-GroupEndpoint -Body $Body } + "POST /api/groups/check" { return Test-GroupNameEndpoint -Body $Body } + + "GET /api/users" { return Search-UsersEndpoint -Query $Query } + + "GET /api/apps" { return Get-AppsEndpoint -Query $Query } + "GET /api/apps/categories" { return Get-AppCategoriesEndpoint } + "POST /api/apps/refresh" { return Get-AppsEndpoint -Query @{ refresh = "true" } } + + "GET /api/membership" { return Get-MembershipEndpoint -Query $Query } + "POST /api/membership/bulk" { return Get-MembershipBulkEndpoint -Body $Body } + + "POST /api/assignments/apply" { return Invoke-ApplyEndpoint -Body $Body } + } + + # 2-segment fallbacks (z.B. /api/groups//members) + if ($Method -eq "GET" -and $Path -match "^/api/groups/([^/]+)/members$") { + return Get-GroupMembersEndpoint -GroupId $matches[1] + } + + if ($Method -eq "GET" -and $Path -match "^/api/apps/([^/]+)/details$") { + return Get-AppDetailsEndpoint -AppId $matches[1] + } + + if ($Method -eq "DELETE" -and $Path -match "^/api/apps/([^/]+)$") { + return Remove-AppEndpoint -AppId $matches[1] + } + + if ($Method -eq "PATCH" -and $Path -match "^/api/apps/([^/]+)$") { + return Update-AppEndpoint -AppId $matches[1] -Body $Body + } + + if ($Method -eq "DELETE" -and $Path -match "^/api/apps/([^/]+)/assignments/([^/]+)$") { + return Remove-AppAssignmentEndpoint -AppId $matches[1] -GroupId $matches[2] -Query $Query + } + + if ($Method -eq "POST" -and $Path -match "^/api/apps/([^/]+)/assignments$") { + return Add-AppAssignmentEndpoint -AppId $matches[1] -Body $Body + } + + if ($Method -eq "POST" -and $Path -match "^/api/apps/([^/]+)/content$") { + return Update-AppContentEndpoint -AppId $matches[1] -Body $Body + } + + if ($Method -eq "POST" -and $Path -eq "/api/pickfile") { + return Invoke-FilePickerEndpoint -Body $Body + } + + return $null +} + +# ============================================================ +# Status & Connection +# ============================================================ + +function Get-ConfigEndpoint { + return @{ + tenantId = $script:Config.TenantId + clientId = $script:Config.ClientId + scopes = $script:Config.Scopes + } +} + +# ============================================================ +# Settings: lesen / schreiben / zuruecksetzen +# ============================================================ + +function Get-SettingsEndpoint { + # cacheTag fuer das Logo: nutzt File-Mtime — so kann das Frontend den + # Browser-Cache zuverlaessig brechen, unabhaengig davon ob das Logo gerade + # erst hochgeladen oder die Seite frisch geladen wurde. + $logoCacheTag = $null + if ($script:Settings.branding -and $script:Settings.branding.logoFile) { + $logoPath = Join-Path (Get-BrandingDir) $script:Settings.branding.logoFile + if (Test-Path $logoPath -PathType Leaf) { + $logoCacheTag = [DateTimeOffset]::new((Get-Item $logoPath).LastWriteTimeUtc).ToUnixTimeSeconds() + } else { + # Datei verschwunden -> Setting zuruecksetzen damit das Frontend + # nicht versucht ein 404-Image zu rendern + $script:Settings.branding.logoFile = $null + } + } + + # Klon des Settings-Objekts mit branding.logoCacheTag — damit kein + # zusaetzlicher Outer-Key noetig ist und das Frontend einheitlich nur + # 'branding' liest. + $settings = $script:Settings | ConvertTo-Json -Depth 10 | ConvertFrom-Json + if (-not $settings.branding) { + $settings | Add-Member -NotePropertyName 'branding' -NotePropertyValue ([pscustomobject]@{ logoFile = $null; logoCacheTag = $null }) -Force + } else { + $settings.branding | Add-Member -NotePropertyName 'logoCacheTag' -NotePropertyValue $logoCacheTag -Force + } + return @{ settings = $settings; path = (Get-SettingsPath) } +} + +function Sync-ConfigFromSettings { + # $script:Config spiegelt die settings.connection-Werte. Wird nach jedem + # Save aufgerufen damit Connect-Aufrufe sofort die neuen IDs verwenden. + $script:Config.TenantId = $script:Settings.connection.tenantId + $script:Config.ClientId = $script:Settings.connection.clientId + $script:Config.Scopes = @($script:Settings.connection.scopes) +} + +function Save-SettingsEndpoint { + param($Body) + if (-not $Body) { + return @{ __status = 400; error = "Request-Body fehlt" } + } + + # Body kann hashtable (vom Router) oder pscustomobject sein -> normalisieren + $incoming = $Body + if ($incoming -is [hashtable]) { + $incoming = $incoming | ConvertTo-Json -Depth 10 | ConvertFrom-Json + } + + # Mit aktuellen Settings mergen, damit ueberspringbare Sub-Sektionen aus dem + # Frontend nichts ueberschreiben was nicht mitgeschickt wurde. + $merged = Merge-Settings -Base $script:Settings -Override $incoming + + $errs = Get-SettingsValidationErrors -S $merged + if ($errs.Count -gt 0) { + return @{ __status = 400; error = ($errs -join " | "); errors = $errs } + } + + # Vergleich altes vs. neues Setting — Cache nur leeren wo wirklich noetig. + $old = $script:Settings + + $connectionChanged = ( + $merged.connection.tenantId -ne $old.connection.tenantId -or + $merged.connection.clientId -ne $old.connection.clientId -or + (($merged.connection.scopes -join "|") -ne ($old.connection.scopes -join "|")) + ) + # Normalisierte Praefix-Listen vergleichen (deckt sowohl 'prefixes' als auch + # den alten Single-String 'prefix' ab; Reihenfolge ignoriert, Case ignoriert). + $deptOld = @(Get-DepartmentPrefixes -Settings $old) | Sort-Object -Property { $_.ToLowerInvariant() } + $deptNew = @(Get-DepartmentPrefixes -Settings $merged) | Sort-Object -Property { $_.ToLowerInvariant() } + $deptChanged = (($deptOld -join '|') -ne ($deptNew -join '|')) + $rpaChanged = (($merged.rpa.groupNames -join "|") -ne ($old.rpa.groupNames -join "|")) + $userSearchChanged = ( + (($merged.userSearch.fields -join "|") -ne ($old.userSearch.fields -join "|")) + ) + # requiredGroupNaming + theme + branding sind reine UI-/Workflow-Werte — + # die brechen keine Backend-Caches. + + $script:Settings = $merged + Sync-ConfigFromSettings + try { + Write-Settings -Settings $script:Settings + } catch { + return @{ __status = 500; error = "Speichern fehlgeschlagen: $($_.Exception.Message)" } + } + + if ($connectionChanged -and $script:State.Connected) { + Write-Host "[SETTINGS] Connection-Werte geaendert -> Disconnect" -ForegroundColor Yellow + try { Disconnect-MgGraph -ErrorAction SilentlyContinue | Out-Null } catch {} + $script:State.Connected = $false + $script:State.Account = $null + $script:State.TenantId = $null + # Bei neuem Tenant ist ALLES potentiell anders — alle Caches weg. + $script:State.Groups = @() + $script:State.RpaGroups = @() + $script:State.Apps = @() + $script:State.GroupMembers = @{} + } else { + # Selektiv: nur die Caches leeren, deren Quelle sich tatsaechlich + # geaendert hat. + if ($deptChanged) { $script:State.Groups = @() } + if ($rpaChanged) { $script:State.RpaGroups = @() } + } + + $changed = @{ + connection = [bool]$connectionChanged + departments = [bool]$deptChanged + rpa = [bool]$rpaChanged + userSearch = [bool]$userSearchChanged + # Diese muss das Frontend lokal anwenden, kein Backend-Cache-Reset noetig: + branding = (($merged.branding.logoFile) -ne ($old.branding.logoFile)) + theme = (($merged.theme.colors | ConvertTo-Json -Compress) -ne ($old.theme.colors | ConvertTo-Json -Compress)) + requiredGroupNaming = ($merged.requiredGroupNaming.prefix -ne $old.requiredGroupNaming.prefix -or $merged.requiredGroupNaming.suffix -ne $old.requiredGroupNaming.suffix) + } + + Write-Host ("[SETTINGS] geaendert: " + (($changed.GetEnumerator() | Where-Object { $_.Value }) | ForEach-Object { $_.Key } | Sort-Object) -join ', ') -ForegroundColor DarkGray + + return @{ + ok = $true + settings = $script:Settings + disconnected = [bool]$connectionChanged + changed = $changed + } +} + +function Reset-SettingsEndpoint { + $script:Settings = Get-DefaultSettings + Sync-ConfigFromSettings + try { + Write-Settings -Settings $script:Settings + } catch { + return @{ __status = 500; error = "Reset fehlgeschlagen: $($_.Exception.Message)" } + } + if ($script:State.Connected) { + try { Disconnect-MgGraph -ErrorAction SilentlyContinue | Out-Null } catch {} + $script:State.Connected = $false + $script:State.Account = $null + $script:State.TenantId = $null + } + $script:State.Groups = @() + $script:State.RpaGroups = @() + $script:State.Apps = @() + $script:State.GroupMembers = @{} + return @{ ok = $true; settings = $script:Settings; disconnected = $true } +} + +function Test-SettingsEndpoint { + # Prueft die im Body uebergebenen (oder, falls leer, die aktuell gespeicherten) + # Settings gegen Microsoft Graph. Liefert pro Pruefung ok/Trefferzahl/Fehler. + # Aenderungen werden NICHT gespeichert — nur ein temporaerer Swap fuers Lookup. + param($Body) + + $err = Test-Connected + if ($err) { + return @{ + ok = $false + connection = @{ ok = $false; reason = "not_connected"; message = "Bitte zuerst per Connect-Button verbinden." } + } + } + + # Body normalisieren (Hashtable -> PSCustomObject) und mit aktuellen Settings mergen. + $incoming = $Body + if ($incoming -is [hashtable]) { + $incoming = $incoming | ConvertTo-Json -Depth 10 | ConvertFrom-Json + } + $effective = if ($incoming) { Merge-Settings -Base $script:Settings -Override $incoming } else { $script:Settings } + + # Settings nur fuer die Dauer des Tests umschalten — Search-GraphUser greift + # auf $script:Settings.userSearch.fields zu. Im finally garantiert zuruecksetzen. + $original = $script:Settings + $script:Settings = $effective + + $result = @{ + ok = $true + connection = @{ ok = $true; tenantId = $script:State.TenantId; account = $script:State.Account } + } + + try { + # 1) Abteilungs-Lookup pro konfiguriertem Praefix + $prefixes = @(Get-DepartmentPrefixes -Settings $effective) + if ($prefixes.Count -eq 0) { + $result.departments = @{ ok = $false; reason = "not_configured"; message = "Kein Abteilungs-Praefix gesetzt." } + } else { + $perPrefix = @() + $totalCount = 0 + $allOk = $true + foreach ($p in $prefixes) { + try { + $groups = @(Get-GraphGroupByFilter -Filter "startswith(displayName,'$p')" -Property @("id","displayName")) + $sample = @($groups | Select-Object -First 3 | ForEach-Object { if ($_.displayName) { $_.displayName } else { $_.displayname } }) + $perPrefix += @{ prefix = $p; ok = $true; count = $groups.Count; sample = $sample } + $totalCount += $groups.Count + } catch { + $perPrefix += @{ prefix = $p; ok = $false; error = $_.Exception.Message } + $allOk = $false + } + } + $result.departments = @{ + ok = $allOk + prefixes = $prefixes + totalCount = $totalCount + perPrefix = $perPrefix + } + } + + # 2) RPA-Gruppen-Lookup + $rpaNames = @($effective.rpa.groupNames | Where-Object { $_ -and $_.Trim() }) + if ($rpaNames.Count -eq 0) { + $result.rpa = @{ ok = $false; reason = "not_configured"; message = "Keine RPA-Gruppen konfiguriert." } + } else { + $found = @() + $missing = @() + foreach ($n in $rpaNames) { + try { + $g = @(Get-GraphGroupByFilter -Filter "displayName eq '$n'" -Property @("id","displayName")) + if ($g.Count -gt 0) { $found += $n } else { $missing += $n } + } catch { + $missing += $n + } + } + $result.rpa = @{ + ok = ($missing.Count -eq 0) + expected = $rpaNames.Count + found = $found + missing = $missing + } + } + + # 3) User-Such-Probe — sehr kurzer Sondierungs-Request + $fields = @($effective.userSearch.fields | Where-Object { $_ }) + if ($fields.Count -eq 0) { + $result.userSearch = @{ ok = $false; reason = "no_fields"; message = "Mindestens ein Such-Feld waehlen." } + } else { + try { + # Such-Term "a" -> trifft praktisch immer mind. einen User, schnell genug. + $hits = @(Search-GraphUser -SearchTerm "a") + $result.userSearch = @{ ok = $true; fields = $fields; sampleCount = [Math]::Min($hits.Count, 10) } + } catch { + $result.userSearch = @{ ok = $false; fields = $fields; error = $_.Exception.Message } + } + } + + # 4) Vendor-Match-Counts — pro konfiguriertem Vendor zaehlen wie viele + # gecachte Apps unter dessen Detection-Regel fallen. 0 Treffer = die + # Regel greift nicht (Hinweis im UI). + $vendorList = @($effective.vendors) + if ($vendorList.Count -eq 0) { + $result.vendors = @{ ok = $true; configured = 0; counts = @() } + } else { + $counts = @() + foreach ($v in $vendorList) { + $count = 0 + if ($script:State.Apps -and $script:State.Apps.Count -gt 0) { + $count = @($script:State.Apps | Where-Object { $_.Source -eq $v.displayName }).Count + } + $counts += [pscustomobject]@{ + id = $v.id + displayName = $v.displayName + count = $count + detection = "$($v.detection.field) $($v.detection.match) '$($v.detection.pattern)'" + } + } + $allZero = -not ($counts | Where-Object { $_.count -gt 0 }) + $result.vendors = @{ + ok = $true + configured = $vendorList.Count + counts = $counts + hint = if ($allZero -and $script:State.Apps.Count -eq 0) { "Apps wurden noch nicht geladen — Counts sind 0." } else { $null } + } + } + } finally { + $script:Settings = $original + } + + # Gesamt-OK = alle Sub-Checks ok (Vendors sind informativ, schlagen nicht fehl) + $result.ok = ($result.departments.ok -and $result.rpa.ok -and $result.userSearch.ok) + return $result +} + +# ============================================================ +# Branding: Logo hochladen / loeschen +# ============================================================ + +# Wo Logos landen — gleiches Verzeichnis wie intune.png/pmpc.png, ausgeliefert +# ueber die vorhandene /assets/-Route. +function Get-BrandingDir { + return Split-Path -Parent $script:Config.WebRoot +} + +# Branding-Logos haben einen festen Praefix, damit wir alte Versionen sauber +# loeschen koennen wenn die Extension wechselt. +$script:BrandingLogoPrefix = 'branding-logo' + +function Remove-BrandingLogoFiles { + $dir = Get-BrandingDir + Get-ChildItem -Path $dir -Filter "$($script:BrandingLogoPrefix).*" -File -ErrorAction SilentlyContinue | + ForEach-Object { Remove-Item -Path $_.FullName -Force -ErrorAction SilentlyContinue } +} + +function Save-LogoEndpoint { + param($Body) + if (-not $Body) { return @{ __status = 400; error = "Body fehlt" } } + + $mime = [string]$Body.mime + $dataBase64 = [string]$Body.dataBase64 + + if (-not $dataBase64) { return @{ __status = 400; error = "dataBase64 fehlt" } } + if ($mime -notmatch '^image/') { return @{ __status = 400; error = "Datei muss ein Bild sein (mime: $mime)" } } + + $ext = switch -Regex ($mime) { + 'png$' { 'png'; break } + 'jpe?g$' { 'jpg'; break } + 'svg' { 'svg'; break } + 'webp' { 'webp'; break } + 'gif' { 'gif'; break } + default { $null } + } + if (-not $ext) { return @{ __status = 400; error = "Bildformat nicht unterstuetzt: $mime" } } + + try { + $bytes = [Convert]::FromBase64String($dataBase64) + } catch { + return @{ __status = 400; error = "Base64 ungueltig: $($_.Exception.Message)" } + } + + $maxBytes = 2 * 1024 * 1024 # 2 MB + if ($bytes.Length -gt $maxBytes) { + return @{ __status = 413; error = "Logo zu gross ($([int]($bytes.Length / 1024)) KB, max. 2 MB)" } + } + if ($bytes.Length -lt 4) { + return @{ __status = 400; error = "Datei zu klein / leer" } + } + + $fileName = "$($script:BrandingLogoPrefix).$ext" + $dir = Get-BrandingDir + if (-not (Test-Path $dir)) { New-Item -ItemType Directory -Path $dir -Force | Out-Null } + + # Alte Logo-Varianten weg, dann neue Datei schreiben + Remove-BrandingLogoFiles + $target = Join-Path $dir $fileName + [IO.File]::WriteAllBytes($target, $bytes) + + if (-not $script:Settings.branding) { $script:Settings | Add-Member -NotePropertyName 'branding' -NotePropertyValue ([pscustomobject]@{}) -Force } + $script:Settings.branding.logoFile = $fileName + try { Write-Settings -Settings $script:Settings } catch { + return @{ __status = 500; error = "Settings-Speichern fehlgeschlagen: $($_.Exception.Message)" } + } + + Write-Host "[LOGO] Gespeichert: $target ($([int]($bytes.Length / 1024)) KB)" -ForegroundColor Green + $mtime = [DateTimeOffset]::new((Get-Item $target).LastWriteTimeUtc).ToUnixTimeSeconds() + return @{ + ok = $true + logoFile = $fileName + sizeKb = [int]($bytes.Length / 1024) + # Cache-Bust-Tag = File-Mtime, identisch zu dem was Get-Settings liefert. + cacheTag = $mtime + } +} + +function Remove-LogoEndpoint { + Remove-BrandingLogoFiles + if ($script:Settings.branding) { + $script:Settings.branding.logoFile = $null + } + try { Write-Settings -Settings $script:Settings } catch { + return @{ __status = 500; error = "Settings-Speichern fehlgeschlagen: $($_.Exception.Message)" } + } + Write-Host "[LOGO] Entfernt" -ForegroundColor DarkGray + return @{ ok = $true } +} + +function Invoke-ConnectWithTokenEndpoint { + param($Body) + try { Initialize-GraphModule } catch { + return @{ __status = 500; error = "Microsoft.Graph.Authentication fehlt: $($_.Exception.Message)" } + } + + $token = $Body.accessToken + if ([string]::IsNullOrWhiteSpace($token)) { + return @{ __status = 400; error = "accessToken fehlt im Body" } + } + + Write-Host "[CONNECT] Token-Login fuer Account: $($Body.account)" -ForegroundColor Cyan + + # Eventuell aktive Session beenden + try { Disconnect-MgGraph -ErrorAction SilentlyContinue | Out-Null } catch {} + + try { + # Microsoft.Graph.Authentication v2+ erwartet SecureString + $secure = ConvertTo-SecureString $token -AsPlainText -Force + Connect-MgGraph -AccessToken $secure -NoWelcome -ErrorAction Stop | Out-Null + } catch { + # Fallback fuer aeltere Modul-Versionen die Plain-String akzeptieren + try { + Connect-MgGraph -AccessToken $token -NoWelcome -ErrorAction Stop | Out-Null + } catch { + $msg = $_.Exception.Message + Write-Host "[CONNECT] Token-Login fehlgeschlagen: $msg" -ForegroundColor Red + return @{ __status = 500; error = "Connect-MgGraph mit Token fehlgeschlagen: $msg" } + } + } + + $ctx = $null + try { $ctx = Get-MgContext } catch {} + if (-not $ctx -or -not $ctx.Account) { + return @{ __status = 500; error = "Kein Kontext nach Token-Login (ungueltiger oder abgelaufener Token?)" } + } + + $script:State.Connected = $true + $script:State.Account = $ctx.Account + $script:State.TenantId = $ctx.TenantId + Write-Host "[CONNECT] OK via Token - Account: $($ctx.Account), Tenant: $($ctx.TenantId)" -ForegroundColor Green + + return Get-StatusEndpoint +} + +function Get-StatusEndpoint { + $cs = $script:ConnectState + $connect = $null + if ($cs -and ($cs.Active -or $cs.Error) -and -not $script:State.Connected) { + $connect = @{ + active = [bool]$cs.Active + done = [bool]$cs.Done + error = $cs.Error + } + } + return @{ + connected = $script:State.Connected + account = $script:State.Account + tenantId = $script:State.TenantId + groupsLoaded = $script:State.Groups.Count + rpaLoaded = $script:State.RpaGroups.Count + appsLoaded = $script:State.Apps.Count + sessionCount = $script:State.Session.Count + connect = $connect + } +} + +# ============================================================ +# Device-Code-Flow: Login direkt in der Website, ohne WAM, mit +# voller Account-Kontrolle. Laeuft in Background-Runspace, damit +# der HTTP-Listener waehrend des Logins nicht blockiert. +# ============================================================ + +function Get-DeviceCodeState { + if (-not $script:DeviceCodeState) { + $script:DeviceCodeState = [hashtable]::Synchronized(@{ + Active = $false + Code = $null + Url = $null + UrlComplete = $null + DeviceCode = $null + ExpiresAt = $null + Done = $false + Error = $null + Runspace = $null + PowerShell = $null + }) + } + return $script:DeviceCodeState +} + +function Start-DeviceCodeConnect { + try { Initialize-GraphModule } catch { + return @{ __status = 500; error = "Microsoft.Graph.Authentication fehlt: $($_.Exception.Message)" } + } + + $dc = Get-DeviceCodeState + + # Idempotenz: laufender Code wird wieder zurueckgegeben + if ($dc.Active -and -not $dc.Done -and $dc.Code) { + return @{ + code = $dc.Code + url = $dc.Url + urlComplete = $dc.UrlComplete + existing = $true + } + } + + # Vorherige Session aufraeumen + Stop-DeviceCodeConnect | Out-Null + try { Disconnect-MgGraph -ErrorAction SilentlyContinue | Out-Null } catch {} + $script:State.Connected = $false + $script:State.Account = $null + + $tenantId = $script:Config.TenantId + $clientId = $script:Config.ClientId + $scopeStr = (($script:Config.Scopes | ForEach-Object { "https://graph.microsoft.com/$_" }) + 'offline_access') -join ' ' + + # 1) Device-Code direkt von Microsoft holen (synchron, schnell) + Write-Host "[CONNECT] Hole Device-Code von Microsoft..." -ForegroundColor DarkGray + try { + $body = @{ client_id = $clientId; scope = $scopeStr } + $resp = Invoke-RestMethod ` + -Method POST ` + -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/devicecode" ` + -Body $body ` + -ContentType 'application/x-www-form-urlencoded' ` + -ErrorAction Stop + } catch { + $msg = $_.Exception.Message + Write-Host "[CONNECT] Device-Code-Anforderung fehlgeschlagen: $msg" -ForegroundColor Red + return @{ __status = 500; error = "Device-Code anfordern fehlgeschlagen: $msg" } + } + + $dc.Active = $true + $dc.Code = $resp.user_code + $dc.Url = $resp.verification_uri + $dc.UrlComplete = if ($resp.verification_uri_complete) { $resp.verification_uri_complete } else { "$($resp.verification_uri)?otc=$($resp.user_code)" } + $dc.DeviceCode = $resp.device_code + $dc.ExpiresAt = (Get-Date).AddSeconds([int]$resp.expires_in) + $dc.Done = $false + $dc.Error = $null + + Write-Host "[CONNECT] Code: $($resp.user_code) - Url: $($dc.UrlComplete)" -ForegroundColor Cyan + + # 2) Hintergrund-Runspace pollt das Token-Endpoint + $iss = [System.Management.Automation.Runspaces.InitialSessionState]::CreateDefault2() + $iss.ImportPSModule("Microsoft.Graph.Authentication") + $rs = [runspacefactory]::CreateRunspace($iss) + $rs.Open() + $rs.SessionStateProxy.SetVariable("DeviceCode", $dc) + $rs.SessionStateProxy.SetVariable("MainState", $script:State) + $rs.SessionStateProxy.SetVariable("PollTenantId", $tenantId) + $rs.SessionStateProxy.SetVariable("PollClientId", $clientId) + $rs.SessionStateProxy.SetVariable("PollInterval", [int]$resp.interval) + + $ps = [powershell]::Create() + $ps.Runspace = $rs + $null = $ps.AddScript({ + $tokenUri = "https://login.microsoftonline.com/$PollTenantId/oauth2/v2.0/token" + $body = @{ + grant_type = 'urn:ietf:params:oauth:grant-type:device_code' + client_id = $PollClientId + device_code = $DeviceCode.DeviceCode + } + + while (-not $DeviceCode.Done -and (Get-Date) -lt $DeviceCode.ExpiresAt) { + Start-Sleep -Seconds $PollInterval + if ($DeviceCode.Done) { return } # vom User abgebrochen + + try { + $tok = Invoke-RestMethod ` + -Method POST ` + -Uri $tokenUri ` + -Body $body ` + -ContentType 'application/x-www-form-urlencoded' ` + -ErrorAction Stop + + if ($tok.access_token) { + # Token bekommen, an Connect-MgGraph weiterreichen + try { + $secure = ConvertTo-SecureString $tok.access_token -AsPlainText -Force + Connect-MgGraph -AccessToken $secure -NoWelcome -ErrorAction Stop | Out-Null + } catch { + # Fallback fuer aeltere Modul-Versionen + Connect-MgGraph -AccessToken $tok.access_token -NoWelcome -ErrorAction Stop | Out-Null + } + $ctx = Get-MgContext + if ($ctx -and $ctx.Account) { + $MainState.Connected = $true + $MainState.Account = $ctx.Account + $MainState.TenantId = $ctx.TenantId + } else { + $DeviceCode.Error = "Token erhalten aber Get-MgContext leer" + } + $DeviceCode.Done = $true + $DeviceCode.Active = $false + return + } + } catch { + # Fehler-Body parsen (authorization_pending ist erwartet) + $errStr = "$($_.ErrorDetails.Message)" + if (-not $errStr) { $errStr = $_.Exception.Message } + + if ($errStr -match 'authorization_pending') { + continue # User hat noch nicht abgeschlossen, weiterpollen + } elseif ($errStr -match 'slow_down') { + Start-Sleep -Seconds 5 + continue + } elseif ($errStr -match 'authorization_declined') { + $DeviceCode.Error = 'Anmeldung wurde abgelehnt' + $DeviceCode.Done = $true + $DeviceCode.Active = $false + return + } elseif ($errStr -match 'expired_token') { + $DeviceCode.Error = 'Code ist abgelaufen - bitte neu starten' + $DeviceCode.Done = $true + $DeviceCode.Active = $false + return + } else { + # Versuche JSON-Body zu extrahieren + try { + $j = $errStr | ConvertFrom-Json + $DeviceCode.Error = "$($j.error): $($j.error_description)" + } catch { + $DeviceCode.Error = $errStr + } + $DeviceCode.Done = $true + $DeviceCode.Active = $false + return + } + } + } + + if (-not $MainState.Connected -and -not $DeviceCode.Error) { + $DeviceCode.Error = "Anmeldung abgelaufen (Code nicht eingegeben)" + } + $DeviceCode.Done = $true + $DeviceCode.Active = $false + }) + + $dc.PowerShell = $ps + $dc.Runspace = $rs + $null = $ps.BeginInvoke() + + return @{ + code = $dc.Code + url = $dc.Url + urlComplete = $dc.UrlComplete + expiresIn = [int]$resp.expires_in + existing = $false + } +} + +function Stop-DeviceCodeConnect { + $dc = Get-DeviceCodeState + if ($dc.PowerShell) { + try { $dc.PowerShell.Stop() } catch {} + try { $dc.PowerShell.Dispose() } catch {} + } + if ($dc.Runspace) { + try { $dc.Runspace.Close() } catch {} + try { $dc.Runspace.Dispose() } catch {} + } + $dc.PowerShell = $null + $dc.Runspace = $null + $dc.Active = $false + $dc.Code = $null + $dc.Url = $null + $dc.Done = $true + $dc.Error = $null + return @{ ok = $true } +} + +# ============================================================ +# Status-Endpoint kennt jetzt auch den Device-Code-Flow +# ============================================================ + +function Initialize-WinFocus { + if ('WinFocusHelper' -as [type]) { return } + Add-Type -TypeDefinition @' +using System; +using System.Runtime.InteropServices; +using System.Text; +public class WinFocusHelper { + [DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr hWnd); + [DllImport("user32.dll")] public static extern bool BringWindowToTop(IntPtr hWnd); + [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); + [DllImport("user32.dll")] public static extern bool AllowSetForegroundWindow(int dwProcessId); + [DllImport("user32.dll")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); + [DllImport("user32.dll")] public static extern bool EnumWindows(EnumProc lpEnumFunc, IntPtr lParam); + [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count); + [DllImport("user32.dll")] public static extern bool IsWindowVisible(IntPtr hWnd); + public delegate bool EnumProc(IntPtr hWnd, IntPtr lParam); + + public static IntPtr FindAuthWindow() { + IntPtr found = IntPtr.Zero; + string[] needles = new string[] { + "Anmelden", "Sign in", "Konto auswählen", "Pick an account", + "Authentifizierung", "Microsoft Account", "Microsoft Authentication" + }; + EnumWindows((hWnd, lParam) => { + if (!IsWindowVisible(hWnd)) return true; + StringBuilder sb = new StringBuilder(256); + GetWindowText(hWnd, sb, sb.Capacity); + string title = sb.ToString(); + if (string.IsNullOrEmpty(title)) return true; + foreach (var n in needles) { + if (title.IndexOf(n, StringComparison.OrdinalIgnoreCase) >= 0) { + found = hWnd; + return false; // stop enumerating + } + } + return true; + }, IntPtr.Zero); + return found; + } + + public static void BringToFront(IntPtr hWnd) { + if (hWnd == IntPtr.Zero) return; + ShowWindow(hWnd, 9); // SW_RESTORE + BringWindowToTop(hWnd); + SetForegroundWindow(hWnd); + } +} +'@ +} + +# Status fuer den asynchronen interaktiven Login +function Get-ConnectState { + if (-not $script:ConnectState) { + $script:ConnectState = [hashtable]::Synchronized(@{ + Active = $false + Done = $false + Error = $null + StartedAt = $null + Runspace = $null + PowerShell = $null + }) + } + return $script:ConnectState +} + +function Stop-ConnectFlow { + $cs = Get-ConnectState + if ($cs.PowerShell) { + try { $cs.PowerShell.Stop() } catch {} + try { $cs.PowerShell.Dispose() } catch {} + } + if ($cs.Runspace) { + try { $cs.Runspace.Close() } catch {} + try { $cs.Runspace.Dispose() } catch {} + } + $cs.PowerShell = $null + $cs.Runspace = $null + $cs.Active = $false +} + +function Invoke-ConnectEndpoint { + try { + Initialize-GraphModule | Out-Null + + Write-Host "[CONNECT] Verbinde mit Microsoft Graph..." -ForegroundColor Cyan + + # Parallel-Runspace, der das WAM-Account-Picker-Fenster sucht und + # nach vorne bringt — sonst landet es hinter anderen Fenstern und + # der User sieht nichts, was er bestaetigen koennte. + $bringToFront = $null + try { + Initialize-WinFocus + $iss = [System.Management.Automation.Runspaces.InitialSessionState]::CreateDefault2() + $rs = [runspacefactory]::CreateRunspace($iss) + $rs.Open() + $bringToFront = [powershell]::Create() + $bringToFront.Runspace = $rs + $null = $bringToFront.AddScript({ + Add-Type -TypeDefinition @' +using System; +using System.Runtime.InteropServices; +using System.Text; +public class WinFocusHelper2 { + [DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr hWnd); + [DllImport("user32.dll")] public static extern bool BringWindowToTop(IntPtr hWnd); + [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); + [DllImport("user32.dll")] public static extern bool EnumWindows(EnumProc lpEnumFunc, IntPtr lParam); + [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count); + [DllImport("user32.dll")] public static extern bool IsWindowVisible(IntPtr hWnd); + public delegate bool EnumProc(IntPtr hWnd, IntPtr lParam); +} +'@ -ErrorAction SilentlyContinue + $deadline = (Get-Date).AddSeconds(30) + while ((Get-Date) -lt $deadline) { + $found = [IntPtr]::Zero + [WinFocusHelper2]::EnumWindows({ + param($hWnd, $lParam) + if (-not [WinFocusHelper2]::IsWindowVisible($hWnd)) { return $true } + $sb = New-Object System.Text.StringBuilder 256 + [void][WinFocusHelper2]::GetWindowText($hWnd, $sb, $sb.Capacity) + $t = $sb.ToString() + if ([string]::IsNullOrEmpty($t)) { return $true } + foreach ($n in @('Anmelden','Sign in','Konto','Pick an account','Authentifizierung','Microsoft Account','Microsoft Authentication')) { + if ($t.IndexOf($n, [StringComparison]::OrdinalIgnoreCase) -ge 0) { + $script:found = $hWnd + return $false + } + } + return $true + }, [IntPtr]::Zero) | Out-Null + if ($script:found -ne [IntPtr]::Zero) { + [WinFocusHelper2]::ShowWindow($script:found, 9) | Out-Null # SW_RESTORE + [WinFocusHelper2]::BringWindowToTop($script:found) | Out-Null + [WinFocusHelper2]::SetForegroundWindow($script:found) | Out-Null + Start-Sleep -Milliseconds 800 + } + Start-Sleep -Milliseconds 400 + } + }) + $null = $bringToFront.BeginInvoke() + } catch { + Write-Host "[CONNECT] WAM-Focus-Helper konnte nicht gestartet werden: $($_.Exception.Message)" -ForegroundColor DarkYellow + } + + Connect-MgGraph ` + -TenantId $script:Config.TenantId ` + -ClientId $script:Config.ClientId ` + -Scopes $script:Config.Scopes ` + -NoWelcome + + # Helper-Runspace aufraeumen + if ($bringToFront) { + try { $bringToFront.Stop() } catch {} + try { $bringToFront.Dispose() } catch {} + } + + $context = Get-MgContext + if ($context) { + $script:State.Connected = $true + $script:State.Account = $context.Account + $script:State.TenantId = $context.TenantId + Write-Host "[CONNECT] Verbunden als: $($context.Account)" -ForegroundColor Green + return Get-StatusEndpoint + } + Write-Host "[CONNECT] Kein Context nach Connect-MgGraph" -ForegroundColor Red + return @{ __status = 401; error = "Anmeldung fehlgeschlagen — kein Context" } + } catch { + Write-Host "[CONNECT] Fehler: $_" -ForegroundColor Red + return @{ __status = 500; error = "Fehler beim Verbinden: $($_.Exception.Message)" } + } +} + +function Invoke-DisconnectEndpoint { + try { Disconnect-MgGraph | Out-Null } catch {} + $script:State.Connected = $false + $script:State.Account = $null + $script:State.TenantId = $null + $script:State.Groups = @() + $script:State.RpaGroups = @() + $script:State.Apps = @() + $script:State.Session = @() + $script:State.GroupMembers = @{} + return Get-StatusEndpoint +} + +function Test-Connected { + if (-not $script:State.Connected) { + return @{ __status = 401; error = "Nicht mit Microsoft Graph verbunden" } + } + return $null +} + +function Get-AppCategoryNames { + # Extrahiert die Kategorie-Namen aus dem rohen Graph-Categories-Feld. + # Robust gegen alle Source-Types die MgGraph/Invoke-MgGraphRequest in + # PS 5.1 + PS 7 liefern kann (PSCustomObject, Hashtable, generische + # Dictionary, Array von Strings, Skalar). Loggt im Server-Console wenn + # Items leer durchrutschen — dann sehen wir live was schief geht. + param($RawCategories, [string]$AppId) + + # Wichtig: IMMER ein Array zurueckgeben (auch leer), nicht $null. + # @() wrap am Aufruf-Site reicht in PS5.1 oft nicht — explizite Liste. + $names = [System.Collections.Generic.List[string]]::new() + + if ($null -eq $RawCategories) { return ,$names.ToArray() } + + $items = @($RawCategories) + if ($items.Count -eq 0) { return ,$names.ToArray() } + + $typeNames = ($items | ForEach-Object { if ($null -eq $_) { 'null' } else { $_.GetType().Name } }) -join ', ' + Write-Host " [CATS] ${AppId}: $($items.Count) Roh-Items, Types: $typeNames" -ForegroundColor DarkGray + + foreach ($cat in $items) { + if ($null -eq $cat) { continue } + if ($cat -is [string]) { + if ($cat) { $names.Add($cat) } + continue + } + + $n = $null + + # Direkt-Dot-Access (PSCustomObject + PS-7-Hashtable + Dictionary) + try { if ($cat.displayName) { $n = [string]$cat.displayName } } catch {} + if (-not $n) { try { if ($cat.DisplayName) { $n = [string]$cat.DisplayName } } catch {} } + + # Hashtable-Indexer (PS 5.1 Hashtable) + if (-not $n) { + try { + if ($cat -is [System.Collections.IDictionary]) { + foreach ($k in 'displayName','DisplayName','name','Name') { + if ($cat.Contains($k) -and $cat[$k]) { $n = [string]$cat[$k]; break } + } + } + } catch {} + } + + # Letzter Versuch: JSON-Roundtrip + if (-not $n) { + try { + $obj = $cat | ConvertTo-Json -Depth 3 -Compress | ConvertFrom-Json + foreach ($k in 'displayName','DisplayName','name','Name') { + try { if ($obj.$k) { $n = [string]$obj.$k; break } } catch {} + } + } catch {} + } + + if ($n) { + $names.Add($n) + } else { + $dump = $null + try { $dump = $cat | ConvertTo-Json -Depth 2 -Compress } catch { $dump = $cat.GetType().FullName } + Write-Host " [CATS] ${AppId}: konnte Name nicht extrahieren aus: $dump" -ForegroundColor Yellow + } + } + + # Komma vor $names.ToArray() forciert dass PowerShell IMMER ein Array + # zurueckgibt — auch bei genau 1 Element (sonst Skalar = JSON-Fehler). + return ,$names.ToArray() +} + +function Find-VendorBySource { + # Liefert den Vendor-Eintrag aus Settings, dessen displayName mit dem + # Source-String einer App uebereinstimmt. $null wenn nichts passt + # (z.B. Source = "Intune"). + param([string]$Source) + if (-not $Source -or $Source -eq 'Intune') { return $null } + if (-not $script:Settings.vendors) { return $null } + return @($script:Settings.vendors | Where-Object { $_.displayName -eq $Source } | Select-Object -First 1)[0] +} + +# ============================================================ +# Gruppen +# ============================================================ + +function Get-GroupsEndpoint { + param($Query) + $err = Test-Connected + if ($err) { return $err } + + # Query-Override hat Vorrang (Debug-Pfad); sonst alle konfigurierten Praefixe. + if ($Query.prefix) { + $prefixes = @([string]$Query.prefix) + } else { + $prefixes = @(Get-DepartmentPrefixes -Settings $script:Settings) + } + if ($prefixes.Count -eq 0) { + return @{ + __status = 412 + error = "Abteilungs-Praefix(e) nicht konfiguriert. Bitte unter Einstellungen -> Abteilungs-Gruppen setzen." + code = "SettingsRequired" + setting = "departments.prefixes" + } + } + # OR-verketteter Graph-$filter: alle Praefixe in einem Listen-Request laden. + # Graph erlaubt mehrfache startswith-Klauseln per 'or'. + $parts = @($prefixes | ForEach-Object { "startswith(displayName,'$($_)')" }) + $filter = $parts -join " or " + $raw = Get-GraphGroupByFilter -Filter $filter -Property @("id","displayName") -ExpandMembers + + $items = @() + foreach ($g in $raw) { + $id = if ($g.id) { $g.id } else { $g.Id } + $name = if ($g.displayName) { $g.displayName } else { $g.displayname } + $members = if ($null -ne $g.members) { $g.members } else { $g.Members } + $hasMembers = ($members -is [array] -and $members.Count -gt 0) -or ($null -ne $members -and -not ($members -is [array])) + if ($id) { + $items += [pscustomobject]@{ + Id = [string]$id + DisplayName = [string]$name + HasMembers = [bool]$hasMembers + } + } + } + # Alphabetisch sortieren + $items = @($items | Sort-Object -Property DisplayName -Culture de-DE) + $script:State.Groups = $items + return @{ items = $items; count = $items.Count } +} + +function Get-RpaGroupsEndpoint { + $err = Test-Connected + if ($err) { return $err } + + $rpaNames = @($script:Settings.rpa.groupNames | Where-Object { $_ }) + if ($rpaNames.Count -eq 0) { + # Settings leer -> ehrlich melden, das Frontend zeigt einen Konfig-Hinweis. + return @{ items = @(); count = 0; notConfigured = $true } + } + $items = @() + foreach ($n in $rpaNames) { + try { + # WICHTIG: @() wrappen — sonst entwickelt PowerShell ein Single-Item- + # Resultat zu einem Skalar und $g[0] indexiert in Properties statt Array. + $g = @(Get-GraphGroupByFilter -Filter "displayName eq '$n'" -Property @("id","displayName") -ExpandMembers) + if ($g.Count -gt 0) { + $first = $g[0] + # Defensiv beide Casings abfragen, da $select je nach Modul-Version unterschiedlich casing zurueckgibt + $name = if ($first.displayName) { $first.displayName } elseif ($first.displayname) { $first.displayname } else { $n } + $id = if ($first.id) { $first.id } elseif ($first.Id) { $first.Id } else { $null } + $members = if ($null -ne $first.members) { $first.members } else { $first.Members } + $hasMembers = ($members -is [array] -and $members.Count -gt 0) -or ($null -ne $members -and -not ($members -is [array])) + if ($id) { + $items += [pscustomobject]@{ Id = [string]$id; DisplayName = [string]$name; HasMembers = [bool]$hasMembers } + Write-Host " RPA: $name ($id) members=$hasMembers" -ForegroundColor DarkGray + } + } else { + Write-Host " RPA-Gruppe nicht gefunden: $n" -ForegroundColor Yellow + } + } catch { + Write-Host " RPA-Gruppe-Lookup-Fehler ($n): $($_.Exception.Message)" -ForegroundColor Yellow + } + } + $script:State.RpaGroups = $items + return @{ items = $items; count = $items.Count } +} + +function Test-GroupNameEndpoint { + param($Body) + $err = Test-Connected + if ($err) { return $err } + $name = $Body.displayName + $existing = Get-GraphGroupByFilter -Filter "displayName eq '$name'" -Property @("id","displayName") + return @{ + exists = ($existing -and @($existing).Count -gt 0) + displayName = $name + } +} + +function New-GroupEndpoint { + param($Body) + $err = Test-Connected + if ($err) { return $err } + + $appName = $Body.appName + $customName = $Body.customName # optional - falls null wird automatischer Name verwendet + + # Intent steuert Naming + Zuweisung. Default "required" fuer Backwards-Compat. + $intent = if ($Body.intent) { ([string]$Body.intent).ToLower() } else { "required" } + if ($intent -notin @("required","available")) { + return @{ __status = 400; error = "Intent muss 'required' oder 'available' sein" } + } + + $namingObj = if ($intent -eq "available") { $script:Settings.availableGroupNaming } else { $script:Settings.requiredGroupNaming } + $defaultSuffix = if ($intent -eq "available") { "-available" } else { "-required" } + $namingPrefix = if ($namingObj -and $namingObj.prefix) { $namingObj.prefix } else { "intune-win-app-" } + $namingSuffix = if ($namingObj -and $namingObj.suffix) { $namingObj.suffix } else { $defaultSuffix } + + $cleaned = if ($customName) { Format-GroupNameSlug -Name $customName } else { Format-GroupNameSlug -Name $appName } + $displayName = "$namingPrefix$cleaned$namingSuffix".ToLower() + $mailNickname = $displayName + + # check duplikat + $existing = Get-GraphGroupByFilter -Filter "displayName eq '$displayName'" -Property @("id","displayName") + if ($existing -and @($existing).Count -gt 0) { + return @{ __status = 409; error = "Gruppe existiert bereits"; displayName = $displayName } + } + + $group = New-GraphSecurityGroup -DisplayName $displayName -MailNickname $mailNickname + + $assigned = $false + if ($Body.assignToApp -eq $true -and $Body.appId) { + try { + Add-GraphAppAssignment -AppId $Body.appId -Intent $intent -GroupId $group.id + $assigned = $true + } catch { + Write-Host "Auto-Assign fehlgeschlagen: $_" -ForegroundColor Yellow + } + } + + return @{ + id = $group.id + displayName = $group.displayName + intent = $intent + assigned = $assigned + } +} + +function Format-GroupNameSlug { + param([string]$Name) + $clean = $Name -replace '[^a-zA-Z0-9-]', '-' + $clean = $clean -replace '-+', '-' + $clean = $clean.Trim('-') + return $clean.ToLower() +} + +function Get-GroupMembersEndpoint { + param([string]$GroupId) + $err = Test-Connected + if ($err) { return $err } + $members = Get-GraphGroupMembersTransitive -GroupId $GroupId + $items = @() + foreach ($m in $members) { + $items += [pscustomobject]@{ + Id = $m.id + DisplayName = $m.displayName + UserPrincipalName = $m.userPrincipalName + } + } + return @{ items = $items; count = $items.Count } +} + +# ============================================================ +# Users +# ============================================================ + +function Search-UsersEndpoint { + param($Query) + $err = Test-Connected + if ($err) { return $err } + $term = $Query.q + if ([string]::IsNullOrWhiteSpace($term) -or $term.Length -lt 2) { + return @{ items = @(); count = 0 } + } + $raw = Search-GraphUser -SearchTerm $term + $items = @() + foreach ($u in $raw) { + $items += [pscustomobject]@{ + Id = $u.id + DisplayName = $u.displayName + UserPrincipalName = $u.userPrincipalName + Mail = $u.mail + Department = $u.department + } + } + return @{ items = $items; count = $items.Count } +} + +# ============================================================ +# Apps +# ============================================================ + +function Get-AppsEndpoint { + param($Query) + $err = Test-Connected + if ($err) { return $err } + + if (-not $Query) { $Query = @{} } + $forceRefresh = ($Query.refresh -eq "true") + + if (-not $forceRefresh -and $script:State.Apps.Count -gt 0) { + return @{ items = $script:State.Apps; count = $script:State.Apps.Count; cached = $true } + } + + $sw = [System.Diagnostics.Stopwatch]::StartNew() + Write-Host "Lade Apps aus Intune..." -ForegroundColor Cyan + $raw = Get-GraphMobileApps -WithAssignments + Write-Host " -> $($raw.Count) Apps gesamt vor Filter ($([int]$sw.Elapsed.TotalSeconds)s)" -ForegroundColor DarkGray + + # Eindeutige Gruppen-IDs aus allen Zuweisungen sammeln + $groupIds = @{} + foreach ($app in $raw) { + foreach ($a in @($app.assignments)) { + $tgt = $a.target + if ($tgt.'@odata.type' -eq '#microsoft.graph.groupAssignmentTarget' -and $tgt.groupId) { + $groupIds[$tgt.groupId] = $true + } + } + } + Write-Host " -> $($groupIds.Count) eindeutige Gruppen referenziert" -ForegroundColor DarkGray + + # Lookup mit bereits bekannten Namen vorbefuellen + $lookup = @{} + foreach ($g in $script:State.Groups) { $lookup[$g.Id] = $g.DisplayName } + foreach ($g in $script:State.RpaGroups) { $lookup[$g.Id] = $g.DisplayName } + + # Unbekannte IDs in Batches per directoryObjects/getByIds aufloesen (1 Request fuer 1000 IDs statt 1000 Requests) + $unknown = [string[]]@($groupIds.Keys | ForEach-Object { [string]$_ } | Where-Object { $_ -and -not $lookup.ContainsKey($_) }) + if ($unknown.Count -gt 0) { + Write-Host " -> Loese $($unknown.Count) Gruppen-Namen via getByIds auf..." -ForegroundColor DarkGray + $sw2 = [System.Diagnostics.Stopwatch]::StartNew() + Resolve-GroupNamesBulk -Ids $unknown -Lookup $lookup + $sw2.Stop() + Write-Host " -> Aufloesung in $([int]$sw2.Elapsed.TotalSeconds)s erledigt" -ForegroundColor DarkGray + } + + $items = @() + foreach ($app in $raw) { + if (-not (Test-AppTypeAllowed -Type $app.'@odata.type')) { continue } + $items += Format-AppForFrontend -RawApp $app -AllGroupsLookup $lookup + } + $sw.Stop() + Write-Host " -> $($items.Count) Apps nach Filter ($([int]$sw.Elapsed.TotalSeconds)s gesamt)" -ForegroundColor Green + + $script:State.Apps = $items + return @{ items = $items; count = $items.Count; cached = $false } +} + +function Get-AppCategoriesEndpoint { + # Liefert eine Map appId -> [KategorieNamen] fuer alle gecachten Apps. + # Wird vom Frontend NACH dem App-Laden im Hintergrund geholt (blockiert + # das App-Laden nicht). Throttle-sicher per $batch. + $err = Test-Connected + if ($err) { return $err } + $ids = @($script:State.Apps | ForEach-Object { [string]$_.AppId } | Where-Object { $_ }) + if ($ids.Count -eq 0) { return @{ map = @{}; count = 0 } } + $sw = [System.Diagnostics.Stopwatch]::StartNew() + Write-Host "[CATS] Lade Kategorien fuer $($ids.Count) Apps via batch..." -ForegroundColor DarkCyan + $map = Get-GraphMobileAppCategoriesBatch -AppIds $ids + $sw.Stop() + # Cache mitfuehren, damit Filter auch ohne erneuten Call konsistent ist + foreach ($a in $script:State.Apps) { + if ($map.ContainsKey($a.AppId)) { $a.Categories = @($map[$a.AppId]) } + } + Write-Host " -> Kategorien fuer $($map.Keys.Count) Apps in $([int]$sw.Elapsed.TotalSeconds)s" -ForegroundColor DarkGray + return @{ map = $map; count = $map.Keys.Count } +} + +function Get-AppDetailsEndpoint { + param([string]$AppId) + $err = Test-Connected + if ($err) { return $err } + if ([string]::IsNullOrWhiteSpace($AppId)) { + return @{ __status = 400; error = "AppId fehlt" } + } + + # Drei Calls (App-Details + InstallSummary + Relationships) in EINEM + # HTTP-Roundtrip via Graph $batch — server-seitig parallelisiert, + # spart 60-70% Latenz. + $batch = Get-GraphAppDetailsBatch -AppId $AppId + $app = $batch.App + if (-not $app) { + return @{ __status = 404; error = "App nicht gefunden (Batch-Response ohne App-Body)" } + } + + # Helper: Wert holen, leere Strings als $null normalisieren + $val = { + param($obj, $name) + if ($null -eq $obj) { return $null } + $v = $obj.$name + if ($null -eq $v) { return $null } + if ($v -is [string] -and [string]::IsNullOrWhiteSpace($v)) { return $null } + return $v + } + + $type = [string]$app.'@odata.type' + $shortType = $type -replace '^#microsoft\.graph\.', '' + + # Min-OS in lesbarem Format zusammenfassen + $minOs = $null + $mos = $app.minimumSupportedOperatingSystem + if ($mos) { + $flags = @() + foreach ($p in @('v8_0','v8_1','v10_0','v10_1607','v10_1703','v10_1709','v10_1803','v10_1809','v10_1903','v10_1909','v10_2004','v10_20H2','v10_21H1','v10_21H2','v10_22H2','v11_21H2','v11_22H2','v11_23H2')) { + if ($mos.$p -eq $true) { $flags += ($p -replace '^v','Win ') } + } + if ($flags.Count -gt 0) { $minOs = ($flags -join ', ') } + } + + # Architekturen + $arch = $null + if ($app.applicableArchitectures) { $arch = [string]$app.applicableArchitectures } + + # Detection-Rules in Kurzform + $detection = @() + if ($app.detectionRules) { + foreach ($r in @($app.detectionRules)) { + $rt = [string]$r.'@odata.type' -replace '^#microsoft\.graph\.win32LobApp', '' + $summary = switch -Wildcard ($rt) { + 'FileSystemDetection' { "Datei: $([string]$r.path)\$([string]$r.fileOrFolderName)" } + 'RegistryDetection' { "Registry: $([string]$r.keyPath) ($([string]$r.valueName))" } + 'MsiInformation' { "MSI: $([string]$r.productCode)" } + 'ProductCodeDetection' { "MSI-ProductCode: $([string]$r.productCode)" } + 'PowerShellScriptDetection' { "PowerShell-Skript" } + default { $rt } + } + $detection += $summary + } + } + + # MSI-Details + $msi = $null + if ($app.msiInformation) { + $msi = @{ + ProductCode = [string]$app.msiInformation.productCode + ProductVersion = [string]$app.msiInformation.productVersion + Publisher = [string]$app.msiInformation.publisher + PackageType = [string]$app.msiInformation.packageType + UpgradeCode = [string]$app.msiInformation.upgradeCode + RequiresReboot = [bool]$app.msiInformation.requiresReboot + } + } + + # Return-Codes + $returnCodes = @() + if ($app.returnCodes) { + foreach ($rc in @($app.returnCodes)) { + $returnCodes += @{ Code = [int]$rc.returnCode; Type = [string]$rc.type } + } + } + + return @{ + AppId = [string]$app.id + Type = $shortType + DisplayName = & $val $app 'displayName' + Publisher = & $val $app 'publisher' + Developer = & $val $app 'developer' + Owner = & $val $app 'owner' + Description = & $val $app 'description' + Notes = & $val $app 'notes' + DisplayVersion = & $val $app 'displayVersion' + Version = & $val $app 'version' + ProductVersion = & $val $app 'productVersion' + FileName = & $val $app 'fileName' + SetupFilePath = & $val $app 'setupFilePath' + InstallCommandLine = & $val $app 'installCommandLine' + UninstallCommandLine = & $val $app 'uninstallCommandLine' + CommandLine = & $val $app 'commandLine' + InformationUrl = & $val $app 'informationUrl' + PrivacyInformationUrl= & $val $app 'privacyInformationUrl' + InstallExperience = if ($app.installExperience) { [string]$app.installExperience.runAsAccount } else { $null } + Architectures = $arch + MinimumOS = $minOs + IsFeatured = [bool]$app.isFeatured + # Dates explizit als ISO 8601 zurueckgeben — ConvertTo-Json wuerde + # [DateTime]-Objekte je nach PS-Version unterschiedlich (und teils + # JS-untauglich) serialisieren. + CreatedDateTime = ConvertTo-IsoDate (& $val $app 'createdDateTime') + LastModifiedDateTime = ConvertTo-IsoDate (& $val $app 'lastModifiedDateTime') + Categories = (Get-AppCategoryNames -RawCategories $app.categories -AppId $AppId) + DetectionRules = $detection + ReturnCodes = $returnCodes + Msi = $msi + InstallSummary = Get-AppInstallSummaryNormalized -AppId $AppId -Raw $batch.InstallSummary + # WICHTIG: @() Wrap am Call-Site — PowerShell entpackt sonst ein + # Single-Element-Array zu einer einzelnen Hashtable, und ConvertTo-Json + # serialisiert sie als Objekt statt als Array. Frontend sieht dann + # d.Dependencies.length === undefined und ueberspringt das Rendern. + # Items kommt aus dem Batch — kein zweiter /relationships-Request. + Dependencies = @(Get-AppRelationshipsNormalized -AppId $AppId -OdataKind '#microsoft.graph.mobileAppDependency' -Items $batch.Relationships) + Supersedence = @(Get-AppRelationshipsNormalized -AppId $AppId -OdataKind '#microsoft.graph.mobileAppSupersedence' -Items $batch.Relationships) + } +} + +# Normalisiert das installSummary-Objekt von Graph in flache, JS-freundliche +# Properties. Bei API-Fehler / fehlenden Werten -> $null (Frontend zeigt die +# Sektion dann nicht). +function Get-AppInstallSummaryNormalized { + param( + [string]$AppId, + # Optional: bereits geladenes Raw-Objekt (z.B. aus $batch) — spart den + # zusaetzlichen HTTP-Roundtrip. + $Raw = $null + ) + if ($null -eq $Raw) { + $Raw = Get-GraphMobileAppInstallSummary -AppId $AppId + } + if (-not $Raw) { return $null } + $raw = $Raw + $int = { param($v) if ($null -eq $v) { 0 } else { [int]$v } } + return @{ + InstalledDeviceCount = & $int $raw.installedDeviceCount + FailedDeviceCount = & $int $raw.failedDeviceCount + NotInstalledDeviceCount = & $int $raw.notInstalledDeviceCount + NotApplicableDeviceCount = & $int $raw.notApplicableDeviceCount + PendingInstallDeviceCount = & $int $raw.pendingInstallDeviceCount + InstalledUserCount = & $int $raw.installedUserCount + FailedUserCount = & $int $raw.failedUserCount + NotInstalledUserCount = & $int $raw.notInstalledUserCount + NotApplicableUserCount = & $int $raw.notApplicableUserCount + PendingInstallUserCount = & $int $raw.pendingInstallUserCount + } +} + +# Filtert die Relationships nach @odata.type (Dependency oder Supersedence) +# und packt sie in eine flache, JS-freundliche Struktur. Bei fehlenden +# Properties (Microsoft liefert nicht immer Display-Name fuer Targets!) +# wird die App-ID als Fallback verwendet. +function Get-AppRelationshipsNormalized { + param( + [string]$AppId, + [string]$OdataKind, + # Optional: vorhandene Items (z.B. aus $batch). Wenn gesetzt wird + # KEIN zusaetzlicher /relationships-Request mehr gemacht. + $Items = $null + ) + if ($null -eq $Items) { + $items = @() + try { + $items = Get-GraphMobileAppRelationships -AppId $AppId + } catch { return @() } + } else { + $items = $Items + } + if (-not $items) { return @() } + + # Normalisierung: Casing + fuehrendes # entfernen, um Mikro-Unterschiede + # in der API-Response zuverlaessig zu matchen. + $norm = { param($t) ([string]$t).TrimStart('#').ToLower() } + $wanted = & $norm $OdataKind + $isDependency = $wanted -like '*dependency*' + $isSupersedence= $wanted -like '*supersedence*' + + $result = @() + foreach ($r in $items) { + $actual = & $norm $r.'@odata.type' + if ($actual -ne $wanted) { continue } + $entry = @{ + Id = [string]$r.id + TargetId = [string]$r.targetId + TargetDisplayName = if ($r.targetDisplayName) { [string]$r.targetDisplayName } else { [string]$r.targetId } + TargetPublisher = if ($r.targetPublisher) { [string]$r.targetPublisher } else { $null } + TargetDisplayVersion = if ($r.targetDisplayVersion) { [string]$r.targetDisplayVersion } else { $null } + TargetType = if ($r.targetType) { [string]$r.targetType } else { $null } + } + if ($isDependency) { + $entry['DependencyType'] = if ($r.dependencyType) { [string]$r.dependencyType } else { 'detect' } + } elseif ($isSupersedence) { + $entry['SupersedenceType'] = if ($r.supersedenceType) { [string]$r.supersedenceType } else { 'update' } + } + $result += $entry + } + Write-Host " [RELS] $AppId -> $($result.Count) gefiltert auf '$wanted'" -ForegroundColor DarkGray + return $result +} + +# ============================================================ +# Membership Check +# ============================================================ + +function Get-MembershipBulkEndpoint { + param($Body) + $err = Test-Connected + if ($err) { return $err } + + $targetIds = @($Body.targets | ForEach-Object { [string]$_ } | Where-Object { $_ }) + $groupIds = @($Body.groupIds | ForEach-Object { [string]$_ } | Where-Object { $_ }) + if ($targetIds.Count -eq 0 -or $groupIds.Count -eq 0) { + return @{ memberships = @{} } + } + + $sw = [System.Diagnostics.Stopwatch]::StartNew() + Write-Host " Bulk-Membership: $($targetIds.Count) Targets x $($groupIds.Count) Gruppen" -ForegroundColor DarkGray + + # Pro Target: ALLE Gruppen-Mitgliedschaften EINMAL holen (transitiveMemberOf) + # Statt pro Gruppe pro Target eine Anfrage. Bei 1 Target + 600 Gruppen + # = 1 Call statt 600. + $perTarget = @{} + foreach ($tid in $targetIds) { + $set = New-Object System.Collections.Generic.HashSet[string] + try { + $uri = "https://graph.microsoft.com/v1.0/directoryObjects/$tid/transitiveMemberOf?`$select=id&`$top=999" + $next = $uri + do { + $resp = Invoke-MgGraphRequest -Uri $next -Method GET + if ($resp.value) { + foreach ($g in $resp.value) { + if ($g.id) { [void]$set.Add([string]$g.id) } + } + } + $next = $resp.'@odata.nextLink' + } while ($next) + } catch { + Write-Host " -> transitiveMemberOf fehlgeschlagen fuer $tid : $($_.Exception.Message)" -ForegroundColor DarkYellow + } + $perTarget[$tid] = $set + } + + # Lokal mappen — Group-IDs gegen alle Target-Sets pruefen + $result = @{} + foreach ($gid in $groupIds) { + if ($gid -in @("ALL_USERS","ALL_DEVICES")) { + $result[$gid] = @{ status = "Native"; matched = 0; total = $targetIds.Count } + continue + } + $matched = 0 + foreach ($tid in $targetIds) { + if ($perTarget[$tid].Contains($gid)) { $matched++ } + } + $status = if ($matched -eq 0) { "None" } + elseif ($matched -eq $targetIds.Count) { "Full" } + else { "Partial" } + $result[$gid] = @{ status = $status; matched = $matched; total = $targetIds.Count } + } + + $sw.Stop() + Write-Host " Bulk-Membership: $($result.Count) Resultate in $($sw.ElapsedMilliseconds)ms" -ForegroundColor DarkGray + return @{ memberships = $result } +} + +function Get-MembershipEndpoint { + param($Query) + $err = Test-Connected + if ($err) { return $err } + + $targetIds = @($Query.targets -split ",") + $groupId = $Query.groupId + + if ([string]::IsNullOrWhiteSpace($groupId) -or $targetIds.Count -eq 0) { + return @{ status = "None"; details = @() } + } + + if ($groupId -in @("ALL_USERS","ALL_DEVICES")) { + return @{ status = "Native"; details = @() } + } + + if (-not $script:State.GroupMembers.ContainsKey($groupId)) { + try { + $members = Get-GraphGroupMembersTransitive -GroupId $groupId + $ids = New-Object System.Collections.Generic.HashSet[string] + foreach ($m in $members) { [void]$ids.Add($m.id) } + $script:State.GroupMembers[$groupId] = $ids + } catch { + return @{ status = "Unknown"; error = $_.Exception.Message } + } + } + + $set = $script:State.GroupMembers[$groupId] + $matchCount = 0 + $details = @() + foreach ($tid in $targetIds) { + $isMember = $set.Contains($tid) + if ($isMember) { $matchCount++ } + $details += @{ id = $tid; isMember = $isMember } + } + $status = if ($matchCount -eq 0) { "None" } + elseif ($matchCount -eq $targetIds.Count) { "Full" } + else { "Partial" } + return @{ + status = $status + matched = $matchCount + total = $targetIds.Count + details = $details + } +} + +# ============================================================ +# App-Loeschung & Assignment-Entfernung +# ============================================================ + +function Remove-AppEndpoint { + param([string]$AppId) + $err = Test-Connected + if ($err) { return $err } + if ([string]::IsNullOrWhiteSpace($AppId)) { + return @{ __status = 400; error = "AppId fehlt" } + } + + # App-Namen + Source fuer Logging aus Cache versuchen (nice-to-have) + $appName = $AppId + $appSource = $null + $cachedApp = $script:State.Apps | Where-Object { $_.AppId -eq $AppId } | Select-Object -First 1 + if ($cachedApp) { + $appName = $cachedApp.AppName + $appSource = $cachedApp.Source + } + + # Vendor-managed Apps (PMPC, Robopack, ...) koennen nur im jeweiligen + # Vendor-Portal geloescht werden. Ein Delete in Intune liefe auf einen + # verwirrenden 400er hinaus oder der Vendor wuerde die App beim naechsten + # Sync wieder anlegen. Wir blocken den Versuch hier. + $vendor = Find-VendorBySource -Source $appSource + if ($vendor -and $vendor.block -and $vendor.block.delete) { + Write-Host "[DELETE APP] BLOCK $appName ($($vendor.displayName)-managed)" -ForegroundColor DarkYellow + return @{ + __status = 409 + error = "Diese App wird durch $($vendor.displayName) verwaltet und kann nur im $($vendor.displayName)-Portal geloescht werden — nicht in Intune." + code = "$($vendor.id)Managed" + source = $vendor.displayName + } + } + + Write-Host "[DELETE APP] $appName ($AppId)" -ForegroundColor Yellow + try { + Remove-GraphMobileApp -AppId $AppId + } catch { + $exMsg = $_.Exception.Message + # Original-Graph-Body extrahieren (am informativsten) + $graphBody = $null + try { $graphBody = $_.ErrorDetails.Message } catch {} + if (-not $graphBody -and $exMsg -match 'Graph-Response:\s*(.+)$') { + $graphBody = $matches[1] + } + $graphMsg = $null + if ($graphBody) { + try { + $j = $graphBody | ConvertFrom-Json + if ($j.error -and $j.error.message) { $graphMsg = [string]$j.error.message } + } catch {} + } + + # Bei 400: Relationships pruefen — haeufige Ursache + $rels = @() + if ($exMsg -match '400|BadRequest') { + try { $rels = Get-GraphMobileAppRelationships -AppId $AppId } catch {} + } + + $details = Get-GraphErrorFriendly -ErrorRecord $_ + $friendly = if ($graphMsg) { $graphMsg } else { $details.Friendly } + $status = if ($details.Code -like '*403*') { 403 } elseif ($details.Code -like '*404*') { 404 } else { 500 } + + # Wenn Relationships gefunden: Hinweis daran haengen + if ($rels.Count -gt 0) { + $relTypes = @($rels | ForEach-Object { ([string]$_.'@odata.type' -replace '^#microsoft\.graph\.','') } | Select-Object -Unique) + $friendly = "$friendly`n`nDie App hat $($rels.Count) Abhaengigkeit(en) ($($relTypes -join ', ')). Bitte zuerst diese Beziehungen im Intune-Portal entfernen (Eigenschaften > Abhaengigkeiten / Supersedence)." + } + + Write-Host "[DELETE APP] FAIL [$($details.Code)] $friendly" -ForegroundColor Red + if ($graphBody) { Write-Host " Graph-Body: $graphBody" -ForegroundColor DarkRed } + + return @{ + __status = $status + error = $friendly + code = $details.Code + details = $details.Full + graph = $graphBody + relationships = $rels.Count + } + } + + # Cache aktualisieren: geloeschte App rauswerfen + if ($script:State.Apps -and $script:State.Apps.Count -gt 0) { + $script:State.Apps = @($script:State.Apps | Where-Object { $_.AppId -ne $AppId }) + } + Write-Host "[DELETE APP] OK $appName" -ForegroundColor Green + return @{ ok = $true; appId = $AppId; appName = $appName } +} + +function Update-AppEndpoint { + param( + [string]$AppId, + $Body + ) + $err = Test-Connected + if ($err) { return $err } + if ([string]::IsNullOrWhiteSpace($AppId)) { + return @{ __status = 400; error = "AppId fehlt" } + } + if (-not $Body) { + return @{ __status = 400; error = "Request-Body fehlt" } + } + + # Aktuell wird nur displayName per UI editiert. Andere Felder waeren leicht + # nachruestbar, brauchen aber jeweils eigene Validierung. + $newName = $null + if ($Body.displayName) { $newName = [string]$Body.displayName } + if (-not $newName) { + return @{ __status = 400; error = "displayName fehlt im Body" } + } + $newName = $newName.Trim() + if ($newName.Length -lt 1) { return @{ __status = 400; error = "Name darf nicht leer sein" } } + if ($newName.Length -gt 256) { return @{ __status = 400; error = "Name zu lang (max. 256 Zeichen)" } } + + # App im Cache nachschlagen — fuer Source-Check (PMPC blocken) und Typ (PATCH braucht @odata.type) + $cachedApp = $script:State.Apps | Where-Object { $_.AppId -eq $AppId } | Select-Object -First 1 + if (-not $cachedApp) { + return @{ __status = 404; error = "App im Cache nicht gefunden. Bitte Apps neu laden und erneut versuchen." } + } + + $vendor = Find-VendorBySource -Source $cachedApp.Source + if ($vendor -and $vendor.block -and $vendor.block.rename) { + Write-Host "[PATCH APP] BLOCK $($cachedApp.AppName) ($($vendor.displayName)-managed)" -ForegroundColor DarkYellow + return @{ + __status = 409 + error = "Diese App wird durch $($vendor.displayName) verwaltet — Namensaenderungen in Intune werden beim naechsten Sync ueberschrieben. Bitte im $($vendor.displayName)-Portal umbenennen." + code = "$($vendor.id)Managed" + source = $vendor.displayName + } + } + + if (-not $cachedApp.AppTypeRaw) { + return @{ __status = 500; error = "App-Typ unbekannt — Cache ist inkonsistent. Bitte Apps neu laden." } + } + + $oldName = [string]$cachedApp.AppName + if ($oldName -eq $newName) { + return @{ ok = $true; appId = $AppId; appName = $newName; unchanged = $true } + } + + Write-Host "[PATCH APP] '$oldName' -> '$newName' ($AppId)" -ForegroundColor Yellow + try { + Update-GraphMobileApp -AppId $AppId -AppTypeRaw $cachedApp.AppTypeRaw -Patch @{ displayName = $newName } + } catch { + $exMsg = $_.Exception.Message + $graphBody = $null + try { $graphBody = $_.ErrorDetails.Message } catch {} + if (-not $graphBody -and $exMsg -match 'Graph-Response:\s*(.+)$') { $graphBody = $matches[1] } + $graphMsg = $null + if ($graphBody) { + try { + $j = $graphBody | ConvertFrom-Json + if ($j.error -and $j.error.message) { $graphMsg = [string]$j.error.message } + } catch {} + } + $details = Get-GraphErrorFriendly -ErrorRecord $_ + $friendly = if ($graphMsg) { $graphMsg } else { $details.Friendly } + $status = if ($details.Code -like '*403*') { 403 } elseif ($details.Code -like '*404*') { 404 } else { 500 } + Write-Host "[PATCH APP] FAIL [$($details.Code)] $friendly" -ForegroundColor Red + if ($graphBody) { Write-Host " Graph-Body: $graphBody" -ForegroundColor DarkRed } + return @{ __status = $status; error = $friendly; code = $details.Code; graph = $graphBody } + } + + # Cache aktualisieren + $cachedApp.AppName = $newName + Write-Host "[PATCH APP] OK '$newName'" -ForegroundColor Green + return @{ ok = $true; appId = $AppId; appName = $newName; previousName = $oldName } +} + +# Oeffnet einen nativen Windows-Datei-Dialog auf dem Server-Rechner (= der +# Rechner des Users, da localhost-Tool). Browser geben den vollen lokalen Pfad +# nie heraus — deshalb der Backend-Dialog. Laeuft in einem STA-Runspace, weil +# WinForms-Dialoge zwingend STA brauchen. Owner-Form mit TopMost holt den Dialog +# vor das Browser-Fenster. +function Show-OpenFileDialog { + param( + [string]$Filter = "Alle Dateien (*.*)|*.*", + [string]$Title = "Datei auswaehlen" + ) + # Eigener powershell.exe -STA Prozess: in einem In-Process-Runspace blitzt + # der Dialog nur kurz auf (keine echte Windows-Message-Pump, er bleibt nicht + # modal). Ein separater STA-Konsolen-Prozess hat einen vollwertigen + # STA-Hauptthread -> der Dialog erscheint und bleibt offen bis zur Auswahl. + # Ergebnis-Pfad kommt ueber stdout zurueck. + $fEsc = $Filter -replace "'", "''" + $tEsc = $Title -replace "'", "''" + $inner = @" +`$ProgressPreference = 'SilentlyContinue' +Add-Type -AssemblyName System.Windows.Forms +`$dlg = New-Object System.Windows.Forms.OpenFileDialog +`$dlg.Filter = '$fEsc' +`$dlg.Title = '$tEsc' +`$dlg.CheckFileExists = `$true +`$dlg.Multiselect = `$false +`$owner = New-Object System.Windows.Forms.Form +`$owner.TopMost = `$true +`$owner.ShowInTaskbar = `$false +`$owner.WindowState = 'Minimized' +`$owner.Show(); `$owner.Activate() +`$r = `$dlg.ShowDialog(`$owner) +`$owner.Dispose() +if (`$r -eq [System.Windows.Forms.DialogResult]::OK) { [Console]::Out.Write(`$dlg.FileName) } +"@ + $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($inner)) + $psi = New-Object System.Diagnostics.ProcessStartInfo + $psi.FileName = "powershell.exe" + $psi.Arguments = "-NoProfile -STA -ExecutionPolicy Bypass -EncodedCommand $encoded" + $psi.UseShellExecute = $false + $psi.RedirectStandardOutput = $true + $psi.CreateNoWindow = $true + try { + $proc = [System.Diagnostics.Process]::Start($psi) + $path = $proc.StandardOutput.ReadToEnd() + $proc.WaitForExit() + } catch { + throw "Datei-Dialog-Prozess konnte nicht gestartet werden: $($_.Exception.Message)" + } + return ([string]$path).Trim() +} + +function Invoke-FilePickerEndpoint { + # Oeffnet den Datei-Dialog und liefert den gewaehlten Pfad. Braucht keine + # Graph-Verbindung. Body optional: { filter, title }. + param($Body) + $filter = "Intune-Pakete (*.intunewin)|*.intunewin|MSI (*.msi)|*.msi|MSIX/AppX (*.msix;*.appx)|*.msix;*.appx|Alle Dateien (*.*)|*.*" + $title = "Setup-Datei auswaehlen" + if ($Body -and $Body.filter) { $filter = [string]$Body.filter } + if ($Body -and $Body.title) { $title = [string]$Body.title } + try { + $path = Show-OpenFileDialog -Filter $filter -Title $title + } catch { + return @{ __status = 500; error = "Datei-Dialog fehlgeschlagen: $($_.Exception.Message)" } + } + if (-not $path) { return @{ ok = $true; cancelled = $true } } + return @{ ok = $true; path = $path } +} + +# App-Typ (@odata.type) -> unterstuetzter Content-Update-Pfad + erlaubte Endung. +# Phase 1: nur win32LobApp/.intunewin aktiv; MSI/MSIX kommen in Phase 2/3. +function Get-AppContentTypeMap { + param([string]$AppTypeRaw) + $t = ($AppTypeRaw -replace '^#microsoft\.graph\.', '') + switch ($t) { + 'win32LobApp' { return @{ graphType = 'win32LobApp'; exts = @('.intunewin'); phase = 1 } } + 'windowsMobileMSI' { return @{ graphType = 'windowsMobileMSI'; exts = @('.msi'); phase = 2 } } + 'windowsUniversalAppX'{ return @{ graphType = 'windowsUniversalAppX'; exts = @('.msix','.appx'); phase = 3 } } + default { return $null } + } +} + +function Update-AppContentEndpoint { + # Laedt eine neue Setup-Datei (lokaler Pfad) in eine native App und aktiviert + # sie als neue contentVersion. Body: { filePath, displayVersion? }. + param([string]$AppId, $Body) + $err = Test-Connected + if ($err) { return $err } + if ([string]::IsNullOrWhiteSpace($AppId)) { return @{ __status = 400; error = "AppId fehlt" } } + if (-not $Body) { return @{ __status = 400; error = "Request-Body fehlt" } } + + $filePath = [string]$Body.filePath + $displayVersion = if ($Body.displayVersion) { [string]$Body.displayVersion } else { $null } + if (-not $filePath) { return @{ __status = 400; error = "filePath fehlt im Body" } } + + # App aus Cache (fuer Typ + Vendor-Check) + $cachedApp = $script:State.Apps | Where-Object { $_.AppId -eq $AppId } | Select-Object -First 1 + if (-not $cachedApp) { return @{ __status = 404; error = "App im Cache nicht gefunden. Bitte Apps neu laden." } } + if (-not $cachedApp.AppTypeRaw) { return @{ __status = 500; error = "App-Typ unbekannt — Cache inkonsistent, bitte Apps neu laden." } } + + # Vendor-managed Apps blocken (PMPC/Robopack) — analog Rename/Delete + $vendor = Find-VendorBySource -Source $cachedApp.Source + if ($vendor) { + return @{ + __status = 409 + error = "Diese App wird durch $($vendor.displayName) verwaltet — der Content kann nur im $($vendor.displayName)-Portal aktualisiert werden." + code = "$($vendor.id)Managed" + source = $vendor.displayName + } + } + + # App-Typ unterstuetzt? + $map = Get-AppContentTypeMap -AppTypeRaw $cachedApp.AppTypeRaw + if (-not $map) { + return @{ __status = 400; error = "App-Typ '$($cachedApp.AppTypeRaw)' unterstuetzt keine Content-Aktualisierung." } + } + if ($map.phase -gt 1) { + return @{ __status = 501; error = "Content-Update fuer $($map.graphType) ist noch nicht aktiviert (kommt in einer spaeteren Phase). Aktuell nur .intunewin (win32LobApp)." } + } + + # Datei + Endung pruefen + if (-not (Test-Path -LiteralPath $filePath -PathType Leaf)) { + return @{ __status = 400; error = "Datei nicht gefunden: $filePath" } + } + $ext = [IO.Path]::GetExtension($filePath).ToLower() + if ($ext -notin $map.exts) { + return @{ __status = 400; error = "Dateiendung '$ext' passt nicht zum App-Typ $($map.graphType). Erwartet: $($map.exts -join ', ')" } + } + + Write-Host "[CONTENT] Update $($cachedApp.AppName) ($($map.graphType)) <- $filePath" -ForegroundColor Yellow + try { + $result = Update-GraphAppContent -AppId $AppId -GraphTypeRaw $cachedApp.AppTypeRaw -FilePath $filePath -DisplayVersion $displayVersion + } catch { + $exMsg = $_.Exception.Message + $graphBody = $null + try { $graphBody = $_.ErrorDetails.Message } catch {} + if (-not $graphBody -and $exMsg -match 'Graph-Response:\s*(.+)$') { $graphBody = $matches[1] } + $details = Get-GraphErrorFriendly -ErrorRecord $_ + $friendly = if ($exMsg) { $exMsg } else { $details.Friendly } + $status = if ($details.Code -like '*403*') { 403 } elseif ($details.Code -like '*404*') { 404 } else { 500 } + Write-Host "[CONTENT] FAIL [$($details.Code)] $friendly" -ForegroundColor Red + if ($graphBody) { Write-Host " Graph-Body: $graphBody" -ForegroundColor DarkRed } + return @{ __status = $status; error = $friendly; code = $details.Code; graph = $graphBody } + } + + # App-Liste-Cache invalidieren, damit neue Version/Daten nachgeladen werden + if ($displayVersion) { $cachedApp.Version = $displayVersion } + $script:State.Apps = @() + Write-Host "[CONTENT] OK $($cachedApp.AppName) -> contentVersion $($result.contentVersion)" -ForegroundColor Green + return @{ + ok = $true + appId = $AppId + appName = $cachedApp.AppName + contentVersion = $result.contentVersion + displayVersion = $displayVersion + } +} + +function Add-AppAssignmentEndpoint { + # Erzeugt eine neue Zuweisung fuer eine App. + # Body: + # { intent: "available"|"required", + # target: "ALL_USERS"|"ALL_DEVICES"|"" } + param( + [string]$AppId, + $Body + ) + $err = Test-Connected + if ($err) { return $err } + if ([string]::IsNullOrWhiteSpace($AppId)) { + return @{ __status = 400; error = "AppId fehlt" } + } + if (-not $Body) { + return @{ __status = 400; error = "Request-Body fehlt" } + } + + $intent = if ($Body.intent) { ([string]$Body.intent).ToLower() } else { "" } + if ($intent -notin @("required","available")) { + return @{ __status = 400; error = "intent muss 'required' oder 'available' sein" } + } + $target = [string]$Body.target + if ([string]::IsNullOrWhiteSpace($target)) { + return @{ __status = 400; error = "target fehlt (ALL_USERS / ALL_DEVICES / )" } + } + # Bei Group-Target: zumindest grobe Hex/GUID-Form pruefen damit wir keine + # Garbage an Graph schicken. + if ($target -notin @("ALL_USERS","ALL_DEVICES") -and $target -notmatch '^[0-9a-fA-F-]{8,}$') { + return @{ __status = 400; error = "Ungueltige target-GUID: $target" } + } + + # App-Cache fuer logging + $cachedApp = $script:State.Apps | Where-Object { $_.AppId -eq $AppId } | Select-Object -First 1 + $appName = if ($cachedApp) { $cachedApp.AppName } else { $AppId } + + Write-Host "[ADD ASSIGN] $appName -> intent=$intent target=$target" -ForegroundColor Yellow + try { + Add-GraphAppAssignment -AppId $AppId -Intent $intent -GroupId $target + } catch { + $graphBody = $null + try { $graphBody = $_.ErrorDetails.Message } catch {} + $graphMsg = $null + if ($graphBody) { + try { $j = $graphBody | ConvertFrom-Json; if ($j.error -and $j.error.message) { $graphMsg = [string]$j.error.message } } catch {} + } + $details = Get-GraphErrorFriendly -ErrorRecord $_ + $friendly = if ($graphMsg) { $graphMsg } else { $details.Friendly } + $status = if ($details.Code -like '*403*') { 403 } elseif ($details.Code -like '*409*') { 409 } else { 500 } + Write-Host "[ADD ASSIGN] FAIL [$($details.Code)] $friendly" -ForegroundColor Red + return @{ __status = $status; error = $friendly; code = $details.Code; graph = $graphBody } + } + + # Cache aktualisieren — neue Zuweisung im App-Eintrag ergaenzen + if ($cachedApp) { + $entry = if ($target -eq "ALL_USERS") { + @{ GroupId = "ALL_USERS"; GroupName = "All Users"; IsNative = $true } + } elseif ($target -eq "ALL_DEVICES") { + @{ GroupId = "ALL_DEVICES"; GroupName = "All Devices"; IsNative = $true } + } else { + # Group-Namen aus den geladenen Gruppen oder Graph nachschlagen + $groupName = $target + $lookup = @{} + foreach ($g in $script:State.Groups) { $lookup[$g.Id] = $g.DisplayName } + foreach ($g in $script:State.RpaGroups) { $lookup[$g.Id] = $g.DisplayName } + if ($lookup.ContainsKey($target)) { $groupName = $lookup[$target] } + else { + try { + $g = Get-GraphGroupById -Id $target -Property @("id","displayName") + if ($g.displayName) { $groupName = [string]$g.displayName } + } catch {} + } + @{ GroupId = $target; GroupName = $groupName; IsNative = $false } + } + if ($intent -eq "available") { + $cachedApp.AvailableGroups = @($cachedApp.AvailableGroups + $entry) + $cachedApp.AvailableCount = $cachedApp.AvailableGroups.Count + } else { + $cachedApp.RequiredGroups = @($cachedApp.RequiredGroups + $entry) + $cachedApp.RequiredCount = $cachedApp.RequiredGroups.Count + } + } + + Write-Host "[ADD ASSIGN] OK" -ForegroundColor Green + return @{ ok = $true; appId = $AppId; intent = $intent; target = $target } +} + +function Remove-AppAssignmentEndpoint { + param( + [string]$AppId, + [string]$GroupId, + $Query + ) + $err = Test-Connected + if ($err) { return $err } + if ([string]::IsNullOrWhiteSpace($AppId) -or [string]::IsNullOrWhiteSpace($GroupId)) { + return @{ __status = 400; error = "AppId und GroupId erforderlich" } + } + + $intent = $null + if ($Query -and $Query.type) { + $t = ([string]$Query.type).ToLower() + if ($t -in @('available','required')) { $intent = $t } + } + + Write-Host "[DELETE ASSIGN] App=$AppId Group=$GroupId Intent=$(if ($intent) { $intent } else { '(alle)' })" -ForegroundColor Yellow + try { + $deleted = Remove-GraphAppAssignmentByGroup -AppId $AppId -GroupId $GroupId -Intent $intent + } catch { + $details = Get-GraphErrorFriendly -ErrorRecord $_ + Write-Host "[DELETE ASSIGN] FAIL [$($details.Code)] $($details.Friendly)" -ForegroundColor Red + $status = if ($details.Code -like '*403*') { 403 } elseif ($details.Code -like '*404*') { 404 } else { 500 } + return @{ __status = $status; error = $details.Friendly; code = $details.Code } + } + + if (-not $deleted -or $deleted.Count -eq 0) { + Write-Host "[DELETE ASSIGN] Keine passende Zuweisung gefunden" -ForegroundColor DarkYellow + return @{ __status = 404; error = "Keine passende Zuweisung gefunden" } + } + + # Cache aktualisieren: zuweisungs-Eintrag aus der App entfernen + if ($script:State.Apps -and $script:State.Apps.Count -gt 0) { + foreach ($app in $script:State.Apps) { + if ($app.AppId -ne $AppId) { continue } + if ($intent -in @($null,'available') -and $app.AvailableGroups) { + $app.AvailableGroups = @($app.AvailableGroups | Where-Object { $_.GroupId -ne $GroupId }) + $app.AvailableCount = $app.AvailableGroups.Count + } + if ($intent -in @($null,'required') -and $app.RequiredGroups) { + $app.RequiredGroups = @($app.RequiredGroups | Where-Object { $_.GroupId -ne $GroupId }) + $app.RequiredCount = $app.RequiredGroups.Count + } + } + } + Write-Host "[DELETE ASSIGN] OK ($($deleted.Count) entfernt)" -ForegroundColor Green + return @{ ok = $true; appId = $AppId; groupId = $GroupId; removed = $deleted.Count } +} + +# ============================================================ +# Apply Assignments +# ============================================================ + +function Invoke-ApplyEndpoint { + param($Body) + $err = Test-Connected + if ($err) { return $err } + + # Pre-Flight: Token-Check + $ctx = $null + try { $ctx = Get-MgContext } catch {} + if (-not $ctx -or -not $ctx.Account) { + Write-Host "[APPLY] Get-MgContext leer — Token verloren!" -ForegroundColor Red + $script:State.Connected = $false + return @{ __status = 401; error = "Microsoft-Graph-Token verloren. Bitte neu anmelden." } + } + Write-Host "[APPLY] Pre-Flight OK — Account=$($ctx.Account)" -ForegroundColor DarkGray + + # Bevorzugt: flache Ops-Liste mit pro-Item-Empfaenger. + # Backwards-compat: alte targets/assignments-Struktur wird zur Ops-Liste expandiert. + $ops = @() + if ($Body.ops) { + $ops = @($Body.ops) + } elseif ($Body.targets -and $Body.assignments) { + foreach ($t in @($Body.targets)) { + foreach ($a in @($Body.assignments)) { + $ops += @{ + targetId = $t.id + targetName = $t.displayName + targetType = $t.type + appId = $a.appId + appName = $a.appName + groupId = $a.groupId + groupName = $a.groupName + type = $a.type + } + } + } + } + + if ($ops.Count -eq 0) { return @{ __status = 400; error = "Keine Vorgaenge angegeben" } } + + $isUserMode = ($ops | Where-Object { $_.targetType -eq 'user' }).Count -gt 0 + $total = $ops.Count + $success = 0; $errors = 0; $skipped = 0 + $log = @() + $detailedResults = @() + + Write-Host "[APPLY] Body geparst: ops.Count=$($ops.Count) (deptOps=$(@($ops | Where-Object { $_.targetType -ne 'user' }).Count) userOps=$(@($ops | Where-Object { $_.targetType -eq 'user' }).Count))" -ForegroundColor DarkGray + Write-Host "[APPLY] Starte $total Vorgaenge..." -ForegroundColor Cyan + $applyStart = Get-Date + + foreach ($op in $ops) { + $tId = [string]$op.targetId + $tName = [string]$op.targetName + $aGid = [string]$op.groupId + $aGname = [string]$op.groupName + $aApp = [string]$op.appName + $aType = [string]$op.type + + $entry = "$tName -> $aApp ($aGname - $aType)" + if ($aGid -in @("ALL_USERS","ALL_DEVICES")) { + $skipped++ + $log += "[SKIP] $entry (Native Target)" + $detailedResults += @{ target=$tName; app=$aApp; group=$aGname; type=$aType; status="Skipped"; message="Native target - nicht aenderbar" } + Write-Host " [SKIP] $entry" -ForegroundColor DarkYellow + continue + } + $opStart = Get-Date + try { + Write-Host " -> Add-GraphMember GroupId=$aGid DirectoryObjectId=$tId" -ForegroundColor DarkGray + Add-GraphMember -GroupId $aGid -DirectoryObjectId $tId + $opMs = [int]((Get-Date) - $opStart).TotalMilliseconds + $success++ + $log += "[OK] $entry" + $detailedResults += @{ target=$tName; app=$aApp; group=$aGname; type=$aType; status="Success"; message="Hinzugefuegt" } + Write-Host " [OK] $entry (${opMs}ms)" -ForegroundColor Green + } catch { + $opMs = [int]((Get-Date) - $opStart).TotalMilliseconds + $details = Get-GraphErrorFriendly -ErrorRecord $_ + if ($details.IsWarning) { + $success++ + $log += "[OK*] $entry (bereits Mitglied)" + $detailedResults += @{ target=$tName; app=$aApp; group=$aGname; type=$aType; status="AlreadyMember"; message=$details.Friendly } + Write-Host " [OK*] $entry (bereits Mitglied, ${opMs}ms)" -ForegroundColor DarkGreen + } else { + $errors++ + $log += "[FAIL] $entry [$($details.Code)] $($details.Friendly)" + $detailedResults += @{ target=$tName; app=$aApp; group=$aGname; type=$aType; status="Error"; code=$details.Code; message=$details.Friendly } + Write-Host " [FAIL] $entry [$($details.Code)] $($details.Friendly) (${opMs}ms)" -ForegroundColor Red + Write-Host " Vollstaendig: $($details.Full)" -ForegroundColor DarkRed + } + } + } + + # Targets/Assignments fuer den HTML-Report rekonstruieren + $targets = @{} + $assignments = @{} + foreach ($op in $ops) { + $targets[$op.targetId] = @{ id=$op.targetId; displayName=$op.targetName; type=$op.targetType } + $aKey = "$($op.appId)|$($op.groupId)|$($op.type)" + $assignments[$aKey] = @{ appId=$op.appId; appName=$op.appName; groupId=$op.groupId; groupName=$op.groupName; type=$op.type } + } + $targets = @($targets.Values) + $assignments = @($assignments.Values) + + $applyMs = [int]((Get-Date) - $applyStart).TotalMilliseconds + Write-Host "[APPLY] Fertig in ${applyMs}ms — OK=$success Skip=$skipped Err=$errors" -ForegroundColor Cyan + + # Report VOR Response generieren + $reportFile = $null + try { + $reportFile = New-HtmlReport -Targets $targets -Assignments $assignments -IsUserMode $isUserMode -Success $success -Errors $errors -Skipped $skipped -Total $total -Log $log -Details $detailedResults + Write-Host "[APPLY] HTML-Report: $reportFile" -ForegroundColor DarkGray + } catch { + Write-Host "[APPLY] HTML-Report-Erstellung fehlgeschlagen: $($_.Exception.Message)" -ForegroundColor Red + } + + # Cache invalidieren - Membership stimmt nicht mehr + $script:State.GroupMembers = @{} + + $reportUrl = if ($reportFile) { "/reports/" + (Split-Path $reportFile -Leaf) } else { "" } + $resp = @{ + success = [int]$success + errors = [int]$errors + skipped = [int]$skipped + total = [int]$total + reportUrl = [string]$reportUrl + details = $detailedResults + build = [string]$script:BuildStamp + } + Write-Host "[APPLY] === Response: success=$success errors=$errors skipped=$skipped total=$total reportUrl='$reportUrl' details=$($detailedResults.Count) build=$script:BuildStamp" -ForegroundColor Yellow + return $resp +} + +function New-HtmlReport { + param($Targets, $Assignments, $IsUserMode, $Success, $Errors, $Skipped, $Total, $Log, $Details) + + Add-Type -AssemblyName System.Web + function _enc { param($s) if ($null -eq $s) { return "" } return [System.Web.HttpUtility]::HtmlEncode([string]$s) } + + $ts = Get-Date -Format "yyyy-MM-dd_HH-mm-ss" + $tsHuman = Get-Date -Format "dd.MM.yyyy HH:mm:ss" + $name = "report-$ts.html" + $path = Join-Path $script:Config.ReportDir $name + $user = $env:USERNAME + $machine = $env:COMPUTERNAME + $tenant = if ($script:State.TenantId) { $script:State.TenantId } else { "" } + $account = if ($script:State.Account) { $script:State.Account } else { "" } + + # Erfolgsquote — Skipped zaehlen wir neutral, nicht als Fehler + $effective = [Math]::Max(1, ($Success + $Errors)) + $rate = [int](($Success / $effective) * 100) + $rateStatus = if ($Errors -eq 0 -and $Success -gt 0) { "ok" } elseif ($Errors -gt 0 -and $Success -gt 0) { "warn" } elseif ($Errors -gt 0) { "err" } else { "muted" } + + # Empfaenger-Mix + $targetGroups = @($Targets | Where-Object { $_.type -ne 'user' }) + $targetUsers = @($Targets | Where-Object { $_.type -eq 'user' }) + $grpSuffix = if ($targetGroups.Count -eq 1) { "" } else { "n" } + $assignSuffix = if ($Assignments.Count -eq 1) { "" } else { "en" } + + # Status-Mapping fuer Detail-Zeilen + $statusMeta = @{ + "Success" = @{ cls = "ok"; icon = "✓"; label = "Erfolgreich" } + "AlreadyMember" = @{ cls = "ok"; icon = "✓"; label = "Bereits Mitglied" } + "Skipped" = @{ cls = "skip"; icon = "–"; label = "Uebersprungen" } + "Error" = @{ cls = "err"; icon = "!"; label = "Fehler" } + } + + # Detail-Zeilen pro App gruppieren — ergibt eine kompaktere Darstellung + $byApp = @{} + foreach ($d in $Details) { + $key = [string]$d.app + if (-not $byApp.ContainsKey($key)) { $byApp[$key] = @() } + $byApp[$key] += $d + } + + $appBlocksHtml = "" + foreach ($appName in ($byApp.Keys | Sort-Object)) { + $rows = @($byApp[$appName]) + $okCount = @($rows | Where-Object { $_.status -in @('Success','AlreadyMember') }).Count + $skipCount = @($rows | Where-Object { $_.status -eq 'Skipped' }).Count + $errCount = @($rows | Where-Object { $_.status -eq 'Error' }).Count + + # Pro App: Gruppen-Spalte + Empfaenger-Zeilen + $rowsHtml = "" + foreach ($d in $rows) { + $st = $statusMeta[[string]$d.status] + if (-not $st) { $st = @{ cls = ""; icon = ""; label = [string]$d.status } } + $msg = if ($d.message) { _enc $d.message } else { "" } + $errCode = if ($d.code) { " $(_enc $d.code)" } else { "" } + $rowsHtml += "" + + "$($st.icon) $($st.label)" + + "$(_enc $d.target)" + + "$(_enc $d.group)" + + "$(_enc $d.type)" + + "$msg$errCode" + + "" + } + $appHeadStats = "" + if ($okCount -gt 0) { $appHeadStats += "$okCount OK" } + if ($skipCount -gt 0) { $appHeadStats += "$skipCount Skip" } + if ($errCount -gt 0) { $appHeadStats += "$errCount Fehler" } + $openAttr = if ($errCount -gt 0) { " open" } else { "" } + $appBlocksHtml += "

" + + "$(_enc $appName)" + + "$appHeadStats" + + "" + + "
" + + "" + + "" + + "" + + "$rowsHtml
StatusEmpfaengerIntune-GruppeTypMeldung
" + } + if (-not $appBlocksHtml) { + $appBlocksHtml = "
Keine Detail-Eintraege.
" + } + + # Empfaenger-Liste + $recipChipsHtml = "" + foreach ($t in $Targets) { + $isUser = ($t.type -eq 'user') + $cls = if ($isUser) { "chip chip-user" } else { "chip chip-group" } + $modeLbl = if ($isUser) { "User" } else { "Gruppe" } + $entraUrl = if ($isUser) { + "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$([uri]::EscapeDataString([string]$t.id))" + } else { + "https://intune.microsoft.com/#view/Microsoft_AAD_IAM/GroupDetailsMenuBlade/~/Overview/groupId/$([uri]::EscapeDataString([string]$t.id))/menuId/" + } + $recipChipsHtml += "
" + + "$modeLbl" + + "$(_enc $t.displayName)" + } + + # Zuweisungs-Liste + $assignChipsHtml = "" + foreach ($a in $Assignments) { + $intent = if ($a.type -eq 'Required') { 'req' } else { 'avail' } + $intentLbl = $a.type + $intuneUrl = "https://intune.microsoft.com/#view/Microsoft_Intune_Apps/SettingsMenu/~/2/appId/$([uri]::EscapeDataString([string]$a.appId))" + $assignChipsHtml += "
" + + "$(_enc $a.appName)" + + "
" + + "$(_enc $intentLbl)" + + "$(_enc $a.groupName)" + + "
" + } + if (-not $assignChipsHtml) { $assignChipsHtml = "
Keine Zuweisungen.
" } + + $logHtml = ($Log | ForEach-Object { + $line = _enc $_ + if ($line -like "`[OK`]*") { "$line" } + elseif ($line -like "`[OK*`]*") { "$line" } + elseif ($line -like "`[FAIL`]*") { "$line" } + elseif ($line -like "`[SKIP`]*") { "$line" } + else { $line } + }) -join "`n" + if (-not $logHtml) { $logHtml = "(kein Log)" } + + # Header-Status-Banner + $bannerCls = if ($Errors -gt 0) { "banner-err" } elseif ($Skipped -gt 0 -and $Success -gt 0) { "banner-warn" } else { "banner-ok" } + $bannerTxt = if ($Errors -gt 0) { + "$Errors Fehler aufgetreten - Details unten" + } elseif ($Errors -eq 0 -and $Skipped -gt 0 -and $Success -gt 0) { + "Alle Vorgaenge ohne Fehler. $Skipped uebersprungen." + } elseif ($Errors -eq 0 -and $Success -gt 0) { + "Alle $Success Vorgaenge erfolgreich" + } else { + "Keine ausgefuehrten Vorgaenge" + } + + $html = @" + + + + + +Intune Zuweisungs-Report - $tsHuman + + + + + +
+ +
+
+
+ +
+
Intune Zuweisungs-Report
+
$tsHuman · ausgefuehrt von $(_enc $user)
+
+
+
+"@ + if ($account) { $html += "Account $(_enc $account)" } + if ($tenant) { $html += "Tenant $(_enc $tenant)" } + $html += "Host $(_enc $machine)" + $html += @" +
+
+ +
+ +
+
$Total
Vorgaenge
+
$Success
Erfolgreich
+
$Skipped
Uebersprungen
+
$Errors
Fehler
+
$rate%
Erfolgsquote
$Success von $effective effektiv
+
+ +
+
+
+
Empfaenger
+
$($targetGroups.Count) Gruppe$grpSuffix · $($targetUsers.Count) Benutzer
+
+
+
$recipChipsHtml
+
+ +
+
+
+
Zuweisungen
+
$($Assignments.Count) eindeutige App-Gruppen-Zuweisung$assignSuffix
+
+
+
$assignChipsHtml
+
+ +
+
+
+
Detail-Ergebnisse
+
Gruppiert nach App · Bloecke mit Fehlern sind aufgeklappt
+
+
+ $appBlocksHtml +
+ +
+ Debug-Log ($($Log.Count) Zeilen) +
$logHtml
+
+ +
+ Intune App-Zuweisungs-Manager · Web Edition v$(_enc $script:ToolVersion) · Build $(_enc $script:BuildStamp) +
+
+ + +"@ + [IO.File]::WriteAllText($path, $html, [System.Text.Encoding]::UTF8) + return $path +} diff --git a/Intune/Intune-App-Manager-Web/src/Graph.ps1 b/Intune/Intune-App-Manager-Web/src/Graph.ps1 new file mode 100644 index 0000000..e72d293 --- /dev/null +++ b/Intune/Intune-App-Manager-Web/src/Graph.ps1 @@ -0,0 +1,923 @@ +# Microsoft Graph API Helpers +# Verwendet ausschliesslich Microsoft.Graph.Authentication + Invoke-MgGraphRequest, +# um Versionskonflikte zu vermeiden. + +function Initialize-GraphModule { + if (Get-Module Microsoft.Graph.Authentication) { return $true } + try { + Import-Module Microsoft.Graph.Authentication -ErrorAction Stop -MinimumVersion 2.0.0 + $loaded = Get-Module Microsoft.Graph.Authentication + Write-Host "[GRAPH] Microsoft.Graph.Authentication v$($loaded.Version) geladen" -ForegroundColor DarkGray + return $true + } catch { + $available = @(Get-Module Microsoft.Graph.Authentication -ListAvailable) + if ($available.Count -eq 0) { + throw "Microsoft.Graph.Authentication ist nicht installiert. Bitte ausfuehren: Install-Module Microsoft.Graph.Authentication -Scope CurrentUser -Force" + } + $maxVer = ($available | Sort-Object Version -Descending | Select-Object -First 1).Version + if ($maxVer -lt [version]"2.0.0") { + throw "Microsoft.Graph.Authentication v$maxVer ist zu alt. Mindestens v2.0 noetig. Bitte: Update-Module Microsoft.Graph.Authentication -Scope CurrentUser -Force" + } + throw "Microsoft.Graph.Authentication konnte nicht geladen werden: $($_.Exception.Message)" + } +} + +function Invoke-MgGraphRequestRetry { + # Duenner Wrapper um Invoke-MgGraphRequest mit Retry-Backoff fuer 429/503. + # Microsoft-Best-Practice: Throttling (429) immer abfangen und mit + # Retry-After-Verzoegerung erneut versuchen. 503 analog (Service busy). + # Andere Fehler werden unveraendert durchgereicht (kein Verschlucken). + param( + [Parameter(Mandatory=$true)][string]$Uri, + [string]$Method = 'GET', + $Body, + [string]$ContentType, + [hashtable]$Headers, + [int]$MaxRetries = 3 + ) + $attempt = 0 + while ($true) { + try { + $params = @{ Uri = $Uri; Method = $Method } + if ($PSBoundParameters.ContainsKey('Body') -and $null -ne $Body) { $params.Body = $Body } + if ($ContentType) { $params.ContentType = $ContentType } + if ($Headers) { $params.Headers = $Headers } + return Invoke-MgGraphRequest @params + } catch { + $msg = $_.Exception.Message + $is429 = $msg -match '\b429\b|Too many requests|throttl' + $is503 = $msg -match '\b503\b|Service Unavailable' + if (($is429 -or $is503) -and $attempt -lt $MaxRetries) { + $attempt++ + # Retry-After aus dem Fehler ziehen wenn vorhanden, sonst Backoff 2/5/10s. + $wait = $null + if ($msg -match 'Retry-After[:\s]+(\d+)') { $wait = [int]$matches[1] } + if (-not $wait -or $wait -le 0) { $wait = @(2, 5, 10)[[Math]::Min($attempt - 1, 2)] } + $code = if ($is429) { '429' } else { '503' } + Write-Host " [THROTTLE] $code -> Retry $attempt/$MaxRetries in ${wait}s" -ForegroundColor DarkYellow + Start-Sleep -Seconds $wait + continue + } + throw + } + } +} + +function Get-GraphPaged { + param([Parameter(Mandatory=$true)][string]$Uri) + $results = @() + $next = $Uri + do { + $response = Invoke-MgGraphRequestRetry -Uri $next -Method GET + if ($response.value) { $results += $response.value } + $next = $response.'@odata.nextLink' + } while ($next) + return $results +} + +function Get-GraphGroupByFilter { + param( + [string]$Filter, + [string[]]$Property = @("id","displayName"), + [switch]$ExpandMembers + ) + $select = "`$select=" + ($Property -join ",").ToLower() + $uri = "https://graph.microsoft.com/v1.0/groups?$select" + if ($Filter) { $uri += "&`$filter=$([uri]::EscapeDataString($Filter))" } + # $expand=members($select=id) liefert bis zu 20 Mitglieder-IDs pro Gruppe — + # genug, um "leer ja/nein" zuverlaessig zu erkennen (Graph cap ist 20). + if ($ExpandMembers) { $uri += "&`$expand=members(`$select=id)" } + return Get-GraphPaged -Uri $uri +} + +function Get-GraphGroupById { + param([string]$Id, [string[]]$Property = @("id","displayName")) + $select = "`$select=" + ($Property -join ",").ToLower() + return Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/v1.0/groups/$Id`?$select" -Method GET +} + +function Get-GraphGroupMembers { + param([string]$GroupId) + return Get-GraphPaged -Uri "https://graph.microsoft.com/v1.0/groups/$GroupId/members?`$select=id,displayName,userPrincipalName" +} + +function Get-GraphGroupMembersTransitive { + param([string]$GroupId) + return Get-GraphPaged -Uri "https://graph.microsoft.com/v1.0/groups/$GroupId/transitiveMembers?`$select=id,displayName,userPrincipalName" +} + +function Search-GraphUser { + param([string]$SearchTerm) + $term = $SearchTerm -replace "'", "''" + $select = "id,displayName,userPrincipalName,mail,department" + + # Welche Felder durchsucht werden ist konfigurierbar (Settings). + $allowed = @('displayName','userPrincipalName','mail','department') + $cfgFields = @($script:Settings.userSearch.fields | Where-Object { $_ -in $allowed }) + if ($cfgFields.Count -eq 0) { $cfgFields = @('displayName','userPrincipalName','mail') } + + # 1) startswith — schnell, deckt Praefix-Tippen ab (90%+ aller Suchen) + try { + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $parts = @($cfgFields | ForEach-Object { "startswith($_,'$term')" }) + $filter = $parts -join " or " + $uri = "https://graph.microsoft.com/v1.0/users?`$select=$select&`$filter=$([uri]::EscapeDataString($filter))&`$top=25" + $resp = Invoke-MgGraphRequest -Uri $uri -Method GET + $items = @() + if ($resp -and $resp.value) { $items = @($resp.value) } + $sw.Stop() + Write-Host " -> User-Search '$SearchTerm' [$($cfgFields -join ',')]: startswith=$($items.Count) Treffer in $($sw.ElapsedMilliseconds)ms" -ForegroundColor DarkGray + if ($items.Count -gt 0) { return $items } + } catch { + Write-Host " -> startswith fehlgeschlagen: $($_.Exception.Message)" -ForegroundColor DarkYellow + } + + # 2) Fallback: $search (substring) nur wenn startswith leer war + try { + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $searchTerm = $SearchTerm -replace '"', '' + $parts = @($cfgFields | ForEach-Object { "`"$_`:$searchTerm`"" }) + $searchExpr = $parts -join " OR " + $uri = "https://graph.microsoft.com/v1.0/users?`$select=$select&`$top=25&`$search=$([uri]::EscapeDataString($searchExpr))" + $resp = Invoke-MgGraphRequest -Uri $uri -Method GET -Headers @{ ConsistencyLevel = "eventual" } + $items = @() + if ($resp -and $resp.value) { $items = @($resp.value) } + $sw.Stop() + Write-Host " -> User-Search '$SearchTerm': `$search-Fallback=$($items.Count) Treffer in $($sw.ElapsedMilliseconds)ms" -ForegroundColor DarkGray + return $items + } catch { + Write-Host " -> `$search-Fallback fehlgeschlagen: $($_.Exception.Message)" -ForegroundColor DarkYellow + return @() + } +} + +function Resolve-GroupNamesBulk { + # Loest viele Gruppen-IDs in einem Schwung via directoryObjects/getByIds auf + # und schreibt {Id => DisplayName} in die uebergebene Hashtable. + param( + [Parameter(Mandatory=$true)][object[]]$Ids, + [Parameter(Mandatory=$true)][hashtable]$Lookup + ) + if (-not $Ids -or $Ids.Count -eq 0) { return } + + # WICHTIG: zu plain strings casten — sonst wickelt ConvertTo-Json (intern in + # Invoke-MgGraphRequest) PSObject-gewrappte Strings in .Chars und crasht mit + # "Self referencing loop". Genau das hat den Batch unbrauchbar gemacht. + $cleanIds = [string[]]@($Ids | ForEach-Object { [string]$_ } | Where-Object { $_ }) + + $batchSize = 800 # API-Limit ist 1000, Puffer fuer Safety + for ($i = 0; $i -lt $cleanIds.Count; $i += $batchSize) { + $end = [Math]::Min($i + $batchSize - 1, $cleanIds.Count - 1) + $chunk = [string[]]$cleanIds[$i..$end] + + try { + # JSON manuell serialisieren — vermeidet jeden Wrapper-Spass + $bodyJson = @{ + ids = $chunk + types = @("group") + } | ConvertTo-Json -Depth 3 -Compress + + $resp = Invoke-MgGraphRequest ` + -Uri "https://graph.microsoft.com/v1.0/directoryObjects/getByIds" ` + -Method POST ` + -Body $bodyJson ` + -ContentType "application/json" + + if ($resp.value) { + foreach ($obj in $resp.value) { + if ($obj.id -and $obj.displayName) { + $Lookup[[string]$obj.id] = [string]$obj.displayName + } + } + } + } catch { + Write-Host " -> getByIds-Batch fehlgeschlagen ($($chunk.Count) IDs): $($_.Exception.Message)" -ForegroundColor DarkYellow + # Fallback nur fuer den fehlgeschlagenen Batch — und auch nur wenn die ID + # noch nicht gesetzt wurde + foreach ($id in $chunk) { + if ($Lookup.ContainsKey($id)) { continue } + try { + $g = Get-GraphGroupById -Id $id -Property @("id","displayName") + if ($g.displayName) { $Lookup[$id] = [string]$g.displayName } + } catch { + $Lookup[$id] = "($id)" + } + } + } + } +} + +function New-GraphSecurityGroup { + param([string]$DisplayName, [string]$MailNickname) + $body = @{ + displayName = $DisplayName + mailEnabled = $false + securityEnabled = $true + mailNickname = $MailNickname + } + return Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/v1.0/groups" -Method POST -Body $body +} + +function Add-GraphMember { + param([string]$GroupId, [string]$DirectoryObjectId) + # JSON manuell bauen — vermeidet PSObject-Wrapper-Probleme bei der Serialisierung + $bodyJson = '{"@odata.id":"https://graph.microsoft.com/v1.0/directoryObjects/' + $DirectoryObjectId + '"}' + # Out-Null suppressed das $null das Invoke-MgGraphRequest zurueckgibt — sonst + # landet es in der Pipeline des Aufrufers und korrumpiert die Response. + # Ueber den Retry-Wrapper: Member-Adds sind die haeufigste Bulk-Write-Operation + # (Session-Apply mit vielen Empfaengern) und damit am throttle-anfaelligsten. + $null = Invoke-MgGraphRequestRetry ` + -Uri "https://graph.microsoft.com/v1.0/groups/$GroupId/members/`$ref" ` + -Method POST ` + -Body $bodyJson ` + -ContentType "application/json" +} + +function Get-GraphMobileApps { + param([switch]$WithAssignments) + # WICHTIG: NUR assignments expandieren. categories zusaetzlich auf der + # Vollliste zu expandieren liess Graph hart drosseln (429 -> "Too many + # retries"). Kategorien werden separat + throttle-sicher per $batch + # nachgeladen (Get-GraphMobileAppCategoriesBatch). + $expand = if ($WithAssignments) { "?`$expand=assignments" } else { "" } + $uri = "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps$expand" + return Get-GraphPaged -Uri $uri +} + +function Get-GraphMobileAppCategoriesBatch { + # Liefert eine Map appId -> @(KategorieNamen) fuer die uebergebenen App-IDs + # ueber Microsoft Graph $batch (20 Sub-Requests pro Batch — API-Limit). + # Throttle-sicher: schlaegt ein Batch fehl, werden dessen Apps einfach + # ohne Kategorien gefuehrt — die App-Liste funktioniert unabhaengig davon. + param([string[]]$AppIds) + $map = @{} + if (-not $AppIds -or $AppIds.Count -eq 0) { return $map } + + $chunkSize = 20 + for ($i = 0; $i -lt $AppIds.Count; $i += $chunkSize) { + $end = [Math]::Min($i + $chunkSize - 1, $AppIds.Count - 1) + $slice = $AppIds[$i..$end] + $requests = @() + foreach ($id in $slice) { + $requests += @{ id = $id; method = 'GET'; url = "/deviceAppManagement/mobileApps/$id/categories" } + } + $body = @{ requests = $requests } | ConvertTo-Json -Depth 5 -Compress + try { + $resp = Invoke-MgGraphRequestRetry -Uri 'https://graph.microsoft.com/beta/$batch' -Method POST -Body $body -ContentType 'application/json' + foreach ($r in @($resp.responses)) { + $rid = [string]$r.id + $st = [int]$r.status + if ($st -eq 200 -and $r.body -and $r.body.value) { + $names = @() + foreach ($cat in @($r.body.value)) { + $n = $null + try { if ($cat.displayName) { $n = [string]$cat.displayName } } catch {} + if (-not $n -and $cat -is [System.Collections.IDictionary] -and $cat['displayName']) { $n = [string]$cat['displayName'] } + if ($n) { $names += $n } + } + $map[$rid] = $names + } + } + } catch { + Write-Host " [CATS-BATCH] Batch $i-$end fehlgeschlagen (uebersprungen): $($_.Exception.Message)" -ForegroundColor DarkYellow + } + } + return $map +} + +function Get-GraphMobileAppDetails { + param([Parameter(Mandatory=$true)][string]$AppId) + # Liefert das vollstaendige App-Objekt inkl. typspezifischer Felder + # (Win32: installCommandLine etc., MSI: productCode, Store: licenseType, ...). + return Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId" -Method GET +} + +function Add-GraphAppAssignment { + param( + [string]$AppId, + [string]$Intent, # "available" | "required" + [string]$GroupId # GUID oder "ALL_USERS" / "ALL_DEVICES" + ) + $target = switch ($GroupId) { + "ALL_USERS" { @{ "@odata.type" = "#microsoft.graph.allLicensedUsersAssignmentTarget" } } + "ALL_DEVICES" { @{ "@odata.type" = "#microsoft.graph.allDevicesAssignmentTarget" } } + default { @{ "@odata.type" = "#microsoft.graph.groupAssignmentTarget"; "groupId" = $GroupId } } + } + $body = @{ + mobileAppAssignments = @(@{ + "@odata.type" = "#microsoft.graph.mobileAppAssignment" + intent = $Intent + target = $target + settings = $null + }) + } + Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId/assign" -Method POST -Body $body +} + +function Get-GraphMobileAppAssignments { + param([Parameter(Mandatory=$true)][string]$AppId) + $resp = Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId/assignments" -Method GET + if ($resp.value) { return @($resp.value) } + return @() +} + +function Remove-GraphAppAssignmentByGroup { + # Loescht jede Zuweisung der App, deren Target zur uebergebenen Group passt. + # Optional kann ein Intent gesetzt werden, dann werden nur Zuweisungen mit + # genau diesem Intent (required/available) entfernt. + param( + [Parameter(Mandatory=$true)][string]$AppId, + [Parameter(Mandatory=$true)][string]$GroupId, + [string]$Intent + ) + $assignments = Get-GraphMobileAppAssignments -AppId $AppId + $deleted = @() + foreach ($a in $assignments) { + $tgt = $a.target + if (-not $tgt) { continue } + $tgtType = [string]$tgt.'@odata.type' + + $match = $false + switch ($GroupId) { + "ALL_USERS" { if ($tgtType -eq '#microsoft.graph.allLicensedUsersAssignmentTarget') { $match = $true } } + "ALL_DEVICES" { if ($tgtType -eq '#microsoft.graph.allDevicesAssignmentTarget') { $match = $true } } + default { + if ($tgtType -eq '#microsoft.graph.groupAssignmentTarget' -and [string]$tgt.groupId -eq $GroupId) { $match = $true } + } + } + if (-not $match) { continue } + if ($Intent -and ([string]$a.intent) -ne $Intent) { continue } + + $null = Invoke-MgGraphRequest ` + -Uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId/assignments/$($a.id)" ` + -Method DELETE + $deleted += [pscustomobject]@{ + AssignmentId = [string]$a.id + Intent = [string]$a.intent + TargetType = $tgtType + } + } + return $deleted +} + +function Update-GraphMobileApp { + # PATCH auf eine MobileApp. Wichtig: '@odata.type' MUSS im Body sein, sonst + # gibt Graph "ResourceNotSupported" / 400 zurueck (polymorpher Typ). + # Versucht beta, faellt bei 400/404/405 auf v1.0 zurueck. + param( + [Parameter(Mandatory=$true)][string]$AppId, + [Parameter(Mandatory=$true)][string]$AppTypeRaw, # z.B. '#microsoft.graph.win32LobApp' + [Parameter(Mandatory=$true)][hashtable]$Patch # z.B. @{ displayName = 'neuer Name' } + ) + + $body = [ordered]@{} + $body['@odata.type'] = $AppTypeRaw + foreach ($k in $Patch.Keys) { $body[$k] = $Patch[$k] } + $json = $body | ConvertTo-Json -Depth 5 -Compress + + $endpoints = @( + "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId", + "https://graph.microsoft.com/v1.0/deviceAppManagement/mobileApps/$AppId" + ) + $lastErr = $null + foreach ($uri in $endpoints) { + try { + $null = Invoke-MgGraphRequest -Uri $uri -Method PATCH -Body $json -ContentType "application/json" + return + } catch { + $lastErr = $_ + $msg = "$($_.Exception.Message)" + try { $msg += " " + $_.ErrorDetails.Message } catch {} + if ($msg -match '404|400|405|MethodNotAllowed|NotSupported') { continue } + throw + } + } + if ($lastErr) { + $body = $null + try { $body = $lastErr.ErrorDetails.Message } catch {} + $detail = if ($body) { " | Graph-Response: $body" } else { "" } + throw [System.Exception]::new("PATCH fehlgeschlagen: $($lastErr.Exception.Message)$detail") + } +} + +# ============================================================ +# Content-Update: neue Setup-Datei in eine native App hochladen +# (Phase 1: .intunewin / win32LobApp — vorverschluesselt) +# ============================================================ + +function Read-IntuneWinPackage { + # Entpackt eine .intunewin (ZIP) und liest die bereits verschluesselte + # Innen-Datei + die EncryptionInfo aus Metadata/Detection.xml. Es wird + # NICHT neu verschluesselt — IntuneWinAppUtil hat das schon getan. + param([Parameter(Mandatory=$true)][string]$Path) + + Add-Type -AssemblyName System.IO.Compression.FileSystem -ErrorAction SilentlyContinue + $archive = [System.IO.Compression.ZipFile]::OpenRead($Path) + try { + $detEntry = $archive.Entries | Where-Object { $_.FullName -match 'IntuneWinPackage/Metadata/Detection\.xml$' } | Select-Object -First 1 + if (-not $detEntry) { throw "Detection.xml nicht im .intunewin gefunden — ist die Datei wirklich ein IntuneWinAppUtil-Paket?" } + + # Detection.xml lesen + $sr = New-Object System.IO.StreamReader($detEntry.Open()) + $xmlText = $sr.ReadToEnd(); $sr.Close() + [xml]$xml = $xmlText + $info = $xml.ApplicationInfo + $enc = $info.EncryptionInfo + if (-not $enc) { throw "EncryptionInfo fehlt in Detection.xml" } + + $fileName = [string]$info.FileName # innerer Dateiname (z.B. setup.intunewin) + $unencSize = [int64]$info.UnencryptedContentSize + + # Innere, bereits verschluesselte Datei extrahieren + $contentEntry = $archive.Entries | Where-Object { $_.FullName -match "IntuneWinPackage/Contents/.+" } | Select-Object -First 1 + if (-not $contentEntry) { throw "Verschluesselte Innen-Datei (Contents/) nicht gefunden" } + $ms = New-Object System.IO.MemoryStream + $cs = $contentEntry.Open() + $cs.CopyTo($ms); $cs.Close() + $encryptedBytes = $ms.ToArray(); $ms.Dispose() + + return @{ + EncryptedBytes = $encryptedBytes + Size = $unencSize + SizeEncrypted = [int64]$encryptedBytes.Length + FileName = $fileName + EncryptionInfo = @{ + '@odata.type' = '#microsoft.graph.fileEncryptionInfo' + encryptionKey = [string]$enc.EncryptionKey + macKey = [string]$enc.MacKey + initializationVector = [string]$enc.InitializationVector + mac = [string]$enc.Mac + profileIdentifier = [string]$enc.ProfileIdentifier + fileDigest = [string]$enc.FileDigest + fileDigestAlgorithm = [string]$enc.FileDigestAlgorithm + } + } + } finally { + $archive.Dispose() + } +} + +function New-GraphAppContentVersion { + # Schritt 1: neue contentVersion anlegen. GraphType z.B. 'win32LobApp'. + param([string]$AppId, [string]$GraphType) + $uri = "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId/$GraphType/contentVersions" + $resp = Invoke-MgGraphRequestRetry -Uri $uri -Method POST -Body '{}' -ContentType 'application/json' + $cvId = if ($resp.id) { [string]$resp.id } else { [string]$resp.Id } + if (-not $cvId) { throw "contentVersion-Anlage lieferte keine id zurueck" } + return $cvId +} + +function New-GraphAppContentFile { + # Schritt 2: File-Eintrag in der contentVersion anlegen (mit Klartext-Size + + # verschluesselter Size). Liefert fileId. + param( + [string]$AppId, [string]$GraphType, [string]$CvId, + [string]$Name, [int64]$Size, [int64]$SizeEncrypted, $Manifest = $null + ) + $body = [ordered]@{ + '@odata.type' = '#microsoft.graph.mobileAppContentFile' + name = $Name + size = $Size + sizeEncrypted = $SizeEncrypted + isDependency = $false + } + if ($Manifest) { $body['manifest'] = $Manifest } # base64 (MSI/MSIX); win32 = weglassen + $json = $body | ConvertTo-Json -Depth 5 -Compress + $uri = "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId/$GraphType/contentVersions/$CvId/files" + $resp = Invoke-MgGraphRequestRetry -Uri $uri -Method POST -Body $json -ContentType 'application/json' + $fileId = if ($resp.id) { [string]$resp.id } else { [string]$resp.Id } + if (-not $fileId) { throw "File-Anlage lieferte keine id zurueck" } + return $fileId +} + +function Get-GraphAppContentFile { + param([string]$AppId, [string]$GraphType, [string]$CvId, [string]$FileId) + $uri = "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId/$GraphType/contentVersions/$CvId/files/$FileId" + return Invoke-MgGraphRequestRetry -Uri $uri -Method GET +} + +function Wait-GraphContentFileState { + # Schritt 3/6: pollt den File-Eintrag bis TargetState erreicht ist. + # Bricht bei *Failed-Zustaenden und Timeout ab. + param( + [string]$AppId, [string]$GraphType, [string]$CvId, [string]$FileId, + [string]$TargetState, [int]$TimeoutSec = 180 + ) + $deadline = (Get-Date).AddSeconds($TimeoutSec) + while ($true) { + $f = Get-GraphAppContentFile -AppId $AppId -GraphType $GraphType -CvId $CvId -FileId $FileId + $state = if ($f.uploadState) { [string]$f.uploadState } else { [string]$f.uploadstate } + if ($state -eq $TargetState) { return $f } + if ($state -match 'Failed') { throw "Upload-State '$state' (erwartet '$TargetState') — Graph hat den Schritt abgelehnt." } + if ((Get-Date) -gt $deadline) { throw "Timeout beim Warten auf '$TargetState' (letzter State: '$state')." } + Start-Sleep -Milliseconds 1500 + } +} + +function Send-GraphContentToAzureBlob { + # Schritt 4: verschluesselte Bytes als Block-Blob in die SAS-URL laden. + # Chunked (6 MB). WICHTIG: die Bytes werden als ISO-8859-1-String gesendet + # (1:1 Byte<->Zeichen) mit content-type 'text/plain; charset=iso-8859-1' — + # NICHT als rohes byte[]. Invoke-WebRequest verfaelscht in PS 5.1 binaere + # byte[]-Bodies (Bytes > 127), was korrupten Content nach Azure laedt. + # Schema 1:1 aus der MSEndpointMgr/IntuneWin32App-Referenz uebernommen. + param([Parameter(Mandatory=$true)][string]$SasUri, [Parameter(Mandatory=$true)][byte[]]$Bytes) + + $isoEncoding = [System.Text.Encoding]::GetEncoding("iso-8859-1") + $chunkSize = 6 * 1024 * 1024 + $total = $Bytes.Length + $blockIds = New-Object System.Collections.Generic.List[string] + $idx = 0 + for ($offset = 0; $offset -lt $total; $offset += $chunkSize) { + $len = [Math]::Min($chunkSize, $total - $offset) + $chunk = New-Object byte[] $len + [Array]::Copy($Bytes, $offset, $chunk, 0, $len) + # Block-ID: base64 einer 0-gepaddeten Nummer (gleiche Laenge fuer alle) + $blockId = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($idx.ToString('D6'))) + $blockIds.Add($blockId) + $encodedChunk = $isoEncoding.GetString($chunk) + $putUri = "$SasUri&comp=block&blockid=$([uri]::EscapeDataString($blockId))" + $headers = @{ 'x-ms-blob-type' = 'BlockBlob'; 'content-type' = 'text/plain; charset=iso-8859-1' } + Invoke-WebRequest -Uri $putUri -Method PUT -Headers $headers -Body $encodedChunk -UseBasicParsing | Out-Null + $idx++ + } + # Block-Liste committen (Invoke-RestMethod, content-type text/plain; charset=UTF-8) + $xml = '' + foreach ($b in $blockIds) { $xml += "$b" } + $xml += '' + $listUri = "$SasUri&comp=blocklist" + Invoke-RestMethod -Uri $listUri -Method PUT -Body $xml -Headers @{ 'content-type' = 'text/plain; charset=UTF-8' } | Out-Null +} + +function Invoke-GraphContentRenewUpload { + param([string]$AppId, [string]$GraphType, [string]$CvId, [string]$FileId) + $uri = "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId/$GraphType/contentVersions/$CvId/files/$FileId/renewUpload" + $null = Invoke-MgGraphRequestRetry -Uri $uri -Method POST +} + +function Invoke-GraphContentCommit { + # Schritt 5: commit mit fileEncryptionInfo. + param([string]$AppId, [string]$GraphType, [string]$CvId, [string]$FileId, [hashtable]$EncryptionInfo) + $body = @{ fileEncryptionInfo = $EncryptionInfo } | ConvertTo-Json -Depth 5 -Compress + $uri = "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId/$GraphType/contentVersions/$CvId/files/$FileId/commit" + $null = Invoke-MgGraphRequestRetry -Uri $uri -Method POST -Body $body -ContentType 'application/json' +} + +function Update-GraphAppContent { + # Orchestrator: laedt eine neue Setup-Datei hoch und aktiviert sie. + # Phase 1 unterstuetzt .intunewin (win32LobApp). $ProgressCb (scriptblock) + # optional fuer Schritt-Logging. Gibt das Ergebnis-Objekt zurueck. + param( + [Parameter(Mandatory=$true)][string]$AppId, + [Parameter(Mandatory=$true)][string]$GraphTypeRaw, # z.B. '#microsoft.graph.win32LobApp' + [Parameter(Mandatory=$true)][string]$FilePath, + [string]$DisplayVersion, + [scriptblock]$ProgressCb + ) + $report = { param($step) if ($ProgressCb) { & $ProgressCb $step } ; Write-Host " [CONTENT] $step" -ForegroundColor DarkCyan } + + $graphType = ($GraphTypeRaw -replace '^#microsoft\.graph\.', '') # win32LobApp + $odataCast = "graph.$graphType" + + # 1) Paket lesen (Phase 1: nur .intunewin) + & $report "Lese Paket" + $ext = [IO.Path]::GetExtension($FilePath).ToLower() + if ($ext -ne '.intunewin') { throw "Phase 1 unterstuetzt nur .intunewin. Datei: $ext" } + $pkg = Read-IntuneWinPackage -Path $FilePath + + # 2) contentVersion + file anlegen + & $report "Lege Content-Version an" + $cvId = New-GraphAppContentVersion -AppId $AppId -GraphType $odataCast + $fileId = New-GraphAppContentFile -AppId $AppId -GraphType $odataCast -CvId $cvId -Name $pkg.FileName -Size $pkg.Size -SizeEncrypted $pkg.SizeEncrypted + + # 3) auf SAS warten + & $report "Warte auf Azure-Speicher-URL" + $f = Wait-GraphContentFileState -AppId $AppId -GraphType $odataCast -CvId $cvId -FileId $fileId -TargetState 'azureStorageUriRequestSuccess' -TimeoutSec 120 + $sas = if ($f.azureStorageUri) { [string]$f.azureStorageUri } else { [string]$f.azurestorageuri } + if (-not $sas) { throw "Keine azureStorageUri erhalten" } + + # 4) Upload zu Azure Blob + & $report "Lade Datei hoch ($([int]($pkg.SizeEncrypted/1MB)) MB)" + Send-GraphContentToAzureBlob -SasUri $sas -Bytes $pkg.EncryptedBytes + + # 5) commit + & $report "Committe Datei" + Invoke-GraphContentCommit -AppId $AppId -GraphType $odataCast -CvId $cvId -FileId $fileId -EncryptionInfo $pkg.EncryptionInfo + + # 6) auf commit-Erfolg warten + & $report "Warte auf Commit-Bestaetigung" + $null = Wait-GraphContentFileState -AppId $AppId -GraphType $odataCast -CvId $cvId -FileId $fileId -TargetState 'commitFileSuccess' -TimeoutSec 180 + + # 7) App auf neue Version zeigen (+ optional displayVersion) + & $report "Aktiviere neue Version" + $patch = @{ committedContentVersion = $cvId } + if ($DisplayVersion) { $patch['displayVersion'] = $DisplayVersion } + Update-GraphMobileApp -AppId $AppId -AppTypeRaw $GraphTypeRaw -Patch $patch + + & $report "Fertig" + return @{ ok = $true; contentVersion = $cvId; fileId = $fileId; size = $pkg.Size; sizeEncrypted = $pkg.SizeEncrypted; displayVersion = $DisplayVersion } +} + +function Get-GraphAppDetailsBatch { + # Holt App-Stammdaten + installSummary + relationships in EINEM + # HTTP-Roundtrip via Microsoft Graph $batch. Server-seitig parallelisiert + # — statt 3 sequenzieller Calls (jeder ~300-800ms) nur ein einziger + # Roundtrip in der Zeit des langsamsten Sub-Calls. + # Falls ein Sub-Call serverseitig fehlschlaegt, wird der jeweilige + # Teil $null gesetzt — der Rest funktioniert weiter. + param([Parameter(Mandatory=$true)][string]$AppId) + + $body = @{ + requests = @( + @{ id = 'app'; method = 'GET'; url = "/deviceAppManagement/mobileApps/$($AppId)?`$expand=categories" }, + @{ id = 'summary'; method = 'GET'; url = "/deviceAppManagement/mobileApps/$AppId/installSummary" }, + @{ id = 'rels'; method = 'GET'; url = "/deviceAppManagement/mobileApps/$AppId/relationships" } + ) + } + $json = $body | ConvertTo-Json -Depth 5 -Compress + + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $resp = $null + try { + $resp = Invoke-MgGraphRequest ` + -Uri 'https://graph.microsoft.com/beta/$batch' ` + -Method POST ` + -Body $json ` + -ContentType 'application/json' + } catch { + Write-Host " [BATCH] $AppId fehlgeschlagen: $($_.Exception.Message)" -ForegroundColor DarkYellow + return @{ App = $null; InstallSummary = $null; Relationships = @() } + } + $sw.Stop() + + $result = @{ App = $null; InstallSummary = $null; Relationships = @() } + $stati = @() + foreach ($r in @($resp.responses)) { + $st = [int]$r.status + $id = [string]$r.id + $stati += "$id=$st" + switch ($id) { + 'app' { + if ($st -eq 200) { $result.App = $r.body } + } + 'summary' { + if ($st -eq 200) { $result.InstallSummary = $r.body } + } + 'rels' { + if ($st -eq 200 -and $r.body.value) { + $result.Relationships = @($r.body.value) + } + } + } + } + Write-Host " [BATCH] $AppId in $($sw.ElapsedMilliseconds)ms ($($stati -join ', '))" -ForegroundColor DarkGray + return $result +} + +function Get-GraphMobileAppInstallSummary { + # Installations-Statistik einer App. Endpoint ist Singular ("installSummary"), + # nicht zu verwechseln mit deviceStatuses/userStatuses (Per-Device/Per-User). + param([Parameter(Mandatory=$true)][string]$AppId) + try { + return Invoke-MgGraphRequest ` + -Uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId/installSummary" ` + -Method GET + } catch { + return $null + } +} + +function Get-GraphMobileAppRelationships { + # Liefert die Beziehungen einer App (Dependency / Supersedence). 400-Fehler + # beim Delete kommen oft daher, dass eine andere App diese App als Dependency + # oder Supersedence referenziert - dann muss erst die Gegenseite entfernt werden. + param([Parameter(Mandatory=$true)][string]$AppId) + try { + $uri = "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId/relationships" + $resp = Invoke-MgGraphRequest -Uri $uri -Method GET + $items = @() + if ($resp.value) { $items = @($resp.value) } + Write-Host " [RELS] $AppId -> $($items.Count) Eintraege via /relationships" -ForegroundColor DarkGray + if ($items.Count -gt 0) { + $byType = $items | Group-Object { [string]$_.'@odata.type' } | ForEach-Object { "$($_.Name)=$($_.Count)" } + Write-Host " [RELS] Typen: $($byType -join ', ')" -ForegroundColor DarkGray + } + return $items + } catch { + Write-Host " [RELS] Lesen fehlgeschlagen fuer $AppId : $($_.Exception.Message)" -ForegroundColor DarkYellow + return @() + } +} + +function Remove-GraphMobileApp { + # Versucht die App ueber beta zu loeschen; fallback auf v1.0 falls beta 400/404 gibt. + # Wirft eine angereicherte Exception mit der Original-Graph-Fehlermeldung. + param([Parameter(Mandatory=$true)][string]$AppId) + + $endpoints = @( + "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$AppId", + "https://graph.microsoft.com/v1.0/deviceAppManagement/mobileApps/$AppId" + ) + $lastErr = $null + foreach ($uri in $endpoints) { + try { + $null = Invoke-MgGraphRequest -Uri $uri -Method DELETE + return # success + } catch { + $lastErr = $_ + # ErrorDetails.Message ist meist der Raw-JSON-Body von Graph + $body = $null + try { $body = $_.ErrorDetails.Message } catch {} + # 405/Resource-not-found auf beta -> v1.0 probieren. Bei 400 ebenfalls + # einen Versuch wagen, das ist im Test mit win32LobApp gelegentlich noetig. + $msg = "$($_.Exception.Message) $body" + if ($msg -match '404|400|405|MethodNotAllowed|NotSupported') { + continue + } else { + throw + } + } + } + # Beide Endpoints haben versagt -> letzte Fehlermeldung anreichern und werfen + if ($lastErr) { + $body = $null + try { $body = $lastErr.ErrorDetails.Message } catch {} + $detail = if ($body) { " | Graph-Response: $body" } else { "" } + throw [System.Exception]::new("Delete fehlgeschlagen: $($lastErr.Exception.Message)$detail") + } +} + +# Excluded App-Typen aus dem Original-Script +$script:ExcludedAppTypes = @( + '#microsoft.graph.iosLobApp', '#microsoft.graph.iosStoreApp', '#microsoft.graph.iosVppApp', + '#microsoft.graph.managedIOSLobApp', '#microsoft.graph.managedIOSStoreApp', + '#microsoft.graph.androidLobApp', '#microsoft.graph.androidStoreApp', '#microsoft.graph.androidForWorkApp', + '#microsoft.graph.androidManagedStoreApp', '#microsoft.graph.androidManagedStoreWebApp', + '#microsoft.graph.managedAndroidLobApp', '#microsoft.graph.managedAndroidStoreApp', + '#microsoft.graph.macOSDmgApp', '#microsoft.graph.macOSLobApp', '#microsoft.graph.macOSMicrosoftDefenderApp', + '#microsoft.graph.macOSMicrosoftEdgeApp', '#microsoft.graph.macOSOfficeSuiteApp', '#microsoft.graph.macOSPkgApp', + '#microsoft.graph.macOsVppApp' +) + +function Test-AppTypeAllowed { + param([string]$Type) + return -not ($script:ExcludedAppTypes -contains $Type) +} + +function ConvertTo-AppFriendlyType { + param([string]$Type) + switch ($Type) { + '#microsoft.graph.win32LobApp' { 'Win32' } + '#microsoft.graph.windowsStoreApp' { 'Store' } + '#microsoft.graph.microsoftStoreForBusinessApp' { 'MS Store' } + '#microsoft.graph.officeSuiteApp' { 'M365 Apps' } + '#microsoft.graph.windowsMicrosoftEdgeApp' { 'Edge' } + '#microsoft.graph.windowsWebApp' { 'WebApp' } + '#microsoft.graph.winGetApp' { 'WinGet' } + '#microsoft.graph.windowsPhone81AppX' { 'APPX' } + '#microsoft.graph.windowsAppX' { 'APPX' } + '#microsoft.graph.windowsUniversalAppX' { 'APPX' } + '#microsoft.graph.windowsMobileMSI' { 'MSI' } + default { + ($Type -replace '#microsoft\.graph\.','') + } + } +} + +function Get-GraphErrorFriendly { + param([Parameter(Mandatory=$true)]$ErrorRecord) + $msg = $ErrorRecord.Exception.Message + switch -Regex ($msg) { + "already exist|bereits vorhanden|One or more added object references already exist" { + return @{ Code="MemberExists"; Friendly="Mitglied bereits in Gruppe"; IsWarning=$true; Full=$msg } + } + "Insufficient privileges|Access denied|Authorization_RequestDenied|403" { + return @{ Code="Forbidden(403)"; Friendly="Keine Berechtigung. Erforderlich: Group.ReadWrite.All / DeviceManagementApps.ReadWrite.All"; IsWarning=$false; Full=$msg } + } + "does not exist|not found|Request_ResourceNotFound|404" { + return @{ Code="NotFound(404)"; Friendly="Objekt nicht gefunden"; IsWarning=$false; Full=$msg } + } + "Too many requests|throttled|429" { + return @{ Code="Throttled(429)"; Friendly="Zu viele Anfragen. Bitte warten."; IsWarning=$false; Full=$msg } + } + "BadRequest|400" { + if ($msg -match "exist|vorhanden|member") { + return @{ Code="MemberExists"; Friendly="Mitglied bereits in Gruppe"; IsWarning=$true; Full=$msg } + } + return @{ Code="BadRequest(400)"; Friendly="Ungueltige Anfrage"; IsWarning=$false; Full=$msg } + } + default { + return @{ Code="Error"; Friendly=$msg; IsWarning=$false; Full=$msg } + } + } +} + +function Test-AppVendorRule { + # True wenn die App den angegebenen Detection-Regel-Block matcht. + param($RawApp, $Rule) + if (-not $Rule -or -not $Rule.field -or -not $Rule.pattern) { return $false } + $value = switch ($Rule.field) { + 'commandLine' { @($RawApp.installCommandLine, $RawApp.uninstallCommandLine) -join " " } + 'developer' { [string]$RawApp.developer } + 'publisher' { [string]$RawApp.publisher } + 'displayName' { [string]$RawApp.displayName } + 'notes' { [string]$RawApp.notes } + 'owner' { [string]$RawApp.owner } + default { "" } + } + if (-not $value) { return $false } + switch ($Rule.match) { + 'equals' { return ($value -eq $Rule.pattern) } + 'startsWith' { return $value.StartsWith($Rule.pattern, [StringComparison]::OrdinalIgnoreCase) } + 'regex' { + try { return ($value -match $Rule.pattern) } + catch { return $false } # ungueltiger Regex -> Vendor matcht halt nicht + } + default { return ($value -match [regex]::Escape($Rule.pattern)) } # 'contains' + } +} + +function Resolve-AppVendorSource { + # Iteriert ueber Settings.vendors und liefert displayName des ersten + # passenden Vendors. Default: "Intune" wenn keiner matcht. + param($RawApp, $Vendors) + if ($null -eq $Vendors) { return "Intune" } + foreach ($v in @($Vendors)) { + if ($v -and (Test-AppVendorRule -RawApp $RawApp -Rule $v.detection)) { + return [string]$v.displayName + } + } + return "Intune" +} + +function Format-AppForFrontend { + param($RawApp, $AllGroupsLookup) + # AllGroupsLookup: hashtable groupId -> displayName (fuer Anzeige der zugewiesenen Gruppen) + $available = @() + $required = @() + foreach ($a in @($RawApp.assignments)) { + $tgt = $a.target + $tgtType = $tgt.'@odata.type' + $entry = $null + if ($tgtType -eq '#microsoft.graph.allLicensedUsersAssignmentTarget') { + $entry = @{ GroupId="ALL_USERS"; GroupName="All Users"; IsNative=$true } + } elseif ($tgtType -eq '#microsoft.graph.allDevicesAssignmentTarget') { + $entry = @{ GroupId="ALL_DEVICES"; GroupName="All Devices"; IsNative=$true } + } elseif ($tgtType -eq '#microsoft.graph.groupAssignmentTarget') { + $gid = $tgt.groupId + $name = if ($AllGroupsLookup -and $AllGroupsLookup.ContainsKey($gid)) { $AllGroupsLookup[$gid] } else { $gid } + $entry = @{ GroupId=$gid; GroupName=$name; IsNative=$false } + } elseif ($tgtType -eq '#microsoft.graph.exclusionGroupAssignmentTarget') { + continue + } + if ($null -ne $entry) { + switch ($a.intent) { + 'available' { $available += $entry } + 'required' { $required += $entry } + } + } + } + # Version aus moeglichen Feldern (je nach App-Typ) + $version = $null + foreach ($f in @('displayVersion','version','productVersion','identityVersion','officeSuiteAppVersion')) { + if ($RawApp.$f) { $version = [string]$RawApp.$f; break } + } + + # Quelle: PMPC-Direkterkennung zuerst (das hat schon immer funktioniert, + # bleibt damit auch bei kaputter Settings/Vendor-Registry zuverlaessig). + # Erst wenn das nicht greift, fragen wir die Vendor-Registry — dort liegen + # Robopack & weitere konfigurierbare Vendoren. + $source = "Intune" + if ($RawApp.installCommandLine -and $RawApp.installCommandLine -match "PatchMyPC") { + $source = "PatchMyPC" + } elseif ($RawApp.uninstallCommandLine -and $RawApp.uninstallCommandLine -match "PatchMyPC") { + $source = "PatchMyPC" + } else { + $vendorSource = Resolve-AppVendorSource -RawApp $RawApp -Vendors $script:Settings.vendors + if ($vendorSource -and $vendorSource -ne "Intune" -and $vendorSource -ne "PatchMyPC") { + $source = $vendorSource + } + } + + return [pscustomobject]@{ + AppId = $RawApp.id + AppName = $RawApp.displayName + AppType = ConvertTo-AppFriendlyType -Type $RawApp.'@odata.type' + AppTypeRaw = $RawApp.'@odata.type' + Publisher = $RawApp.publisher + Version = $version + Source = $source + IsAssigned = ($RawApp.isAssigned -eq $true) + AvailableGroups = $available + RequiredGroups = $required + AvailableCount = $available.Count + RequiredCount = $required.Count + # Kategorien fuer Filter + Anzeige. Get-AppCategoryNames liegt in Api.ps1, + # ist aber global dot-sourced. Liefert immer ein String-Array (ggf. leer). + Categories = (Get-AppCategoryNames -RawCategories $RawApp.categories -AppId $RawApp.id) + # ISO-Strings damit JS new Date() es zuverlaessig parst — fuer Filter + # nach Aenderungs-Zeitraum (App-Liste, ohne Detail-Roundtrip). + CreatedDateTime = ConvertTo-IsoDate $RawApp.createdDateTime + LastModifiedDateTime = ConvertTo-IsoDate $RawApp.lastModifiedDateTime + } +} diff --git a/Intune/Intune-App-Manager-Web/src/Models.ps1 b/Intune/Intune-App-Manager-Web/src/Models.ps1 new file mode 100644 index 0000000..ae258ca --- /dev/null +++ b/Intune/Intune-App-Manager-Web/src/Models.ps1 @@ -0,0 +1,295 @@ +# Datenklassen / Hilfen fuer Frontend-JSON + +function ConvertTo-Json2 { + param([Parameter(ValueFromPipeline=$true)]$InputObject, [int]$Depth = 12) + process { + return $InputObject | ConvertTo-Json -Depth $Depth -Compress + } +} + +# Normalisiert ein potentielles Datum (DateTime, DateTimeOffset, String, +# /Date(ms)/, $null) auf ein ISO-8601-String — damit JS' new Date() es +# zuverlaessig parsen kann. +function ConvertTo-IsoDate { + param($Value) + if ($null -eq $Value) { return $null } + if ($Value -is [DateTime]) { return $Value.ToUniversalTime().ToString('o') } + if ($Value -is [DateTimeOffset]) { return $Value.UtcDateTime.ToString('o') } + $s = [string]$Value + if ([string]::IsNullOrWhiteSpace($s)) { return $null } + # Microsoft-Legacy "/Date(1234567890123)/" + if ($s -match '^\/Date\((-?\d+)') { + try { return ([DateTimeOffset]::FromUnixTimeMilliseconds([long]$matches[1])).UtcDateTime.ToString('o') } catch {} + } + # Schon ein parsbares Datum? + try { return ([DateTime]$s).ToUniversalTime().ToString('o') } catch {} + return $s +} + +# ============================================================ +# Settings: editierbare Konfiguration, persistiert als JSON +# unter %APPDATA%\IntuneAppManager-Web\settings.json +# ============================================================ + +function Get-SettingsPath { + $dir = Join-Path $env:APPDATA "IntuneAppManager-Web" + if (-not (Test-Path $dir)) { New-Item -ItemType Directory -Path $dir -Force | Out-Null } + return Join-Path $dir "settings.json" +} + +function Get-DefaultSettings { + # Tenant-spezifische Felder (tenantId, clientId, departments.prefix, + # rpa.groupNames) sind absichtlich leer — eine frische Installation + # zwingt den Admin durchs Setup. Generische Werte (Scopes, Naming-Schemas, + # Theme) sind branchenuebliche Startpunkte und bleiben besetzt. + return [pscustomobject]@{ + connection = [pscustomobject]@{ + tenantId = "" + clientId = "" + # DeviceManagementApps.ReadWrite.All ist Pflicht: assign (native All + # Users/Devices), PATCH (Rename) und DELETE auf mobileApps brauchen + # ReadWrite — Read.All allein liefert dort 403. Verifiziert via + # msgraph-Skill gegen den offiziellen Graph-Permission-Index. + scopes = @("Group.ReadWrite.All", "GroupMember.ReadWrite.All", "User.Read.All", "DeviceManagementApps.ReadWrite.All") + } + departments = [pscustomobject]@{ + # Ein oder mehrere Praefixe fuer den Abteilungs-Modus (linke Spalte). + # Mehrfach moeglich (z.B. "abt-hm" + "abt-extern"). Pflicht: mindestens + # ein Eintrag im Setup. Der alte Single-String 'prefix' bleibt fuer + # Rueckwaerts-Kompatibilitaet — Get-DepartmentPrefixes liest beides. + prefixes = @() + prefix = "" + } + rpa = [pscustomobject]@{ + # Explizite Liste der RPA-Gruppen. Leer = RPA-Tab zeigt Hinweis. + groupNames = @() + } + userSearch = [pscustomobject]@{ + # In welchen Feldern bei der Benutzersuche gesucht wird. + # Erlaubt: displayName, userPrincipalName, mail, department. + fields = @("displayName", "userPrincipalName", "mail") + } + requiredGroupNaming = [pscustomobject]@{ + # Wird beim "+ Required-Gruppe"-Workflow verwendet: + # {prefix}{slug-vom-app-name}{suffix} + prefix = "intune-win-app-" + suffix = "-required" + } + availableGroupNaming = [pscustomobject]@{ + # Analog zu requiredGroupNaming — fuer "+ Available-Gruppe"-Workflow. + prefix = "intune-win-app-" + suffix = "-available" + } + branding = [pscustomobject]@{ + # Logo-Dateiname relativ zum Projekt-Root (dort liegen auch + # intune.png/pmpc.png/application.png). $null = Letter "I" Fallback. + logoFile = "application.png" + } + # Vendor-Registry: jede App wird gegen diese Liste in Reihenfolge + # gepruef; erster Match gewinnt. Source-String im App-Objekt = + # vendor.displayName (sonst "Intune"). Tenants koennen Detection- + # Regeln, Portal-URLs und Blocking pro Vendor in settings.json + # ueberschreiben. + vendors = @( + [pscustomobject]@{ + id = "patchmypc" + displayName = "PatchMyPC" + portalUrl = "https://portal.patchmypc.com/" + logoFile = "pmpc.png" + detection = [pscustomobject]@{ + field = "commandLine" # commandLine | developer | publisher | displayName | notes | owner + match = "contains" # contains | equals | regex | startsWith + pattern = "PatchMyPC" + } + block = [pscustomobject]@{ delete = $true; rename = $true } + }, + [pscustomobject]@{ + id = "robopack" + displayName = "Robopack" + portalUrl = "https://app.robopack.com/" + logoFile = "robopack.png" + detection = [pscustomobject]@{ + field = "developer" + match = "equals" + pattern = "Robopack" + } + block = [pscustomobject]@{ delete = $true; rename = $true } + } + ) + theme = [pscustomobject]@{ + # Hauptfarben fuer Highlights. Soft/Strong/Border/Bg werden im + # Frontend per rgba() aus dem Hex abgeleitet. + colors = [pscustomobject]@{ + brand = "#27a078" # Primaere Firmenfarbe: Logo-Hintergrund, Stepper-Indikator + accent = "#3b82f6" # Available-Pillen, Links, Akzent-Hover + required = "#cb2a7a" # Pink (Required-Badges) + success = "#10b981" # Bereits zugewiesen + warning = "#f59e0b" # Teilweise / Skip + error = "#ef4444" # Fehler / Destructive + rowSelected = "#71e5c4" # Hintergrund der aufgeklappten/markierten App-Zeile + detailPanel = "#f7f7f7" # Hintergrund des Details-Bereichs unter der App + } + } + } +} + +# Tiefer Merge: gespeicherte Werte ueberschreiben Defaults, neue Default- +# Keys werden trotzdem ergaenzt — robust gegen Settings-Schema-Erweiterungen. +function Merge-Settings { + param($Base, $Override) + if ($null -eq $Override) { return $Base } + $result = [ordered]@{} + foreach ($p in $Base.PSObject.Properties) { + $name = $p.Name + $bv = $p.Value + $ov = $null + $hasOverride = $false + if ($Override.PSObject.Properties[$name]) { + $ov = $Override.PSObject.Properties[$name].Value + $hasOverride = $true + } + if (-not $hasOverride) { + $result[$name] = $bv + } elseif ($bv -is [pscustomobject] -and $ov -is [pscustomobject]) { + $result[$name] = Merge-Settings -Base $bv -Override $ov + } else { + $result[$name] = $ov + } + } + # Zusaetzliche Properties aus Override, die nicht im Base sind, ignorieren — + # sie wuerden vom Backend ohnehin nicht gelesen. + return [pscustomobject]$result +} + +function Get-DepartmentPrefixes { + # Zentrale Quelle fuer die Abteilungs-Praefixe. Bevorzugt das neue + # 'prefixes'-Array; faellt sonst auf den alten Single-String 'prefix' + # zurueck (Rueckwaerts-Kompatibilitaet mit existierenden settings.json). + # Liefert immer ein String-Array (getrimmt, dedupliziert, ohne leere + # Eintraege), ggf. leer wenn nichts konfiguriert ist. + param($Settings) + $out = [System.Collections.Generic.List[string]]::new() + if ($null -eq $Settings -or $null -eq $Settings.departments) { return ,$out.ToArray() } + $d = $Settings.departments + $candidates = @() + if ($d.PSObject.Properties['prefixes']) { $candidates += @($d.prefixes) } + if ($d.PSObject.Properties['prefix'] -and $d.prefix) { $candidates += @([string]$d.prefix) } + $seen = @{} + foreach ($p in $candidates) { + if ($null -eq $p) { continue } + $t = ([string]$p).Trim() + if (-not $t) { continue } + $k = $t.ToLowerInvariant() + if ($seen.ContainsKey($k)) { continue } + $seen[$k] = $true + $out.Add($t) + } + return $out.ToArray() +} + +function Read-Settings { + $path = Get-SettingsPath + $defaults = Get-DefaultSettings + if (-not (Test-Path $path)) { return $defaults } + try { + $raw = Get-Content -Path $path -Raw -Encoding UTF8 + if ([string]::IsNullOrWhiteSpace($raw)) { return $defaults } + $saved = $raw | ConvertFrom-Json + return Merge-Settings -Base $defaults -Override $saved + } catch { + Write-Host "[SETTINGS] Lesen fehlgeschlagen, verwende Defaults: $($_.Exception.Message)" -ForegroundColor Yellow + return $defaults + } +} + +function Write-Settings { + param([Parameter(Mandatory=$true)]$Settings) + $path = Get-SettingsPath + $json = $Settings | ConvertTo-Json -Depth 10 + [IO.File]::WriteAllText($path, $json, [System.Text.Encoding]::UTF8) + Write-Host "[SETTINGS] Gespeichert: $path" -ForegroundColor DarkGray +} + +function Get-SettingsValidationErrors { + # Rudimentaere Validierung. Schwere Fehler -> Speichern ablehnen. + param($S) + $errs = @() + if (-not $S.connection.tenantId -or $S.connection.tenantId -notmatch '^[0-9a-fA-F-]{36}$') { + $errs += "Tenant ID muss eine GUID sein." + } + if (-not $S.connection.clientId -or $S.connection.clientId -notmatch '^[0-9a-fA-F-]{36}$') { + $errs += "Client ID muss eine GUID sein." + } + if (-not $S.connection.scopes -or @($S.connection.scopes).Count -eq 0) { + $errs += "Mindestens ein Scope erforderlich." + } + $deptPrefixes = Get-DepartmentPrefixes -Settings $S + if ($deptPrefixes.Count -eq 0) { + $errs += "Mindestens ein Abteilungs-Praefix erforderlich." + } else { + $bad = @($deptPrefixes | Where-Object { $_.Trim().Length -lt 2 }) + if ($bad.Count -gt 0) { $errs += "Abteilungs-Praefixe muessen jeweils mindestens 2 Zeichen lang sein." } + } + if (-not $S.rpa.groupNames -or @($S.rpa.groupNames).Count -eq 0) { + $errs += "Mindestens eine RPA-Gruppe erforderlich." + } + $allowedUserFields = @('displayName','userPrincipalName','mail','department') + $bad = @($S.userSearch.fields | Where-Object { $_ -notin $allowedUserFields }) + if ($bad.Count -gt 0) { $errs += "Unbekannte User-Search-Felder: $($bad -join ', ')" } + if (-not $S.userSearch.fields -or @($S.userSearch.fields).Count -eq 0) { + $errs += "Mindestens ein User-Such-Feld erforderlich." + } + if (-not $S.requiredGroupNaming.prefix -or -not $S.requiredGroupNaming.suffix) { + $errs += "Required-Gruppen-Naming: Praefix und Suffix erforderlich." + } + if ($S.availableGroupNaming -and (-not $S.availableGroupNaming.prefix -or -not $S.availableGroupNaming.suffix)) { + $errs += "Available-Gruppen-Naming: Praefix und Suffix erforderlich." + } + # Vendor-Registry: jeder Eintrag muss id + detection mit field/match/pattern haben. + if ($null -ne $S.vendors) { + $allowedFields = @('commandLine','developer','publisher','displayName','notes','owner') + $allowedMatches = @('contains','equals','regex','startsWith') + $seenIds = @{} + foreach ($v in @($S.vendors)) { + if (-not $v.id -or [string]::IsNullOrWhiteSpace($v.id)) { $errs += "Vendor: 'id' erforderlich."; continue } + if ($seenIds.ContainsKey($v.id)) { $errs += "Vendor '$($v.id)': id ist nicht eindeutig."; continue } + $seenIds[$v.id] = $true + if (-not $v.displayName) { $errs += "Vendor '$($v.id)': displayName erforderlich." } + if (-not $v.detection) { $errs += "Vendor '$($v.id)': detection-Block fehlt."; continue } + if ($v.detection.field -notin $allowedFields) { $errs += "Vendor '$($v.id)': detection.field muss eines von $($allowedFields -join '|') sein." } + if ($v.detection.match -notin $allowedMatches) { $errs += "Vendor '$($v.id)': detection.match muss eines von $($allowedMatches -join '|') sein." } + if (-not $v.detection.pattern -or [string]::IsNullOrWhiteSpace($v.detection.pattern)) { $errs += "Vendor '$($v.id)': detection.pattern erforderlich." } + } + } + # Theme-Farben sind Hex-Strings (#RGB oder #RRGGBB) + if ($S.theme -and $S.theme.colors) { + foreach ($key in @('brand','accent','required','success','warning','error','rowSelected','detailPanel')) { + $val = $S.theme.colors.$key + if ($val -and $val -notmatch '^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$') { + $errs += "Farbe '$key' ist kein gueltiger Hex-Wert." + } + } + } + return $errs +} + +function New-AssignmentItem { + param( + [string]$AppId, + [string]$AppName, + [string]$AppType, + [string]$Type, # "Available" | "Required" + [string]$GroupId, + [string]$GroupName + ) + return [pscustomobject]@{ + Id = [guid]::NewGuid().ToString() + AppId = $AppId + AppName = $AppName + AppType = $AppType + Type = $Type + GroupId = $GroupId + GroupName = $GroupName + AddedAt = (Get-Date).ToString("o") + } +} diff --git a/Intune/Intune-App-Manager-Web/src/Router.ps1 b/Intune/Intune-App-Manager-Web/src/Router.ps1 new file mode 100644 index 0000000..10a05f2 --- /dev/null +++ b/Intune/Intune-App-Manager-Web/src/Router.ps1 @@ -0,0 +1,99 @@ +# HTTP-Router: leitet Requests an statische Dateien oder API-Endpoints weiter. + +function Invoke-Router { + param([Parameter(Mandatory=$true)]$Context) + + $request = $Context.Request + $path = $request.Url.AbsolutePath.TrimEnd('/') + if ([string]::IsNullOrEmpty($path)) { $path = "/" } + $method = $request.HttpMethod + + $isApi = $path.StartsWith("/api/") + if ($isApi) { + Write-Host (">>> [{0}] {1} {2}" -f (Get-Date -Format "HH:mm:ss.fff"), $method, $path) -ForegroundColor DarkCyan + } + $reqStart = Get-Date + + # API-Endpoints + if ($isApi) { + $body = $null + if ($method -in @("POST","PUT","PATCH")) { + $body = Read-RequestBody -Context $Context + } + $query = @{} + foreach ($key in $request.QueryString.AllKeys) { + if ($null -ne $key) { $query[$key] = $request.QueryString[$key] } + } + + try { + $result = Invoke-ApiHandler -Path $path -Method $method -Body $body -Query $query + $handlerMs = [int]((Get-Date) - $reqStart).TotalMilliseconds + if ($null -eq $result) { + Send-JsonResponse -Context $Context -StatusCode 404 -Body @{ error = "Unknown endpoint: $method $path" } + Write-Host ("<<< [{0}] {1} {2} -> 404 ({3}ms)" -f (Get-Date -Format "HH:mm:ss.fff"), $method, $path, $handlerMs) -ForegroundColor DarkYellow + } else { + $statusCode = 200 + if ($result -is [hashtable] -and $result.ContainsKey('__status')) { + $statusCode = $result['__status'] + $result.Remove('__status') + } + Send-JsonResponse -Context $Context -StatusCode $statusCode -Body $result + $totalMs = [int]((Get-Date) - $reqStart).TotalMilliseconds + Write-Host ("<<< [{0}] {1} {2} -> {3} (handler={4}ms total={5}ms)" -f (Get-Date -Format "HH:mm:ss.fff"), $method, $path, $statusCode, $handlerMs, $totalMs) -ForegroundColor DarkCyan + } + } catch { + $msg = $_.Exception.Message + # Client-Disconnects (AbortController) sind harmlos und werden nicht geloggt + if ($msg -match "Netzwerkname.*nicht.*verfügbar|connection was forcibly closed|aborted by the software|response has been submitted") { + Write-Host " [client disconnect] $path" -ForegroundColor DarkGray + } else { + Write-Host "<<< [API ERROR] $path -> $msg" -ForegroundColor Red + Write-Host " Stack: $($_.ScriptStackTrace)" -ForegroundColor DarkRed + try { + Send-JsonResponse -Context $Context -StatusCode 500 -Body @{ + error = $msg + stack = $_.ScriptStackTrace + } + } catch {} + } + } + return + } + + # Assets aus dem Projekt-Root (Logos etc.) + if ($path.StartsWith("/assets/")) { + $name = $path.Substring("/assets/".Length) + $name = $name -replace "[^a-zA-Z0-9._-]", "" + $rootDir = Split-Path -Parent $script:Config.WebRoot + $file = Join-Path $rootDir $name + # Branding-Logos NIE cachen — sonst sieht der User nach dem Upload + # weiter die alte Version, auch wenn die URL gleich bleibt. + $extraHeaders = $null + if ($name -like 'branding-logo.*') { + $extraHeaders = @{ 'Cache-Control' = 'no-store, max-age=0' } + } + Send-FileResponse -Context $Context -FilePath $file -ExtraHeaders $extraHeaders + return + } + + # Reports (HTML-Reports werden in Temp gespeichert) + if ($path.StartsWith("/reports/")) { + $name = $path.Substring("/reports/".Length) + $name = $name -replace "[^a-zA-Z0-9._-]", "" + $file = Join-Path $script:Config.ReportDir $name + Send-FileResponse -Context $Context -FilePath $file + return + } + + # Statische Dateien aus www/ + $relativePath = if ($path -eq "/") { "index.html" } else { $path.TrimStart('/') } + $relativePath = $relativePath -replace '\.\.', '' # path traversal blocken + $file = Join-Path $script:Config.WebRoot $relativePath + + if (Test-Path $file -PathType Leaf) { + Send-FileResponse -Context $Context -FilePath $file + } else { + # SPA fallback - alle nicht erkannten Pfade auf index.html + Send-FileResponse -Context $Context -FilePath (Join-Path $script:Config.WebRoot "index.html") + } +} diff --git a/Intune/Intune-App-Manager-Web/src/Server.ps1 b/Intune/Intune-App-Manager-Web/src/Server.ps1 new file mode 100644 index 0000000..ffed947 --- /dev/null +++ b/Intune/Intune-App-Manager-Web/src/Server.ps1 @@ -0,0 +1,159 @@ +# Lokaler HTTP-Server (System.Net.HttpListener) +# Single-threaded request loop - reicht fuer einen Admin-Nutzer. + +function Start-WebServer { + param([int]$Port = 8077) + + $listener = New-Object System.Net.HttpListener + $prefix = "http://localhost:$Port/" + $listener.Prefixes.Add($prefix) + + try { + $listener.Start() + } catch { + Write-Host "Server konnte nicht gestartet werden auf $prefix" -ForegroundColor Red + Write-Host "Moeglicherweise ist der Port belegt oder es fehlen Rechte." -ForegroundColor Red + Write-Host "Tipp: anderen Port mit -Port 8088 versuchen, oder als Admin starten." -ForegroundColor Yellow + Write-Host $_.Exception.Message -ForegroundColor Red + return + } + + Write-Host "Server laeuft. Warte auf Requests..." -ForegroundColor Green + Write-Host "" + + while ($listener.IsListening) { + try { + $context = $listener.GetContext() # blockiert + try { + Invoke-Router -Context $context + } catch { + Write-Host "[ERROR] $($_.Exception.Message)" -ForegroundColor Red + try { + Send-JsonResponse -Context $context -StatusCode 500 -Body @{ + error = $_.Exception.Message + stack = $_.ScriptStackTrace + } + } catch {} + } + } catch [System.Net.HttpListenerException] { + break + } catch { + Write-Host "[FATAL] $_" -ForegroundColor Red + } + } + + $listener.Stop() + $listener.Close() +} + +function Send-JsonResponse { + param( + [Parameter(Mandatory=$true)]$Context, + [int]$StatusCode = 200, + $Body = $null + ) + $response = $Context.Response + try { + $response.StatusCode = $StatusCode + $response.ContentType = "application/json; charset=utf-8" + $response.Headers.Add("Cache-Control", "no-store") + } catch { + # Headers schon gesendet — Client wahrscheinlich schon weg + return + } + + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $json = if ($null -eq $Body) { "{}" } else { $Body | ConvertTo-Json -Depth 12 -Compress } + $sw.Stop() + if ($sw.ElapsedMilliseconds -gt 100) { + Write-Host " [JSON] Serialize $($json.Length) bytes in $($sw.ElapsedMilliseconds)ms (ACHTUNG > 100ms)" -ForegroundColor Yellow + } + + $bytes = [System.Text.Encoding]::UTF8.GetBytes($json) + try { + $response.ContentLength64 = $bytes.Length + $response.OutputStream.Write($bytes, 0, $bytes.Length) + $response.OutputStream.Close() + } catch [System.Net.HttpListenerException], [System.IO.IOException], [System.ObjectDisposedException] { + # Client hat die Verbindung abgebrochen (AbortController, Tab geschlossen, etc.) — irrelevant + } catch { + # Andere Fehler still mitloggen + Write-Host " [WRITE] Response-Schreiben fehlgeschlagen: $($_.Exception.GetType().Name): $($_.Exception.Message)" -ForegroundColor DarkYellow + } +} + +function Send-FileResponse { + param( + [Parameter(Mandatory=$true)]$Context, + [Parameter(Mandatory=$true)][string]$FilePath, + [string]$ContentType = $null, + [hashtable]$ExtraHeaders = $null + ) + $response = $Context.Response + if (-not (Test-Path $FilePath)) { + $response.StatusCode = 404 + $response.OutputStream.Close() + return + } + if (-not $ContentType) { + $ContentType = switch ([IO.Path]::GetExtension($FilePath).ToLower()) { + ".html" { "text/html; charset=utf-8" } + ".js" { "application/javascript; charset=utf-8" } + ".css" { "text/css; charset=utf-8" } + ".json" { "application/json; charset=utf-8" } + ".svg" { "image/svg+xml" } + ".png" { "image/png" } + ".jpg" { "image/jpeg" } + ".jpeg" { "image/jpeg" } + ".webp" { "image/webp" } + ".gif" { "image/gif" } + ".ico" { "image/x-icon" } + ".woff2"{ "font/woff2" } + ".md" { "text/markdown; charset=utf-8" } + default { "application/octet-stream" } + } + } + $bytes = [IO.File]::ReadAllBytes($FilePath) + $response.ContentType = $ContentType + + # Standard-Cache-Header: HTML/JS/CSS NICHT cachen (single-user Dev-Tool, + # Performance-Verlust irrelevant, dafuer immer aktueller Code im Browser). + # Bilder/Fonts cachen aber muessen — sonst flackert das Logo bei jedem Klick. + $ext = [IO.Path]::GetExtension($FilePath).ToLower() + $cacheCtl = if ($ext -in @('.html','.htm','.js','.css','.json')) { + 'no-store, no-cache, must-revalidate, max-age=0' + } else { + 'no-cache, must-revalidate' + } + if ($ExtraHeaders -and $ExtraHeaders.ContainsKey('Cache-Control')) { + $cacheCtl = $ExtraHeaders['Cache-Control'] + } + $response.Headers.Add('Cache-Control', $cacheCtl) + + if ($ExtraHeaders) { + foreach ($k in $ExtraHeaders.Keys) { + if ($k -eq 'Cache-Control') { continue } # bereits gesetzt + try { $response.Headers.Add($k, [string]$ExtraHeaders[$k]) } catch {} + } + } + + $response.ContentLength64 = $bytes.Length + $response.OutputStream.Write($bytes, 0, $bytes.Length) + $response.OutputStream.Close() +} + +function Read-RequestBody { + param([Parameter(Mandatory=$true)]$Context) + $request = $Context.Request + if (-not $request.HasEntityBody) { return $null } + $reader = New-Object System.IO.StreamReader($request.InputStream, $request.ContentEncoding) + $body = $reader.ReadToEnd() + $reader.Close() + if ([string]::IsNullOrWhiteSpace($body)) { return $null } + # -AsHashtable gibt es erst ab PowerShell 6 — Windows PowerShell 5.1 kennt es nicht. + # Die Endpoints behandeln sowohl Hashtable als auch PSCustomObject korrekt. + if ($PSVersionTable.PSVersion.Major -ge 6) { + return ($body | ConvertFrom-Json -AsHashtable) + } + return ($body | ConvertFrom-Json) +} diff --git a/Intune/Intune-App-Manager-Web/www/app.js b/Intune/Intune-App-Manager-Web/www/app.js new file mode 100644 index 0000000..edbf508 --- /dev/null +++ b/Intune/Intune-App-Manager-Web/www/app.js @@ -0,0 +1,4168 @@ +// ============================================================= +// Intune App-Manager — Frontend +// Workflow: Connect → Select Targets → Pick Apps → Apply +// ============================================================= + +const State = { + connected: false, + account: null, + mode: 'dept', // 'dept' | 'rpa' | 'user' + targets: [], + selectedTargetIds: new Set(), + apps: [], + appFilter: { search: '', preset: 'all', category: '', onlyMember: false, hideNative: false, modFrom: '', modTo: '' }, + session: [], + membershipCache: new Map(), + loadedModes: new Set(), + appsLoaded: false, + sideTab: 'session', + // groupId → { members:Array|null, selected:Set, loading:bool, error:string|null, filter:string } + expandedGroups: new Map(), + // mode → { targets, selectedIds:Set, expandedGroups:Map } — verhindert Verlust beim Tab-Wechsel + modeCache: new Map(), + // appId → { details, loading, error } + appDetails: new Map(), + expandedApps: new Set(), +}; + +// ============================================================= +// API wrapper +// ============================================================= + +async function api(path, options = {}) { + const opts = { + method: options.method || 'GET', + headers: { 'Content-Type': 'application/json' }, + body: options.body ? JSON.stringify(options.body) : undefined, + }; + // Optionaler Timeout (z.B. fuer lange Upload-Operationen). fetch hat sonst + // keinen Default-Timeout — lauft auf localhost ewig, was hier ok ist. + let timer = null; + if (options.timeoutMs) { + const ctrl = new AbortController(); + opts.signal = ctrl.signal; + timer = setTimeout(() => ctrl.abort(), options.timeoutMs); + } + let res; + try { + res = await fetch(path, opts); + } finally { + if (timer) clearTimeout(timer); + } + let data; + try { data = await res.json(); } catch { data = {}; } + if (!res.ok) { + const msg = data.error || `HTTP ${res.status}`; + throw new Error(msg); + } + return data; +} + +// ============================================================= +// Toasts +// ============================================================= + +function toast(msg, type = 'info', title = null) { + const ico = { ok: '✓', warn: '!', err: '×', info: 'i' }[type] || 'i'; + const t = document.createElement('div'); + t.className = `toast ${type}`; + t.innerHTML = ` +
${ico}
+
+ ${title ? `
${escapeHtml(title)}
` : ''} +
${escapeHtml(msg)}
+
+ `; + document.getElementById('toasts').appendChild(t); + setTimeout(() => { + t.style.animation = 'slide-in 200ms reverse'; + setTimeout(() => t.remove(), 220); + }, type === 'err' ? 6000 : 3500); +} + +function escapeHtml(s) { + if (s == null) return ''; + return String(s).replace(/[&<>"']/g, c => ({ + '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' + }[c])); +} + +// Markdown -> HTML. Nutzt marked (gebundelt in /vendor/marked.min.js). +// breaks: true -> einzelne Newlines werden zu
, intuitiver fuer User +// gfm: true -> GitHub-Flavored Markdown (Tabellen, Strikethrough, Autolinks) +// Wenn marked aus irgendeinem Grund nicht geladen ist, faellt der Helper +// auf escapeHtml zurueck — kein Crash, nur kein Markdown. +let markedConfigured = false; +function renderMarkdown(s) { + if (s == null) return ''; + const text = String(s); + if (typeof window.marked === 'undefined') return escapeHtml(text); + if (!markedConfigured) { + window.marked.setOptions({ breaks: true, gfm: true }); + markedConfigured = true; + } + try { return window.marked.parse(text); } + catch { return escapeHtml(text); } +} + +// ============================================================= +// Loading overlay +// ============================================================= + +let loadingDepth = 0; +function setLoading(text) { + loadingDepth++; + document.getElementById('loadingText').textContent = text || 'Bitte warten...'; + document.getElementById('loading').classList.remove('hidden'); +} +function clearLoading() { + loadingDepth = Math.max(0, loadingDepth - 1); + if (loadingDepth === 0) document.getElementById('loading').classList.add('hidden'); +} + +// ============================================================= +// Workflow stepper +// ============================================================= + +// Stepper wurde entfernt — Funktion bleibt als No-Op, damit die ~12 +// bestehenden Aufrufer keine Errors werfen. Kann irgendwann mit Sed +// gemeinsam mit den Aufrufstellen rausgesnipt werden. +function updateStepper() { /* no-op */ } + +// ============================================================= +// Connection +// ============================================================= + +function showOnboarding(show) { + document.getElementById('onboarding').classList.toggle('hidden', !show); + document.getElementById('layout').classList.toggle('hidden', show); + if (show) { + // Reset state-View nur, wenn gerade keine Anmeldung lief + if (!connectInFlight) showOnboardingState('idle'); + } else { + stopDevicePolling(); + } +} + +async function refreshStatus() { + try { + const s = await api('/api/status'); + State.connected = s.connected; + State.account = s.account; + renderConnection(); + } catch (e) { + toast('Status konnte nicht geladen werden: ' + e.message, 'err'); + } +} + +// Bootstrap-Icons "person-circle" — Avatar mit eingebautem Kreis-Outline. +// 20px matches die visuelle Groesse der anderen Header-Icons (cog, logout). +const PERSON_ICON = ``; + +function renderConnection() { + const pill = document.getElementById('connStatus'); + const text = pill.querySelector('.conn-text'); + const btnD = document.getElementById('btnDisconnect'); + + // Avatar ist der Person-Icon — Identifikation des aktiven Accounts laeuft + // ueber den Tooltip (title-Attribut, hover). + text.innerHTML = PERSON_ICON; + + if (State.connected) { + pill.className = 'conn-pill conn-on'; + pill.title = State.account || 'Verbunden'; + btnD.classList.remove('hidden'); + showOnboarding(false); + } else { + pill.className = 'conn-pill conn-off'; + pill.title = 'Nicht verbunden'; + btnD.classList.add('hidden'); + showOnboarding(true); + } + updateStepper(); +} + +// ---------------------------------------------------------------- +// Device-Code-Login: Anmeldung direkt auf der Seite, ohne Popup- +// Fenster, ohne WAM. Nutzer kann jeden Account angeben. +// ---------------------------------------------------------------- + +let connectInFlight = false; +let devicePollTimer = null; + +function showOnboardingState(view) { + // view: 'idle' | 'requesting' | 'awaiting' | 'error' + document.querySelectorAll('[data-onboarding-view]').forEach(el => { + el.classList.toggle('hidden', el.dataset.onboardingView !== view); + }); +} + +function stopDevicePolling() { + if (devicePollTimer) { clearInterval(devicePollTimer); devicePollTimer = null; } +} + +document.getElementById('btnConnect').addEventListener('click', async () => { + if (connectInFlight) return; + connectInFlight = true; + + showOnboardingState('awaiting'); + + // Sekundenzaehler im UI + const startedAt = Date.now(); + const waitText = document.querySelector('[data-onboarding-view="awaiting"] .onboarding-text'); + const baseText = waitText ? waitText.textContent : ''; + const tickTimer = setInterval(() => { + if (waitText) { + const sec = Math.floor((Date.now() - startedAt) / 1000); + waitText.textContent = `${baseText} (Wartet seit ${sec}s)`; + } + }, 1000); + + // 90s Timeout — Connect-MgGraph blockt typisch 5-30s; 90s ist sicher + const ctrl = new AbortController(); + const timeoutId = setTimeout(() => ctrl.abort(), 90000); + + try { + const resp = await fetch('/api/connect', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + signal: ctrl.signal, + }); + clearTimeout(timeoutId); + let s = {}; + try { s = await resp.json(); } catch {} + if (!resp.ok) throw new Error(s.error || `HTTP ${resp.status}`); + if (!s.connected) throw new Error('Backend meldet nicht connected'); + + State.connected = true; + State.account = s.account; + renderConnection(); + toast('Verbunden als ' + s.account, 'ok', 'Erfolgreich'); + autoLoadAfterConnect(); + } catch (e) { + clearTimeout(timeoutId); + let msg = e.message; + if (e.name === 'AbortError') { + msg = 'Anmeldung dauert über 90s. Möglicherweise ist das Login-Fenster im Hintergrund — prüfe die Taskleiste. Sonst PowerShell-Konsole prüfen.'; + } + document.getElementById('dcError').textContent = msg; + showOnboardingState('error'); + toast(msg, 'err', 'Verbindung fehlgeschlagen'); + } finally { + clearInterval(tickTimer); + if (waitText) waitText.textContent = baseText; + connectInFlight = false; + } +}); + +document.getElementById('btnCancelConnect')?.addEventListener('click', async () => { + stopDevicePolling(); + try { await api('/api/connect/cancel', { method: 'POST' }); } catch {} + showOnboardingState('idle'); + connectInFlight = false; +}); + +document.getElementById('btnRetryConnect')?.addEventListener('click', () => { + showOnboardingState('idle'); + connectInFlight = false; +}); + +document.getElementById('btnDisconnect').addEventListener('click', async () => { + setLoading('Trenne...'); + stopDevicePolling(); + connectInFlight = false; + try { + await api('/api/disconnect', { method: 'POST' }); + Object.assign(State, { + connected: false, account: null, + targets: [], apps: [], session: [], + appsLoaded: false, + }); + State.selectedTargetIds.clear(); + State.membershipCache.clear(); + State.loadedModes.clear(); + State.appDetails.clear(); + State.expandedApps.clear(); + State.modeCache.clear(); + renderConnection(); + renderTargets(); + renderPinnedTargets(); + renderApps(); + renderSession(); + renderExisting(); + toast('Verbindung getrennt', 'info'); + } finally { + clearLoading(); + } +}); + +async function autoLoadAfterConnect() { + // Load default mode targets + apps in parallel + const tasks = []; + if (!State.loadedModes.has(State.mode)) tasks.push(loadTargets({ silent: true })); + if (!State.appsLoaded) tasks.push(loadApps(false, { silent: true })); + await Promise.allSettled(tasks); +} + +// ============================================================= +// Mode tabs (segmented control) +// ============================================================= + +document.querySelectorAll('.seg').forEach(seg => { + seg.addEventListener('click', () => { + if (seg.classList.contains('active')) return; + const oldMode = State.mode; + const newMode = seg.dataset.mode; + + // Aktuellen Stand fuer alten Mode sichern + State.modeCache.set(oldMode, { + targets: State.targets.slice(), + selectedIds: new Set(State.selectedTargetIds), + expandedGroups: State.expandedGroups, + }); + + document.querySelectorAll('.seg').forEach(s => s.classList.remove('active')); + seg.classList.add('active'); + State.mode = newMode; + + // Stand fuer neuen Mode wiederherstellen — falls da + const cached = State.modeCache.get(newMode); + if (cached) { + State.targets = cached.targets; + State.selectedTargetIds = new Set(cached.selectedIds); + State.expandedGroups = cached.expandedGroups; + } else { + State.targets = []; + State.selectedTargetIds = new Set(); + State.expandedGroups = new Map(); + } + // Membership-Cache leeren da Targets sich aendern → andere Mitgliedschafts-Resultate + State.membershipCache.clear(); + + const search = document.getElementById('targetSearch'); + const hint = document.getElementById('userSearchHint'); + if (newMode === 'user') { + search.placeholder = 'Tippe Name oder UPN...'; + hint.classList.remove('hidden'); + // Suchwert bei User-Mode immer leer starten + search.value = ''; + search.focus(); + try { search.setSelectionRange(0, 0); } catch {} + } else { + search.placeholder = 'Filtern...'; + hint.classList.add('hidden'); + search.value = ''; + } + + renderTargets(); + onTargetSelectionChange(); + + // Auto-Load nur wenn fuer diesen Mode noch nichts geladen wurde UND es kein User-Mode ist + if (State.connected && newMode !== 'user' && !State.loadedModes.has(newMode) && State.targets.length === 0) { + loadTargets({ silent: false }); + } + }); +}); + +// ============================================================= +// Targets +// ============================================================= + +document.getElementById('btnReloadTargets').addEventListener('click', () => { + if (State.mode === 'user') { + const term = document.getElementById('targetSearch').value; + if (!term || term.length < 2) { + document.getElementById('targetSearch').focus(); + toast('Tippe mind. 2 Zeichen für Benutzersuche', 'warn'); + return; + } + runUserSearch(term); + } else { + State.loadedModes.delete(State.mode); + loadTargets({ silent: false }); + } +}); + +document.getElementById('targetSearch').addEventListener('input', e => { + if (State.mode === 'user') { + debouncedUserSearch(e.target.value); + } else { + renderTargets(); + } +}); + +// Enter key triggers explicit user search +document.getElementById('targetSearch').addEventListener('keydown', e => { + if (e.key === 'Enter' && State.mode === 'user') { + const term = e.target.value; + if (term && term.length >= 2) runUserSearch(term); + } +}); + +document.getElementById('btnTargetsSelectAll').addEventListener('click', () => { + getFilteredTargets().forEach(t => State.selectedTargetIds.add(t.Id)); + renderTargets(); + onTargetSelectionChange(); +}); + +document.getElementById('btnTargetsClear').addEventListener('click', () => { + State.selectedTargetIds.clear(); + renderTargets(); + onTargetSelectionChange(); +}); + +let userSearchTimer = null; +let userSearchAbort = null; +let userSearchCache = { query: '', results: [] }; + +function debouncedUserSearch(term) { + clearTimeout(userSearchTimer); + const t = (term || '').trim(); + if (t.length < 2) { + State.targets = []; + userSearchCache = { query: '', results: [] }; + renderTargets(); + return; + } + + // Optimistic: wenn neue Anfrage Verfeinerung der vorigen ist + // → sofort lokal filtern, kein Server-Request, NULL Latenz + const lower = t.toLowerCase(); + const cachedLower = userSearchCache.query.toLowerCase(); + if (cachedLower && lower.startsWith(cachedLower) && userSearchCache.results.length > 0) { + State.targets = userSearchCache.results.filter(u => + (u.DisplayName || '').toLowerCase().includes(lower) || + (u.UserPrincipalName || '').toLowerCase().includes(lower) || + (u.Mail || '').toLowerCase().includes(lower)); + renderTargets(); + return; + } + + userSearchTimer = setTimeout(() => runUserSearch(t), 220); +} + +async function runUserSearch(term) { + if (!State.connected) { toast('Bitte zuerst verbinden', 'warn'); return; } + + // Vorherige Anfrage abbrechen — sonst stapeln sich die Requests beim Tippen + if (userSearchAbort) { + try { userSearchAbort.abort(); } catch {} + } + userSearchAbort = new AbortController(); + const signal = userSearchAbort.signal; + + document.getElementById('targetList').innerHTML = ` +
+
+
+
+
`; + try { + const resp = await fetch('/api/users?q=' + encodeURIComponent(term), { + headers: { 'Content-Type': 'application/json' }, + signal, + }); + let data = {}; + try { data = await resp.json(); } catch {} + if (signal.aborted) return; + if (!resp.ok) throw new Error(data.error || `HTTP ${resp.status}`); + + State.targets = data.items || []; + userSearchCache = { query: term, results: State.targets.slice() }; + // Selektion auf das neue Result-Set einschraenken — sonst bleibt der alte + // User im selectedTargetIds-Set haengen und verfaelscht alle Membership- + // Anfragen (status wird Partial/None weil der alte User nicht mehr matcht). + if (State.selectedTargetIds.size > 0) { + const visibleIds = new Set(State.targets.map(t => t.Id)); + const before = State.selectedTargetIds.size; + for (const id of [...State.selectedTargetIds]) { + if (!visibleIds.has(id)) State.selectedTargetIds.delete(id); + } + if (State.selectedTargetIds.size !== before) { + State.membershipCache.clear(); + } + } + renderTargets(); + onTargetSelectionChange(); + if (State.targets.length === 0) toast(`Keine Benutzer für "${term}" gefunden`, 'warn'); + } catch (e) { + if (e.name === 'AbortError') return; // neue Suche laeuft schon + toast(e.message, 'err', 'Benutzersuche fehlgeschlagen'); + renderTargets(); + } +} + +let loadTargetsInFlight = null; // welcher Mode laeuft gerade + +async function loadTargets(opts = {}) { + if (!State.connected) { toast('Bitte zuerst verbinden', 'warn'); return; } + if (State.mode === 'user') { + const term = document.getElementById('targetSearch').value; + if (!term || term.length < 2) { + document.getElementById('targetSearch').focus(); + toast('Tippe mind. 2 Zeichen, um Benutzer zu suchen', 'warn'); + return; + } + return runUserSearch(term); + } + + const requestedMode = State.mode; + if (loadTargetsInFlight === requestedMode) return; // gleiche Anfrage laeuft bereits + loadTargetsInFlight = requestedMode; + + if (!opts.silent) setLoading('Lade ' + (requestedMode === 'rpa' ? 'RPA-Gruppen' : 'Abteilungen') + '...'); + document.getElementById('targetList').innerHTML = ` +
+
+
+
+
+
`; + try { + const url = requestedMode === 'rpa' ? '/api/groups/rpa' : '/api/groups'; + const res = await api(url); + // User koennte zwischenzeitlich den Tab gewechselt haben — Resultat verwerfen + if (State.mode !== requestedMode) return; + State.targets = res.items || []; + State.loadedModes.add(requestedMode); + State.selectedTargetIds.clear(); + State.membershipCache.clear(); + // Cache fuer diesen Mode aktualisieren + State.modeCache.set(requestedMode, { + targets: State.targets.slice(), + selectedIds: new Set(), + expandedGroups: new Map(), + }); + renderTargets(); + onTargetSelectionChange(); + if (!opts.silent) toast(`${res.count} ${requestedMode === 'rpa' ? 'RPA-Gruppen' : 'Abteilungen'} geladen`, 'ok'); + } catch (e) { + if (State.mode === requestedMode) { + toast(e.message, 'err', 'Laden fehlgeschlagen'); + renderTargets(); + } + } finally { + if (loadTargetsInFlight === requestedMode) loadTargetsInFlight = null; + if (!opts.silent) clearLoading(); + } +} + +function getFilteredTargets() { + const q = document.getElementById('targetSearch').value.toLowerCase().trim(); + if (!q || State.mode === 'user') return State.targets; + return State.targets.filter(t => + (t.DisplayName || '').toLowerCase().includes(q) || + (t.UserPrincipalName || '').toLowerCase().includes(q) + ); +} + +function renderTargets() { + const list = document.getElementById('targetList'); + const cnt = document.getElementById('targetCount'); + cnt.textContent = State.targets.length; + + const filtered = getFilteredTargets(); + + if (!State.connected) { + list.innerHTML = emptyState({ + title: 'Nicht verbunden', + text: 'Verbinde dich zuerst mit Microsoft Graph.', + }); + return; + } + + if (filtered.length === 0) { + if (State.mode === 'user') { + const term = document.getElementById('targetSearch').value; + list.innerHTML = emptyState({ + title: term && term.length >= 2 ? 'Keine Treffer' : 'Benutzer suchen', + text: term && term.length >= 2 + ? `Keine Benutzer für "${escapeHtml(term)}" gefunden.` + : 'Tippe mind. 2 Zeichen — Name, UPN oder E-Mail.', + }); + } else { + list.innerHTML = emptyState({ + title: State.targets.length === 0 ? 'Wird geladen...' : 'Keine Treffer', + text: State.targets.length === 0 + ? 'Wenn nichts kommt, klicke auf das Refresh-Icon oben rechts.' + : 'Filter zurücksetzen oder neu laden.', + }); + } + return; + } + + const isGroupMode = State.mode === 'dept' || State.mode === 'rpa'; + + list.innerHTML = filtered.map(t => { + const checked = State.selectedTargetIds.has(t.Id) ? 'checked' : ''; + const meta = t.UserPrincipalName + ? `
${escapeHtml(t.UserPrincipalName)}${t.Department ? ' · ' + escapeHtml(t.Department) : ''}
` + : ''; + const isSel = State.selectedTargetIds.has(t.Id) ? 'selected' : ''; + const isEmpty = isGroupMode && t.HasMembers === false ? 'empty' : ''; + const expanded = isGroupMode && State.expandedGroups.has(t.Id); + const expandBtn = isGroupMode + ? `` + : ''; + const expandedHtml = expanded ? renderExpandedMembers(t.Id, t.DisplayName) : ''; + // Externe Direkt-Links als dezente Icons rechts neben dem Namen. + // User → Entra-User. Gruppe → Entra-Gruppe + Mitglieder-Tab. + const linkIcons = t.UserPrincipalName + ? `${entraUserLink(t.Id, t.DisplayName)}${teamsChatLink(t.UserPrincipalName, t.DisplayName)}` + : `${entraGroupLink(t.Id, t.DisplayName)}${membersTabLink(t.Id, t.DisplayName)}`; + return `
+ + ${expandedHtml} +
`; + }).join(''); + + list.querySelectorAll('.target-row').forEach(row => { + row.addEventListener('change', e => { + const id = row.dataset.id; + if (e.target.checked) State.selectedTargetIds.add(id); + else State.selectedTargetIds.delete(id); + row.classList.toggle('selected', e.target.checked); + onTargetSelectionChange(); + }); + }); + + list.querySelectorAll('.row-expand').forEach(btn => { + btn.addEventListener('click', e => { + e.preventDefault(); + e.stopPropagation(); + toggleGroupExpand(btn.dataset.groupId, btn.dataset.groupName); + }); + }); + + attachExpandedHandlers(list); +} + +function onTargetSelectionChange() { + State.membershipCache.clear(); + renderPinnedTargets(); + renderApps(); + renderExisting(); + updateMembershipForVisibleApps(); + renderSession(); + updateStepper(); +} + +function collectAllSelectedTargets() { + // Liefert [{ id, name, mode, meta }] ueber alle Modi hinweg. + // Aktueller Mode kommt aus State.targets/State.selectedTargetIds, + // andere Modi aus State.modeCache. + const all = []; + const seen = new Set(); + const push = (mode, targets, selectedIds) => { + const byId = new Map(targets.map(t => [t.Id, t])); + selectedIds.forEach(id => { + if (seen.has(id)) return; + seen.add(id); + const t = byId.get(id); + const name = t ? (t.DisplayName || id) : id; + const meta = t && t.UserPrincipalName ? t.UserPrincipalName : ''; + all.push({ id, name, mode, meta, hasMembers: t ? t.HasMembers : undefined }); + }); + }; + push(State.mode, State.targets, State.selectedTargetIds); + for (const m of ['dept','rpa','user']) { + if (m === State.mode) continue; + const c = State.modeCache.get(m); + if (c && c.selectedIds && c.selectedIds.size > 0) push(m, c.targets || [], c.selectedIds); + } + return all; +} + +function renderPinnedTargets() { + const wrap = document.getElementById('pinnedTargets'); + if (!wrap) return; + const items = collectAllSelectedTargets(); + if (items.length === 0) { + wrap.classList.add('hidden'); + wrap.innerHTML = ''; + return; + } + wrap.classList.remove('hidden'); + + const modeLabels = { dept: 'Abt', rpa: 'RPA', user: 'User' }; + const chips = items.map(it => { + const isEmpty = it.hasMembers === false ? 'pin-empty' : ''; + const title = `${it.name}${it.meta ? ' · ' + it.meta : ''} (${modeLabels[it.mode] || it.mode}) — Klick: zur Zeile springen, X: entfernen`; + return ` + ${escapeHtml(modeLabels[it.mode] || it.mode)} + ${escapeHtml(it.name)} + + `; + }).join(''); + + wrap.innerHTML = ` +
+ Aktuelle Auswahl + ${items.length} + +
+
${chips}
+ `; + + wrap.querySelectorAll('.pin-remove').forEach(btn => { + btn.addEventListener('click', e => { + e.stopPropagation(); + removePinned(btn.dataset.id, btn.dataset.mode); + }); + }); + wrap.querySelectorAll('.pin-chip').forEach(chip => { + chip.addEventListener('click', e => { + if (e.target.closest('.pin-remove')) return; + jumpToPinned(chip.dataset.id, chip.dataset.mode); + }); + }); + wrap.querySelector('.pin-clear-all').addEventListener('click', clearAllPinned); +} + +function removePinned(id, mode) { + if (mode === State.mode) { + State.selectedTargetIds.delete(id); + } else { + const c = State.modeCache.get(mode); + if (c && c.selectedIds) c.selectedIds.delete(id); + } + renderTargets(); + onTargetSelectionChange(); +} + +function clearAllPinned() { + State.selectedTargetIds.clear(); + for (const m of ['dept','rpa','user']) { + const c = State.modeCache.get(m); + if (c && c.selectedIds) c.selectedIds.clear(); + } + renderTargets(); + onTargetSelectionChange(); +} + +function jumpToPinned(id, mode) { + if (mode !== State.mode) { + const seg = document.querySelector(`.seg[data-mode="${mode}"]`); + if (seg) seg.click(); + // Nach Mode-Wechsel kurz warten, bis renderTargets durchgelaufen ist + setTimeout(() => focusTargetRow(id), 50); + } else { + focusTargetRow(id); + } +} + +function focusTargetRow(id) { + const row = document.querySelector(`#targetList .target-row[data-id="${CSS.escape(id)}"]`); + if (!row) return; + row.scrollIntoView({ behavior: 'smooth', block: 'center' }); + row.classList.add('flash'); + setTimeout(() => row.classList.remove('flash'), 1200); +} + +// ============================================================= +// Apps +// ============================================================= + +document.getElementById('btnReloadApps').addEventListener('click', () => loadApps(true)); + +document.getElementById('appSearch').addEventListener('input', e => { + State.appFilter.search = e.target.value.toLowerCase().trim(); + renderApps(); +}); +document.getElementById('appFilter').addEventListener('change', e => { + State.appFilter.preset = e.target.value; + renderApps(); +}); +document.getElementById('appCategoryFilter').addEventListener('change', e => { + State.appFilter.category = e.target.value; + renderApps(); +}); +document.getElementById('chkOnlyMember').addEventListener('change', e => { + State.appFilter.onlyMember = e.target.checked; + renderApps(); +}); +document.getElementById('chkHideNative').addEventListener('change', e => { + State.appFilter.hideNative = e.target.checked; + renderApps(); +}); + +// Date-Range Filter (Zuletzt geaendert) — flatpickr ersetzt den nativen +// date-input Popup. flatpickr garantiert konsistentes Look-and-Feel und +// vermeidet den Chromium-Quirk mit schwarzem Initial-Render des Popups. +(function setupDateModFilter() { + const inFrom = document.getElementById('dateModFrom'); + const inTo = document.getElementById('dateModTo'); + const btnX = document.getElementById('dateModClear'); + if (!inFrom || !inTo || !btnX) return; + + // Native type="date" auf type="text" umstellen — sonst klatscht der + // Browser sein Picker-UI ueber das von flatpickr drueber. + inFrom.type = 'text'; + inTo.type = 'text'; + inFrom.placeholder = 'tt.mm.jjjj'; + inTo.placeholder = 'tt.mm.jjjj'; + + const syncClearVisibility = () => { + btnX.hidden = !(State.appFilter.modFrom || State.appFilter.modTo); + }; + + const commonOpts = { + dateFormat: 'Y-m-d', // intern speichern wir ISO (matched Backend-Format) + altInput: true, // zweites Input fuer die Anzeige in DE-Format + altFormat: 'd.m.Y', // angezeigt: 18.05.2026 + allowInput: true, + locale: { + weekdays: { shorthand: ['So','Mo','Di','Mi','Do','Fr','Sa'], longhand: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'] }, + months: { + shorthand: ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'], + longhand: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'], + }, + firstDayOfWeek: 1, + rangeSeparator: ' bis ', + }, + }; + + const fpFrom = window.flatpickr(inFrom, Object.assign({}, commonOpts, { + onChange: (sel, str) => { + State.appFilter.modFrom = str || ''; + // "Bis" darf nicht vor "Von" liegen + if (fpTo && sel[0]) fpTo.set('minDate', sel[0]); + syncClearVisibility(); + renderApps(); + }, + })); + const fpTo = window.flatpickr(inTo, Object.assign({}, commonOpts, { + onChange: (sel, str) => { + State.appFilter.modTo = str || ''; + if (fpFrom && sel[0]) fpFrom.set('maxDate', sel[0]); + syncClearVisibility(); + renderApps(); + }, + })); + + btnX.addEventListener('click', () => { + fpFrom.clear(); + fpTo.clear(); + fpFrom.set('maxDate', null); + fpTo.set('minDate', null); + State.appFilter.modFrom = ''; + State.appFilter.modTo = ''; + syncClearVisibility(); + renderApps(); + }); +})(); + +async function loadApps(force, opts = {}) { + if (!State.connected) { toast('Bitte zuerst verbinden', 'warn'); return; } + if (!opts.silent) setLoading(force ? 'Lade Apps neu (kann Sekunden dauern)...' : 'Lade Apps aus Intune...'); + document.getElementById('appList').innerHTML = ` +
+
+
+
+
+
+
`; + try { + const url = force ? '/api/apps?refresh=true' : '/api/apps'; + const res = await api(url); + State.apps = res.items || []; + State.appsLoaded = true; + if (force) { + State.appDetails.clear(); + State.expandedApps.clear(); + } + rebuildCategoryFilterOptions(); + renderApps(); + updateMembershipForVisibleApps(); + if (!opts.silent) toast(`${res.count} Apps ${res.cached ? 'aus Cache' : 'geladen'}`, 'ok'); + // Kategorien NACH dem App-Laden im Hintergrund holen (separater $batch im + // Backend) — blockiert das App-Laden nicht. Fuellt danach den Kategorie-Filter. + loadAppCategoriesInBackground(); + } catch (e) { + toast(e.message, 'err', 'Apps laden fehlgeschlagen'); + renderApps(); + } finally { + if (!opts.silent) clearLoading(); + } +} + +async function loadAppCategoriesInBackground() { + // Holt die appId->Kategorien-Map separat (Backend nutzt $batch) und merged + // sie in die geladene App-Liste, dann Filter neu aufbauen. Fehler werden + // still verschluckt — die App-Liste funktioniert auch ohne Kategorien. + try { + const res = await api('/api/apps/categories', { timeoutMs: 300000 }); + const map = res && res.map ? res.map : {}; + let any = false; + for (const a of State.apps) { + if (Object.prototype.hasOwnProperty.call(map, a.AppId)) { + a.Categories = map[a.AppId] || []; + any = true; + } + } + if (any) { + rebuildCategoryFilterOptions(); + // Nur neu rendern wenn ein Kategorie-Filter aktiv ist (sonst unnoetig) + if (State.appFilter.category) renderApps(); + } + } catch (e) { + // bewusst still — Kategorien sind optional fuer den Filter + console.warn('Kategorien-Hintergrundladen fehlgeschlagen:', e.message); + } +} + +function getFilteredApps() { + let list = State.apps.slice(); + const f = State.appFilter; + if (f.search) list = list.filter(a => (a.AppName || '').toLowerCase().includes(f.search)); + switch (f.preset) { + case 'none': list = list.filter(a => a.AvailableCount === 0 && a.RequiredCount === 0); break; + case 'available': list = list.filter(a => a.AvailableCount > 0 && a.RequiredCount === 0); break; + case 'required': list = list.filter(a => a.RequiredCount > 0 && a.AvailableCount === 0); break; + case 'multipleAvail':list = list.filter(a => a.AvailableCount > 1); break; + case 'multipleReq': list = list.filter(a => a.RequiredCount > 1); break; + case 'allUsers': list = list.filter(a => + a.AvailableGroups.some(g => g.GroupId === 'ALL_USERS') || + a.RequiredGroups.some(g => g.GroupId === 'ALL_USERS')); break; + case 'allDevices': list = list.filter(a => + a.AvailableGroups.some(g => g.GroupId === 'ALL_DEVICES') || + a.RequiredGroups.some(g => g.GroupId === 'ALL_DEVICES')); break; + case 'srcIntune': list = list.filter(a => a.Source === 'Intune'); break; + default: + // Generisch "srcVendor:" — vendor.displayName aus Settings-Map ziehen + if (typeof f.preset === 'string' && f.preset.startsWith('srcVendor:')) { + const vid = f.preset.substring('srcVendor:'.length); + const v = (SettingsState.vendorsById || {})[vid]; + if (v) list = list.filter(a => a.Source === v.displayName); + } + break; + } + // Kategorie-Filter: leerer Wert = alle. Spezialwert '__none__' = Apps ohne + // zugewiesene Kategorie. Sonst exakter Match auf einen Kategorie-Namen. + if (f.category) { + if (f.category === '__none__') { + list = list.filter(a => !Array.isArray(a.Categories) || a.Categories.length === 0); + } else { + list = list.filter(a => Array.isArray(a.Categories) && a.Categories.includes(f.category)); + } + } + if (f.hideNative) { + list = list.filter(a => + !a.AvailableGroups.some(g => g.IsNative) && + !a.RequiredGroups.some(g => g.IsNative)); + } + if (f.onlyMember) { + list = list.filter(a => { + const all = [...a.AvailableGroups, ...a.RequiredGroups]; + return all.some(g => { + const m = getCachedMembership(g.GroupId); + return m && (m.status === 'Full' || m.status === 'Partial'); + }); + }); + } + // Zeitraum-Filter auf LastModifiedDateTime — von/bis inklusive + if (f.modFrom || f.modTo) { + const fromMs = f.modFrom ? Date.parse(f.modFrom + 'T00:00:00') : null; + // "Bis" inklusiv: bis Ende des Tages (23:59:59.999) + const toMs = f.modTo ? Date.parse(f.modTo + 'T23:59:59.999') : null; + list = list.filter(a => { + if (!a.LastModifiedDateTime) return false; + const t = Date.parse(a.LastModifiedDateTime); + if (isNaN(t)) return false; + if (fromMs !== null && t < fromMs) return false; + if (toMs !== null && t > toMs) return false; + return true; + }); + } + return list; +} + +function renderApps() { + const list = document.getElementById('appList'); + const cnt = document.getElementById('appCount'); + const total = State.apps.length; + const filtered = getFilteredApps(); + cnt.textContent = total === filtered.length ? total : `${filtered.length}/${total}`; + + if (!State.connected) { + list.innerHTML = emptyState({ + title: 'Nicht verbunden', + text: 'Verbinde dich zuerst mit Microsoft Graph.', + }); + return; + } + + if (State.apps.length === 0) { + list.innerHTML = emptyState({ + title: 'Apps werden geladen...', + text: 'Falls nicht, klicke auf das Refresh-Icon oben rechts.', + }); + return; + } + + if (filtered.length === 0) { + list.innerHTML = emptyState({ + title: 'Keine Treffer', + text: 'Filter oder Suche zurücksetzen.', + }); + return; + } + + list.innerHTML = filtered.map(app => renderAppRow(app)).join(''); + list.querySelectorAll('.app-row-wrap').forEach(wrap => attachAppRowEvents(wrap)); +} + +function renderAppRow(app) { + const sessionPills = State.session.filter(s => s.appId === app.AppId); + + // Aggregierter Member-Status fuer den Indikator vor App-Name + let isFullMember = false, isPartialMember = false; + if (State.selectedTargetIds.size > 0) { + for (const g of [...app.AvailableGroups, ...app.RequiredGroups]) { + if (g.IsNative) continue; + const m = getCachedMembership(g.GroupId); + if (!m) continue; + if (m.status === 'Full') isFullMember = true; + if (m.status === 'Partial') isPartialMember = true; + } + } + const statusDot = isFullMember + ? `✓` + : (isPartialMember ? `◐` : ''); + + const queuedCount = sessionPills.length; + const queuedBadge = queuedCount > 0 ? `${queuedCount}` : ''; + + // Sammel-Button pro Typ. Klick: + // - 1 zuweisbare Gruppe → direkt zu den geplanten Zuweisungen hinzufuegen + // - mehrere → Popover mit Auswahl + // - nur native → disabled + const renderTypeButton = (groups, type) => { + if (groups.length === 0) return ''; + const assignable = groups.filter(g => !g.IsNative); + const queuedForType = sessionPills.filter(s => s.type === type).length; + + let memberCls = ''; + if (State.selectedTargetIds.size > 0) { + let full = false, partial = false; + for (const g of assignable) { + const m = getCachedMembership(g.GroupId); + if (!m) continue; + if (m.status === 'Full') full = true; + if (m.status === 'Partial') partial = true; + } + if (full) memberCls = 'member-full'; + else if (partial) memberCls = 'member-partial'; + } + + const isNativeOnly = assignable.length === 0; + const hasQueued = queuedForType > 0; + const cls = ['type-btn', `type-${type.toLowerCase()}`, + isNativeOnly ? 'native-only' : '', + hasQueued ? 'has-queued' : '', + memberCls].filter(Boolean).join(' '); + + const countSuffix = assignable.length > 1 ? `${assignable.length}` : ''; + const queuedSuffix = hasQueued ? `${queuedForType}` : ''; + + let title; + if (isNativeOnly) { + title = `Nur native Zuweisung (${groups.map(g => g.GroupName).join(', ')}) — nicht änderbar`; + } else if (groups.length === 1) { + title = `${type}: ${assignable[0].GroupName}\nKlick: zu geplanten Zuweisungen hinzufügen`; + } else { + title = `${type} (${groups.length} Gruppen) — Klick zum Auswählen:\n • ` + assignable.map(g => g.GroupName).join('\n • '); + } + + return ``; + }; + + const availBtn = renderTypeButton(app.AvailableGroups, 'Available'); + const reqBtn = renderTypeButton(app.RequiredGroups, 'Required'); + const createBtn = ``; + + const hasNoAssignments = app.AvailableGroups.length === 0 && app.RequiredGroups.length === 0; + // Direkt-Link in das Intune Admin Center fuer diese App (dezentes Icon, NICHT der Name selbst) + const intuneIcon = intuneAppLink(app.AppId, app.AppName); + // Source-Badge: pro Vendor (aus Settings) ODER Intune-Default. + const vendor = (SettingsState.vendorsByDisplayName || {})[app.Source]; + const srcLogo = vendor ? `/assets/${encodeURIComponent(vendor.logoFile || 'application.png')}` : '/assets/intune.png'; + const srcUrl = vendor ? (vendor.portalUrl || 'https://intune.microsoft.com/') : 'https://intune.microsoft.com/'; + const srcTitle = vendor ? `Bereitgestellt durch ${vendor.displayName} — Portal öffnen` : 'Native Intune-App — Intune öffnen'; + const srcClass = vendor ? `src-${escapeHtml(vendor.id)}` : 'src-intune'; + // Fallback: wenn das Vendor-Logo nicht da ist, zeigen wir den ersten Buchstaben des Vendor-Namens. + const srcFallback = vendor ? `this.replaceWith(Object.assign(document.createElement('span'), { className: 'app-source app-source-letter ${srcClass}', textContent: '${escapeHtml(vendor.displayName[0] || '?')}' }))` : ''; + const srcBadge = `${srcTitle}`; + // Vendor-managed Apps koennen NUR im jeweiligen Portal geloescht/umbenannt + // werden. Wir zeigen ein passives Lock-Icon mit Erklaerung statt Trash/Pencil. + const deleteLocked = !!(vendor && vendor.block && vendor.block.delete); + const renameLocked = !!(vendor && vendor.block && vendor.block.rename); + const deleteBtn = deleteLocked + ? `${LOCK_ICON}` + : ``; + const expanded = State.expandedApps.has(app.AppId); + const detailHtml = expanded ? renderAppDetailPanel(app.AppId) : ''; + return `
+
+
${statusDot}
+
+
+ ${escapeHtml(app.AppName)} + ${queuedBadge} + + ${renameLocked + ? `${LOCK_ICON}` + : ``} + ${intuneIcon} + +
+ ${app.Publisher ? `
${escapeHtml(app.Publisher)}
` : ''} +
+
${srcBadge}
+
${escapeHtml(app.AppType)}
+
${app.Version ? `${escapeHtml(app.Version)}` : '—'}
+
${availBtn || '—'}
+
${reqBtn || '—'}
+
${createBtn}
+
${deleteBtn}
+
+ ${detailHtml} +
`; +} + +function renderAssignmentsSection(app) { + // Zwei Listen: Available + Required. Native (All Users / All Devices) werden + // mitgezeigt aber als nicht-loeschbar markiert. + const renderGroupList = (groups, type) => { + if (!groups || groups.length === 0) { + return `
Keine ${type === 'available' ? 'Available' : 'Required'}-Zuweisungen.
`; + } + return `
    ${groups.map(g => { + const isNative = g.IsNative; + const memb = getCachedMembership(g.GroupId); + let mLabel = ''; + if (memb && !isNative) { + if (memb.status === 'Full') mLabel = `alle Mitglied`; + else if (memb.status === 'Partial') mLabel = `${memb.matched}/${memb.total} Mitglied`; + } + const linkIcons = isNative + ? `native` + : `${entraGroupLink(g.GroupId, g.GroupName)}${membersTabLink(g.GroupId, g.GroupName)}`; + const delBtn = isNative + ? '' + : ``; + return `
  • + ${escapeHtml(g.GroupName)} + ${mLabel} + ${linkIcons}${delBtn} +
  • `; + }).join('')}
`; + }; + + const avail = renderGroupList(app.AvailableGroups, 'available'); + const req = renderGroupList(app.RequiredGroups, 'required'); + + return `
+
Zuweisungen
+
+
+
Available${app.AvailableGroups.length}
+ ${avail} +
+
+
Required${app.RequiredGroups.length}
+ ${req} +
+
+
`; +} + +function renderAppDetailPanel(appId) { + const entry = State.appDetails.get(appId); + if (!entry || entry.loading) { + return `
+
Lade Details aus Intune...
+
`; + } + if (entry.error) { + return `
+
Konnte Details nicht laden: ${escapeHtml(entry.error)}
+
`; + } + const d = entry.details || {}; + + const row = (label, value, opts = {}) => { + if (value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0)) return ''; + let v = value; + if (Array.isArray(v)) { + // Defensiv gegen Backend-Bugs: wenn Items Objekte sind, displayName/name + // extrahieren statt "[object Object]" zu rendern. + v = v.map(item => { + if (item === null || item === undefined) return ''; + if (typeof item === 'string' || typeof item === 'number' || typeof item === 'boolean') return String(item); + if (typeof item === 'object') return item.displayName || item.DisplayName || item.name || item.Name || item.id || ''; + return String(item); + }).filter(s => s !== '').join(', '); + if (!v) return ''; + } + if (typeof v === 'boolean') v = v ? 'Ja' : 'Nein'; + // Letzte Verteidigung: wenn v immer noch ein Objekt ist (single value). + if (v && typeof v === 'object') { + v = v.displayName || v.DisplayName || v.name || v.Name || v.id || JSON.stringify(v); + } + const cls = opts.mono ? 'app-detail-val mono' : 'app-detail-val'; + const copy = opts.copy ? `` : ''; + return `
+
${escapeHtml(label)}
+
${escapeHtml(String(v))}${copy}
+
`; + }; + + const fmtDate = (s) => { + if (!s) return null; + // Defensiv: new Date() wirft KEINE Exception, gibt aber Invalid Date + // zurueck — also explizit pruefen. Auch Legacy "/Date(ms)/" akzeptieren. + let d = new Date(s); + if (isNaN(d.getTime())) { + const m = String(s).match(/\/Date\((-?\d+)/); + if (m) d = new Date(Number(m[1])); + } + if (isNaN(d.getTime())) return null; + return d.toLocaleString('de-DE', { + day: '2-digit', month: '2-digit', year: 'numeric', + hour: '2-digit', minute: '2-digit', + }); + }; + + const sections = []; + + // Zuweisungen: zuerst — direkt sichtbar nach dem Aufklappen + const app = State.apps.find(a => a.AppId === appId); + if (app) { + sections.push(renderAssignmentsSection(app)); + } + + // Allgemein + const general = [ + row('Hersteller', d.Publisher), + row('Entwickler', d.Developer), + row('Owner', d.Owner), + row('Version', d.DisplayVersion || d.Version || d.ProductVersion), + row('Typ', d.Type), + row('Architekturen', d.Architectures), + row('Min. OS', d.MinimumOS), + row('Kategorien', (Array.isArray(d.Categories) && d.Categories.length > 0) ? d.Categories : 'Default'), + row('Install-Kontext', d.InstallExperience), + row('Featured', d.IsFeatured), + ].filter(Boolean).join(''); + if (general) sections.push(`
Allgemein
${general}
`); + + // Beschreibung + if (d.Description || d.Notes) { + let desc = ''; + if (d.Description) desc += `
${renderMarkdown(d.Description)}
`; + if (d.Notes) desc += `
Notizen: ${renderMarkdown(d.Notes)}
`; + sections.push(`
Beschreibung
${desc}
`); + } + + // Install / Uninstall + const installRows = [ + row('Datei', d.FileName, { mono: true }), + row('Setup-Pfad', d.SetupFilePath, { mono: true }), + row('Install-Befehl', d.InstallCommandLine, { mono: true, copy: true }), + row('Uninstall-Befehl', d.UninstallCommandLine, { mono: true, copy: true }), + row('Command-Line', d.CommandLine, { mono: true, copy: true }), + ].filter(Boolean).join(''); + if (installRows) sections.push(`
Installation
${installRows}
`); + + // MSI + if (d.Msi) { + const msiRows = [ + row('Product Code', d.Msi.ProductCode, { mono: true, copy: true }), + row('Upgrade Code', d.Msi.UpgradeCode, { mono: true, copy: true }), + row('Product Version', d.Msi.ProductVersion), + row('Publisher (MSI)', d.Msi.Publisher), + row('Package-Type', d.Msi.PackageType), + row('Reboot nötig', d.Msi.RequiresReboot), + ].filter(Boolean).join(''); + if (msiRows) sections.push(`
MSI
${msiRows}
`); + } + + // Detection-Rules — wide weil Registry-Pfade lang werden koennen + if (d.DetectionRules && d.DetectionRules.length) { + sections.push(`
+
Detection
+
    ${d.DetectionRules.map(r => `
  • ${escapeHtml(r)}
  • `).join('')}
+
`); + } + + // Return-Codes + if (d.ReturnCodes && d.ReturnCodes.length) { + const rows = d.ReturnCodes.map(rc => `
  • ${escapeHtml(String(rc.Code))} · ${escapeHtml(rc.Type)}
  • `).join(''); + sections.push(`
    Return-Codes
      ${rows}
    `); + } + + // Meta + const metaRows = [ + row('Erstellt', fmtDate(d.CreatedDateTime)), + row('Geändert', fmtDate(d.LastModifiedDateTime)), + d.InformationUrl ? `` : '', + d.PrivacyInformationUrl ? `` : '', + ].filter(Boolean).join(''); + if (metaRows) sections.push(`
    Meta
    ${metaRows}
    `); + + // Installationen — Stats aus installSummary (Erfolg/Fehler je User/Device) + if (d.InstallSummary) { + sections.push(renderInstallStatsSection(d.InstallSummary)); + } + + // Dependencies — Voraussetzungen dieser App + if (d.Dependencies && d.Dependencies.length) { + sections.push(renderRelationshipFlow({ + title: 'Abhängigkeiten', + subtitle: 'Apps, die installiert sein müssen, bevor diese App installiert werden kann.', + centerApp: { AppId: appId, AppName: d.DisplayName || 'Diese App' }, + related: d.Dependencies, + direction: 'incoming', // Pfeile von dep -> diese App + kindLabelFn: (r) => r.DependencyType === 'autoInstall' ? 'autoInstall' : 'detect', + explanationFn: (center, r) => { + const c = `${escapeHtml(center.AppName)}`; + const t = `${escapeHtml(r.TargetDisplayName || r.TargetId)}`; + if (r.DependencyType === 'autoInstall') { + return `Wenn ${c} einem Gerät zugewiesen wird, installiert Intune zuvor automatisch ${t} mit.`; + } + return `${c} erwartet, dass ${t} bereits installiert ist. Intune installiert es nicht automatisch — manuelle Bereitstellung nötig (Modus „detect“).`; + }, + })); + } + + // Supersedence — was diese App ersetzt/aktualisiert + if (d.Supersedence && d.Supersedence.length) { + sections.push(renderRelationshipFlow({ + title: 'Supersedence', + subtitle: 'Ältere Apps, die durch diese App ersetzt oder aktualisiert werden.', + centerApp: { AppId: appId, AppName: d.DisplayName || 'Diese App' }, + related: d.Supersedence, + direction: 'outgoing', // Pfeile diese App -> ersetzte App + kindLabelFn: (r) => r.SupersedenceType === 'replace' ? 'replace' : 'update', + explanationFn: (center, r) => { + const c = `${escapeHtml(center.AppName)}`; + const t = `${escapeHtml(r.TargetDisplayName || r.TargetId)}`; + if (r.SupersedenceType === 'replace') { + return `Bei der Installation deinstalliert ${c} eine vorhandene Version von ${t} und ersetzt sie vollständig (Modus „replace“).`; + } + return `${c} aktualisiert eine vorhandene Installation von ${t} (Modus „update“) — Benutzerdaten und Konfiguration bleiben erhalten.`; + }, + })); + } + + // Setup-Datei aktualisieren — Phase 1: nur win32LobApp (.intunewin), + // und nur fuer NICHT vendor-managed Apps (PMPC/Robopack ausgeschlossen). + if (app && app.AppTypeRaw === '#microsoft.graph.win32LobApp' + && !(SettingsState.vendorsByDisplayName || {})[app.Source]) { + sections.push(`
    +
    Setup-Datei
    +
    + +
    Lädt eine neue .intunewin hoch und aktiviert sie als neue Version. Betrifft alle zugewiesenen Geräte beim nächsten Sync.
    +
    +
    `); + } + + if (sections.length === 0) { + return `
    Keine zusätzlichen Details verfügbar.
    `; + } + + return `
    ${sections.join('')}
    `; +} + +// ============================================================= +// App-Detail: Installations-Statistik + Relationship-Flow-Viz +// ============================================================= + +function renderInstallStatsSection(s) { + // Berechnet einen kleinen Erfolgs-Quotient (Installed / (Installed + Failed)) + // pro Achse. Wenn keine Vorgaenge: zeige nur Counter ohne %-Wert. + const pct = (ok, fail) => { + const total = ok + fail; + if (total === 0) return null; + return Math.round((ok / total) * 100); + }; + const stat = (label, value, kind) => ` +
    +
    ${value}
    +
    ${escapeHtml(label)}
    +
    `; + + const dev = { + ok: s.InstalledDeviceCount, + fail: s.FailedDeviceCount, + pend: s.PendingInstallDeviceCount, + not: s.NotInstalledDeviceCount, + na: s.NotApplicableDeviceCount, + }; + const usr = { + ok: s.InstalledUserCount, + fail: s.FailedUserCount, + pend: s.PendingInstallUserCount, + not: s.NotInstalledUserCount, + na: s.NotApplicableUserCount, + }; + const devPct = pct(dev.ok, dev.fail); + const usrPct = pct(usr.ok, usr.fail); + + return `
    +
    Installationen
    +
    +
    +
    + Geräte + ${devPct !== null ? `${devPct}% erfolgreich` : ''} +
    +
    + ${stat('Installiert', dev.ok, 'ok')} + ${stat('Fehler', dev.fail, 'err')} + ${stat('Ausstehend', dev.pend, 'pend')} + ${stat('Nicht inst.', dev.not, 'not')} + ${stat('N/A', dev.na, 'na')} +
    +
    +
    +
    + Benutzer + ${usrPct !== null ? `${usrPct}% erfolgreich` : ''} +
    +
    + ${stat('Installiert', usr.ok, 'ok')} + ${stat('Fehler', usr.fail, 'err')} + ${stat('Ausstehend', usr.pend, 'pend')} + ${stat('Nicht inst.', usr.not, 'not')} + ${stat('N/A', usr.na, 'na')} +
    +
    +
    +
    `; +} + +// Mini-SVG-Flow: zentraler App-Knoten + verbundene Target-Knoten. +// direction: 'incoming' = Pfeile target->center (Dependencies) +// 'outgoing' = Pfeile center->target (Supersedence) +// Verbindungen sind ORTHOGONAL (gerade Linien mit rechtwinkligen Knicken), +// keine Bezier-Kurven. Pro Relation wird zusaetzlich ein Klartext-Satz +// generiert (explanationFn), der direkt unter dem Diagramm steht. +function renderRelationshipFlow(opts) { + const { title, subtitle, centerApp, related, direction, kindLabelFn, explanationFn } = opts; + if (!related || related.length === 0) return ''; + + const flowId = 'flow-' + Math.random().toString(36).slice(2, 9); + // Layout-Geometrie — etwas grosszuegiger als vorher fuer "premium" Wirkung + const NODE_W = 230; + const NODE_H = 60; + const ROW_H = 84; // Vertikaler Abstand zwischen Target-Nodes + const COL_GAP = 170; // Horizontaler Platz fuer die Pfeil-Linie + const PAD = 16; + const count = related.length; + + // Hoehe so dass Center und Target-Stack vertikal gleich hoch sind + const stackH = (count - 1) * ROW_H + NODE_H; + const svgH = Math.max(stackH, NODE_H) + PAD * 2; + const svgW = NODE_W * 2 + COL_GAP + PAD * 2; + + // Center vertikal mittig + const centerY = (svgH - NODE_H) / 2; + // Center ist je nach Richtung links oder rechts + const centerOnLeft = (direction === 'outgoing'); + const centerX = centerOnLeft ? PAD : (svgW - PAD - NODE_W); + const targetX = centerOnLeft ? (svgW - PAD - NODE_W) : PAD; + + // Target-Y so verteilen dass Stack vertikal zentriert ist + const stackTop = (svgH - stackH) / 2; + const targetY = (i) => stackTop + i * ROW_H; + + const knownApp = (id) => State.apps.find(a => a.AppId === id); + + // Node-Renderer als HTML-Foreign-Object (Text-Wrapping einfacher als in SVG) + const nodeHtml = (a, isCenter) => { + const known = !!knownApp(a.AppId || a.TargetId); + const id = a.AppId || a.TargetId || ''; + const name = escapeHtml(a.AppName || a.TargetDisplayName || id); + const meta = isCenter ? '' : [a.TargetPublisher, a.TargetDisplayVersion].filter(Boolean).map(escapeHtml).join(' · '); + const cls = `flow-node ${isCenter ? 'flow-node-center' : 'flow-node-target'} ${known && !isCenter ? 'flow-node-known' : ''}`; + return `
    +
    ${name}
    + ${meta ? `
    ${meta}
    ` : ''} +
    `; + }; + + // Orthogonale Pfade: horizontal → vertikal → horizontal (Elbow). + // Wenn from-Y == to-Y degeneriert das automatisch zu einer geraden Linie. + const arrows = related.map((r, i) => { + const ty = targetY(i); + const cyMid = centerY + NODE_H / 2; + const tyMid = ty + NODE_H / 2; + const fromX = centerOnLeft ? (centerX + NODE_W) : (targetX + NODE_W); + const fromY = centerOnLeft ? cyMid : tyMid; + const toX = centerOnLeft ? targetX : centerX; + const toY = centerOnLeft ? tyMid : cyMid; + const midX = (fromX + toX) / 2; + const d = `M ${fromX} ${fromY} L ${midX} ${fromY} L ${midX} ${toY} L ${toX} ${toY}`; + const labelX = midX; + const labelY = (fromY + toY) / 2 - 6; + const kind = kindLabelFn ? kindLabelFn(r) : ''; + return ` + ${kind ? `${escapeHtml(kind)}` : ''}`; + }).join(''); + + // Target-Nodes (HTML overlay via foreignObject) + const targetNodesSvg = related.map((r, i) => { + const y = targetY(i); + return ` +
    ${nodeHtml(r, false)}
    +
    `; + }).join(''); + + // Klartext-Erklaerungen pro Relation + const explanations = explanationFn ? related.map(r => explanationFn(centerApp, r)).filter(Boolean) : []; + const explanationHtml = explanations.length ? ` +
    +
    Was bedeutet das?
    +
      ${explanations.map(e => `
    • ${e}
    • `).join('')}
    +
    ` : ''; + + return `
    +
    ${escapeHtml(title)}
    +
    ${escapeHtml(subtitle)}
    +
    + + + + + + + ${arrows} + +
    ${nodeHtml(centerApp, true)}
    +
    + ${targetNodesSvg} +
    +
    + ${explanationHtml} +
    `; +} + +// Klick auf einen Flow-Node: zur Ziel-App scrollen + expanden +function attachFlowNodeHandlers(wrap) { + wrap.querySelectorAll('[data-jump-app]').forEach(el => { + el.addEventListener('click', () => jumpToAppById(el.dataset.jumpApp)); + el.addEventListener('keydown', e => { + if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); jumpToAppById(el.dataset.jumpApp); } + }); + }); +} + +async function jumpToAppById(appId) { + if (!appId) return; + // Suchfeld leeren damit die App garantiert sichtbar ist + const search = document.getElementById('appSearch'); + if (search && search.value) { search.value = ''; State.appFilter.search = ''; } + + // WICHTIG: Wenn die App noch nicht expanded ist, muessen wir den DETAILS- + // FETCH triggern. Frueher haben wir nur expandedApps.add() gemacht — ohne + // Fetch — und der Spinner drehte ewig. Wenn der User dann die Zeile manuell + // klickt, sieht toggleAppExpand "schon offen" und KLAPPT WIEDER ZU. + const alreadyOpen = State.expandedApps.has(appId); + const wasCached = State.appDetails.has(appId); + + if (!alreadyOpen) { + State.expandedApps.add(appId); + } + renderApps(); + + // Fetch nur ausloesen wenn keine validen Daten im Cache liegen + const cached = State.appDetails.get(appId); + if (!cached || (!cached.details && !cached.loading)) { + State.appDetails.set(appId, { details: null, loading: true, error: null }); + renderApps(); + try { + const res = await api(`/api/apps/${encodeURIComponent(appId)}/details`); + State.appDetails.set(appId, { details: res, loading: false, error: null }); + } catch (e) { + State.appDetails.set(appId, { details: null, loading: false, error: e.message }); + } + if (State.expandedApps.has(appId)) renderApps(); + } + + // Im naechsten Frame: in den View scrollen + requestAnimationFrame(() => { + const wrap = document.querySelector(`.app-row-wrap[data-app-id="${CSS.escape(appId)}"]`); + if (wrap) { + wrap.scrollIntoView({ behavior: 'smooth', block: 'center' }); + wrap.classList.add('app-row-wrap--flash'); + setTimeout(() => wrap.classList.remove('app-row-wrap--flash'), 1200); + } else { + toast('Ziel-App nicht in der aktuell geladenen Liste', 'warn'); + } + }); +} + +async function toggleAppExpand(appId) { + if (State.expandedApps.has(appId)) { + State.expandedApps.delete(appId); + renderApps(); + return; + } + State.expandedApps.add(appId); + // Bereits geladene oder fertig im Cache → kein Reload + const cached = State.appDetails.get(appId); + if (cached && !cached.loading && !cached.error && cached.details) { + renderApps(); + return; + } + State.appDetails.set(appId, { details: null, loading: true, error: null }); + renderApps(); + try { + // 45s Timeout — falls Backend haengt, bricht der Spinner ab und der User + // bekommt eine Fehlermeldung statt ewig zu warten. + const ctrl = new AbortController(); + const timer = setTimeout(() => ctrl.abort(), 45000); + const opts = { method: 'GET', headers: { 'Content-Type': 'application/json' }, signal: ctrl.signal }; + const r = await fetch(`/api/apps/${encodeURIComponent(appId)}/details`, opts); + clearTimeout(timer); + let res = {}; + try { res = await r.json(); } catch {} + if (!r.ok) throw new Error(res.error || `HTTP ${r.status}`); + State.appDetails.set(appId, { details: res, loading: false, error: null }); + } catch (e) { + const msg = e.name === 'AbortError' ? 'Timeout (45s) — Graph-API antwortet nicht' : e.message; + State.appDetails.set(appId, { details: null, loading: false, error: msg }); + } + if (State.expandedApps.has(appId)) renderApps(); +} + +function attachAppRowEvents(wrap) { + wrap.querySelectorAll('.type-btn[data-type]').forEach(btn => { + btn.addEventListener('click', e => { + if (btn.disabled) return; + e.stopPropagation(); + onTypeButtonClick(btn); + }); + }); + wrap.querySelectorAll('[data-create-group]').forEach(btn => { + btn.addEventListener('click', e => { + e.stopPropagation(); + openCreateGroupModal(btn.dataset.appId, btn.dataset.appName); + }); + }); + wrap.querySelectorAll('[data-delete-app]').forEach(btn => { + btn.addEventListener('click', e => { + e.preventDefault(); + e.stopPropagation(); + deleteAppWithConfirm(btn.dataset.appId, btn.dataset.appName); + }); + }); + wrap.querySelectorAll('[data-rename-app]').forEach(btn => { + btn.addEventListener('click', e => { + e.preventDefault(); + e.stopPropagation(); + openRenameAppModal(btn.dataset.appId, btn.dataset.appName); + }); + }); + wrap.querySelectorAll('[data-update-content]').forEach(btn => { + btn.addEventListener('click', e => { + e.preventDefault(); + e.stopPropagation(); + openUpdateContentModal(btn.dataset.appId, btn.dataset.appName, btn.dataset.appType, btn.dataset.appVersion); + }); + }); + // Im Detail-Panel (Zuweisungen-Sektion) sitzen die Delete-Assignment-Buttons + // und externe Link-Icons — hier auch verkabeln, damit Klicks weder zur + // Session togglen noch das Detail-Panel zuklappen. + wrap.querySelectorAll('[data-remove-assign]').forEach(btn => { + btn.addEventListener('click', e => { + e.preventDefault(); + e.stopPropagation(); + removeAssignmentWithConfirm({ + appId: btn.dataset.appId, + appName: btn.dataset.appName, + groupId: btn.dataset.groupId, + groupName: btn.dataset.groupName, + type: btn.dataset.type, + }); + }); + }); + wrap.querySelectorAll('.asg-actions, .asg-row .entra-link').forEach(el => { + el.addEventListener('click', e => e.stopPropagation()); + }); + // Flow-Nodes (Dependencies / Supersedence) — Klicks fuehren zur Target-App + attachFlowNodeHandlers(wrap); + // Klicks innerhalb der Flow-Container sollen nicht den Row-Toggle ausloesen + wrap.querySelectorAll('.flow-container').forEach(el => { + el.addEventListener('click', e => e.stopPropagation()); + }); + // Klick auf Zeile = Detail-Toggle. Klicks auf interne Buttons/Links sind oben + // bereits mit stopPropagation versehen oder triggern via kein Bubble-Toggle. + const rowEl = wrap.querySelector('.app-row'); + if (rowEl) { + rowEl.addEventListener('click', e => { + // Direkte Links (App-Name in Intune oeffnen, Source-Badge) nicht abfangen + if (e.target.closest('a')) return; + // Buttons innerhalb der Zeile (Type-Btn, Create-Btn) haben ihre eigenen Handler + if (e.target.closest('button')) return; + const id = rowEl.dataset.appId; + if (id) toggleAppExpand(id); + }); + } + // Copy-Buttons im Detail-Panel + wrap.querySelectorAll('.app-detail-copy').forEach(btn => { + btn.addEventListener('click', e => { + e.stopPropagation(); + const txt = btn.dataset.copy || ''; + navigator.clipboard.writeText(txt).then( + () => { btn.classList.add('copied'); setTimeout(() => btn.classList.remove('copied'), 900); toast('In Zwischenablage kopiert', 'ok'); }, + () => toast('Kopieren fehlgeschlagen', 'err') + ); + }); + }); +} + +function onTypeButtonClick(btnEl) { + const appId = btnEl.dataset.appId; + const type = btnEl.dataset.type; + const app = State.apps.find(a => a.AppId === appId); + if (!app) return; + const groups = (type === 'Available' ? app.AvailableGroups : app.RequiredGroups).filter(g => !g.IsNative); + if (groups.length === 0) return; + + if (groups.length === 1) { + const g = groups[0]; + toggleSession({ appId, groupId: g.GroupId, groupName: g.GroupName, type }); + return; + } + + // Mehrere Gruppen → Popover mit Auswahl + showGroupPicker(btnEl, app, groups, type); +} + +let pickerEl = null; +function closeGroupPicker() { + if (pickerEl) { pickerEl.remove(); pickerEl = null; } + document.removeEventListener('click', onPickerOutsideClick, true); + document.removeEventListener('keydown', onPickerEscape); +} +function onPickerOutsideClick(e) { + if (pickerEl && !pickerEl.contains(e.target)) closeGroupPicker(); +} +function onPickerEscape(e) { + if (e.key === 'Escape') closeGroupPicker(); +} + +function showGroupPicker(anchorEl, app, groups, type) { + closeGroupPicker(); + + const queuedSet = new Set( + State.session.filter(s => s.appId === app.AppId && s.type === type).map(s => s.groupId) + ); + + pickerEl = document.createElement('div'); + pickerEl.className = `group-picker picker-${type.toLowerCase()}`; + pickerEl.innerHTML = ` +
    ${escapeHtml(type)} — Gruppe wählen
    +
    + ${groups.map(g => { + const queued = queuedSet.has(g.GroupId); + const memb = getCachedMembership(g.GroupId); + let mLabel = ''; + if (memb) { + if (memb.status === 'Full') mLabel = `Mitglied`; + else if (memb.status === 'Partial') mLabel = `${memb.matched}/${memb.total}`; + } + const sideActions = ` + + ${entraGroupLink(g.GroupId, g.GroupName)} + ${membersTabLink(g.GroupId, g.GroupName)} + + + `; + return ` +
    + + ${sideActions} +
    + `; + }).join('')} +
    + `; + document.body.appendChild(pickerEl); + + // Position relativ zum Button + const r = anchorEl.getBoundingClientRect(); + const pw = pickerEl.offsetWidth; + const ph = pickerEl.offsetHeight; + let left = r.left; + let top = r.bottom + 4; + if (left + pw > window.innerWidth - 8) left = window.innerWidth - pw - 8; + if (top + ph > window.innerHeight - 8) top = r.top - ph - 4; + pickerEl.style.left = left + 'px'; + pickerEl.style.top = top + 'px'; + + pickerEl.querySelectorAll('.picker-item').forEach(item => { + item.addEventListener('click', e => { + e.stopPropagation(); + toggleSession({ + appId: app.AppId, + groupId: item.dataset.groupId, + groupName: item.dataset.groupName, + type, + }); + closeGroupPicker(); + }); + }); + + // Side-Actions (Entra-Link, Members-Tab) duerfen den Picker nicht schliessen + // bzw. die Gruppe nicht zur Session togglen. Links lassen wir natuerlich oeffnen. + pickerEl.querySelectorAll('[data-stop]').forEach(box => { + box.addEventListener('click', e => e.stopPropagation()); + }); + + // Zuweisung entfernen + pickerEl.querySelectorAll('[data-remove-assign]').forEach(btn => { + btn.addEventListener('click', e => { + e.preventDefault(); + e.stopPropagation(); + const ctx = { + appId: btn.dataset.appId, + appName: btn.dataset.appName, + groupId: btn.dataset.groupId, + groupName: btn.dataset.groupName, + type: btn.dataset.type, + }; + closeGroupPicker(); + removeAssignmentWithConfirm(ctx); + }); + }); + + // Click outside / Escape schliessen + setTimeout(() => { + document.addEventListener('click', onPickerOutsideClick, true); + document.addEventListener('keydown', onPickerEscape); + }, 0); +} + +// ============================================================= +// Membership +// ============================================================= + +function getCachedMembership(groupId) { + if (State.selectedTargetIds.size === 0) return null; + return State.membershipCache.get(membershipKey(groupId)); +} + +function membershipKey(groupId) { + const ids = [...State.selectedTargetIds].sort().join(','); + return groupId + '|' + ids; +} + +let membershipAbort = null; + +function abortMembershipFetch() { + if (membershipAbort) { + try { membershipAbort.abort(); } catch {} + membershipAbort = null; + } +} + +async function updateMembershipForVisibleApps() { + if (State.selectedTargetIds.size === 0) return; + const visible = getFilteredApps(); + const groupIds = new Set(); + visible.forEach(a => { + a.AvailableGroups.concat(a.RequiredGroups).forEach(g => { + if (!g.IsNative && !State.membershipCache.has(membershipKey(g.GroupId))) { + groupIds.add(g.GroupId); + } + }); + }); + if (groupIds.size === 0) return; + + // Vorherige Bulk-Anfrage abbrechen wenn neue Ziele/Apps + abortMembershipFetch(); + membershipAbort = new AbortController(); + + const targets = [...State.selectedTargetIds]; + const groupIdsArr = [...groupIds]; + try { + const resp = await fetch('/api/membership/bulk', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ targets, groupIds: groupIdsArr }), + signal: membershipAbort.signal, + }); + if (!resp.ok) return; + const data = await resp.json(); + if (!data.memberships) return; + for (const [gid, info] of Object.entries(data.memberships)) { + State.membershipCache.set(membershipKey(gid), info); + } + renderApps(); + renderExisting(); + } catch (e) { + if (e.name === 'AbortError') return; + // Stille — Mitgliedschaft ist Hintergrund-Info + } +} + +// ============================================================= +// Session (Cart) +// ============================================================= + +document.getElementById('btnSessionClear').addEventListener('click', () => { + if (State.session.length === 0) return; + State.session = []; + renderSession(); + renderApps(); + updateStepper(); +}); + +document.getElementById('btnApply').addEventListener('click', applyAssignments); + +function toggleSession({ appId, groupId, groupName, type }) { + // Eine Session entspricht GENAU EINEM Empfaenger (Gruppe ODER User). + // Toggle: existieren bereits Sessions fuer diese App+Intune-Group+Type + // mit den aktuell gewaehlten Empfaengern, werden diese entfernt. + // Andernfalls wird pro Empfaenger eine eigene Session angelegt. + const allSel = getAllSelected(); + const matching = State.session.filter(s => s.appId === appId && s.groupId === groupId && s.type === type); + if (matching.length > 0 && allSel.length === 0) { + // Keine Auswahl → toggle = entfernen aller Eintraege fuer diese App-Group-Combo + State.session = State.session.filter(s => !matching.includes(s)); + renderSession(); + renderApps(); + updateStepper(); + return; + } + if (allSel.length === 0) { + toast('Wähle erst Abteilungen oder Benutzer aus', 'warn'); + return; + } + + // Pruefen, ob fuer alle aktuellen Empfaenger schon Sessions existieren + // → dann komplett entfernen (Toggle aus). + const matchingByTarget = new Map(matching.map(s => [s.scope?.[0]?.id, s])); + const allCovered = allSel.every(t => matchingByTarget.has(t.Id)); + if (allCovered && matching.length === allSel.length) { + State.session = State.session.filter(s => !matching.includes(s)); + renderSession(); + renderApps(); + updateStepper(); + return; + } + + // Sonst: fuer jeden Empfaenger, der noch keine Session hat, eine neue anlegen + const app = State.apps.find(a => a.AppId === appId); + for (const t of allSel) { + if (matchingByTarget.has(t.Id)) continue; + State.session.push({ + id: crypto.randomUUID(), + appId, + appName: app ? app.AppName : '?', + appType: app ? app.AppType : '', + groupId, + groupName, + type, + scope: [{ id: t.Id, name: t.DisplayName, mode: t._mode }], + }); + } + renderSession(); + renderApps(); + updateStepper(); +} + +// Helfer: gesammelte Auswahl ueber ALLE Modi (current + cached) +function collectSelectedByMode(mode) { + if (State.mode === mode) { + return State.targets.filter(t => State.selectedTargetIds.has(t.Id)); + } + const cached = State.modeCache.get(mode); + if (!cached) return []; + return cached.targets.filter(t => cached.selectedIds.has(t.Id)); +} +function getAllSelected() { + const out = [ + ...collectSelectedByMode('dept').map(t => ({ ...t, _mode: 'dept' })), + ...collectSelectedByMode('rpa').map(t => ({ ...t, _mode: 'rpa' })), + ...collectSelectedByMode('user').map(t => ({ ...t, _mode: 'user' })), + ]; + // Auch in aufgeklappten Gruppen markierte User mit aufnehmen — der User + // erwartet, dass das Anhaken sofort wirkt, ohne erst "Benutzer uebernehmen" + // klicken zu muessen. Dedupliziert ueber Id, damit ein bereits committed + // User nicht doppelt erscheint. + const seen = new Set(out.map(t => t.Id)); + const collectExpand = (expandedMap) => { + if (!expandedMap) return; + for (const entry of expandedMap.values()) { + if (!entry || !entry.selected || !entry.members) continue; + const byId = new Map(entry.members.map(m => [m.Id, m])); + for (const id of entry.selected) { + if (seen.has(id)) continue; + const m = byId.get(id); + if (!m) continue; + seen.add(id); + out.push({ ...m, _mode: 'user' }); + } + } + }; + collectExpand(State.expandedGroups); + for (const m of ['dept','rpa','user']) { + if (m === State.mode) continue; + const c = State.modeCache.get(m); + if (c) collectExpand(c.expandedGroups); + } + return out; +} + +function renderSession() { + const list = document.getElementById('sessionList'); + const cnt = document.getElementById('sessionCount'); + const btnApply = document.getElementById('btnApply'); + const btnApplyLabel = document.getElementById('btnApplyLabel'); + const btnClear = document.getElementById('btnSessionClear'); + + cnt.textContent = State.session.length; + + // Aktuelle Auswahl (kann von Session-Scopes abweichen!) + // Auch "noch nicht uebernommene" Einzelmitglieder aus aufgeklappten Gruppen + // mitzaehlen — der User erwartet sofortiges Feedback beim Anhaken. + const currentDept = collectSelectedByMode('dept').length + collectSelectedByMode('rpa').length; + const userIds = new Set(collectSelectedByMode('user').map(t => t.Id)); + const collectExpandSelected = (expandedMap) => { + if (!expandedMap) return; + for (const entry of expandedMap.values()) { + if (entry && entry.selected) { + for (const id of entry.selected) userIds.add(id); + } + } + }; + collectExpandSelected(State.expandedGroups); + for (const m of ['dept','rpa','user']) { + if (m === State.mode) continue; + const c = State.modeCache.get(m); + if (c) collectExpandSelected(c.expandedGroups); + } + const currentUser = userIds.size; + + // Tatsaechliche Vorgaenge aus den eingefrorenen Per-Item-Scopes + let groupOps = 0, userOps = 0; + for (const s of State.session) { + if (!s.scope) continue; + for (const sc of s.scope) { + if (sc.mode === 'user') { userOps++; } + else { groupOps++; } + } + } + const total = groupOps + userOps; + const sessions = State.session.length; + + document.getElementById('sumGroupsSel').textContent = currentDept; + document.getElementById('sumUsersSel').textContent = currentUser; + document.getElementById('sumGroupsOps').textContent = groupOps; + document.getElementById('sumUsersOps').textContent = userOps; + document.getElementById('sumTotal').textContent = total; + + btnApply.disabled = (sessions === 0 || total === 0); + btnApplyLabel.textContent = total > 0 + ? `${total} Vorgang${total === 1 ? '' : 'e'} ausführen` + : 'Zuweisungen ausführen'; + + btnClear.hidden = sessions === 0; + + if (State.session.length === 0) { + list.innerHTML = emptyState({ + small: true, + title: 'Keine geplanten Zuweisungen', + text: 'Klicke auf "Available" oder "Required" bei einer App um eine Zuweisung hinzuzufügen.', + }); + return; + } + + list.innerHTML = State.session.map(s => { + const scope = s.scope || []; + // Eine Session = genau ein Empfaenger. Falls aus Altdaten noch ein Multi- + // Scope existiert, fallen wir auf eine kompakte Anzeige zurueck. + const single = scope.length === 1 ? scope[0] : null; + let scopeBlock = ''; + if (single) { + const isUser = single.mode === 'user'; + const tagCls = isUser ? 'scope-user' : 'scope-dept'; + const tagLbl = isUser ? '1 Benutzer' : '1 Gruppe'; + scopeBlock = `
    + ${tagLbl} + ${escapeHtml(single.name)} +
    `; + } else if (scope.length > 1) { + const deptN = scope.filter(x => x.mode !== 'user').length; + const userN = scope.filter(x => x.mode === 'user').length; + const tags = []; + if (deptN > 0) tags.push(`${deptN} Gruppe${deptN === 1 ? '' : 'n'}`); + if (userN > 0) tags.push(`${userN} Benutzer`); + const tip = scope.map(x => x.name).join('\n'); + scopeBlock = `
    ${tags.join('')}
    `; + } + return `
    +
    +
    ${escapeHtml(s.appName)}
    +
    ${escapeHtml(s.groupName)}
    + ${scopeBlock} +
    + ${s.type === 'Available' ? 'A' : 'R'} + +
    `; + }).join(''); + + list.querySelectorAll('.session-remove').forEach(b => { + b.addEventListener('click', () => { + State.session = State.session.filter(x => x.id !== b.dataset.id); + renderSession(); + renderApps(); + updateStepper(); + }); + }); +} + +// ============================================================= +// Existing assignments +// ============================================================= + +function renderExisting() { + const list = document.getElementById('existingList'); + if (State.selectedTargetIds.size === 0 || State.apps.length === 0) { + list.innerHTML = emptyState({ + small: true, + title: 'Keine Auswahl', + text: 'Wähle Empfänger und lade Apps, um Mitgliedschaften zu sehen.', + }); + return; + } + const items = []; + for (const app of State.apps) { + const flags = []; + for (const g of app.AvailableGroups) { + if (g.IsNative) { flags.push({ cls: 'n', label: 'A·N' }); continue; } + const m = getCachedMembership(g.GroupId); + if (m && (m.status === 'Full' || m.status === 'Partial')) { + flags.push({ cls: 'a', label: 'A' + (m.status === 'Partial' ? '·◐' : '·✓') }); + } + } + for (const g of app.RequiredGroups) { + if (g.IsNative) { flags.push({ cls: 'n', label: 'R·N' }); continue; } + const m = getCachedMembership(g.GroupId); + if (m && (m.status === 'Full' || m.status === 'Partial')) { + flags.push({ cls: 'r', label: 'R' + (m.status === 'Partial' ? '·◐' : '·✓') }); + } + } + if (flags.length > 0) items.push({ app, flags }); + } + if (items.length === 0) { + list.innerHTML = emptyState({ + small: true, + title: 'Nichts zugewiesen', + text: 'Keine bestehenden Zuweisungen für die Auswahl.', + }); + return; + } + list.innerHTML = items.map(({ app, flags }) => ` +
    +
    ${escapeHtml(app.AppName)}
    +
    + ${flags.map(f => `${escapeHtml(f.label)}`).join('')} +
    +
    + `).join(''); +} + +// ============================================================= +// Side tabs (Cart / Existing) +// ============================================================= + +document.querySelectorAll('.side-tab').forEach(tab => { + tab.addEventListener('click', () => { + document.querySelectorAll('.side-tab').forEach(t => t.classList.remove('active')); + tab.classList.add('active'); + State.sideTab = tab.dataset.side; + document.getElementById('sidePaneSession').classList.toggle('hidden', State.sideTab !== 'session'); + document.getElementById('sidePaneExisting').classList.toggle('hidden', State.sideTab !== 'existing'); + }); +}); + +// ============================================================= +// Apply +// ============================================================= + +async function applyAssignments() { + if (!State.connected) { toast('Bitte zuerst verbinden', 'warn'); return; } + if (State.session.length === 0) { toast('Keine geplanten Zuweisungen', 'warn'); return; } + + // Flache Ops-Liste aus den Per-Item-Snapshots bauen + const ops = []; + let deptOps = 0, userOps = 0; + for (const s of State.session) { + if (!s.scope || s.scope.length === 0) continue; + for (const sc of s.scope) { + ops.push({ + targetId: sc.id, + targetName: sc.name, + targetType: sc.mode, + appId: s.appId, + appName: s.appName, + groupId: s.groupId, + groupName: s.groupName, + type: s.type, + }); + if (sc.mode === 'user') userOps++; else deptOps++; + } + } + const total = ops.length; + if (total === 0) { toast('Keine ausführbaren Vorgänge', 'warn'); return; } + + document.getElementById('confirmText').innerHTML = ` + ${total} Vorgang${total === 1 ? '' : 'e'} wird ausgeführt: +
      + ${deptOps > 0 ? `
    • ${deptOps} auf Abteilungsgruppen
    • ` : ''} + ${userOps > 0 ? `
    • ${userOps} auf Einzelbenutzer
    • ` : ''} +
    `; + openModal('modalConfirm'); + + // wait for confirm or cancel via promise + const userConfirmed = await new Promise(resolve => { + const ok = document.getElementById('btnConfirmApply'); + const modal = document.getElementById('modalConfirm'); + function cleanup(value) { + ok.removeEventListener('click', onOk); + modal.querySelectorAll('[data-close]').forEach(x => x.removeEventListener('click', onCancel)); + resolve(value); + } + function onOk() { closeModal('modalConfirm'); cleanup(true); } + function onCancel() { cleanup(false); } + ok.addEventListener('click', onOk); + modal.querySelectorAll('[data-close]').forEach(x => x.addEventListener('click', onCancel)); + }); + + if (!userConfirmed) return; + + // Laufende Hintergrund-Anfragen abbrechen damit der Apply nicht hinten in der Queue hängt + abortMembershipFetch(); + + setLoading(`Führe ${total} Vorgang${total === 1 ? '' : 'e'} aus...`); + + // 60s-Timeout — sonst hängt die UI ewig wenn das Backend stirbt + const ctrl = new AbortController(); + const timeoutId = setTimeout(() => ctrl.abort(), 60000); + + try { + const resp = await fetch('/api/assignments/apply', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ ops }), + signal: ctrl.signal, + }); + clearTimeout(timeoutId); + let res = {}; + try { res = await resp.json(); } catch {} + if (!resp.ok) throw new Error(res.error || `HTTP ${resp.status}`); + // Defensiv: falls Backend versehentlich Array (mit Pipeline-Junk + Response) liefert, + // nimm das letzte Hashtable-Element + if (Array.isArray(res)) { + res = res.filter(x => x && typeof x === 'object').pop() || {}; + } + showResult(res); + toast(`${res.success} OK · ${res.errors} Fehler · ${res.skipped} Skip`, res.errors > 0 ? 'warn' : 'ok'); + State.session = []; + State.membershipCache.clear(); + renderSession(); + renderApps(); + renderExisting(); + updateMembershipForVisibleApps(); + updateStepper(); + } catch (e) { + clearTimeout(timeoutId); + if (e.name === 'AbortError') { + // Liveness-Check: lebt der Server noch? + try { + const ping = await fetch('/api/ping').then(r => r.json()); + toast(`Apply-Timeout nach 60s. Server lebt (Ping ${ping.time}). Apply hängt im Backend — siehe PowerShell-Konsole.`, 'err', 'Timeout'); + } catch { + toast('Apply-Timeout nach 60s. Server reagiert nicht — PowerShell-Konsole prüfen oder Server neu starten.', 'err', 'Server tot?'); + } + } else { + toast(e.message, 'err', 'Apply fehlgeschlagen'); + } + } finally { + clearLoading(); + } +} + +function showResult(res) { + const success = Number(res.success) || 0; + const skipped = Number(res.skipped) || 0; + const errors = Number(res.errors) || 0; + const total = Number(res.total) || 0; + const details = Array.isArray(res.details) ? res.details : []; + + document.getElementById('resOk').textContent = success; + document.getElementById('resSkip').textContent = skipped; + document.getElementById('resErr').textContent = errors; + document.getElementById('resTotal').textContent = total; + + // Status-Banner + const banner = document.getElementById('resBanner'); + let bannerCls = 'res-banner-ok'; + let bannerIco = '✓'; + let bannerText = `${success} Vorgang${success === 1 ? '' : 'e'} erfolgreich abgeschlossen`; + if (errors > 0) { + bannerCls = 'res-banner-err'; + bannerIco = '!'; + bannerText = `${errors} von ${total} Vorgang${total === 1 ? '' : 'en'} fehlgeschlagen`; + } else if (success === 0 && skipped > 0) { + bannerCls = 'res-banner-warn'; + bannerIco = '·'; + bannerText = `${skipped} Vorgang${skipped === 1 ? '' : 'e'} übersprungen (nichts zu tun)`; + } + banner.className = 'res-banner ' + bannerCls; + banner.innerHTML = `${bannerIco}${escapeHtml(bannerText)}`; + + // Details-Liste + const det = document.getElementById('resDetails'); + if (details.length === 0) { + det.innerHTML = ''; + } else { + const rows = details.map(d => { + const status = String(d.status || ''); + const cls = status === 'Success' || status === 'AlreadyMember' ? 'ok' + : status === 'Skipped' ? 'warn' + : status === 'Error' ? 'err' : ''; + const sym = cls === 'ok' ? '✓' : cls === 'warn' ? '·' : '✕'; + return `
    + ${sym} +
    +
    ${escapeHtml(d.target || '')} → ${escapeHtml(d.app || '')}
    +
    ${escapeHtml(d.group || '')} ${escapeHtml(d.type || '')}
    + ${d.message ? `
    ${escapeHtml(d.message)}
    ` : ''} +
    +
    `; + }).join(''); + det.innerHTML = `
    Details (${details.length})
    ${rows}
    `; + } + + // Report-Link als prominenter Button + const link = document.getElementById('resReportLink'); + if (res.reportUrl) { + link.innerHTML = `
    + + HTML-Report öffnen + `; + } else { + link.innerHTML = `
    ⚠ Kein Report-URL in der Response — siehe Debug unten
    `; + } + + // Debug-Sektion mit der RAW Response — damit wir sehen was tatsaechlich ankommt + const dbg = document.getElementById('resDebug'); + if (dbg) { + const raw = JSON.stringify(res, null, 2); + dbg.innerHTML = `
    + Raw Output${res.build ? ' (Backend-Build: ' + escapeHtml(res.build) + ')' : ' (kein build-Stamp — Backend wurde nicht neu gestartet!)'} +
    ${escapeHtml(raw)}
    +
    `; + } + + console.log('[APPLY] Response:', res); + openModal('modalResult'); +} + +// ============================================================= +// Modals +// ============================================================= + +function openModal(id) { document.getElementById(id).classList.remove('hidden'); } +function closeModal(id) { document.getElementById(id).classList.add('hidden'); } + +document.querySelectorAll('[data-close]').forEach(el => { + el.addEventListener('click', () => { + const modal = el.closest('.modal'); + if (modal) modal.classList.add('hidden'); + }); +}); + +document.addEventListener('keydown', e => { + if (e.key === 'Escape') { + document.querySelectorAll('.modal').forEach(m => m.classList.add('hidden')); + } +}); + +// ============================================================= +// Create Required Group Modal +// ============================================================= + +let createGroupContext = null; +let cgCheckTimer = null; + +// Naming-Schemas aus Settings holen. Fallback auf Defaults wenn Settings noch +// nicht geladen sind (z.B. waehrend des allerersten Init-Renders). +function getNamingFor(intent) { + const s = SettingsState && SettingsState.current; + const block = intent === 'available' + ? (s && s.availableGroupNaming) + : (s && s.requiredGroupNaming); + const defPrefix = 'intune-win-app-'; + const defSuffix = intent === 'available' ? '-available' : '-required'; + return { + prefix: (block && block.prefix) || defPrefix, + suffix: (block && block.suffix) || defSuffix, + }; +} + +function appSlug(appName) { + return appName.replace(/[^a-zA-Z0-9-]/g, '-').replace(/-+/g, '-').replace(/^-+|-+$/g, '').toLowerCase(); +} + +function suggestedGroupName(appName, intent) { + const { prefix, suffix } = getNamingFor(intent); + return `${prefix}${appSlug(appName)}${suffix}`; +} + +function getCurrentCgMode() { + const el = document.querySelector('input[name="cgMode"]:checked'); + return el ? el.value : 'req-group'; +} + +// Modus -> { intent, isGroup, target } — single source of truth +function cgModeMeta(mode) { + switch (mode) { + case 'req-group': return { intent: 'required', isGroup: true, target: null }; + case 'req-allusers': return { intent: 'required', isGroup: false, target: 'ALL_USERS' }; + case 'req-alldevices': return { intent: 'required', isGroup: false, target: 'ALL_DEVICES' }; + case 'avail-group': return { intent: 'available', isGroup: true, target: null }; + case 'avail-allusers': return { intent: 'available', isGroup: false, target: 'ALL_USERS' }; + case 'avail-alldevices':return { intent: 'available', isGroup: false, target: 'ALL_DEVICES' }; + } + return { intent: 'required', isGroup: true, target: null }; +} + +function openCreateGroupModal(appId, appName) { + createGroupContext = { appId, appName }; + document.getElementById('cgAppName').value = appName; + + // Bereits zugewiesene Native-Targets aus dem App-Cache ermitteln. + // ALL_USERS und ALL_DEVICES koennen je Intent nur EINMAL existieren — + // wenn schon da, Option deaktivieren statt einen 409 vom Backend zu kassieren. + const app = State.apps.find(a => a.AppId === appId); + const has = (arr, gid) => !!(app && arr && arr.some(g => g.GroupId === gid)); + const occupied = { + 'req-allusers': has(app && app.RequiredGroups, 'ALL_USERS'), + 'req-alldevices': has(app && app.RequiredGroups, 'ALL_DEVICES'), + 'avail-allusers': has(app && app.AvailableGroups, 'ALL_USERS'), + 'avail-alldevices': has(app && app.AvailableGroups, 'ALL_DEVICES'), + }; + + document.querySelectorAll('input[name="cgMode"]').forEach(radio => { + const isOccupied = !!occupied[radio.value]; + radio.disabled = isOccupied; + radio.checked = false; // Reset jeder Auswahl, Default unten gesetzt + const card = radio.closest('.cg-mode'); + if (!card) return; + card.classList.toggle('cg-mode--disabled', isOccupied); + + const desc = card.querySelector('.cg-mode-desc'); + if (desc) { + // Original-Description am ersten Aufruf merken, sonst wuerde wiederholtes + // Oeffnen den Text dauerhaft auf "bereits zugewiesen" pinnen. + if (!desc.dataset.origDesc) desc.dataset.origDesc = desc.textContent; + desc.textContent = isOccupied + ? 'Bereits zugewiesen — keine zweite Zuweisung möglich.' + : desc.dataset.origDesc; + } + }); + + // Default-Modus: erste verfuegbare Option (in der Reihenfolge: req-group ist + // immer da, fallback auf naechstes). Garantiert konsistente Vorauswahl. + const order = ['req-group','req-allusers','req-alldevices','avail-group','avail-allusers','avail-alldevices']; + for (const val of order) { + if (!occupied[val]) { + const r = document.querySelector(`input[name="cgMode"][value="${val}"]`); + if (r) { r.checked = true; break; } + } + } + document.getElementById('cgAssignToApp').checked = true; + applyCgModeUi(); + openModal('modalCreateGroup'); +} + +// Zeigt/versteckt das Namens-Input + Vorschlag je nach Modus. +// All-Users/All-Devices brauchen weder Name noch Validierung. +function applyCgModeUi() { + const mode = getCurrentCgMode(); + const meta = cgModeMeta(mode); + const nameGroup = document.getElementById('cgGroupNameGroup'); + const assignWrap = document.getElementById('cgAssignToAppWrap'); + const createBtn = document.getElementById('cgCreate'); + + const intentLabel = meta.intent === 'available' ? 'Available' : 'Required'; + if (meta.isGroup) { + nameGroup.hidden = false; + assignWrap.hidden = false; + document.getElementById('cgGroupName').value = suggestedGroupName(createGroupContext.appName, meta.intent); + document.querySelector('#cgAssignToAppWrap span').textContent = + `Gruppe direkt der App als ${intentLabel} zuweisen`; + checkGroupName(); + createBtn.textContent = `${intentLabel}-Gruppe erstellen`; + } else { + nameGroup.hidden = true; + assignWrap.hidden = true; + createBtn.disabled = false; + const tgtLbl = meta.target === 'ALL_USERS' ? 'All Users' : 'All Devices'; + createBtn.textContent = `Als ${intentLabel} für ${tgtLbl} zuweisen`; + } +} + +document.querySelectorAll('input[name="cgMode"]').forEach(r => { + r.addEventListener('change', applyCgModeUi); +}); + +document.getElementById('cgGroupName').addEventListener('input', () => { + clearTimeout(cgCheckTimer); + cgCheckTimer = setTimeout(checkGroupName, 400); +}); + +async function checkGroupName() { + const name = document.getElementById('cgGroupName').value.trim(); + const status = document.getElementById('cgStatus'); + const btn = document.getElementById('cgCreate'); + if (!name) { + status.textContent = 'Name darf nicht leer sein'; + status.className = 'form-hint err'; + btn.disabled = true; + return; + } + status.textContent = 'Prüfe...'; + status.className = 'form-hint'; + btn.disabled = true; + try { + const res = await api('/api/groups/check', { method: 'POST', body: { displayName: name } }); + if (res.exists) { + status.textContent = '✕ Gruppe existiert bereits'; + status.className = 'form-hint err'; + } else { + status.textContent = '✓ Name ist verfügbar'; + status.className = 'form-hint ok'; + btn.disabled = false; + } + } catch (e) { + status.textContent = 'Prüfung fehlgeschlagen: ' + e.message; + status.className = 'form-hint err'; + } +} + +document.getElementById('cgCreate').addEventListener('click', async () => { + if (!createGroupContext) return; + const meta = cgModeMeta(getCurrentCgMode()); + + if (meta.isGroup) { + // Gruppe erstellen + zuweisen + const { prefix, suffix } = getNamingFor(meta.intent); + const raw = document.getElementById('cgGroupName').value.trim(); + // Praefix/Suffix entfernen damit der Backend-Slug-Builder die Saettigung steuert + const customName = raw + .replace(new RegExp('^' + prefix.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')), '') + .replace(new RegExp(suffix.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '$'), ''); + const assignToApp = document.getElementById('cgAssignToApp').checked; + setLoading(`Erstelle ${meta.intent === 'available' ? 'Available' : 'Required'}-Gruppe...`); + try { + const res = await api('/api/groups', { + method: 'POST', + body: { + appId: createGroupContext.appId, + appName: createGroupContext.appName, + customName, + assignToApp, + intent: meta.intent, + } + }); + toast(`Gruppe erstellt: ${res.displayName}` + (res.assigned ? ' (zugewiesen)' : ''), 'ok'); + closeModal('modalCreateGroup'); + if (assignToApp) await loadApps(true); + } catch (e) { + toast(e.message, 'err', 'Erstellen fehlgeschlagen'); + } finally { + clearLoading(); + } + return; + } + + // Native Zuweisung (All Users / All Devices) — Intent kann required ODER available sein + const intentLabel = meta.intent === 'available' ? 'Available' : 'Required'; + const targetLabel = meta.target === 'ALL_USERS' ? 'All Users' : 'All Devices'; + setLoading(`Weise als ${intentLabel} für ${targetLabel} zu...`); + try { + await api(`/api/apps/${encodeURIComponent(createGroupContext.appId)}/assignments`, { + method: 'POST', + body: { intent: meta.intent, target: meta.target }, + }); + toast(`${intentLabel}-Zuweisung (${targetLabel}) hinzugefügt`, 'ok'); + closeModal('modalCreateGroup'); + await loadApps(true); + } catch (e) { + toast(e.message, 'err', 'Zuweisung fehlgeschlagen'); + } finally { + clearLoading(); + } +}); + +// ============================================================= +// App umbenennen +// ============================================================= + +let renameAppContext = null; + +function openRenameAppModal(appId, appName) { + renameAppContext = { appId, appName }; + document.getElementById('raOldName').textContent = appName; + const input = document.getElementById('raNewName'); + input.value = appName; + document.getElementById('raError').textContent = ''; + openModal('modalRenameApp'); + // Im naechsten Frame fokussieren + komplett markieren, damit der User + // sofort lostippen oder gezielt aendern kann. + requestAnimationFrame(() => { + input.focus(); + input.select(); + }); +} + +async function submitRenameApp() { + if (!renameAppContext) return; + const input = document.getElementById('raNewName'); + const errEl = document.getElementById('raError'); + const newName = input.value.trim(); + errEl.textContent = ''; + + if (newName.length < 1) { errEl.textContent = 'Name darf nicht leer sein.'; return; } + if (newName.length > 256) { errEl.textContent = 'Name zu lang (max. 256 Zeichen).'; return; } + if (newName === renameAppContext.appName) { + closeModal('modalRenameApp'); + return; + } + + setLoading(`Benenne um zu "${newName}"...`); + try { + const res = await api(`/api/apps/${encodeURIComponent(renameAppContext.appId)}`, { + method: 'PATCH', + body: { displayName: newName }, + }); + // Cache lokal nachziehen + const app = State.apps.find(a => a.AppId === renameAppContext.appId); + if (app) app.AppName = res.appName || newName; + closeModal('modalRenameApp'); + renderApps(); + toast(`Umbenannt: "${renameAppContext.appName}" → "${newName}"`, 'ok'); + } catch (e) { + errEl.textContent = e.message; + } finally { + clearLoading(); + } +} + +// --- Setup-Datei aktualisieren --- +let updateContentContext = null; + +function openUpdateContentModal(appId, appName, appType, appVersion) { + updateContentContext = { appId, appName, appType }; + document.getElementById('ucAppName').textContent = appName; + document.getElementById('ucFilePath').value = ''; + document.getElementById('ucVersion').value = appVersion || ''; + document.getElementById('ucConfirm').checked = false; + document.getElementById('ucError').textContent = ''; + const prog = document.getElementById('ucProgress'); + prog.classList.add('hidden'); prog.innerHTML = ''; + document.getElementById('ucSubmit').disabled = true; + openModal('modalUpdateContent'); + requestAnimationFrame(() => document.getElementById('ucFilePath').focus()); +} + +async function submitUpdateContent() { + if (!updateContentContext) return; + const filePath = document.getElementById('ucFilePath').value.trim(); + const version = document.getElementById('ucVersion').value.trim(); + const errEl = document.getElementById('ucError'); + const prog = document.getElementById('ucProgress'); + const submit = document.getElementById('ucSubmit'); + errEl.textContent = ''; + + if (!filePath) { errEl.textContent = 'Bitte einen Dateipfad angeben.'; return; } + if (!document.getElementById('ucConfirm').checked) { errEl.textContent = 'Bitte die Bestätigung anhaken.'; return; } + + submit.disabled = true; + prog.classList.remove('hidden'); + prog.innerHTML = '
    Lade hoch und aktiviere — das kann je nach Dateigröße dauern…'; + + try { + const body = { filePath }; + if (version) body.displayVersion = version; + const res = await api(`/api/apps/${encodeURIComponent(updateContentContext.appId)}/content`, { + method: 'POST', + body, + timeoutMs: 1800000, // 30 Min — grosse Pakete + Commit-Polling + }); + closeModal('modalUpdateContent'); + // App-Liste neu laden (Backend hat den Cache geleert) + await loadApps(true, { silent: true }); + State.appDetails.delete(updateContentContext.appId); + renderApps(); + toast(`Setup-Datei aktualisiert: "${updateContentContext.appName}" → Version ${res.contentVersion}`, 'ok'); + } catch (e) { + errEl.textContent = e.message; + prog.classList.add('hidden'); + submit.disabled = false; + } +} + +// ============================================================= +// Destruktive Aktionen: App loeschen / Zuweisung entfernen +// ============================================================= + +async function deleteAppWithConfirm(appId, appName) { + if (!appId) return; + const msg = `App aus Intune LÖSCHEN?\n\n ${appName}\n\nDas entfernt die App und alle Zuweisungen aus Intune. Die Aktion kann nicht rückgängig gemacht werden.`; + if (!window.confirm(msg)) return; + + setLoading(`Lösche "${appName}"...`); + try { + await api(`/api/apps/${encodeURIComponent(appId)}`, { method: 'DELETE' }); + State.apps = State.apps.filter(a => a.AppId !== appId); + State.appDetails.delete(appId); + State.expandedApps.delete(appId); + State.session = State.session.filter(s => s.appId !== appId); + State.membershipCache.clear(); + renderApps(); + renderSession(); + renderExisting(); + updateStepper(); + toast(`App "${appName}" gelöscht`, 'ok'); + } catch (e) { + toast(e.message, 'err', 'Löschen fehlgeschlagen'); + } finally { + clearLoading(); + } +} + +async function removeAssignmentWithConfirm(ctx) { + const { appId, appName, groupId, groupName, type } = ctx; + if (!appId || !groupId) return; + if (groupId === 'ALL_USERS' || groupId === 'ALL_DEVICES') { + toast('Native Zuweisungen (All Users / All Devices) können hier nicht entfernt werden.', 'warn'); + return; + } + const typeLbl = type === 'required' ? 'Required' : 'Available'; + const msg = `Zuweisung entfernen?\n\nApp: ${appName}\nGruppe: ${groupName}\nTyp: ${typeLbl}\n\nDie Gruppe ist danach der App nicht mehr zugewiesen. Mitgliedschaften der Gruppe bleiben unverändert.`; + if (!window.confirm(msg)) return; + + setLoading(`Entferne Zuweisung "${groupName}"...`); + try { + const url = `/api/apps/${encodeURIComponent(appId)}/assignments/${encodeURIComponent(groupId)}?type=${encodeURIComponent(type)}`; + await api(url, { method: 'DELETE' }); + + // Lokal nachziehen — Backend tut das ebenfalls im Cache + const app = State.apps.find(a => a.AppId === appId); + if (app) { + if (type === 'available') app.AvailableGroups = app.AvailableGroups.filter(g => g.GroupId !== groupId); + if (type === 'required') app.RequiredGroups = app.RequiredGroups.filter(g => g.GroupId !== groupId); + app.AvailableCount = app.AvailableGroups.length; + app.RequiredCount = app.RequiredGroups.length; + } + // Geplante Zuweisungen auf die gleiche Gruppe ggf. ebenfalls aufraeumen — sie + // wuerden ja im naechsten Apply gegen eine nicht mehr zugewiesene Gruppe laufen. + State.session = State.session.filter(s => !(s.appId === appId && s.groupId === groupId && (s.type || '').toLowerCase() === type)); + State.membershipCache.clear(); + renderApps(); + renderSession(); + renderExisting(); + updateStepper(); + toast(`Zuweisung "${groupName}" entfernt`, 'ok'); + } catch (e) { + toast(e.message, 'err', 'Entfernen fehlgeschlagen'); + } finally { + clearLoading(); + } +} + +// ============================================================= +// Externe Direkt-Links (Entra, Intune, Members-Tab) +// ============================================================= + +const ENTRA_ICON = ``; +const MEMBERS_ICON = ``; +const TRASH_ICON = ``; +const LOCK_ICON = ``; +const PENCIL_ICON = ``; +// Microsoft Teams Icon — original aus Bootstrap Icons (microsoft-teams) +const TEAMS_ICON = ``; + +function entraUserLink(id, name) { + const url = `https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/${encodeURIComponent(id)}`; + return `${ENTRA_ICON}`; +} + +function entraGroupLink(id, name) { + // Group-Overview-Blade im Intune-Portal. Wichtig: schliessendes "/menuId/" + // ist Teil des Deep-Links und darf NICHT weggelassen werden. + const url = `https://intune.microsoft.com/#view/Microsoft_AAD_IAM/GroupDetailsMenuBlade/~/Overview/groupId/${encodeURIComponent(id)}/menuId/`; + return `${ENTRA_ICON}`; +} + +function intuneAppLink(id, name) { + const url = `https://intune.microsoft.com/#view/Microsoft_Intune_Apps/SettingsMenu/~/2/appId/${encodeURIComponent(id)}`; + return `${ENTRA_ICON}`; +} + +function membersTabLink(id, name) { + // Oeffnet die Members-Blade der Gruppe direkt im Intune-Portal (neuer Tab). + // Auch hier ist das "/menuId/" am Ende Pflicht. + const url = `https://intune.microsoft.com/#view/Microsoft_AAD_IAM/GroupDetailsMenuBlade/~/Members/groupId/${encodeURIComponent(id)}/menuId/`; + return `${MEMBERS_ICON}`; +} + +function teamsChatLink(upn, name) { + // Microsoft-Teams Deep-Link: oeffnet IMMER den installierten Desktop-Client + // ueber den msteams:-Protocol-Handler. Web-Variante (https://) wird hier + // bewusst nicht verwendet — der User hat den Desktop-Client als gewuenschten + // Zielort definiert. + if (!upn) return ''; + const url = `msteams:/l/chat/0/0?users=${encodeURIComponent(upn)}`; + return `${TEAMS_ICON}`; +} + +// ============================================================= +// Inline Mitglieder-Browser (Gruppe aufklappen → User auswaehlen) +// ============================================================= + +async function toggleGroupExpand(groupId, groupName) { + if (State.expandedGroups.has(groupId)) { + State.expandedGroups.delete(groupId); + renderTargets(); + return; + } + // Anlegen + Loading + State.expandedGroups.set(groupId, { + members: null, + selected: new Set(), + loading: true, + error: null, + filter: '', + name: groupName, + }); + renderTargets(); + + try { + const res = await api(`/api/groups/${encodeURIComponent(groupId)}/members`); + const entry = State.expandedGroups.get(groupId); + if (!entry) return; // user has collapsed in the meantime + entry.members = (res.items || []) + .filter(m => m.UserPrincipalName) + .sort((a, b) => (a.DisplayName || '').localeCompare(b.DisplayName || '', 'de', { sensitivity: 'base' })); + entry.loading = false; + } catch (e) { + const entry = State.expandedGroups.get(groupId); + if (!entry) return; + entry.loading = false; + entry.error = e.message; + } + renderTargets(); +} + +function renderExpandedMembers(groupId, groupName) { + const entry = State.expandedGroups.get(groupId); + if (!entry) return ''; + + if (entry.loading) { + return `
    +
    +
    + Lade Mitglieder... +
    +
    `; + } + + if (entry.error) { + return `
    +
    Fehler: ${escapeHtml(entry.error)}
    +
    `; + } + + const all = entry.members || []; + const q = entry.filter.toLowerCase(); + const items = q + ? all.filter(m => (m.DisplayName || '').toLowerCase().includes(q) || (m.UserPrincipalName || '').toLowerCase().includes(q)) + : all; + + const selectedCount = entry.selected.size; + + const filterInput = all.length > 6 + ? `` + : ''; + + const memberRows = items.length === 0 + ? `
    ${all.length === 0 ? 'Keine direkten Benutzer in dieser Gruppe.' : 'Keine Treffer.'}
    ` + : items.map(m => { + const isSel = entry.selected.has(m.Id) ? 'selected' : ''; + const checked = entry.selected.has(m.Id) ? 'checked' : ''; + return ``; + }).join(''); + + return `
    + ${filterInput} +
    + ${all.length} Mitglieder${selectedCount ? ` · ${selectedCount} ausgewählt` : ''} +
    + + · + +
    +
    +
    ${memberRows}
    +
    + +
    +
    `; +} + +function attachExpandedHandlers(list) { + // Filter-Input + list.querySelectorAll('.expand-filter').forEach(inp => { + inp.addEventListener('input', e => { + const gid = inp.dataset.groupId; + const entry = State.expandedGroups.get(gid); + if (!entry) return; + entry.filter = e.target.value; + // Nur die expand-list neu rendern, nicht alles — sonst verliert der Input den Focus + const wrapper = inp.closest('.target-row-wrap'); + if (wrapper) { + const oldList = wrapper.querySelector('.expand-list'); + const oldCount = wrapper.querySelector('.expand-count'); + const fresh = document.createElement('div'); + fresh.innerHTML = renderExpandedMembers(gid, entry.name); + const newList = fresh.querySelector('.expand-list'); + const newCount = fresh.querySelector('.expand-count'); + if (oldList && newList) oldList.replaceWith(newList); + if (oldCount && newCount) oldCount.replaceWith(newCount); + attachMemberHandlers(wrapper); + } + }); + }); + + attachMemberHandlers(list); + + // Action-Buttons (Alle / Leeren / Übernehmen) + list.querySelectorAll('[data-expand-action]').forEach(btn => { + btn.addEventListener('click', e => { + e.preventDefault(); + e.stopPropagation(); + const gid = btn.dataset.groupId; + const entry = State.expandedGroups.get(gid); + if (!entry) return; + const action = btn.dataset.expandAction; + if (action === 'all') { + const q = entry.filter.toLowerCase(); + const visible = q + ? (entry.members || []).filter(m => (m.DisplayName || '').toLowerCase().includes(q) || (m.UserPrincipalName || '').toLowerCase().includes(q)) + : (entry.members || []); + visible.forEach(m => entry.selected.add(m.Id)); + renderTargets(); + renderSession(); + renderPinnedTargets(); + } else if (action === 'clear') { + entry.selected.clear(); + renderTargets(); + renderSession(); + renderPinnedTargets(); + } else if (action === 'apply') { + applyExpandedSelection(gid); + } + }); + }); +} + +function attachMemberHandlers(scope) { + scope.querySelectorAll('.ex-member-row').forEach(row => { + row.addEventListener('change', e => { + const gid = row.dataset.groupId; + const mid = row.dataset.memberId; + const entry = State.expandedGroups.get(gid); + if (!entry) return; + if (e.target.checked) entry.selected.add(mid); + else entry.selected.delete(mid); + row.classList.toggle('selected', e.target.checked); + // Counter & Apply-Button updaten ohne Komplettrender + const wrapper = row.closest('.target-row-wrap'); + if (wrapper) { + const cnt = wrapper.querySelector('.expand-count'); + if (cnt) cnt.innerHTML = `${(entry.members || []).length} Mitglieder${entry.selected.size ? ` · ${entry.selected.size} ausgewählt` : ''}`; + const btn = wrapper.querySelector('[data-expand-action="apply"]'); + if (btn) { + btn.disabled = entry.selected.size === 0; + btn.textContent = entry.selected.size > 0 ? `${entry.selected.size} Benutzer übernehmen` : 'Benutzer übernehmen'; + } + } + // Rechte Spalte (Empfaenger-Zaehler) und Pin-Leiste aktualisieren + renderSession(); + renderPinnedTargets(); + }); + }); +} + +function applyExpandedSelection(groupId) { + const entry = State.expandedGroups.get(groupId); + if (!entry || !entry.members) return; + const picked = entry.members.filter(m => entry.selected.has(m.Id)); + if (picked.length === 0) { + toast('Keine Mitglieder ausgewählt', 'warn'); + return; + } + + // 1) Aktuellen Modus (dept oder rpa) in den Cache schreiben — sonst geht + // die Abteilungs-Auswahl + die geladene Liste verloren. + const oldMode = State.mode; + if (oldMode !== 'user') { + State.modeCache.set(oldMode, { + targets: State.targets.slice(), + selectedIds: new Set(State.selectedTargetIds), + expandedGroups: new Map(), // expand wird gleich geschlossen + }); + } + + // 2) In User-Modus wechseln. Bestehende User-Auswahl MERGEN, nicht ueberschreiben. + State.mode = 'user'; + document.querySelectorAll('.seg').forEach(s => s.classList.toggle('active', s.dataset.mode === 'user')); + + const cachedUser = State.modeCache.get('user'); + if (cachedUser && cachedUser.targets && cachedUser.targets.length > 0) { + const existingIds = new Set(cachedUser.targets.map(t => t.Id)); + const newOnes = picked.filter(p => !existingIds.has(p.Id)); + State.targets = [...cachedUser.targets, ...newOnes]; + State.selectedTargetIds = new Set([ + ...cachedUser.selectedIds, + ...picked.map(p => p.Id), + ]); + } else { + State.targets = picked.slice(); + State.selectedTargetIds = new Set(picked.map(m => m.Id)); + } + State.membershipCache.clear(); + State.expandedGroups.clear(); + + const search = document.getElementById('targetSearch'); + search.placeholder = 'Tippe Name oder UPN...'; + document.getElementById('userSearchHint').classList.remove('hidden'); + search.value = ''; + + renderTargets(); + onTargetSelectionChange(); + toast(`${picked.length} Benutzer aus "${entry.name}" übernommen — Abteilungs-Auswahl bleibt erhalten`, 'ok'); +} + +// (Alte Modal-Logik — unbenutzt, aber harmlos:) +let mmContext = { groupId: null, groupName: null, members: [], selectedIds: new Set() }; + +async function openMembersModal(groupId, groupName) { + mmContext = { groupId, groupName, members: [], selectedIds: new Set() }; + document.getElementById('mmTitle').textContent = `Mitglieder · ${groupName}`; + document.getElementById('mmSearch').value = ''; + document.getElementById('mmInfo').textContent = '0 ausgewählt'; + document.getElementById('mmList').innerHTML = ` +
    +
    +
    +
    +
    +
    `; + openModal('modalMembers'); + + try { + const res = await api(`/api/groups/${encodeURIComponent(groupId)}/members`); + mmContext.members = (res.items || []).filter(m => m.UserPrincipalName); // nur User, keine geschachtelten Gruppen + renderMembersList(); + } catch (e) { + document.getElementById('mmList').innerHTML = emptyState({ + title: 'Fehler beim Laden', + text: e.message, + }); + } +} + +function renderMembersList() { + const q = (document.getElementById('mmSearch').value || '').toLowerCase().trim(); + const items = q + ? mmContext.members.filter(m => + (m.DisplayName || '').toLowerCase().includes(q) || + (m.UserPrincipalName || '').toLowerCase().includes(q)) + : mmContext.members; + + const list = document.getElementById('mmList'); + if (mmContext.members.length === 0) { + list.innerHTML = emptyState({ small: true, title: 'Keine Mitglieder', text: 'Diese Gruppe hat keine direkten Benutzer.' }); + return; + } + if (items.length === 0) { + list.innerHTML = emptyState({ small: true, title: 'Keine Treffer', text: 'Filter zurücksetzen.' }); + return; + } + + list.innerHTML = items.map(m => { + const checked = mmContext.selectedIds.has(m.Id) ? 'checked' : ''; + const sel = mmContext.selectedIds.has(m.Id) ? 'selected' : ''; + return ``; + }).join(''); + + list.querySelectorAll('.member-row').forEach(row => { + row.addEventListener('change', e => { + const id = row.dataset.id; + if (e.target.checked) mmContext.selectedIds.add(id); + else mmContext.selectedIds.delete(id); + row.classList.toggle('selected', e.target.checked); + document.getElementById('mmInfo').textContent = + mmContext.selectedIds.size === 0 ? 'Keine ausgewählt' : `${mmContext.selectedIds.size} ausgewählt`; + }); + }); +} + +document.getElementById('mmSearch')?.addEventListener('input', renderMembersList); + +document.getElementById('mmSelectAll')?.addEventListener('click', () => { + const q = (document.getElementById('mmSearch').value || '').toLowerCase().trim(); + const items = q + ? mmContext.members.filter(m => + (m.DisplayName || '').toLowerCase().includes(q) || + (m.UserPrincipalName || '').toLowerCase().includes(q)) + : mmContext.members; + items.forEach(m => mmContext.selectedIds.add(m.Id)); + renderMembersList(); + document.getElementById('mmInfo').textContent = `${mmContext.selectedIds.size} ausgewählt`; +}); + +document.getElementById('mmClear')?.addEventListener('click', () => { + mmContext.selectedIds.clear(); + renderMembersList(); + document.getElementById('mmInfo').textContent = 'Keine ausgewählt'; +}); + +document.getElementById('mmApply')?.addEventListener('click', () => { + if (mmContext.selectedIds.size === 0) { + toast('Keine Mitglieder ausgewählt', 'warn'); + return; + } + + // In den User-Modus wechseln und die ausgewählten Mitglieder als Targets übernehmen + State.mode = 'user'; + document.querySelectorAll('.seg').forEach(s => s.classList.toggle('active', s.dataset.mode === 'user')); + + const picked = mmContext.members.filter(m => mmContext.selectedIds.has(m.Id)); + State.targets = picked; + State.selectedTargetIds = new Set(picked.map(m => m.Id)); + State.membershipCache.clear(); + + const search = document.getElementById('targetSearch'); + search.placeholder = 'Tippe Name oder UPN...'; + document.getElementById('userSearchHint').classList.remove('hidden'); + search.value = ''; + + renderTargets(); + onTargetSelectionChange(); + closeModal('modalMembers'); + toast(`${picked.length} Benutzer aus "${mmContext.groupName}" übernommen`, 'ok'); +}); + +// ============================================================= +// Helpers +// ============================================================= + +function emptyState({ title, text, small = false, ico = null }) { + return `
    + ${ico ? `
    ${ico}
    ` : ''} + ${title ? `
    ${escapeHtml(title)}
    ` : ''} + ${text ? `
    ${escapeHtml(text)}
    ` : ''} +
    `; +} + +// ============================================================= +// Hilfe-Modal: laedt www/help.md und rendert es mit marked. +// TOC wird aus den H2-Headings auto-generiert (mit Anker-IDs). +// ============================================================= + +let helpLoaded = false; + +async function openHelpModal() { + openModal('modalHelp'); + // Version-Badge im Footer setzen (immer aktuell, auch wenn helpLoaded == true) + try { + const v = await api('/api/version'); + const el = document.getElementById('helpVersion'); + if (el) el.textContent = `Version ${v.version} · Build ${v.build}`; + } catch {} + if (helpLoaded) return; + const contentEl = document.getElementById('helpContent'); + try { + const res = await fetch('/help.md', { cache: 'no-store' }); + if (!res.ok) throw new Error('HTTP ' + res.status); + const md = await res.text(); + // marked rendert das ganze Dokument + const html = renderMarkdown(md); + contentEl.innerHTML = html; + // H2 mit IDs versehen und TOC bauen + const tocEl = document.querySelector('#helpToc ul'); + tocEl.innerHTML = ''; + const slug = (txt) => txt.toLowerCase().replace(/[^\w\s-]/g, '').trim().replace(/\s+/g, '-'); + const seen = new Set(); + const headings = []; + const links = new Map(); // headingId -> element + contentEl.querySelectorAll('h2').forEach(h => { + let id = slug(h.textContent); + let n = 2; + while (seen.has(id)) { id = slug(h.textContent) + '-' + (n++); } + seen.add(id); + h.id = id; + headings.push(h); + const li = document.createElement('li'); + const a = document.createElement('a'); + a.href = '#' + id; + a.textContent = h.textContent; + a.addEventListener('click', e => { + e.preventDefault(); + h.scrollIntoView({ behavior: 'smooth', block: 'start' }); + }); + li.appendChild(a); + tocEl.appendChild(li); + links.set(id, a); + }); + + // Aktiver TOC-Eintrag via Scroll-Position erkennen. + // IntersectionObserver mit Top-Marker (kleiner Slot oben im Viewport) — + // sobald ein H2 darin auftaucht, ist es der "aktive" Abschnitt. + const setActive = (id) => { + links.forEach((a, key) => a.classList.toggle('active', key === id)); + }; + // Default: erstes Heading aktiv + if (headings.length > 0) setActive(headings[0].id); + + // Beobachtung: scroll-Position im help-content-Container + const onScroll = () => { + const containerTop = contentEl.getBoundingClientRect().top; + let currentId = headings[0]?.id; + // Nimm das letzte Heading dessen oben-Kante schon ueber dem 1/4-Mark + // des Containers ist — wirkt natuerlicher als "schwellt rein". + const threshold = containerTop + contentEl.clientHeight * 0.25; + for (const h of headings) { + if (h.getBoundingClientRect().top <= threshold) currentId = h.id; + else break; + } + if (currentId) setActive(currentId); + }; + contentEl.addEventListener('scroll', onScroll, { passive: true }); + onScroll(); + helpLoaded = true; + } catch (e) { + contentEl.innerHTML = `
    Hilfe konnte nicht geladen werden: ${escapeHtml(e.message)}
    `; + } +} + +document.getElementById('btnHelp')?.addEventListener('click', openHelpModal); + +// ============================================================= +// Branding / Theme: Logo + benutzerdefinierte Farben +// ============================================================= + +// Default-Hex pro Konzept — wird bei "Reset" pro Farbe verwendet. +// Diese Werte sind die VOM USER vorgegebenen Defaults (kein willkuerliches +// Bootstrap-Blau mehr). Spiegelt Get-DefaultSettings im Backend. +const ThemeDefaults = { + brand: '#27a078', + accent: '#3b82f6', + required: '#cb2a7a', + success: '#10b981', + warning: '#f59e0b', + error: '#ef4444', + rowSelected: '#71e5c4', + detailPanel: '#f7f7f7', +}; + + +// Welche Konzept-Farbe auf welche CSS-Variablen abgebildet wird. Die soft/ +// strong/bg/border/shadow-Werte werden zur Laufzeit aus dem Hex per rgba() +// abgeleitet (Alpha-Konstanten siehe applyThemeColors). +const ThemeMap = { + brand: { main: '--brand-primary' }, + accent: { main: '--brand-accent', soft: '--accent-soft', strong: '--accent-strong', bg: '--accent-bg' }, + required: { main: '--pink', soft: '--pink-soft' }, + success: { main: '--success', soft: '--success-soft', strong: '--success-strong', bg: '--success-bg', border: '--success-border', shadow: '--success-shadow' }, + warning: { main: '--warning', soft: '--warning-soft', strong: '--warning-strong', bg: '--warning-bg', border: '--warning-border' }, + error: { main: '--error', soft: '--error-soft', strong: '--error-strong', bg: '--error-bg', border: '--error-border' }, +}; + +function hexToRgb(hex) { + if (!hex) return null; + let h = hex.replace(/^#/, ''); + if (h.length === 3) h = h.split('').map(c => c + c).join(''); + if (!/^[0-9a-f]{6}$/i.test(h)) return null; + const n = parseInt(h, 16); + return { r: (n >> 16) & 255, g: (n >> 8) & 255, b: n & 255 }; +} + +function rgbaStr(hex, alpha) { + const rgb = hexToRgb(hex); + if (!rgb) return null; + return `rgba(${rgb.r},${rgb.g},${rgb.b},${alpha})`; +} + +// WCAG-Relative-Luminance — basis fuer Kontrast-Entscheidung +function relLuminance(rgb) { + const ch = (v) => { + const s = v / 255; + return s < 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4); + }; + return 0.2126 * ch(rgb.r) + 0.7152 * ch(rgb.g) + 0.0722 * ch(rgb.b); +} + +// WCAG Contrast Ratio zwischen zwei Farben +function contrastRatio(rgb1, rgb2) { + const l1 = relLuminance(rgb1); + const l2 = relLuminance(rgb2); + const hi = Math.max(l1, l2); + const lo = Math.min(l1, l2); + return (hi + 0.05) / (lo + 0.05); +} + +// Liefert eine gut lesbare Vordergrund-Palette fuer den gegebenen Hintergrund. +// Pickt zwischen weiss/schwarz basierend auf WCAG-Contrast (nicht nur Luminanz- +// Schwellwert — der wuerde bei mittel-hellen Farben wie Pink danebenliegen). +// Liefert {primary, secondary, muted} jeweils mit absteigender Saettigung +// gegen den Hintergrund. +function readableForeground(bgRgb) { + if (!bgRgb) return { primary: '#111111', secondary: '#374151', muted: '#6b7280' }; + const WHITE = { r: 255, g: 255, b: 255 }; + const BLACK = { r: 17, g: 17, b: 17 }; + const crWhite = contrastRatio(bgRgb, WHITE); + const crBlack = contrastRatio(bgRgb, BLACK); + if (crWhite >= crBlack) { + // Weisser Text ist kontrastreicher -> bg ist eher dunkel + return { primary: '#ffffff', secondary: '#e7eaf0', muted: '#c9d0db' }; + } + // Schwarzer Text ist kontrastreicher -> bg ist eher hell + return { primary: '#111111', secondary: '#374151', muted: '#475569' }; +} + + +function applyThemeColors(colors) { + if (!colors) return; + const root = document.documentElement.style; + for (const key of Object.keys(ThemeMap)) { + const hex = colors[key]; + if (!hex || !hexToRgb(hex)) continue; + const vars = ThemeMap[key]; + root.setProperty(vars.main, hex); + if (vars.soft) root.setProperty(vars.soft, rgbaStr(hex, 0.12)); + if (vars.strong) root.setProperty(vars.strong, rgbaStr(hex, 0.20)); + if (vars.border) root.setProperty(vars.border, rgbaStr(hex, 0.30)); + if (vars.bg) root.setProperty(vars.bg, rgbaStr(hex, 0.06)); + if (vars.shadow) root.setProperty(vars.shadow, rgbaStr(hex, 0.35)); + } + + // Background der aufgeklappten App: picked color wird 1:1 als solid + // Hintergrund gesetzt (keine Transparenz). Text und Icons werden per + // WCAG-Kontrast automatisch in Schwarz oder Weiss gewaehlt. + // Innere Surfaces (Chips, File-Paths, Asg-Boxen) werden als SOLID-Shade + // der Picked Color berechnet (heller bei dunkler Tint, dunkler bei heller). + const rgbToHex = (rgb) => '#' + ['r','g','b'].map(c => Math.max(0, Math.min(255, Math.round(rgb[c]))).toString(16).padStart(2,'0')).join(''); + const shade = (rgb, delta) => ({ + r: Math.max(0, Math.min(255, rgb.r + Math.round(delta * 255))), + g: Math.max(0, Math.min(255, rgb.g + Math.round(delta * 255))), + b: Math.max(0, Math.min(255, rgb.b + Math.round(delta * 255))), + }); + const surfaceShades = (rgb) => { + const isDark = relLuminance(rgb) < 0.5; + const d = isDark ? 0.06 : -0.04; // Dark bg -> heller machen, Light bg -> dunkler + return { + surface: rgbToHex(shade(rgb, d)), + surfaceStrong: rgbToHex(shade(rgb, d * 2)), + border: rgbToHex(shade(rgb, d * 3)), + borderSoft: rgbToHex(shade(rgb, d * 1.5)), + }; + }; + + if (colors.rowSelected && hexToRgb(colors.rowSelected)) { + const rgb = hexToRgb(colors.rowSelected); + // Picked color wird 1:1 als Background gesetzt — keine Transparenz, kein rgba. + root.setProperty('--row-selected-border', colors.rowSelected); + root.setProperty('--row-selected-bg', colors.rowSelected); + root.setProperty('--row-selected-bg-hover', colors.rowSelected); + const fg = readableForeground(rgb); + root.setProperty('--row-selected-text', fg.primary); + root.setProperty('--row-selected-text-muted', fg.secondary); + root.setProperty('--row-selected-icon', fg.primary); + root.setProperty('--row-selected-icon-hover', fg.primary); + const so = surfaceShades(rgb); + root.setProperty('--row-selected-surface', so.surface); + root.setProperty('--row-selected-surface-strong', so.surfaceStrong); + } + if (colors.detailPanel && hexToRgb(colors.detailPanel)) { + const rgb = hexToRgb(colors.detailPanel); + root.setProperty('--app-expanded-bg', colors.detailPanel); + const fg = readableForeground(rgb); + root.setProperty('--detail-text', fg.primary); + root.setProperty('--detail-text-muted', fg.secondary); + root.setProperty('--detail-text-faint', fg.muted); + const so = surfaceShades(rgb); + root.setProperty('--detail-surface', so.surface); + root.setProperty('--detail-surface-strong', so.surfaceStrong); + root.setProperty('--detail-border', so.border); + root.setProperty('--detail-border-soft', so.borderSoft); + } +} + +// Default-Logo das immer im Projekt-Root liegt — wird verwendet, wenn der +// User kein eigenes Logo hochgeladen hat (oder seines wieder entfernt). +const DEFAULT_LOGO_FILE = 'application.png'; + +function applyBranding(branding, cacheBust) { + const logoEl = document.getElementById('brandLogo'); + if (!logoEl) return; + const file = (branding && branding.logoFile) || DEFAULT_LOGO_FILE; + // cacheBust-Fallback-Kette: explizit uebergeben -> branding.logoCacheTag -> 1 + // (Default-Logo ist statisch, einmaliges Laden reicht; uploaded Logos + // bekommen vom Backend einen mtime-Tag.) + const tag = cacheBust || (branding && branding.logoCacheTag) || '1'; + const url = `/assets/${encodeURIComponent(file)}?v=${encodeURIComponent(tag)}`; + logoEl.innerHTML = `Logo`; + logoEl.classList.add('has-custom-logo'); +} + +// ============================================================= +// Einstellungen (Tenant/Client-ID, Gruppen-Praefixe, Naming, ...) +// ============================================================= + +// Fallback-Vendor-Definitionen falls SettingsState aus irgendeinem Grund +// (Settings-Load-Race, kaputte settings.json) leer ist. Damit zeigen PMPC- +// und Robopack-Apps IMMER Source-Badge + Lock-Icons, unabhaengig von Backend. +const VENDOR_FALLBACKS = [ + { id: 'patchmypc', displayName: 'PatchMyPC', portalUrl: 'https://portal.patchmypc.com/', logoFile: 'pmpc.png', block: { delete: true, rename: true } }, + { id: 'robopack', displayName: 'Robopack', portalUrl: 'https://app.robopack.com/', logoFile: 'robopack.png', block: { delete: true, rename: true } }, +]; + +const SettingsState = { + current: null, // zuletzt geladene Settings vom Server + filePath: null, + // Vendor-Indizes — werden bei jedem Settings-Load via rebuildVendorIndexes() + // neu aufgebaut, damit Render + Filter ohne wiederholten Lookup laufen. + // Initial mit Fallbacks befuellt, damit der erste Render schon korrekt rendert. + vendors: VENDOR_FALLBACKS.slice(), + vendorsById: Object.fromEntries(VENDOR_FALLBACKS.map(v => [v.id, v])), + vendorsByDisplayName: Object.fromEntries(VENDOR_FALLBACKS.map(v => [v.displayName, v])), +}; + +function rebuildVendorIndexes(settings) { + let list = (settings && Array.isArray(settings.vendors)) ? settings.vendors : []; + // Fehlende Standard-Vendoren immer mit reinmischen — verhindert dass eine + // unvollstaendige settings.json PMPC/Robopack aus dem UI verschwinden laesst. + for (const fb of VENDOR_FALLBACKS) { + if (!list.some(v => v && v.id === fb.id)) list = list.concat([fb]); + } + SettingsState.vendors = list; + SettingsState.vendorsById = {}; + SettingsState.vendorsByDisplayName = {}; + for (const v of list) { + if (v && v.id) SettingsState.vendorsById[v.id] = v; + if (v && v.displayName) SettingsState.vendorsByDisplayName[v.displayName] = v; + } + rebuildVendorFilterOptions(); +} + +function rebuildVendorFilterOptions() { + // Filter-Select hat statische Optionen fuer "Alle/Intune"; Vendor-Optionen + // werden hier nachgereicht. Vorhandene srcVendor:-Options vorher entsorgen. + const sel = document.getElementById('appFilter'); + if (!sel) return; + // Bestehende dynamische Eintraege entfernen + Array.from(sel.querySelectorAll('option[data-vendor-option]')).forEach(o => o.remove()); + // "Nur Intune" als Anker — Vendor-Eintraege werden direkt danach eingefuegt + const intuneOpt = Array.from(sel.options).find(o => o.value === 'srcIntune'); + const insertAfter = intuneOpt || sel.options[sel.options.length - 1]; + for (const v of SettingsState.vendors) { + if (!v || !v.id || !v.displayName) continue; + const opt = document.createElement('option'); + opt.value = `srcVendor:${v.id}`; + opt.textContent = `Nur ${v.displayName}-Apps`; + opt.dataset.vendorOption = '1'; + insertAfter.insertAdjacentElement('afterend', opt); + } +} + +function rebuildCategoryFilterOptions() { + // Baut die Optionen des Kategorie-Filters aus den tatsaechlich in den + // geladenen Apps vorkommenden Kategorien. Auswahl bleibt erhalten falls + // die Kategorie noch existiert. + const sel = document.getElementById('appCategoryFilter'); + if (!sel) return; + const prev = sel.value; + + // Distinkte Kategorien sammeln (alphabetisch, de-DE) + const set = new Set(); + let anyWithout = false; + for (const a of State.apps) { + if (Array.isArray(a.Categories) && a.Categories.length > 0) { + for (const c of a.Categories) { if (c) set.add(String(c)); } + } else { + anyWithout = true; + } + } + const cats = Array.from(set).sort((x, y) => x.localeCompare(y, 'de-DE')); + + // Neu aufbauen: "Alle Kategorien" fix, dann optional "Ohne Kategorie", dann die Namen + sel.innerHTML = ''; + const optAll = document.createElement('option'); + optAll.value = ''; + optAll.textContent = 'Alle Kategorien'; + sel.appendChild(optAll); + + if (anyWithout) { + const optNone = document.createElement('option'); + optNone.value = '__none__'; + optNone.textContent = 'Ohne Kategorie (Default)'; + sel.appendChild(optNone); + } + + for (const c of cats) { + const opt = document.createElement('option'); + opt.value = c; + opt.textContent = c; + sel.appendChild(opt); + } + + // Vorherige Auswahl wiederherstellen wenn noch gueltig + if (prev && (prev === '__none__' || cats.includes(prev))) { + sel.value = prev; + } else { + sel.value = ''; + State.appFilter.category = ''; + } +} + +function isSetupIncomplete(s) { + if (!s) return true; + const c = s.connection || {}; + const d = s.departments || {}; + const tenant = (c.tenantId || '').trim(); + const client = (c.clientId || '').trim(); + // Praefixe: 'prefixes'-Array bevorzugt, sonst alter Single-String 'prefix'. + // Setup ist komplett, wenn mind. ein nicht-leerer Praefix (>= 2 Zeichen) existiert. + let hasPrefix = false; + if (Array.isArray(d.prefixes)) { + for (const p of d.prefixes) { if (p && String(p).trim().length >= 2) { hasPrefix = true; break; } } + } + if (!hasPrefix && d.prefix && String(d.prefix).trim().length >= 2) { hasPrefix = true; } + return !tenant || !client || !hasPrefix; +} + +function applySetupNeededUI(needed) { + // Setup-Banner im Modal + Hinweis im Onboarding-Panel + Connect-Button disablen + const banner = document.getElementById('setupBanner'); + if (banner) banner.classList.toggle('hidden', !needed); + const hint = document.getElementById('onboardingSetupHint'); + if (hint) hint.classList.toggle('hidden', !needed); + const btn = document.getElementById('btnConnect'); + if (btn) { + btn.disabled = !!needed; + btn.title = needed ? 'Bitte zuerst in Einstellungen konfigurieren.' : ''; + } +} + +async function openSettingsModal() { + // Modal sofort oeffnen, Inhalt nachladen + document.getElementById('setFilePath').textContent = SettingsState.filePath || 'wird geladen…'; + // Test-Result-Box bei jedem Oeffnen leeren — stale Ergebnisse vermeiden. + const trBox = document.getElementById('settingsTestResult'); + if (trBox) trBox.innerHTML = ''; + openModal('modalSettings'); + try { + const res = await api('/api/settings'); + SettingsState.current = res.settings; + SettingsState.filePath = res.path; + rebuildVendorIndexes(res.settings); + fillSettingsForm(res.settings); + document.getElementById('setFilePath').textContent = res.path || '(unbekannt)'; + const banner = document.getElementById('setupBanner'); + if (banner) banner.classList.toggle('hidden', !isSetupIncomplete(res.settings)); + } catch (e) { + toast('Einstellungen konnten nicht geladen werden: ' + e.message, 'err'); + } +} + +async function onSettingsTest() { + const box = document.getElementById('settingsTestResult'); + const btn = document.getElementById('btnSettingsTest'); + if (!box) return; + // Aktuellen Form-State testen (nicht den gespeicherten). + const payload = readSettingsForm(); + box.innerHTML = '
    Pruefe Werte gegen Microsoft Graph…
    '; + if (btn) btn.disabled = true; + try { + const res = await api('/api/settings/test', { method: 'POST', body: payload }); + box.innerHTML = renderSettingsTestResult(res); + } catch (e) { + box.innerHTML = `
    Test fehlgeschlagen: ${escapeHtml(e.message || String(e))}
    `; + } finally { + if (btn) btn.disabled = false; + } +} + +function renderSettingsTestResult(res) { + const lines = []; + const ok = 'OK'; + const fail = 'FAIL'; + const conn = res.connection || {}; + if (conn.ok) { + lines.push(`
    ${ok} Verbindung: ${escapeHtml(conn.account || '')} (Tenant ${escapeHtml(conn.tenantId || '')})
    `); + } else { + const why = conn.reason === 'not_connected' ? 'Bitte zuerst per Connect-Button verbinden.' : (conn.message || 'unbekannter Grund'); + lines.push(`
    ${fail} Verbindung: ${escapeHtml(why)}
    `); + return lines.join(''); + } + const d = res.departments || {}; + if (d.reason === 'not_configured') { + lines.push(`
    ${fail} Abteilungs-Praefix(e) nicht gesetzt.
    `); + } else if (Array.isArray(d.perPrefix) && d.perPrefix.length > 0) { + // Neue Form: eine Zeile pro Praefix + lines.push(`
    ${d.ok ? ok : fail} Abteilungs-Gruppen — Total: ${d.totalCount || 0}
    `); + for (const pp of d.perPrefix) { + if (pp.ok) { + const sample = pp.sample && pp.sample.length ? ` (z.B. ${pp.sample.map(escapeHtml).join(', ')})` : ''; + const icon = pp.count > 0 ? ok : '0'; + const cls = pp.count > 0 ? '' : 'set-test-warn'; + lines.push(`
    ${icon} ${escapeHtml(pp.prefix)}: ${pp.count} Treffer${sample}
    `); + } else { + lines.push(`
    ${fail} ${escapeHtml(pp.prefix)}: ${escapeHtml(pp.error || '')}
    `); + } + } + } else if (d.ok) { + // Backward-compat: alte Single-Prefix-Response + const sample = d.sample && d.sample.length ? ` (z.B. ${d.sample.map(escapeHtml).join(', ')})` : ''; + lines.push(`
    ${ok} Abteilungs-Gruppen: ${d.count} Treffer fuer ${escapeHtml(d.prefix)}${sample}
    `); + } else { + lines.push(`
    ${fail} Abteilungs-Gruppen-Lookup fehlgeschlagen: ${escapeHtml(d.error || '')}
    `); + } + const r = res.rpa || {}; + if (r.ok) { + lines.push(`
    ${ok} RPA-Gruppen: ${(r.found || []).length} von ${r.expected} gefunden
    `); + } else if (r.reason === 'not_configured') { + lines.push(`
    ${fail} Keine RPA-Gruppen konfiguriert (optional — der RPA-Tab bleibt dann leer).
    `); + } else { + const miss = (r.missing || []).map(escapeHtml).join(', '); + lines.push(`
    ${fail} RPA-Gruppen: ${(r.found || []).length} von ${r.expected} gefunden. Fehlt: ${miss}
    `); + } + const u = res.userSearch || {}; + if (u.ok) { + lines.push(`
    ${ok} Benutzer-Suche: ok (${(u.fields || []).join(', ')})
    `); + } else if (u.reason === 'no_fields') { + lines.push(`
    ${fail} Keine User-Such-Felder gewaehlt.
    `); + } else { + lines.push(`
    ${fail} Benutzer-Suche fehlgeschlagen: ${escapeHtml(u.error || '')}
    `); + } + const ven = res.vendors || {}; + if (Array.isArray(ven.counts) && ven.counts.length > 0) { + for (const c of ven.counts) { + const icon = c.count > 0 ? ok : '0'; + const cls = c.count > 0 ? '' : 'set-test-warn'; + lines.push(`
    ${icon} Vendor ${escapeHtml(c.displayName)}: ${c.count} Apps (Regel: ${escapeHtml(c.detection)})
    `); + } + if (ven.hint) { + lines.push(`
    Hinweis: ${escapeHtml(ven.hint)}
    `); + } + } + return lines.join(''); +} + +function fillSettingsForm(s) { + const c = s.connection || {}; + document.getElementById('setTenantId').value = c.tenantId || ''; + document.getElementById('setClientId').value = c.clientId || ''; + document.getElementById('setScopes').value = (c.scopes || []).join('\n'); + + // Backward-compat: lese 'prefixes' (Array) bevorzugt, falle sonst auf + // alten Single-String 'prefix' zurueck. Beide werden in die Textarea + // gemerged (gleiche Logik wie Get-DepartmentPrefixes im Backend). + (function () { + const d = s.departments || {}; + const list = []; + if (Array.isArray(d.prefixes)) { for (const p of d.prefixes) if (p) list.push(String(p)); } + if (d.prefix) list.push(String(d.prefix)); + const seen = {}; const out = []; + for (const raw of list) { + const t = raw.trim(); if (!t) continue; + const k = t.toLowerCase(); + if (seen[k]) continue; seen[k] = true; out.push(t); + } + document.getElementById('setDeptPrefixes').value = out.join('\n'); + })(); + document.getElementById('setRpaGroups').value = ((s.rpa && s.rpa.groupNames) || []).join('\n'); + + const fields = (s.userSearch && s.userSearch.fields) || []; + document.getElementById('setUsfDisplayName').checked = fields.includes('displayName'); + document.getElementById('setUsfUpn').checked = fields.includes('userPrincipalName'); + document.getElementById('setUsfMail').checked = fields.includes('mail'); + document.getElementById('setUsfDepartment').checked = fields.includes('department'); + + const r = s.requiredGroupNaming || {}; + document.getElementById('setReqPrefix').value = r.prefix || ''; + document.getElementById('setReqSuffix').value = r.suffix || ''; + updateReqPreview(); + const av = s.availableGroupNaming || {}; + document.getElementById('setAvailPrefix').value = av.prefix || ''; + document.getElementById('setAvailSuffix').value = av.suffix || ''; + updateAvailPreview(); + + // Branding-Logo Preview + fillLogoPreview(s.branding); + + // Farben + const cols = (s.theme && s.theme.colors) || {}; + for (const key of Object.keys(ThemeDefaults)) { + const hex = cols[key] || ThemeDefaults[key]; + setColorInputs(key, hex); + } +} + +function setColorInputs(key, hex) { + const cap = key[0].toUpperCase() + key.slice(1); + const picker = document.getElementById(`setCol${cap}`); + const text = document.getElementById(`setCol${cap}Hex`); + const swatch = document.querySelector(`.color-swatch[data-swatch="${key}"]`); + if (picker) picker.value = hex; + if (text) text.value = hex; + if (swatch) swatch.style.background = hex; +} + +function fillLogoPreview(branding) { + const userFile = branding && branding.logoFile; + const file = userFile || DEFAULT_LOGO_FILE; + const preview = document.getElementById('logoPreview'); + const removeBtn = document.getElementById('btnLogoRemove'); + if (!preview) return; + const tag = (branding && branding.logoCacheTag) || '1'; + const url = `/assets/${encodeURIComponent(file)}?v=${encodeURIComponent(tag)}`; + preview.innerHTML = `Logo`; + // "Entfernen"-Button nur wenn ein eigenes Logo aktiv ist (Default-Logo + // application.png kann nicht entfernt werden — ist die Firmen-Vorgabe). + if (removeBtn) removeBtn.hidden = !userFile; +} + +function readSettingsForm() { + const splitLines = (txt) => (txt || '') + .split(/\r?\n/).map(s => s.trim()).filter(Boolean); + const fields = []; + if (document.getElementById('setUsfDisplayName').checked) fields.push('displayName'); + if (document.getElementById('setUsfUpn').checked) fields.push('userPrincipalName'); + if (document.getElementById('setUsfMail').checked) fields.push('mail'); + if (document.getElementById('setUsfDepartment').checked) fields.push('department'); + + return { + connection: { + tenantId: document.getElementById('setTenantId').value.trim(), + clientId: document.getElementById('setClientId').value.trim(), + scopes: splitLines(document.getElementById('setScopes').value), + }, + departments: { + // Neuer Listen-Form: Praefixe aus Textarea. Alten Single-String 'prefix' + // beim Save auf leer setzen, damit nicht beide Quellen divergieren — + // das Backend liest ab jetzt nur noch aus 'prefixes'. + prefixes: splitLines(document.getElementById('setDeptPrefixes').value), + prefix: '', + }, + rpa: { + groupNames: splitLines(document.getElementById('setRpaGroups').value), + }, + userSearch: { + fields, + }, + requiredGroupNaming: { + prefix: document.getElementById('setReqPrefix').value, + suffix: document.getElementById('setReqSuffix').value, + }, + availableGroupNaming: { + prefix: document.getElementById('setAvailPrefix').value, + suffix: document.getElementById('setAvailSuffix').value, + }, + theme: { + colors: { + brand: document.getElementById('setColBrandHex').value.trim() || ThemeDefaults.brand, + accent: document.getElementById('setColAccentHex').value.trim() || ThemeDefaults.accent, + required: document.getElementById('setColRequiredHex').value.trim() || ThemeDefaults.required, + success: document.getElementById('setColSuccessHex').value.trim() || ThemeDefaults.success, + warning: document.getElementById('setColWarningHex').value.trim() || ThemeDefaults.warning, + error: document.getElementById('setColErrorHex').value.trim() || ThemeDefaults.error, + rowSelected: document.getElementById('setColRowSelectedHex').value.trim() || ThemeDefaults.rowSelected, + detailPanel: document.getElementById('setColDetailPanelHex').value.trim() || ThemeDefaults.detailPanel, + }, + }, + }; +} + +function updateReqPreview() { + const p = document.getElementById('setReqPrefix').value || ''; + const s = document.getElementById('setReqSuffix').value || ''; + const ex = (p + 'beispiel-app' + s).toLowerCase(); + document.getElementById('setReqPreview').textContent = ex; +} + +function updateAvailPreview() { + const p = document.getElementById('setAvailPrefix').value || ''; + const s = document.getElementById('setAvailSuffix').value || ''; + const ex = (p + 'beispiel-app' + s).toLowerCase(); + document.getElementById('setAvailPreview').textContent = ex; +} + +async function saveSettings() { + const payload = readSettingsForm(); + setLoading('Speichere Einstellungen...'); + try { + const res = await api('/api/settings', { method: 'PUT', body: payload }); + SettingsState.current = res.settings; + // Theme + Branding sofort live anwenden (kein Reload noetig) + if (res.settings) { + applyThemeColors(res.settings.theme && res.settings.theme.colors); + applyBranding(res.settings.branding); + rebuildVendorIndexes(res.settings); + applySetupNeededUI(isSetupIncomplete(res.settings)); + } + closeModal('modalSettings'); + if (res.disconnected) { + toast('Einstellungen gespeichert — Connection-Werte geändert, du wurdest abgemeldet.', 'warn', 'Disconnect'); + State.connected = false; + State.account = null; + // Komplettes Frontend-State neu starten + State.targets = []; + State.selectedTargetIds = new Set(); + State.apps = []; + State.session = []; + State.membershipCache.clear(); + State.expandedApps.clear(); + renderConnection(); + renderTargets(); + renderApps(); + renderSession(); + renderExisting(); + updateStepper(); + await refreshStatus(); + } else { + toast('Einstellungen gespeichert.', 'ok'); + // Nur was sich wirklich geaendert hat neu laden — Logo/Farben/Naming + // brechen keine Backend-Caches. + const changed = res.changed || {}; + if (changed.departments) { + State.loadedModes.delete('dept'); + if (State.modeCache.has('dept')) State.modeCache.delete('dept'); + } + if (changed.rpa) { + State.loadedModes.delete('rpa'); + if (State.modeCache.has('rpa')) State.modeCache.delete('rpa'); + } + if (State.connected && ((changed.departments && State.mode === 'dept') || (changed.rpa && State.mode === 'rpa'))) { + await loadTargets(); + } + } + } catch (e) { + toast(e.message, 'err', 'Speichern fehlgeschlagen'); + } finally { + clearLoading(); + } +} + +async function resetSettings() { + if (!window.confirm('Alle Einstellungen auf Standardwerte zurücksetzen?\n\nDu wirst dabei von Microsoft Graph abgemeldet.')) return; + setLoading('Setze Einstellungen zurück...'); + try { + const res = await api('/api/settings/reset', { method: 'POST' }); + SettingsState.current = res.settings; + if (res.settings) { + applyThemeColors(res.settings.theme && res.settings.theme.colors); + applyBranding(res.settings.branding); + rebuildVendorIndexes(res.settings); + } + fillSettingsForm(res.settings); + applySetupNeededUI(isSetupIncomplete(res.settings)); + State.connected = false; + State.account = null; + renderConnection(); + await refreshStatus(); + toast('Einstellungen zurückgesetzt.', 'ok'); + } catch (e) { + toast(e.message, 'err', 'Reset fehlgeschlagen'); + } finally { + clearLoading(); + } +} + +// Verkabelung +document.getElementById('btnSettings')?.addEventListener('click', openSettingsModal); +document.getElementById('btnSettingsSave')?.addEventListener('click', saveSettings); +document.getElementById('btnSettingsReset')?.addEventListener('click', resetSettings); +document.getElementById('btnSettingsTest')?.addEventListener('click', onSettingsTest); +document.getElementById('onboardingOpenSettings')?.addEventListener('click', e => { + e.preventDefault(); + openSettingsModal(); +}); +document.getElementById('setReqPrefix')?.addEventListener('input', updateReqPreview); +document.getElementById('setReqSuffix')?.addEventListener('input', updateReqPreview); +document.getElementById('setAvailPrefix')?.addEventListener('input', updateAvailPreview); +document.getElementById('setAvailSuffix')?.addEventListener('input', updateAvailPreview); + +document.getElementById('raSubmit')?.addEventListener('click', submitRenameApp); +document.getElementById('raNewName')?.addEventListener('keydown', e => { + if (e.key === 'Enter') { e.preventDefault(); submitRenameApp(); } +}); + +// Setup-Datei aktualisieren: Submit + Bestaetigungs-Checkbox steuert den Button +document.getElementById('ucSubmit')?.addEventListener('click', submitUpdateContent); +document.getElementById('ucConfirm')?.addEventListener('change', e => { + const btn = document.getElementById('ucSubmit'); + if (btn) btn.disabled = !e.target.checked; +}); +document.getElementById('ucBrowse')?.addEventListener('click', async () => { + const btn = document.getElementById('ucBrowse'); + const errEl = document.getElementById('ucError'); + errEl.textContent = ''; + btn.disabled = true; + const prevLabel = btn.textContent; + btn.textContent = 'Dialog offen…'; + try { + // Datei-Dialog auf dem Server-Rechner (Phase 1: .intunewin vorfiltern) + const res = await api('/api/pickfile', { + method: 'POST', + body: { filter: 'Intune-Pakete (*.intunewin)|*.intunewin|Alle Dateien (*.*)|*.*', title: 'Setup-Datei auswählen' }, + timeoutMs: 600000, + }); + if (res.path) document.getElementById('ucFilePath').value = res.path; + } catch (e) { + errEl.textContent = 'Datei-Dialog fehlgeschlagen: ' + e.message; + } finally { + btn.disabled = false; + btn.textContent = prevLabel; + } +}); + +// --- Branding: Logo-Upload --- +document.getElementById('btnLogoPick')?.addEventListener('click', () => { + document.getElementById('logoFile').click(); +}); +document.getElementById('logoFile')?.addEventListener('change', async e => { + const file = e.target.files && e.target.files[0]; + e.target.value = ''; // gleiche Datei nochmal auswaehlbar machen + if (!file) return; + const maxBytes = 2 * 1024 * 1024; + if (file.size > maxBytes) { + toast(`Datei zu groß (${Math.round(file.size/1024)} KB, max. 2 MB)`, 'err'); + return; + } + setLoading('Lade Logo hoch...'); + try { + const dataUrl = await new Promise((res, rej) => { + const r = new FileReader(); + r.onload = () => res(r.result); + r.onerror = () => rej(new Error('Datei konnte nicht gelesen werden.')); + r.readAsDataURL(file); + }); + const m = String(dataUrl).match(/^data:([^;]+);base64,(.+)$/); + if (!m) throw new Error('Unerwartetes Datei-Format.'); + const res = await api('/api/settings/logo', { + method: 'POST', + body: { name: file.name, mime: m[1], dataBase64: m[2] }, + }); + if (SettingsState.current) { + if (!SettingsState.current.branding) SettingsState.current.branding = {}; + SettingsState.current.branding.logoFile = res.logoFile; + SettingsState.current.branding.logoCacheTag = res.cacheTag; + } + applyBranding({ logoFile: res.logoFile, logoCacheTag: res.cacheTag }); + fillLogoPreview({ logoFile: res.logoFile, logoCacheTag: res.cacheTag }); + toast(`Logo hochgeladen (${res.sizeKb} KB)`, 'ok'); + } catch (e) { + toast(e.message, 'err', 'Logo-Upload fehlgeschlagen'); + } finally { + clearLoading(); + } +}); +document.getElementById('btnLogoRemove')?.addEventListener('click', async () => { + if (!window.confirm('Eigenes Logo entfernen?')) return; + setLoading('Entferne Logo...'); + try { + await api('/api/settings/logo', { method: 'DELETE' }); + if (SettingsState.current && SettingsState.current.branding) { + SettingsState.current.branding.logoFile = null; + } + applyBranding({ logoFile: null }); + fillLogoPreview({ logoFile: null }); + toast('Logo entfernt.', 'ok'); + } catch (e) { + toast(e.message, 'err', 'Entfernen fehlgeschlagen'); + } finally { + clearLoading(); + } +}); + +// --- Farben: Picker <-> Hex-Input synchronisieren + Live-Preview-Swatch --- +function bindColorPair(key) { + const cap = key[0].toUpperCase() + key.slice(1); + const picker = document.getElementById(`setCol${cap}`); + const text = document.getElementById(`setCol${cap}Hex`); + const swatch = document.querySelector(`.color-swatch[data-swatch="${key}"]`); + if (!picker || !text) return; + const sync = (hex) => { + if (!/^#[0-9a-fA-F]{6}$/.test(hex)) return false; + picker.value = hex.toLowerCase(); + text.value = hex.toLowerCase(); + if (swatch) swatch.style.background = hex; + return true; + }; + picker.addEventListener('input', () => sync(picker.value)); + text.addEventListener('input', () => { + const v = text.value.trim(); + if (v.length === 7 && sync(v)) { /* ok */ } + else if (swatch) swatch.style.background = v || ThemeDefaults[key]; + }); +} +['brand','accent','required','success','warning','error','rowSelected','detailPanel'].forEach(bindColorPair); + +document.querySelectorAll('[data-color-reset]').forEach(btn => { + btn.addEventListener('click', () => { + const key = btn.dataset.colorReset; + setColorInputs(key, ThemeDefaults[key]); + }); +}); + +// "Standardfarben wiederherstellen" — setzt ALLE Picker auf die Vorgabe und +// wendet sie sofort auf die UI an (Live-Vorschau ohne Speichern). User klickt +// dann selbst "Speichern" wenn er die Defaults persistieren will. +document.getElementById('btnRestoreColors')?.addEventListener('click', () => { + for (const key of Object.keys(ThemeDefaults)) { + setColorInputs(key, ThemeDefaults[key]); + } + applyThemeColors(Object.assign({}, ThemeDefaults)); + toast('Farben auf Standard zurückgesetzt — "Speichern" um zu persistieren.', 'ok'); +}); + +// ============================================================= +// Theme-Toggle +// ============================================================= + +(function setupTheme() { + const btn = document.getElementById('btnThemeToggle'); + if (!btn) return; + const sync = () => { + const isDark = document.documentElement.getAttribute('data-theme') === 'dark'; + btn.setAttribute('aria-checked', isDark ? 'true' : 'false'); + btn.title = isDark ? 'Auf Light Mode wechseln' : 'Auf Dark Mode wechseln'; + }; + btn.addEventListener('click', () => { + const cur = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light'; + const next = cur === 'dark' ? 'light' : 'dark'; + // Alle CSS-Transitions waehrend des Wechsels ausschalten — sonst animieren + // hunderte Elemente gleichzeitig ihre background/color/border-Aenderungen + // und alles ruckelt. + document.documentElement.classList.add('theme-switching'); + document.documentElement.setAttribute('data-theme', next); + try { localStorage.setItem('iam-theme', next); } catch {} + sync(); + // Im naechsten Frame Transitions wieder aktivieren + requestAnimationFrame(() => { + requestAnimationFrame(() => { + document.documentElement.classList.remove('theme-switching'); + }); + }); + }); + sync(); +})(); + +// ============================================================= +// Init +// ============================================================= + +(async function init() { + renderConnection(); + renderTargets(); + renderApps(); + renderSession(); + renderExisting(); + // Branding + Theme so frueh wie moeglich anwenden, damit nichts mit den + // Default-Farben kurz aufblitzt. Connection-Status danach. + let setupNeeded = false; + try { + const res = await api('/api/settings'); + SettingsState.current = res.settings; + SettingsState.filePath = res.path; + applyThemeColors(res.settings && res.settings.theme && res.settings.theme.colors); + applyBranding(res.settings && res.settings.branding); + rebuildVendorIndexes(res.settings); + setupNeeded = isSetupIncomplete(res.settings); + applySetupNeededUI(setupNeeded); + } catch (e) { + console.warn('Settings konnten beim Init nicht geladen werden:', e.message); + } + await refreshStatus(); + if (State.connected) autoLoadAfterConnect(); + // First-Run: wenn kritische Felder leer sind, Settings-Modal automatisch oeffnen. + if (setupNeeded) { + setTimeout(() => openSettingsModal(), 200); + } +})(); diff --git a/Intune/Intune-App-Manager-Web/www/help.md b/Intune/Intune-App-Manager-Web/www/help.md new file mode 100644 index 0000000..d5b20ae --- /dev/null +++ b/Intune/Intune-App-Manager-Web/www/help.md @@ -0,0 +1,341 @@ +# Intune App-Manager — Hilfe + +Web-Frontend für Microsoft Intune. Lädt Apps und Gruppen aus deinem Tenant über Microsoft Graph und macht das Verwalten von Zuweisungen schneller als im Intune-Portal selbst. + +--- + +## Schnellstart in 5 Schritten + +1. **Verbinden** — beim ersten Start öffnet sich der Onboarding-Screen. *Anmeldung starten* klicken → Microsoft-Anmeldefenster bestätigen. +2. **Empfänger wählen** — linke Spalte. Wechsle zwischen *Abteilung*, *RPA* oder *Benutzer* und setze die Haken. +3. **Apps laden** — falls noch nicht geschehen, klicke das *Refresh*-Icon rechts oben in der Apps-Spalte. +4. **Zuweisung sammeln** — bei einer App auf den **Available**- oder **Required**-Button klicken. Die ausgewählten Empfänger landen in der Session (rechte Spalte). +5. **Ausführen** — rechts unten *Zuweisungen ausführen*. Ein HTML-Report öffnet sich automatisch. + +--- + +## Apps zuweisen — der Hauptworkflow + +Das ist der zentrale Anwendungsfall des Tools. Du nimmst eine Liste von **Empfängern** (Abteilungen, RPA-Gruppen oder Einzel-User), suchst eine oder mehrere **Apps** und fügst die Empfänger den **bereits an der App zugewiesenen Gruppen** als Mitglieder hinzu. + +### Das mentale Modell + +Das Tool ändert **nicht die App-Zuweisungen selbst** — die Liste der Available/Required-Gruppen einer App bleibt, was sie ist. Stattdessen ändert es die **Mitgliedschaften in genau diesen Gruppen**. Beispiel: + +> Beispiel mit Platzhaltern. Die Präfixe `` und `intune-win-app-` sind in den Einstellungen konfigurierbar. + +- App *Beispiel-App* hat die Required-Gruppe `intune-win-app--required` zugewiesen. +- Du wählst links die Abteilung `-team-controlling` als Empfänger. +- Klick auf die *Required*-Pille der App → die Operation `Abteilung als Mitglied zur Required-Gruppe hinzufügen` wandert in die Session. +- Beim Ausführen wird `-team-controlling` als Mitglied in `intune-win-app--required` aufgenommen. +- Intune ziehst dann beim nächsten Sync alle Mitglieder dieser Gruppe als Required-Targets der App. + +### Schritt-für-Schritt + +1. **Empfänger markieren (linke Spalte).** Du kannst Modi mischen — z. B. zwei Abteilungen *plus* drei Einzel-Benutzer gleichzeitig auswählen. Die *Pinned-Targets*-Leiste oben zeigt dir alles, was gerade aktiv ist. +2. **Apps öffnen (mittlere Spalte).** Filter benutzen oder Suchfeld. Du musst die Apps nicht einzeln durchgehen — du kannst nacheinander bei mehreren Apps Pillen klicken, alle Operationen sammeln und am Ende einmal ausführen. +3. **Available- oder Required-Button klicken.** Was passiert hängt vom Inhalt ab: + - **App hat genau eine Available/Required-Gruppe**: Die ausgewählten Empfänger werden direkt zur Session als „diese Gruppe + dieser Intent" hinzugefügt. + - **App hat mehrere Gruppen** (Count-Badge auf dem Button): Ein Picker öffnet sich und du wählst gezielt eine Gruppe aus der Liste. + - **App hat keine Gruppe** dieses Typs: Button ist deaktiviert. +4. **Status prüfen.** Die Buttons zeigen dir farblich an, wie der aktuelle Stand ist (siehe nächster Abschnitt). +5. **Bei mehreren Apps wiederholen.** Die Session sammelt alles. Wenn du dieselbe Pille nochmal klickst, wird der Vorgang aus der Session **wieder entfernt** (Toggle-Verhalten). +6. **Ausführen.** Rechts unten *Zuweisungen ausführen*. Das Tool durchläuft jede gesammelte Operation und schickt einen Member-Add an die Microsoft-Graph-API. Der HTML-Report listet Erfolge und Fehler je App. + +### Bedeutung der Pillen-Farben + +Die Buttons *Available* und *Required* an jeder App-Zeile signalisieren über Farbe und Indikator den Zustand **bezogen auf die gerade ausgewählten Empfänger**: + +| Optik | Bedeutung | +|---|---| +| Heller Akzent-Rahmen, neutral | Standard-Zustand. Keine ausgewählten Empfänger oder noch nicht geprüft. | +| **Grüner Rahmen + grünes Häkchen** in der Zeile | **Alle** ausgewählten Empfänger sind bereits Mitglied einer der zugewiesenen Gruppen dieses Typs. Klick erzeugt evtl. Dubletten — meist nicht nötig. | +| **Gelber Rahmen + halbes Häkchen** | **Teilweise**: ein Teil der Empfänger ist schon Mitglied, der Rest nicht. Klick füllt die Lücken. | +| **Schwarz gefüllt + Count-Badge** (z. B. „3") | **Aktiv in der Session**: Operation für diese App ist schon gesammelt. Anzahl = wie viele Operationen für diese App in der Session liegen. Erneuter Klick entfernt sie wieder. | +| Italic Schrift, ausgegraut | **Native Zuweisung** (All Users / All Devices) ist die einzige Option — Mitgliedschaft kann nicht geändert werden, weil keine Gruppe existiert. | + +### Picker bei mehreren Gruppen + +Wenn eine App mehr als eine Available- oder Required-Gruppe hat, öffnet der Klick einen kleinen Picker: + +- Liste aller Gruppen dieses Typs +- Pro Gruppe wird der **Member-Status** (Mitglied / Partial mit n/m-Anzeige) angezeigt, sofern Empfänger ausgewählt sind +- Klick auf eine Gruppe = zur Session hinzufügen oder entfernen (Toggle) +- Pro Gruppe zusätzlich die *Aktions-Icons* (Intune-Portal-Link, Mitglieder, Zuweisung löschen) + +### Die Session (rechte Spalte) + +Die rechte Spalte ist deine **Vorschau aller noch nicht ausgeführten Vorgänge**. Pro Session-Eintrag siehst du: + +- App-Name + Gruppen-Name +- Empfänger-Tag (genau **ein** Empfänger pro Eintrag — bei mehreren Empfängern entstehen mehrere Einträge) +- A/R-Badge (Available oder Required) +- X-Button um den Eintrag wieder rauszunehmen + +Darunter eine Zusammenfassung mit der **Gesamtzahl der Vorgänge** — der Apply-Button zeigt diese Zahl mit an. + +### Ausführen und Report + +Klick auf *Zuweisungen ausführen* → Bestätigungs-Dialog mit Counter → echte Ausführung: + +- Für jeden Session-Eintrag wird ein Member-Add ausgeführt +- Native Targets (`ALL_USERS`/`ALL_DEVICES`) werden übersprungen — sie haben keine Gruppen-Mitgliedschaft +- Bereits-Mitglied-Fälle werden als „OK (bereits Mitglied)" geloggt — kein Fehler +- Echte Fehler (403 Berechtigung, 404 Gruppe nicht gefunden, …) werden mit Details aufgeführt + +Nach Abschluss öffnet sich automatisch ein **HTML-Report** mit: + +- Erfolgs-/Fehler-/Skipped-Counter + Erfolgsquote +- Empfänger-Chips (Abteilungen, Benutzer) +- Zuweisungs-Chips (App + Gruppe) +- Detail-Tabelle nach App gruppiert — Apps mit Fehlern sind aufgeklappt + +Reports werden in `%TEMP%\IntuneAppManager-Reports\` abgelegt und können später erneut geöffnet werden. + +### Wann sollte ich was nutzen? + +| Du willst… | Workflow | +|---|---| +| 50 User aus einer neuen Abteilung in 10 Apps mitnehmen | Empfänger = Abteilung wählen, durch 10 Apps gehen, je 1 Required- oder Available-Pille klicken, ausführen. | +| Eine neue App nur für 3 Test-Benutzer ausrollen | User-Modus, 3 User markieren. Bei der App entweder eine bestehende Available-Gruppe wählen oder *+ → Available: Neue Gruppe* erzeugen. | +| Eine bestehende Gruppen-Zuweisung einer App entfernen | App aufklappen → *Zuweisungen*-Sektion → Mülleimer-Icon neben der Gruppe. | +| Eine zugewiesene Gruppe in mehreren Apps prüfen | Bei einer App auf die Pille klicken → Picker → Gruppe aussehen → Mitglieder-Icon → Intune-Portal Mitglieder-Ansicht. Oder via Filter „Mehrere Available/Required" eingrenzen. | + +--- + +## Header (oben) + +| Element | Funktion | +|---|---| +| **Logo links** | Kann in den Einstellungen durch dein Firmen-Logo ersetzt werden. | +| **Einstellungen** (Zahnrad-Icon) | Tenant/Client-ID, Naming-Schemata, Farben, Logo, Filter-Defaults. Wird unter `%APPDATA%\IntuneAppManager-Web\settings.json` persistiert. | +| **Hilfe** (Fragezeichen-Icon) | Diese Seite. | +| **Theme-Toggle** (Sonne/Mond-Slider) | Light/Dark-Mode umschalten. Wird im Browser-LocalStorage gemerkt. | +| **Avatar** (Personen-Icon) | Zeigt den angemeldeten Account. Mouseover für vollen UPN. Grüner Punkt = verbunden. | +| **Logout** (Tür-mit-Pfeil-Icon) | Trennt die Microsoft-Graph-Verbindung. | + +--- + +## Linke Spalte — Empfänger + +Drei Auswahl-Modi via Segment-Switch oben: + +- **Abteilung** — lädt alle Gruppen, deren Name mit einem der in den Einstellungen konfigurierten Präfixe beginnt (mehrere möglich, z.B. `abt-hm` *und* `abt-extern` für interne plus externe Mitarbeiter — siehe *Einstellungen → Abteilungs-Gruppen*). +- **RPA** — lädt die in den Einstellungen explizit aufgelisteten Gruppennamen. +- **Benutzer** — Live-Suche über Microsoft Graph. Mindestens 2 Zeichen. Felder konfigurierbar (DisplayName, UPN, Mail, Department). + +### Gruppen aufklappen + +Der Pfeil `>` rechts an einer Gruppen-Zeile öffnet die **Mitglieder inline**. Mitglieder lassen sich einzeln per Checkbox markieren und mit *Benutzer übernehmen* in den User-Modus überführen — nützlich wenn nur ein Teil einer Gruppe zugewiesen werden soll. + +### Icons pro Eintrag (immer sichtbar) + +| Icon-Form | Wirkung | +|---|---| +| Externer-Link-Pfeil | Öffnet die Gruppe/User-Seite direkt im Intune-Portal in neuem Tab. | +| Zwei-Personen-Icon | (nur bei Gruppen) Öffnet die *Mitglieder-Ansicht* der Gruppe im Intune-Portal in neuem Tab. | +| Teams-T-im-Kasten | (nur bei Benutzern) Startet einen Teams-Chat mit der Person — öffnet die Teams-Desktop-App. | + +### Mehrere Modi gleichzeitig + +Die Auswahlen in den drei Modi sind voneinander unabhängig — du kannst etwa 5 Abteilungen + 2 RPA-Gruppen + 3 Einzel-Benutzer gleichzeitig anvisieren. Die *Pinned-Targets*-Leiste oben in der linken Spalte zeigt alles, was gerade markiert ist. + +--- + +## Mittlere Spalte — Apps + +### Filter + +| Filter | Zweck | +|---|---| +| Suchfeld | Volltext-Suche im App-Namen. | +| Dropdown rechts | Preset-Filter: *Alle*, *Ohne Zuweisungen*, *Nur Available*, *Nur Required*, *Mehrere Available/Required*, *All Users/Devices*, *Nur Intune* sowie ein Eintrag *pro konfiguriertem Vendor* (z.B. *Nur PatchMyPC-Apps*, *Nur Robopack-Apps*). | +| `Bereits Gruppenmitglied` | Zeigt nur Apps, bei denen mindestens eine der ausgewählten Empfänger schon Gruppenmitglied einer zugewiesenen Gruppe ist. Funktioniert nur mit ausgewählten Empfängern. | +| `All Users/Devices ausblenden` | Native Zuweisungen aus der Anzeige rausnehmen. | +| `Geändert` (Datumsrange) | Filtert auf das *Last Modified*-Datum der App. | + +### App-Zeile + +Jede Zeile besteht von links nach rechts aus: + +1. **Status-Indikator** (Häkchen wenn alle ausgewählten Empfänger schon Mitglied einer zugewiesenen Gruppe sind). +2. **App-Name** + Hersteller. Klick öffnet das Detail-Panel. +3. **Rename-Icon** (Stift) und **Intune-Link**. Bei Vendor-verwalteten Apps (PatchMyPC, Robopack, …) ist der Stift durch ein **Lock-Icon** ersetzt. +4. **Source-Logo** — Intune, PatchMyPC, Robopack oder ein weiterer in den Einstellungen konfigurierter Vendor. Klick öffnet das jeweilige Portal in einem neuen Tab. +5. **Typ-Chip** (WIN32, MSI, APPX, WINGET, …). +6. **Version**. +7. **Available**- und **Required**-Buttons mit Count (Details siehe *Apps zuweisen — der Hauptworkflow* oben). +8. **Plus-Button** — Zuweisung hinzufügen (siehe nächster Abschnitt). +9. **Delete-Icon** (Mülltonne) — App aus Intune entfernen. Bei Vendor-verwalteten Apps (PatchMyPC, Robopack, …) ersetzt durch ein Lock. + +### Plus-Button — Zuweisung hinzufügen + +Modal mit **sechs Optionen**, gruppiert in zwei Spalten: + +**REQUIRED** (Pflichtinstallation) +- *Neue Gruppe* — erstellt eine neue Azure-AD-Sicherheitsgruppe nach dem Naming-Schema aus den Einstellungen und weist sie der App zu. +- *All Users* — native Zuweisung an alle lizenzierten Benutzer. +- *All Devices* — native Zuweisung an alle Geräte. + +**AVAILABLE** (Selbstinstallation via Firmenportal) +- *Neue Gruppe* — analog, mit Available-Naming-Schema. +- *All Users* — App erscheint im Firmenportal aller Benutzer. +- *All Devices* — App ist auf allen Geräten verfügbar. + +> **Wichtig**: Native Zuweisungen (*All Users*/*All Devices*) können je App und je Intent nur **einmal** existieren. Bereits aktive Kombinationen werden im Dialog **ausgegraut** — das verhindert 409-Fehler bei doppelten Anlagen. + +> **Unterschied zum Hauptworkflow**: Der *Plus*-Button erstellt eine **neue Zuweisung an der App selbst** (z. B. eine neue Gruppe oder ein natives Target). Der Klick auf eine *Available*/*Required*-Pille fügt dagegen Empfänger zu einer **bereits zugewiesenen Gruppe** als Mitglieder hinzu. + +--- + +## App-Detail (Klick auf App-Namen) + +Klappt unter der App-Zeile auf. Inhalt: + +| Sektion | Inhalt | +|---|---| +| **Zuweisungen** | Available + Required-Listen mit Klick-Aktionen (Intune-Link, Mitglieder, Löschen). | +| **Allgemein** | Hersteller, Entwickler, Owner, Version, Typ, Min-OS, Featured-Flag. | +| **Beschreibung** | Wird als **Markdown gerendert** — Tabellen, Listen, Code-Blöcke, fette Schrift, alles wie auf GitHub. | +| **Installation** | Datei, Setup-Pfad, Install- und Uninstall-Befehl. Copy-Icons für die Commands. | +| **Detection** | Detection-Regeln (Registry, Datei, MSI-ProductCode, PowerShell-Script). | +| **Return-Codes** | Exit-Codes mit `success` / `softReboot` / `hardReboot` / `retry`. | +| **Meta** | Erstellt + Geändert-Daten. Kombinierbar mit dem *Geändert*-Filter oben. | +| **Installationen** | Statistik aus Intune: Erfolgs-/Fehler-/Pending-/N/A-Counts getrennt für *Geräte* und *Benutzer*. Erfolgsquote als farbige Pille. | +| **Abhängigkeiten** | Visuelles Flow-Diagramm mit Klartext-Erklärung. Klick auf einen Dependency-Knoten springt zur Ziel-App (sofern in der aktuellen Liste). | +| **Supersedence** | Was diese App ersetzt/aktualisiert — analog mit Erklärung. | + +### Dependencies und Supersedence — was bedeutet was? + +**Dependency** (Abhängigkeit) +- Eine Dependency definiert, dass **diese App** eine andere App als **Voraussetzung** hat. +- *autoInstall*: Intune installiert die Dependency automatisch vor dieser App, sobald die App zugewiesen wird. +- *detect*: Die Dependency muss manuell vorhanden sein — Intune installiert sie nicht automatisch. + +**Supersedence** (Ablösung) +- Beschreibt, dass **diese App** eine andere App **ablöst**. +- *update*: Vorhandene Installation der alten App wird aktualisiert, Daten/Konfiguration bleiben erhalten. +- *replace*: Die alte App wird **deinstalliert**, dann wird die neue App installiert. Daten gehen verloren. + +--- + +## Einstellungen + +Persistiert in `%APPDATA%\IntuneAppManager-Web\settings.json`. Beim Speichern werden nur die *betroffenen* Caches geleert — bei reinen Farb-/Logo-Änderungen kein Reload nötig. + +| Sektion | Inhalt | +|---|---| +| Microsoft Graph Verbindung | Tenant- und Client-ID + Scopes. Änderungen erzwingen einen Disconnect. | +| Abteilungs-Gruppen | Ein oder mehrere Präfixe (eine pro Zeile) für den Abteilungs-Modus. | +| RPA-Gruppen | Explizite Liste der RPA-Gruppennamen (eine pro Zeile). | +| Benutzer-Suche | Welche Felder durchsucht werden (DisplayName / UPN / Mail / Department). | +| Required-Gruppen-Naming | Präfix + Suffix für die Auto-Generierung von Required-Gruppen-Namen. | +| Available-Gruppen-Naming | Analog für Available-Gruppen. | +| Branding (Logo) | Eigenes Logo hochladen (PNG/JPG/SVG/WEBP/GIF, max. 2 MB). Wird im Projekt-Verzeichnis als `branding-logo.*` gespeichert. | +| Farben | 8 Akzentfarben (Brand, Available, Required, Erfolg, Warnung, Fehler, Markierte Zeile, Detail-Bereich) + *Standardfarben wiederherstellen*-Button. | + +--- + +## Wichtige Einschränkungen + +- **Vendor-verwaltete Apps** (PatchMyPC, Robopack und weitere in den Einstellungen konfigurierte Vendoren) können weder gelöscht noch umbenannt werden über das Tool — das funktioniert nur im jeweiligen Vendor-Portal selbst. Die UI zeigt für diese Apps ein Lock-Icon statt Trash/Pencil und das Backend blockiert mit HTTP 409 (`code = "Managed"`). Detection-Regeln pro Vendor (Field/Match/Pattern) liegen in `settings.json` und sind dort editierbar — Standardwerte: PMPC = `commandLine contains "PatchMyPC"`, Robopack = `developer equals "Robopack"`. +- **Native Zuweisungen** (*All Users* / *All Devices*) sind je App und Intent **einzigartig**. Bereits aktive Kombinationen werden im Erstellen-Dialog ausgegraut. +- **Required-Zuweisungen** werden bei der nächsten Geräte-Sync von Intune **erzwungen** — Vorsicht bei produktiven Apps. Bei Änderungen an produktiven Apps lieber erst Available zuweisen. +- **App-Löschung** im Tool entfernt die App komplett aus Intune (inkl. aller Zuweisungen) — irreversibel. Gilt nicht für Vendor-verwaltete Apps (siehe oben). +- **Cache-Verhalten**: Apps und Gruppen werden nach dem ersten Laden im PowerShell-Prozess gecached. Beim Refresh-Icon wird neu geladen. Wenn du Apps oder Gruppen außerhalb des Tools änderst, manuell refreshen. + +--- + +## Vendor-Erkennung (PatchMyPC, Robopack, …) + +Das Tool unterscheidet zwischen **Vendor-verwalteten Apps** (die ueber ein externes Portal wie PatchMyPC oder Robopack ausgerollt werden) und **nativen Intune-Apps** (manuell hochgeladen). Vendor-Apps bekommen ein eigenes Source-Logo + Lock-Icons statt Trash/Pencil, weil Aenderungen in Intune beim naechsten Vendor-Sync ueberschrieben wuerden. + +### Wie wird erkannt? + +Pro Vendor gibt es eine **Detection-Regel** in den Einstellungen (`settings.json` → `vendors[]`). Eine Regel besteht aus: + +- **field** — welches Intune-App-Feld geprueft wird: + - `commandLine` (default fuer PMPC): pruef install- und uninstall-Commandline + - `developer` (default fuer Robopack): Entwickler-Feld der App + - `publisher`: Publisher-Feld + - `displayName`: App-Name + - `notes`: Notes-Feld + - `owner`: Owner-Feld +- **match** — wie verglichen wird: + - `contains`: Substring (case-insensitive) + - `equals`: exakter Match + - `startsWith`: Prefix-Match + - `regex`: voller Regex +- **pattern** — der zu suchende String / Regex + +### Standard-Regeln + +| Vendor | Feld | Match | Pattern | Erklärung | +|---|---|---|---|---| +| PatchMyPC | `commandLine` | `contains` | `PatchMyPC` | PMPC schreibt seinen Namen in den Install-/Uninstall-Aufruf (z. B. `PatchMyPC-ScriptRunner.ps1`) | +| Robopack | `developer` | `equals` | `Robopack` | Robopack-Konvention setzt das Developer-Feld der App auf "Robopack" | + +### Was, wenn meine Vendor-Apps nicht erkannt werden? + +`settings.json` unter `%APPDATA%\IntuneAppManager-Web\` oeffnen und im `vendors[]`-Array die Detection-Regel anpassen. Beispiel: wenn deine Robopack-Apps statt im Developer-Feld ueber einen Prefix im Display-Namen erkennbar sind: + +```json +{ + "id": "robopack", + "displayName": "Robopack", + "portalUrl": "https://app.robopack.com/", + "logoFile": "robopack.png", + "detection": { "field": "displayName", "match": "startsWith", "pattern": "RP - " }, + "block": { "delete": true, "rename": true } +} +``` + +Nach dem Aendern: Tool neu starten. Im Einstellungen-Modal → **Verbindung + Lookups testen** klicken — dort wird pro Vendor die aktuelle Trefferzahl angezeigt. Steht da `0`, greift die Regel nicht. + +### Reihenfolge im `vendors[]`-Array + +Der **erste passende Vendor gewinnt**. Wenn du mehrere ueberlappende Regeln hast (z.B. PMPC erkennt commandLine, Robopack erkennt developer — und eine App passt zu beiden), wird der Vendor der weiter oben in der Liste steht zugewiesen. PMPC ist im Default oben. + +### Eigenen Vendor hinzufuegen + +Neuer Eintrag im `vendors[]`-Array — beliebige `id` (klein, ohne Sonderzeichen, wird Teil des HTTP-Status-Codes `Managed`), eigener `displayName`, eigenes Logo unter `.png` im Projekt-Root. Wenn das Logo fehlt, zeigt das Tool den ersten Buchstaben des Namens als Fallback-Badge. + +--- + +## Setup-Datei aktualisieren + +Native Intune-Apps koennen mit einer neuen Setup-Datei aktualisiert werden, ohne die App neu anzulegen — Zuweisungen, Detection-Rules und Einstellungen bleiben erhalten, nur der ausgerollte Datei-Inhalt (und optional die Versionsnummer) wird ersetzt. + +- **Wo:** App-Detail aufklappen → Abschnitt **Setup-Datei** → *Setup-Datei aktualisieren…*. Der Button erscheint nur bei unterstuetzten, **nicht** vendor-verwalteten Apps (PatchMyPC/Robopack sind ausgeschlossen — die werden im jeweiligen Portal aktualisiert). +- **Unterstuetzt (aktuell):** `.intunewin` (Win32-Apps). MSI und MSIX folgen. +- **Datei-Quelle:** ein **lokaler Pfad auf dem Rechner, auf dem das Tool laeuft** (der Server liest die Datei direkt von der Platte — kein Browser-Upload). Beispiel: `C:\Pakete\app-2.0\app.intunewin`. +- **Ablauf:** Pfad eingeben → optional neue Versionsnummer → Bestaetigung anhaken → *Hochladen & aktivieren*. Das Tool legt eine neue Content-Version an, laedt die (bereits durch IntuneWinAppUtil verschluesselte) Datei nach Azure, committet sie und stellt die App auf die neue Version um. + +> **Achtung:** Das ersetzt die ausgerollte Version. Alle zugewiesenen Geraete bekommen beim naechsten Sync die neue Datei. Nicht rueckgaengig machbar — **immer zuerst an einer Test-App ausprobieren.** + +--- + +## Tastatur / Tipps + +- **Ctrl+F5** — Hard-Refresh (löscht den Browser-Cache vollständig, lädt das JS/CSS neu — Pflicht nach Tool-Updates). +- **Esc** in jedem Modal — schließen. +- **Enter** im *Umbenennen*-Modal — speichern. +- **Klick auf eine App-Zeile** außerhalb von Buttons/Links — Detail-Panel öffnen/schließen. +- **Beim Apply** wird der HTML-Report automatisch im Browser geöffnet — kann später in `%TEMP%\IntuneAppManager-Reports\` wieder aufgerufen werden. + +--- + +## Fehlerbehebung + +| Symptom | Ursache / Lösung | +|---|---| +| „User canceled authentication" beim Verbinden | Das WAM-Anmeldefenster ist hinter anderen Fenstern verborgen. Das Tool versucht es automatisch nach vorne zu holen — wenn das nicht hilft, schaue in der Taskleiste oder klicke nochmal *Verbinden*. | +| Apps laden ewig | Bei großen Tenants (> 1000 Apps) kann das initiale Laden 10–30 s dauern. Apps werden danach gecached. Neu laden über Refresh-Icon. | +| Änderungen am Settings/Logo wirken nicht | Browser-Cache. **Ctrl+F5** drücken. | +| „Gruppe existiert bereits" beim Erstellen | Wahrscheinlich gibt es schon eine Gruppe mit dem generierten Namen. Im Dialog den Vorschlag manuell anpassen. | +| PowerShell-Konsole zeigt Errors beim Start | Module fehlen oder sind zu alt. `Install-Module Microsoft.Graph.Authentication -Scope CurrentUser -Force` ausführen. | +| Apply-Button bleibt grau / disabled | Es sind 0 Vorgänge in der Session, oder alle gesammelten Operationen sind native Targets (werden übersprungen). Mindestens einen Empfänger + Pille setzen. | + +--- + +Stand: Mai 2026 · Tool-Version siehe Konsolen-Output beim Start und im Apply-Report-Footer. Hilfe-Datei: `www/help.md`. Vollständige Änderungshistorie: `CHANGELOG.md`. diff --git a/Intune/Intune-App-Manager-Web/www/index.html b/Intune/Intune-App-Manager-Web/www/index.html new file mode 100644 index 0000000..5286a81 --- /dev/null +++ b/Intune/Intune-App-Manager-Web/www/index.html @@ -0,0 +1,807 @@ + + + + + + Intune App-Manager + + + + + + + + + + +
    +
    + +
    +
    Intune App-Manager
    +
    +
    + +
    + + + +
    + + Offline +
    + +
    +
    + + +
    + + +
    + + +
    +
    +
    +

    Abteilungen & Benutzer

    + 0 +
    + +
    + +
    + + + +
    + +
    + + + +
    + +
    +
    + + · + +
    +
    + + + +
    + +
    +
    + + +
    +
    +
    +

    Apps

    + 0 +
    +
    + +
    +
    + +
    +
    + + +
    + + +
    + +
    + + +
    + Geändert + + – + + +
    +
    + ✓ bereits zugewiesen + ◐ teilweise +
    +
    + +
    + +
    +
    + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Intune/Intune-App-Manager-Web/www/members.html b/Intune/Intune-App-Manager-Web/www/members.html new file mode 100644 index 0000000..8bd2e7b --- /dev/null +++ b/Intune/Intune-App-Manager-Web/www/members.html @@ -0,0 +1,151 @@ + + + + + + Gruppen-Mitglieder · Intune App-Manager + + + + + + + + +
    +
    + +
    +
    Gruppen-Mitglieder
    +
    +
    + +
    + +
    +
    +
    +

    Mitglieder werden geladen...

    +
    + + 0 +
    +
    + +
    +
    + + +
    + +
    + +
    +
    +
    + +
    + + + + + diff --git a/Intune/Intune-App-Manager-Web/www/styles.css b/Intune/Intune-App-Manager-Web/www/styles.css new file mode 100644 index 0000000..14c4c2c --- /dev/null +++ b/Intune/Intune-App-Manager-Web/www/styles.css @@ -0,0 +1,4402 @@ +/* ============================================================= + Intune App-Manager — Cal.com-Aesthetik + Weißes Canvas, schwarze CTAs, Inter, dezente Hairlines. + ============================================================= */ + +:root { + /* Cal.com Tokens */ + --primary: #111111; + --primary-active: #242424; + --primary-disabled: #e5e7eb; + --ink: #111111; + --body: #374151; + --muted: #6b7280; + --muted-soft: #898989; + --hairline: #e5e7eb; + --hairline-soft: #f3f4f6; + --canvas: #ffffff; + --surface-soft: #f8f9fa; + --surface-card: #f5f5f5; + --surface-strong: #e5e7eb; + --surface-dark: #101010; + --surface-dark-elev: #1a1a1a; + --on-primary: #ffffff; + --on-dark: #ffffff; + --on-dark-soft: #a1a1aa; + + --brand-primary: #27a078; /* Logo-Hintergrund, Stepper-Indikator — Firmenfarbe */ + --brand-accent: #3b82f6; /* Available-Pillen, Links, Akzent-Hover */ + --success: #10b981; + --warning: #f59e0b; + --error: #ef4444; + --pink: #ec4899; + --violet: #8b5cf6; + --emerald: #34d399; + --orange: #fb923c; + --teal: #14b8a6; + --teal-deep: #0d9488; + + /* Tinted accent backgrounds — automatisch angepasst per Dark-Mode-Override */ + --success-bg: rgba(16,185,129,0.05); + --success-soft: rgba(16,185,129,0.12); + --success-strong: rgba(16,185,129,0.18); + --success-border: rgba(16,185,129,0.28); + --success-shadow: rgba(16,185,129,0.35); + --error-bg: rgba(239,68,68,0.06); + --error-soft: rgba(239,68,68,0.12); + --error-strong: rgba(239,68,68,0.18); + --error-border: rgba(239,68,68,0.30); + --warning-bg: rgba(245,158,11,0.06); + --warning-soft: rgba(245,158,11,0.12); + --warning-strong: rgba(245,158,11,0.18); + --warning-border: rgba(245,158,11,0.30); + --accent-bg: rgba(59,130,246,0.06); + --accent-soft: rgba(59,130,246,0.12); + --accent-strong: rgba(59,130,246,0.18); + --pink-soft: rgba(236,72,153,0.12); + --violet-soft: rgba(139,92,246,0.12); + --teal-soft: rgba(20,184,166,0.12); + + --app-expanded-bg: #f7f7f7; + + /* Aufgeklappte App-Zeile: solid background, kein rgba. Wird vom Frontend + per applyThemeColors() mit der gewaehlten Farbe 1:1 ueberschrieben. */ + --row-selected-border: #71e5c4; + --row-selected-bg: #71e5c4; + --row-selected-bg-hover: #71e5c4; + + /* Radii */ + --r-xs: 4px; + --r-sm: 6px; + --r-md: 8px; + --r-lg: 12px; + --r-xl: 16px; + --r-pill: 9999px; + + /* Spacing (Cal token-Basis 4px) */ + --s-xxs: 4px; + --s-xs: 8px; + --s-sm: 12px; + --s-md: 16px; + --s-lg: 24px; + --s-xl: 32px; + + /* Shadows — Cal: subtle, soft */ + --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05); + --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04); + --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08); + --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.12); + + --tx: 150ms cubic-bezier(0.2, 0.7, 0.3, 1); + --tx-slow: 240ms cubic-bezier(0.2, 0.7, 0.3, 1); + + --font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + --font-mono: 'JetBrains Mono', 'SF Mono', ui-monospace, Menlo, Consolas, monospace; +} + +@supports (font-variation-settings: normal) { + :root { --font-display: 'Inter var', 'Inter', sans-serif; --font-body: 'Inter var', 'Inter', sans-serif; } +} + +/* ============================================================= + Dark Mode — blau-getoente Schwarz-Skala, equal lightness steps, + entsaettigte Akzentfarben. Wird via data-theme="dark" am + aktiviert, JS persistiert die Wahl in localStorage. + ============================================================= */ +html[data-theme="dark"] { + --primary: #ffffff; + --primary-active: #f0f1f5; + --primary-disabled: #3a4150; + --ink: #f5f6fa; + --body: #d8dde6; + --muted: #9aa3b3; + --muted-soft: #6b7383; + --hairline: #353b4a; + --hairline-soft: #2a2f3d; + --canvas: #1f2430; /* aufgehellt — kein tiefschwarz mehr */ + --surface-soft: #262b38; + --surface-card: #2c313f; + --surface-strong: #353b4a; + --surface-dark: #f5f6fa; + --surface-dark-elev: #e0e4eb; + --on-primary: #1f2430; + --on-dark: #1f2430; + --on-dark-soft: #6b7383; + + /* Tints im Dark-Mode kraeftiger, mit den hellen Akzentfarben */ + --success-bg: rgba(102,204,190,0.10); + --success-soft: rgba(102,204,190,0.18); + --success-strong: rgba(102,204,190,0.26); + --success-border: rgba(102,204,190,0.40); + --success-shadow: rgba(102,204,190,0.45); + --error-bg: rgba(231,139,139,0.10); + --error-soft: rgba(231,139,139,0.18); + --error-strong: rgba(231,139,139,0.26); + --error-border: rgba(231,139,139,0.40); + --warning-bg: rgba(229,196,67,0.10); + --warning-soft: rgba(229,196,67,0.18); + --warning-strong: rgba(229,196,67,0.26); + --warning-border: rgba(229,196,67,0.40); + --accent-bg: rgba(127,177,240,0.10); + --accent-soft: rgba(127,177,240,0.18); + --accent-strong: rgba(127,177,240,0.26); + --pink-soft: rgba(240,166,204,0.18); + --violet-soft: rgba(192,134,234,0.18); + --teal-soft: rgba(102,204,190,0.18); + + /* Akzent-Farben entsaettigen — hellere Variante fuer dunklen Hintergrund */ + --brand-primary: #5ec4a0; + --brand-accent: #7fb1f0; + --success: #66ccbe; + --warning: #e5c443; + --error: #e78b8b; + --pink: #f0a6cc; + --violet: #c086ea; + --emerald: #66ccbe; + --orange: #f4a261; + --teal: #66ccbe; + --teal-deep: #5cc0b1; + + /* Schatten dezenter im Dark Mode */ + --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.4); + --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.3); + --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5); + --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.6); +} + +/* Verhindert Flash beim ersten Render */ +html[data-theme="dark"] body { background: var(--canvas); color: var(--body); } + +/* Waehrend des Theme-Wechsels ALLE Transitions deaktivieren — sonst animiert + jedes Element gleichzeitig seine Farbaenderungen und das ganze Layout ruckelt. */ +html.theme-switching, +html.theme-switching *, +html.theme-switching *::before, +html.theme-switching *::after { + transition: none !important; + animation-duration: 0s !important; +} + +* { box-sizing: border-box; margin: 0; padding: 0; } + +html, body { + height: 100%; + background: var(--canvas); + color: var(--ink); + font-family: var(--font-body); + font-size: 14px; + line-height: 1.5; + font-feature-settings: 'cv11', 'ss01', 'ss03'; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; +} + +body { + display: flex; + flex-direction: column; + min-height: 100vh; + color: var(--body); +} + +button { font-family: inherit; cursor: pointer; } +input, select { font-family: inherit; } +a { color: var(--ink); text-decoration: none; } +a:hover { text-decoration: underline; text-underline-offset: 2px; } +.hidden { display: none !important; } +.flex-1 { flex: 1; } +.muted { color: var(--muted); } + +/* Display headlines: -0.04em letter-spacing on Inter approximates Cal Sans */ +h1, h2, h3 { + font-family: var(--font-display); + color: var(--ink); + font-weight: 600; + letter-spacing: -0.025em; +} + +/* ============================================================= + HEADER (top-nav) + ============================================================= */ + +.topbar { + display: grid; + /* Stepper wurde entfernt — Header hat jetzt nur noch Brand links und + Header-Actions rechts. 1fr auf der rechten Spalte pinnt die Actions ans + rechte Ende durch justify-self im Header-Actions-Block. */ + grid-template-columns: auto 1fr; + align-items: center; + gap: 32px; + height: 64px; + padding: 0 32px; + background: var(--canvas); + border-bottom: 1px solid var(--hairline); + position: sticky; + top: 0; + z-index: 50; +} +.topbar .header-actions { justify-self: end; } + +.brand { display: flex; align-items: center; gap: 12px; } + +.logo { + width: 32px; height: 32px; + border-radius: var(--r-md); + background: var(--brand-primary); + color: var(--on-primary); + display: grid; place-items: center; + font-weight: 700; + font-size: 16px; + letter-spacing: -0.04em; + overflow: hidden; + flex-shrink: 0; +} +/* Wenn ein eigenes Logo gesetzt ist: Hintergrund weg und Bild voll fuellen. */ +.logo.has-custom-logo { + background: transparent; + border-radius: var(--r-sm); +} +.logo-img { + display: block; + width: 100%; + height: 100%; + object-fit: contain; +} + +.brand-name { + font-size: 15px; + font-weight: 600; + color: var(--ink); + letter-spacing: -0.02em; +} + +.header-actions { display: flex; align-items: center; gap: 12px; } + +/* Theme-Toggle — Slide-Switch */ +.theme-toggle { + appearance: none; + background: transparent; + border: none; + padding: 0; + cursor: pointer; + flex-shrink: 0; + display: inline-flex; + align-items: center; +} +.theme-track { + position: relative; + display: block; + width: 44px; + height: 22px; + border-radius: 999px; + background: linear-gradient(135deg, #fcd34d 0%, #f59e0b 100%); + transition: background-color var(--tx-slow); + box-shadow: + inset 0 1px 2px rgba(120, 70, 0, 0.30), + inset 0 0 0 1px rgba(120, 70, 0, 0.18); +} +.theme-toggle:hover .theme-track { + filter: brightness(1.06); +} +.theme-ico { + position: absolute; + top: 50%; + width: 11px; + height: 11px; + z-index: 2; /* Icons UEBER dem Knob — Knob wirkt wie ein "Halter" */ + transform: translateY(-50%); + transition: opacity var(--tx); + pointer-events: none; +} +/* Knob-Mitte links: 3 + 8 = 11; Sun 11px breit -> left = 11 - 5.5 = 5.5 */ +.theme-ico-sun { left: 6px; color: #b45309; } +/* Knob-Mitte rechts: 44 - 3 - 8 = 33; Moon 11px breit -> right = 44 - 33 - 5.5 = 5.5 */ +.theme-ico-moon { right: 6px; color: #1e293b; transform: translate(1px, -50%); } +.theme-knob { + position: absolute; + top: 50%; + left: 3px; + width: 16px; + height: 16px; + border-radius: 50%; + background: #ffffff; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.30), 0 0 0 1px rgba(0, 0, 0, 0.06); + transform: translate3d(0, -50%, 0); + transition: transform 220ms cubic-bezier(0.34, 1.2, 0.64, 1), background-color 220ms ease-out; + z-index: 1; /* unter den Icons */ + will-change: transform; +} + +/* Light-Mode: Sun sichtbar (sitzt unter dem Knob → erscheint AUF dem Knob), Moon ausgeblendet */ +html:not([data-theme="dark"]) .theme-ico-moon { opacity: 0; } +html:not([data-theme="dark"]) .theme-ico-sun { opacity: 1; } + +/* Dark-Mode: Knob slidet nach rechts (60 - 24 - 3 - 3 = 30) */ +html[data-theme="dark"] .theme-track { + background: #3b384f; + box-shadow: + inset 0 1px 2px rgba(0, 0, 0, 0.35), + inset 0 0 0 1px rgba(255, 255, 255, 0.08); +} +html[data-theme="dark"] .theme-knob { + /* Slide-Distance: 44 - 16 - 3 - 3 = 22 */ + transform: translate3d(22px, -50%, 0); +} +html[data-theme="dark"] .theme-ico-sun { opacity: 0; } +html[data-theme="dark"] .theme-ico-moon { opacity: 1; } + +/* Connection pill */ +/* Connection-Pill ist jetzt ein Avatar-Icon (Bootstrap person-circle). + Kein Border/Background — das Icon bringt seinen eigenen Kreis-Outline mit. + Status durch Icon-Farbe + kleiner Online-Dot unten rechts. Tooltip zeigt + den vollen Account-String. */ +.conn-pill { + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border: none; + background: transparent; + color: var(--muted); + cursor: default; + transition: color var(--tx); + user-select: none; +} +.conn-pill .conn-text { + display: inline-flex; + align-items: center; + justify-content: center; + line-height: 0; +} +.conn-pill .conn-text svg { + display: block; +} +/* Online-Dot rechts unten — Status-Indikator wie aus Teams/Slack bekannt */ +.conn-pill .dot { + position: absolute; + right: 4px; + bottom: 4px; + width: 7px; + height: 7px; + border-radius: 50%; + background: var(--muted-soft); + border: 1.5px solid var(--canvas); + box-sizing: content-box; +} +.conn-off { color: var(--muted); } +.conn-on { color: var(--brand-primary); } +.conn-on .dot { background: var(--success); animation: pulse 2.4s infinite; } +.conn-busy { color: var(--warning); } +.conn-busy .dot { background: var(--warning); animation: pulse 0.9s infinite; } + +@keyframes pulse { + 0%, 100% { opacity: 1; transform: scale(1); } + 50% { opacity: 0.4; transform: scale(0.7); } +} + +/* ============================================================= + BUTTONS — Cal.com (black primary, white secondary, text link) + ============================================================= */ + +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + height: 40px; + padding: 0 20px; + border-radius: var(--r-md); + font-size: 14px; + font-weight: 600; + border: 1px solid transparent; + background: transparent; + color: var(--ink); + transition: all var(--tx); + white-space: nowrap; + letter-spacing: -0.005em; + user-select: none; + font-family: inherit; +} + +.btn:active:not(:disabled) { transform: scale(0.98); } +.btn:disabled { opacity: 0.5; cursor: not-allowed; } + +.btn-sm { height: 32px; padding: 0 12px; font-size: 13px; } +.btn-lg { height: 44px; padding: 0 24px; font-size: 15px; } + +.btn-primary { + background: var(--primary); + color: var(--on-primary); +} +.btn-primary:hover:not(:disabled) { background: var(--primary-active); } +.btn-primary:disabled { background: var(--primary-disabled); color: var(--muted); } + +.btn-secondary { + background: var(--canvas); + color: var(--ink); + border-color: var(--hairline); +} +.btn-secondary:hover:not(:disabled) { + background: var(--surface-soft); + border-color: var(--surface-strong); +} + +.btn-text { + background: transparent; + color: var(--muted); + font-weight: 500; + height: 36px; + padding: 0 12px; +} +.btn-text:hover:not(:disabled) { color: var(--ink); background: var(--surface-soft); } + +.btn-apply { + width: 100%; + height: 44px; + background: var(--primary); + color: var(--on-primary); + font-weight: 600; + border-radius: var(--r-md); + margin-top: 4px; +} +.btn-apply:hover:not(:disabled) { background: var(--primary-active); } +.btn-apply:disabled { background: var(--primary-disabled); color: var(--muted); } + +/* Icon button — circular */ +.icon-btn { + width: 32px; height: 32px; + border-radius: var(--r-md); + background: transparent; + border: 1px solid transparent; + color: var(--muted); + display: inline-grid; + place-items: center; + transition: all var(--tx); +} +.icon-btn:hover { background: var(--surface-soft); color: var(--ink); border-color: var(--hairline); } + +/* Link-style button */ +.link-btn { + background: transparent; + border: none; + color: var(--ink); + font-size: 13px; + font-weight: 500; + padding: 4px 6px; + border-radius: var(--r-sm); + letter-spacing: -0.005em; +} +.link-btn:hover { background: var(--surface-soft); } +.link-btn-danger { color: var(--error); display: block; margin: 8px auto 0; } +.link-btn-danger:hover { background: var(--error-bg); } + +.dotsep { color: var(--muted-soft); font-size: 12px; } + +/* ============================================================= + LAYOUT + ============================================================= */ + +.layout { + display: grid; + grid-template-columns: 440px minmax(0, 1fr) 440px; + gap: 14px; + padding: 16px 20px 24px; + max-width: 1920px; + margin: 0 auto; + width: 100%; + flex: 1; + align-items: stretch; +} + +.panel { + background: var(--canvas); + border: 1px solid var(--hairline); + border-radius: var(--r-lg); + display: flex; + flex-direction: column; + overflow: hidden; + position: sticky; + top: 80px; + height: calc(100vh - 96px); /* feste, identische Hoehe */ +} + +.panel-head { + display: flex; + justify-content: space-between; + align-items: center; + padding: 16px 16px 12px; + gap: 12px; +} + +.panel-title { display: flex; align-items: center; gap: 10px; } +.panel-title h2 { + font-size: 16px; + font-weight: 600; + color: var(--ink); + letter-spacing: -0.015em; +} + +.panel-head-actions { display: flex; gap: 4px; } + +.count-badge { + display: inline-flex; + align-items: center; + padding: 2px 8px; + border-radius: var(--r-pill); + font-size: 12px; + font-weight: 500; + background: var(--surface-card); + color: var(--muted); + font-variant-numeric: tabular-nums; +} +.count-badge.accent { + background: var(--ink); + color: var(--on-primary); +} + +/* ============================================================= + MODE SEGMENT — nav-pill-group + ============================================================= */ + +.mode-segment { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 0; + margin: 0 16px 12px; + padding: 3px; + background: var(--surface-soft); + border-radius: var(--r-pill); + box-shadow: + inset 0 1px 2px rgba(0, 0, 0, 0.06), + inset 0 0 0 1px var(--hairline); +} + +.seg { + position: relative; + padding: 7px 10px; + background: transparent; + border: none; + border-radius: var(--r-pill); + color: var(--muted); + font-size: 13px; + font-weight: 500; + transition: color 180ms ease-out; + letter-spacing: -0.005em; + z-index: 1; +} +.seg:hover { color: var(--ink); } +.seg.active { + background: var(--ink); + color: var(--on-primary); + font-weight: 600; + box-shadow: + 0 1px 3px rgba(0, 0, 0, 0.30), + 0 0 0 1px rgba(0, 0, 0, 0.06); +} +.seg.active:hover { color: var(--on-primary); } + +/* ============================================================= + FORMS + ============================================================= */ + +.search-wrap { + position: relative; + margin: 0 16px 12px; + display: flex; + align-items: center; +} + +.search-ico { + position: absolute; + left: 12px; + color: var(--muted); + pointer-events: none; +} + +.input, .select { + width: 100%; + height: 38px; + padding: 0 14px; + background: var(--canvas); + border: 1px solid var(--hairline); + border-radius: var(--r-md); + color: var(--ink); + font-size: 14px; + transition: all var(--tx); + font-family: inherit; + letter-spacing: -0.005em; +} + +.input-search { padding-left: 36px; padding-right: 80px; } + +.input:focus, .select:focus { + outline: none; + border-color: var(--ink); + box-shadow: 0 0 0 3px rgba(17,17,17,0.08); +} + +.input::placeholder { color: var(--muted-soft); } + +.select { + appearance: none; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236b7280'%3E%3Cpath d='M4 6l4 4 4-4z'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 10px center; + padding-right: 32px; +} + +.search-hint { + position: absolute; + right: 10px; + font-size: 10px; + color: var(--muted); + background: var(--surface-card); + padding: 3px 7px; + border-radius: var(--r-sm); + pointer-events: none; + font-weight: 500; + letter-spacing: 0.3px; + text-transform: uppercase; +} + +.select-toolbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 16px 10px; +} + +.select-info { + font-size: 12px; + color: var(--muted); + font-weight: 500; +} + +.select-actions { display: flex; align-items: center; gap: 4px; } + +.apps-toolbar { + display: flex; + gap: 8px; + margin: 0 16px 10px; +} +.apps-toolbar .search-wrap { margin: 0; flex: 1; } +.apps-toolbar .select { width: 180px; flex-shrink: 0; } + +.filter-chips { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 20px; + margin: 0 16px 12px; +} + +.legend-group { + display: inline-flex; + align-items: center; + gap: 12px; + margin-left: auto; + padding-left: 12px; +} + +/* Date-Range-Filter (Geaendert von-bis) — kein Pillen-Rahmen mehr, + liegt nahtlos in der Filter-Zeile zwischen den anderen Filtern. */ +.date-filter-chip { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 0; + background: transparent; + border: none; + border-radius: 0; + font-size: 12px; + color: var(--body); + height: 28px; + box-sizing: border-box; +} +.date-filter-label { + font-weight: 500; + color: var(--body); + cursor: help; + line-height: 1; +} +/* Date-Inputs: gleiche Schriftart wie der Rest der UI (Inter), keine + Monospace. Hoehe so dass sie sauber im Chip sitzen. flatpickr legt ein + altInput direkt nach dem Original an — beide selectoren werden gestyled. */ +.date-filter-chip .date-input, +.date-filter-chip input.flatpickr-input { + border: 1px solid var(--hairline); + background: var(--canvas); + border-radius: var(--r-xs); + padding: 0 8px; + font-family: inherit; + font-size: 12px; + color: var(--ink); + width: 96px; + height: 22px; + box-sizing: border-box; + transition: none; + outline: none; + box-shadow: none; +} +.date-filter-chip .date-input:focus, +.date-filter-chip input.flatpickr-input:focus { + outline: none; + border-color: var(--brand-accent); +} +.date-sep { color: var(--muted); font-weight: 400; } +.date-clear { + background: transparent; + border: none; + color: var(--muted); + cursor: pointer; + font-size: 16px; + line-height: 1; + padding: 0 4px; + border-radius: var(--r-xs); + transition: all var(--tx); +} +.date-clear:hover { color: var(--error); background: var(--error-bg); } + +/* Dark-Mode: Input-Background dunkel halten — flatpickr macht den Picker- + Popup selbst (siehe Theming weiter unten). */ +html[data-theme="dark"] .date-filter-chip .date-input, +html[data-theme="dark"] .date-filter-chip input.flatpickr-input { + color: var(--ink); + background: var(--surface-soft); + border-color: var(--hairline); +} + +.legend-item { + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 11px; + color: var(--muted); + cursor: help; +} + +.legend-item .row-status { + width: 14px; height: 14px; + font-size: 9px; +} + +.check-chip { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 0 4px 0 0; + background: transparent; + border: none; + border-radius: 0; + font-size: 12px; + color: var(--body); + cursor: pointer; + transition: color var(--tx); + user-select: none; + font-weight: 500; + /* Exakte Hoehe — synchron mit .date-filter-chip damit alles in der + Filter-Zeile auf einer Linie ist. */ + height: 28px; + box-sizing: border-box; +} + +.check-chip:hover { color: var(--ink); } +.check-chip input[type=checkbox] { + appearance: none; + width: 14px; height: 14px; + border: 1.5px solid var(--surface-strong); + border-radius: var(--r-xs); + display: inline-grid; place-items: center; + cursor: pointer; + transition: all var(--tx); +} +.check-chip input[type=checkbox]:checked { + background: var(--ink); + border-color: var(--ink); +} +.check-chip input[type=checkbox]:checked::after { + content: '✓'; + font-size: 10px; + color: var(--on-primary); + font-weight: 900; + line-height: 1; +} +/* Active-State: nur Text-Farbe verstaerken, kein flaechiger BG-Fill. + Der gefuellte Checkbox-Indikator (siehe input[type=checkbox]:checked + weiter oben) gibt schon ausreichend visuelles Feedback. */ +.check-chip:has(input:checked) { + color: var(--ink); + font-weight: 600; +} + +/* ============================================================= + LIST AREAS + ============================================================= */ + +.list-area { + flex: 1; + overflow-y: auto; + border-top: 1px solid var(--hairline); + background: var(--canvas); +} + +.list-area::-webkit-scrollbar { width: 8px; } +.list-area::-webkit-scrollbar-track { background: transparent; } +.list-area::-webkit-scrollbar-thumb { background: var(--surface-strong); border-radius: 4px; } +.list-area::-webkit-scrollbar-thumb:hover { background: var(--muted-soft); } + +/* Target rows */ +.target-row { + display: flex; + align-items: center; + gap: 6px; + padding: 8px 12px; + border-bottom: 1px solid var(--hairline-soft); + cursor: pointer; + transition: background var(--tx); + min-height: 38px; +} + +.target-row:hover { background: var(--surface-soft); } +.target-row.selected { + background: rgba(16,185,129,0.22); + border-left: 2px solid var(--success); + padding-left: 14px; +} +.target-row.selected:hover { + background: rgba(16,185,129,0.30); +} +html[data-theme="dark"] .target-row.selected { background: var(--success-strong); } +html[data-theme="dark"] .target-row.selected:hover { background: var(--success-strong); filter: brightness(1.1); } + +/* Gruppen ohne Mitglieder — analog zu Apps ohne Zuweisungen */ +.target-row.empty .target-name, +.target-row.empty a.target-link { + color: var(--error); +} +.target-row.empty a.target-link:hover { + filter: brightness(0.9); +} +.target-row.empty .target-meta { + color: var(--error); + opacity: 0.7; +} + +/* Flash-Animation beim Springen aus Pin-Chip */ +@keyframes flash-row { + 0% { background: var(--success-shadow); } + 100% { background: var(--success-soft); } +} +.target-row.flash { animation: flash-row 1.2s ease-out; } + +/* Pinned-Targets — kompakte Chip-Leiste, immer sichtbar oberhalb der Liste */ +.pinned-targets { + background: var(--success-bg); + border-top: 1px solid var(--success-strong); + border-bottom: 1px solid var(--success-strong); + padding: 8px 16px 10px 16px; + max-height: 160px; + overflow-y: auto; + flex-shrink: 0; +} +.pin-head { + display: flex; + align-items: center; + gap: 8px; + margin-bottom: 6px; +} +.pin-head-title { + font-size: 11px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--success); +} +.pin-head-count { + font-size: 11px; + background: var(--success); + color: white; + padding: 1px 7px; + border-radius: 10px; + font-weight: 600; +} +.pin-clear-all { + margin-left: auto; + font-size: 11.5px; + color: var(--muted); +} +.pin-chips { + display: flex; + flex-wrap: wrap; + gap: 4px; +} +.pin-chip { + display: inline-flex; + align-items: center; + gap: 6px; + background: var(--canvas); + border: 1px solid var(--success-shadow); + border-radius: 12px; + padding: 2px 4px 2px 8px; + font-size: 12px; + cursor: pointer; + transition: all var(--tx); + max-width: 100%; +} +.pin-chip:hover { + background: var(--success-strong); + border-color: var(--success); +} +.pin-chip.pin-empty { + border-color: var(--error-border); +} +.pin-chip.pin-empty .pin-name { color: var(--error); } +.pin-mode { + font-size: 9.5px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--success); + background: var(--success-soft); + padding: 1px 5px; + border-radius: 6px; + flex-shrink: 0; +} +.pin-name { + color: var(--ink); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 180px; +} +.pin-remove { + appearance: none; + background: transparent; + border: none; + color: var(--muted); + cursor: pointer; + width: 18px; height: 18px; + border-radius: 50%; + display: inline-grid; + place-items: center; + font-size: 14px; + line-height: 1; + flex-shrink: 0; + transition: all var(--tx); +} +.pin-remove:hover { + background: var(--error-soft); + color: var(--error); +} + +.target-row input[type=checkbox] { + appearance: none; + width: 16px; height: 16px; + border: 1.5px solid var(--surface-strong); + border-radius: var(--r-xs); + display: inline-grid; place-items: center; + cursor: pointer; + transition: all var(--tx); + flex-shrink: 0; + background: var(--canvas); +} +.target-row input[type=checkbox]:checked { + background: var(--ink); + border-color: var(--ink); +} +.target-row input[type=checkbox]:checked::after { + content: '✓'; + font-size: 11px; + color: var(--on-primary); + font-weight: 900; + line-height: 1; +} + +.target-name { + flex: 1; + font-size: 13.5px; + color: var(--ink); + word-break: break-word; + font-weight: 500; + letter-spacing: -0.005em; +} + +/* Empfaenger-Name als Link → in Entra oeffnen */ +a.target-link { + color: inherit; + text-decoration: none; +} +a.target-link:hover { + color: var(--brand-accent); + text-decoration: underline; + text-underline-offset: 2px; +} + +.target-meta { + font-size: 12px; + color: var(--muted); + margin-top: 2px; + font-weight: 400; +} + +/* Entra-Link-Icon (User/Group im Entra-Portal oeffnen) */ +.entra-link { + display: inline-grid; + place-items: center; + width: 22px; + height: 22px; + border-radius: var(--r-sm); + background: transparent; + border: 1px solid transparent; + color: var(--muted); + flex-shrink: 0; + text-decoration: none; + opacity: 0; + transition: all var(--tx); +} +.target-row:hover .entra-link, +.ex-member-row:hover .entra-link { opacity: 1; } +.entra-link:hover { + background: var(--surface-soft); + color: var(--brand-accent); + border-color: var(--hairline); + text-decoration: none; +} +/* Teams: Hover-Farbe im offiziellen Teams-Lila — sofortiger Wiedererkennungswert */ +.entra-link.teams-link:hover { + color: #4b53bc; + background: rgba(75, 83, 188, 0.10); +} +html[data-theme="dark"] .entra-link.teams-link:hover { + color: #8a91e3; + background: rgba(138, 145, 227, 0.16); +} + +/* Expand-Button auf dept/rpa-Zeilen → Mitglieder inline einsehen */ +.row-expand { + width: 24px; + height: 24px; + border-radius: var(--r-sm); + background: transparent; + border: 1px solid var(--hairline); + color: var(--muted); + font-size: 16px; + font-weight: 700; + display: inline-grid; + place-items: center; + flex-shrink: 0; + cursor: pointer; + transition: all var(--tx); + line-height: 1; +} +.row-expand:hover { + background: var(--surface-soft); + color: var(--ink); + border-color: var(--ink); +} +.row-expand.is-open { + background: var(--ink); + color: var(--on-primary); + border-color: var(--ink); + transform: rotate(90deg); +} + +/* Inline-Aufklapp-Bereich */ +.target-row-wrap { + border-bottom: 1px solid var(--hairline-soft); +} +.target-row-wrap > .target-row { border-bottom: none; } +.target-row-wrap.expanded { + background: var(--surface-soft); +} + +.expand-body { + padding: 8px 12px 12px; + border-top: 1px solid var(--hairline); + background: var(--surface-soft); + display: flex; + flex-direction: column; + gap: 8px; +} + +.expand-search .input { height: 32px; font-size: 12.5px; } + +.expand-toolbar { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 11.5px; + color: var(--muted); + padding: 0 2px; +} +.expand-count strong { color: var(--ink); font-weight: 700; } +.expand-actions { display: flex; align-items: center; gap: 4px; } + +.expand-list { + background: var(--canvas); + border: 1px solid var(--hairline); + border-radius: var(--r-md); + max-height: 280px; + overflow-y: auto; +} + +.ex-member-row { + display: flex; + align-items: center; + gap: 10px; + padding: 7px 12px; + border-bottom: 1px solid var(--hairline-soft); + cursor: pointer; + transition: background var(--tx); + min-height: 36px; +} +.ex-member-row:last-child { border-bottom: none; } +.ex-member-row:hover { background: var(--surface-soft); } +.ex-member-row.selected { + background: var(--surface-soft); + border-left: 2px solid var(--ink); + padding-left: 10px; +} + +.ex-member-row input[type=checkbox] { + appearance: none; + width: 14px; height: 14px; + border: 1.5px solid var(--surface-strong); + border-radius: var(--r-xs); + display: inline-grid; place-items: center; + cursor: pointer; + transition: all var(--tx); + flex-shrink: 0; + background: var(--canvas); +} +.ex-member-row input[type=checkbox]:checked { + background: var(--ink); + border-color: var(--ink); +} +.ex-member-row input[type=checkbox]:checked::after { + content: '✓'; + font-size: 10px; + color: var(--on-primary); + font-weight: 900; + line-height: 1; +} + +.ex-member-info { flex: 1; min-width: 0; } +.ex-member-name { + font-size: 12.5px; + font-weight: 500; + color: var(--ink); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.ex-member-upn { + font-size: 11px; + color: var(--muted); + font-family: var(--font-mono); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-top: 1px; +} + +/* Member-Icons (Entra-Link + Teams-Chat) — rechtsbuendig und immer voll + sichtbar, identisch zur Empfaenger-Liste oben. */ +.ex-member-icons { + display: inline-flex; + align-items: center; + gap: 2px; + flex-shrink: 0; + margin-left: auto; +} +.ex-member-icons .entra-link { + opacity: 1; +} + +.expand-loading, +.expand-error, +.expand-empty { + padding: 16px; + text-align: center; + font-size: 12.5px; + color: var(--muted); + background: var(--canvas); + border: 1px solid var(--hairline); + border-radius: var(--r-md); +} +.expand-loading { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; +} +.expand-error { color: var(--error); } + +.expand-foot { + display: flex; + justify-content: flex-end; +} + +/* Member-Liste im Modal */ +.mm-toolbar { + display: flex; + align-items: center; + gap: 4px; + padding: 0 0 8px; + border-bottom: 1px solid var(--hairline-soft); + margin-bottom: 8px; +} + +.member-list { + max-height: 50vh; + overflow-y: auto; + border: 1px solid var(--hairline); + border-radius: var(--r-md); +} + +.member-row { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 12px; + border-bottom: 1px solid var(--hairline-soft); + cursor: pointer; + transition: background var(--tx); + min-height: 40px; +} +.member-row:last-child { border-bottom: none; } +.member-row:hover { background: var(--surface-soft); } +.member-row.selected { + background: var(--surface-soft); + border-left: 2px solid var(--ink); + padding-left: 10px; +} + +.member-row input[type=checkbox] { + appearance: none; + width: 16px; height: 16px; + border: 1.5px solid var(--surface-strong); + border-radius: var(--r-xs); + display: inline-grid; place-items: center; + cursor: pointer; + transition: all var(--tx); + flex-shrink: 0; + background: var(--canvas); +} +.member-row input[type=checkbox]:checked { + background: var(--ink); + border-color: var(--ink); +} +.member-row input[type=checkbox]:checked::after { + content: '✓'; + font-size: 11px; + color: var(--on-primary); + font-weight: 900; + line-height: 1; +} + +.member-info { flex: 1; min-width: 0; } +.member-name { + font-size: 13.5px; + font-weight: 500; + color: var(--ink); + letter-spacing: -0.005em; +} +.member-upn { + font-size: 11.5px; + color: var(--muted); + font-family: var(--font-mono); + margin-top: 1px; +} + +/* ============================================================= + APPS LIST — kompakt, 2 Spalten + ============================================================= */ + +.apps-list { border-radius: 0; } + +/* Tabellen-Layout: feste Spalten damit alles sauber untereinander steht. + Name nimmt den GANZEN Rest (1fr), andere Spalten so klein wie noetig. */ +.app-row { + display: grid; + grid-template-columns: + 22px /* status */ + minmax(200px, 1fr) /* name + publisher — alles uebrige */ + 24px /* source-logo (Intune/PMPC) */ + 58px /* type chip */ + 92px /* version */ + 98px /* available */ + 98px /* required */ + 26px /* + */ + 26px; /* delete */ + column-gap: 8px; + padding: 6px 12px; + border-bottom: 1px solid var(--hairline-soft); + transition: background var(--tx); + align-items: center; + /* Reihe waechst bei Bedarf — Default 48px, aber kein hartes Limit damit + lange App-Namen umbrechen koennen ohne abgeschnitten zu werden. */ + min-height: 48px; +} + +.app-row { cursor: pointer; } +.app-row:hover { background: var(--surface-soft); } +.app-row.has-queued { + background: var(--surface-soft); + box-shadow: inset 2px 0 0 var(--ink); +} +.app-row.is-open { + background: var(--row-selected-bg); + box-shadow: inset 3px 0 0 var(--row-selected-border); +} +.app-row.is-open:hover { + background: var(--row-selected-bg-hover); +} +/* Text und Icons werden vom Frontend auf Kontrast berechnet — vars werden + in applyThemeColors() gesetzt. Fallbacks fuer den allerersten Render. */ +.app-row.is-open .app-name { + color: var(--row-selected-text, var(--ink)); + font-weight: 600; +} +.app-row.is-open .app-publisher { + color: var(--row-selected-text-muted, var(--muted)); +} +.app-row.is-open .app-type, +.app-row.is-open .app-version { + color: var(--row-selected-text-muted, var(--body)); +} +/* Icons in markierter Row: volle Sichtbarkeit (overridet die globale + opacity: 0/0.55-Regel) UND Kontrast-Farbe aus applyThemeColors. */ +.app-row.is-open .app-name-icons .entra-link, +.app-row.is-open .app-rename-btn, +.app-row.is-open .app-rename-locked, +.app-row.is-open .col-delete .app-delete-btn, +.app-row.is-open .col-delete .app-delete-locked { + color: var(--row-selected-icon, currentColor) !important; + opacity: 0.85; +} +.app-row.is-open .app-name-icons .entra-link:hover, +.app-row.is-open .app-rename-btn:hover, +.app-row.is-open .col-delete .app-delete-btn:hover { + opacity: 1; + color: var(--row-selected-icon-hover, currentColor) !important; +} +/* Source-Logo + Type/Version Chip in markierter Row — Overlay-Vars werden + in applyThemeColors aus der effektiven BG-Helligkeit abgeleitet, daher + passt es automatisch sowohl in Light- als auch Dark-Mode. */ +.app-row.is-open .app-source { opacity: 0.95; } +.app-row.is-open .app-type { + background: var(--row-selected-surface-strong, var(--surface-soft)); + color: var(--row-selected-text, var(--ink)) !important; +} +.app-row.is-open .app-version { + background: var(--row-selected-surface-strong, var(--surface-soft)); + color: var(--row-selected-text, var(--body)) !important; +} +/* Queue-Badge invertieren */ +.app-row.is-open .row-queued { + background: var(--row-selected-text, var(--ink)); + color: var(--row-selected-bg, var(--on-primary)); +} + +.app-row-wrap { + border-bottom: 1px solid var(--hairline-soft); +} +.app-row-wrap > .app-row { border-bottom: none; } +.app-row-wrap.expanded { + background: var(--app-expanded-bg); + box-shadow: + inset 0 0 0 1px var(--success-border), + 0 6px 14px -8px var(--success-shadow), + 0 1px 0 0 var(--success-strong); + border-radius: var(--r-sm, 4px); + margin: 6px 4px 14px 4px; + border-bottom: none; +} +.app-row-wrap.expanded .app-detail { + background: var(--app-expanded-bg, var(--canvas)); +} +.app-row-wrap.expanded + .app-row-wrap { + border-top: 1px solid var(--hairline); +} +.app-row-wrap.expanded .app-detail { + border-bottom-left-radius: var(--r-sm, 4px); + border-bottom-right-radius: var(--r-sm, 4px); +} + +/* App-Detail-Panel — max. 2 Spalten, lange Inhalte (Zuweisungen, + Detection, ...) spannen ueber beide via .app-detail-section--wide. */ +.app-detail { + padding: 14px 18px 18px 44px; + font-size: 12.5px; + color: var(--detail-text, var(--ink)); + background: var(--canvas); + border-top: 1px dashed var(--hairline-soft); + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 14px 28px; + align-items: start; +} +.app-detail .app-detail-section-title { + color: var(--detail-text-muted, var(--muted)); + border-bottom-color: var(--detail-border-soft, var(--hairline-soft)); +} +.app-detail .app-detail-lbl { + color: var(--detail-text-faint, var(--muted)); +} +.app-detail .app-detail-val { + color: var(--detail-text, var(--ink)); +} +.app-detail .app-detail-desc { + color: var(--detail-text, var(--ink)); +} +/* Mono-Felder (Datei, Setup-Pfad, Befehle), Copy-Buttons und Listen-Border + nutzen die abgeleiteten Overlay-Surfaces, damit sie zur gewaehlten Tint- + Farbe passen — egal ob User Dark/Light Mode oder Custom-Color verwendet. */ +.app-detail .app-detail-val.mono { + background: var(--detail-surface, var(--surface-soft)); + border-color: var(--detail-border-soft, var(--hairline-soft)); + color: var(--detail-text, var(--ink)); +} +.app-detail .app-detail-copy { + background: transparent; + border-color: var(--detail-border-soft, var(--hairline-soft)); + color: var(--detail-text-muted, var(--muted)); +} +.app-detail .app-detail-copy:hover { + background: var(--detail-surface, var(--surface-soft)); + border-color: var(--detail-border, var(--surface-strong)); + color: var(--detail-text, var(--ink)); +} +.app-detail .app-detail-list { color: var(--detail-text, var(--ink)); } +.app-detail .app-detail-notes { color: var(--detail-text-muted, var(--muted)); } + +/* Zuweisungs-Block innerhalb des Detail-Panels */ +.app-detail .asg-col { + background: var(--detail-surface, var(--surface)); + border-color: var(--detail-border-soft, var(--hairline)); +} +.app-detail .asg-col-head { + background: var(--detail-surface-strong, var(--surface-soft)); + border-bottom-color: var(--detail-border-soft, var(--hairline-soft)); +} +.app-detail .asg-row { border-bottom-color: var(--detail-border-soft, var(--hairline-soft)); } +.app-detail .asg-row:hover { background: var(--detail-surface, var(--surface-soft)); } +.app-detail .asg-name { color: var(--detail-text, var(--ink)); } +.app-detail .asg-row.native .asg-name { color: var(--detail-text-faint, var(--muted)); } +.app-detail .asg-native-tag { + background: var(--detail-surface, var(--surface-soft)); + color: var(--detail-text-muted, var(--muted)); + border-color: var(--detail-border-soft, var(--hairline)); +} +.app-detail .asg-empty { color: var(--detail-text-faint, var(--muted)); } +.app-detail .asg-del { color: var(--detail-text-muted, var(--muted)); } +.app-detail .asg-actions .entra-link { color: var(--detail-text-muted, var(--muted)); } +.app-detail .asg-actions .entra-link:hover { color: var(--detail-text, var(--ink)); } +@media (max-width: 1100px) { + .app-detail { grid-template-columns: 1fr; } +} +.app-detail-loading, +.app-detail-error, +.app-detail-empty { + grid-column: 1 / -1; + padding: 8px 0; + color: var(--muted); + font-size: 12.5px; + display: flex; + align-items: center; + gap: 8px; +} +.app-detail-error { color: var(--error); } +.app-detail-section { + min-width: 0; +} +.app-detail-section--wide { + grid-column: 1 / -1; +} +.app-detail-section-title { + font-size: 11px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--muted); + margin-bottom: 6px; + padding-bottom: 4px; + border-bottom: 1px solid var(--hairline-soft); +} +.app-detail-row { + display: grid; + grid-template-columns: 110px 1fr; + gap: 8px; + padding: 3px 0; + align-items: baseline; +} +.app-detail-lbl { + color: var(--muted); + font-size: 11.5px; +} +.app-detail-val { + color: var(--ink); + word-break: break-word; + display: flex; + align-items: center; + gap: 6px; +} +.app-detail-val.mono { + font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; + font-size: 11.5px; + background: var(--surface-soft); + padding: 2px 6px; + border-radius: var(--r-xs); + border: 1px solid var(--hairline-soft); + word-break: break-all; + overflow-wrap: anywhere; + min-width: 0; +} +.app-detail-copy { + appearance: none; + background: transparent; + border: 1px solid var(--hairline-soft); + color: var(--muted); + cursor: pointer; + width: 20px; height: 20px; + border-radius: var(--r-xs); + display: inline-grid; place-items: center; + font-size: 11px; + flex-shrink: 0; + transition: all var(--tx); +} +.app-detail-copy:hover { color: var(--ink); border-color: var(--surface-strong); background: var(--surface-soft); } +.app-detail-copy.copied { color: var(--success); border-color: var(--success-border); } +.app-detail-desc { + white-space: pre-wrap; + line-height: 1.5; + color: var(--ink); +} +.app-detail-notes { margin-top: 6px; font-size: 12px; color: var(--muted); } +.app-detail-list { + margin: 0; + padding-left: 18px; + list-style: disc; + color: var(--ink); +} +.app-detail-list li { + padding: 2px 0; + word-break: break-all; + overflow-wrap: anywhere; + line-height: 1.5; +} + +/* Apps ohne irgendeine Zuweisung — leicht roetlich, damit sofort auffaellt */ +.app-row.no-assignments .app-name { + color: var(--error); +} +.app-row.no-assignments .app-publisher { + color: var(--error); + opacity: 0.7; +} + +.col { display: flex; align-items: center; min-width: 0; } +.col-status { justify-content: center; } +/* col-name als Flex-Column wie urspruenglich, mit position:relative — die + Icons werden per absoluter Positionierung an die rechte Mitte gelegt, sodass + sie vertikal in der ganzen Zeilenhoehe zentriert sind (nicht nur in der + oberen Name-Line). */ +.col-name { flex-direction: column; align-items: stretch; min-width: 0; gap: 1px; justify-content: center; position: relative; padding-right: 50px; } +.col-source { justify-content: center; } +.col-type { justify-content: flex-start; } +.col-version { justify-content: flex-start; } +.col-avail { justify-content: stretch; } +.col-req { justify-content: stretch; } +.col-create { justify-content: stretch; } + +/* Buttons fuellen ihre Spalte komplett — saubere vertikale Linien. + Available/Required: Label klebt links, Count-Badge rechts, damit die + Schrift egal bei wievielen Gruppen immer an derselben Position startet. */ +.col-avail .type-btn, +.col-req .type-btn { + width: 100%; + justify-content: flex-start; + padding: 0 10px; +} +.col-create .type-btn { + width: 100%; + justify-content: center; + padding: 0; +} +.col-avail .type-btn > span:first-child, +.col-req .type-btn > span:first-child { + flex: 1 1 auto; + text-align: left; + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; +} +.col-avail .type-btn > .type-btn-count, +.col-avail .type-btn > .type-btn-queued, +.col-req .type-btn > .type-btn-count, +.col-req .type-btn > .type-btn-queued { + flex-shrink: 0; +} + +.app-name-line { + display: flex; + align-items: center; + gap: 6px; + width: 100%; + min-width: 0; +} + +/* Aktions-Icons: absolut positioniert am rechten Rand der col-name, vertikal + ueber die ganze Zeilenhoehe (48 px) zentriert — egal ob die App nur einen + Namen hat oder Name + Publisher (zwei Zeilen). + Das padding-right: 50px auf col-name reserviert den Platz, damit lange + Namen/Publisher nicht unter die Icons rutschen. */ +.app-name-icons { + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); + display: inline-flex; + align-items: center; + gap: 2px; + flex-shrink: 0; +} + +/* Source-Logo: dezent, klein, klickbar */ +.app-source-link { + display: inline-grid; + place-items: center; + width: 18px; + height: 18px; + border-radius: var(--r-sm); + text-decoration: none; + transition: background var(--tx); +} +.app-source-link:hover { background: var(--surface-soft); } + +.app-source { + width: 14px; + height: 14px; + object-fit: contain; + opacity: 0.7; + border-radius: 2px; + transition: opacity var(--tx); + display: block; +} +.app-source-link:hover .app-source { opacity: 1; } + +/* Letter-Fallback wenn das Vendor-Logo nicht ausgeliefert werden kann + (z.B. fehlende Datei). Wird per onerror in app.js eingehaengt. */ +.app-source.app-source-letter { + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 10px; + font-weight: 700; + color: var(--ink); + background: var(--surface-soft); + text-transform: uppercase; + line-height: 1; +} + +.cell-empty { + color: var(--surface-strong); + font-size: 12px; + font-weight: 500; +} + +.app-name { + font-size: 13.5px; + font-weight: 600; + color: var(--ink); + /* App-Namen NIE truncieren — bei Bedarf in mehrere Zeilen umbrechen. + overflow-wrap: anywhere greift auch fuer Namen ohne Leerzeichen. */ + white-space: normal; + overflow: visible; + overflow-wrap: anywhere; + word-break: normal; + letter-spacing: -0.01em; + min-width: 0; + text-decoration: none; + display: inline; + max-width: 100%; + line-height: 1.35; +} +a.app-name:hover { + color: var(--brand-accent); + text-decoration: underline; + text-underline-offset: 2px; +} +.app-row.no-assignments a.app-name { color: var(--error); } +.app-row.no-assignments a.app-name:hover { filter: brightness(0.9); } + +.app-meta { + display: inline-flex; + align-items: center; + gap: 6px; + flex-shrink: 0; +} + +.app-type { + font-size: 10px; + padding: 2px 7px; + border-radius: var(--r-xs); + background: var(--surface-card); + color: var(--muted); + text-transform: uppercase; + letter-spacing: 0.4px; + font-weight: 600; + flex-shrink: 0; +} + +.app-version { + font-size: 10.5px; + padding: 2px 7px; + border-radius: var(--r-xs); + background: var(--surface-soft); + color: var(--body); + font-family: var(--font-mono); + font-variant-numeric: tabular-nums; + font-weight: 500; + flex-shrink: 1; + min-width: 0; + max-width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: inline-block; +} + +.app-publisher { + font-size: 12px; + color: var(--muted); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + min-width: 0; + max-width: 100%; + display: block; +} + +.row-status { + display: inline-grid; + place-items: center; + width: 18px; height: 18px; + font-size: 11px; + font-weight: 800; + flex-shrink: 0; + line-height: 1; + border-radius: 50%; + cursor: help; +} +.row-status.full { background: var(--success-soft); color: var(--success); } +.row-status.partial { background: var(--warning-soft); color: var(--warning); } + +.row-queued { + background: var(--ink); + color: var(--on-primary); + font-size: 10px; + font-weight: 700; + padding: 1px 7px; + border-radius: var(--r-pill); + flex-shrink: 0; + font-variant-numeric: tabular-nums; + letter-spacing: 0.2px; +} + +.app-row-actions { + display: flex; + align-items: center; + flex-wrap: nowrap; + gap: 6px; + justify-content: flex-end; +} + +/* Sammel-Buttons "Available" / "Required" / "+" */ +.type-btn { + display: inline-flex; + align-items: center; + gap: 5px; + height: 28px; + padding: 0 12px; + border-radius: var(--r-md); + font-size: 12px; + font-weight: 600; + font-family: inherit; + background: var(--canvas); + border: 1px solid var(--hairline); + color: var(--ink); + cursor: pointer; + transition: all var(--tx); + letter-spacing: -0.005em; + white-space: nowrap; + flex-shrink: 0; +} + +.type-btn:hover:not(:disabled) { + background: var(--surface-soft); + border-color: var(--ink); +} +.type-btn:active:not(:disabled) { transform: scale(0.98); } +.type-btn:disabled { opacity: 0.45; cursor: not-allowed; } + +/* Subtile Intent-Faerbung */ +.type-available { color: var(--brand-accent); border-color: var(--accent-soft); } +.type-available:hover:not(:disabled) { background: var(--accent-bg); border-color: var(--brand-accent); } +.type-required { color: var(--pink); border-color: var(--pink-soft); } +.type-required:hover:not(:disabled) { background: var(--pink-soft); border-color: var(--pink); } + +/* Im Warenkorb → schwarz mit weisser Schrift */ +.type-btn.has-queued { + background: var(--ink); + border-color: var(--ink); + color: var(--on-primary); +} +.type-btn.has-queued:hover { background: var(--primary-active); border-color: var(--primary-active); } + +/* Mitgliedschafts-State */ +.type-btn.member-full { + background: var(--success-soft); + border-color: var(--success-border); + color: var(--success); +} +.type-btn.member-partial { + background: var(--warning-soft); + border-color: var(--warning-border); + color: var(--warning); +} + +/* Native-Only (All Users / All Devices) */ +.type-btn.native-only { + background: var(--surface-card); + border-color: var(--hairline); + color: var(--muted); + font-style: italic; +} + +/* "+" Button */ +.type-create { + width: 28px; + padding: 0; + font-size: 16px; + color: var(--muted); + border-style: dashed; + justify-content: center; +} +.type-create:hover:not(:disabled) { + color: var(--ink); + border-color: var(--ink); + border-style: solid; +} + +/* Anzahl-Hinweis (z.B. "Available 3" wenn 3 Available-Gruppen existieren) */ +.type-btn-count { + display: inline-grid; + place-items: center; + min-width: 18px; + height: 18px; + padding: 0 5px; + border-radius: var(--r-pill); + background: var(--surface-card); + color: var(--muted); + font-size: 10px; + font-weight: 700; + font-variant-numeric: tabular-nums; +} +.type-btn.has-queued .type-btn-count { + background: rgba(255,255,255,0.18); + color: var(--on-primary); +} +.type-btn.member-full .type-btn-count { background: var(--success-strong); color: var(--success); } +.type-btn.member-partial .type-btn-count { background: var(--warning-strong); color: var(--warning); } + +/* Im-Warenkorb-Counter */ +.type-btn-queued { + display: inline-grid; + place-items: center; + min-width: 18px; + height: 18px; + padding: 0 5px; + border-radius: var(--r-pill); + background: var(--on-primary); + color: var(--ink); + font-size: 10px; + font-weight: 700; + font-variant-numeric: tabular-nums; +} + +/* ============================================================= + GROUP PICKER POPOVER + ============================================================= */ + +.group-picker { + position: fixed; + z-index: 800; + background: var(--canvas); + border: 1px solid var(--hairline); + border-radius: var(--r-md); + box-shadow: var(--shadow-lg); + min-width: 280px; + max-width: 420px; + overflow: hidden; + animation: picker-in 140ms cubic-bezier(0.2, 0.8, 0.3, 1); +} +@keyframes picker-in { + from { transform: translateY(-4px); opacity: 0; } + to { transform: translateY(0); opacity: 1; } +} + +.picker-head { + padding: 10px 14px; + font-size: 12px; + font-weight: 600; + color: var(--muted); + text-transform: uppercase; + letter-spacing: 0.5px; + border-bottom: 1px solid var(--hairline); + background: var(--surface-soft); +} + +.picker-list { + max-height: 320px; + overflow-y: auto; +} + +.picker-item { + display: flex; + align-items: center; + gap: 10px; + width: 100%; + padding: 10px 14px; + background: transparent; + border: none; + border-bottom: 1px solid var(--hairline-soft); + font-size: 13px; + font-family: inherit; + color: var(--ink); + text-align: left; + cursor: pointer; + transition: background var(--tx); +} +.picker-item:last-child { border-bottom: none; } +.picker-item:hover { background: var(--surface-soft); } + +.picker-item.queued { background: rgba(17,17,17,0.04); font-weight: 600; } + +.picker-check { + width: 18px; + height: 18px; + display: inline-grid; + place-items: center; + flex-shrink: 0; + font-weight: 800; + color: var(--ink); +} + +.picker-name { + flex: 1; + word-break: break-all; + font-family: var(--font-mono); + font-size: 12px; +} + +.picker-mb { + font-size: 10px; + font-weight: 700; + padding: 2px 6px; + border-radius: var(--r-xs); + letter-spacing: 0.3px; + flex-shrink: 0; +} +.picker-mb.full { background: var(--success-soft); color: var(--success); } +.picker-mb.partial { background: var(--warning-soft); color: var(--warning); } + +/* A/R Marker — sehr dezent, nur farbiger Punkt mit Buchstabe */ +.pill-group-marker { + display: inline-grid; + place-items: center; + width: 16px; height: 16px; + font-size: 9px; + font-weight: 700; + border-radius: var(--r-xs); + margin-right: 2px; + flex-shrink: 0; + letter-spacing: 0; +} +.pill-group-marker.avail { background: var(--accent-soft); color: var(--brand-accent); } +.pill-group-marker.req { background: var(--pink-soft); color: var(--pink); } + +.pill-divider { + width: 1px; + height: 16px; + background: var(--hairline); + margin: 0 6px; + flex-shrink: 0; +} + +/* "+ Required-Gruppe" — nur sichtbar bei Hover oder wenn Apps keine Required-Pillen hat */ +.pill-create { + opacity: 0; + transition: opacity var(--tx); +} +.app-row:hover .pill-create, +.app-row .pill-create.always-show { + opacity: 1; +} + +/* ============================================================= + PILLS — Cal.com style: white, hairline border, ink hover + ============================================================= */ + +.group-pill { + position: relative; + display: inline-flex; + align-items: center; + gap: 4px; + padding: 3px 10px; + border-radius: var(--r-sm); + font-size: 12px; + background: var(--canvas); + border: 1px solid var(--hairline); + color: var(--ink); + cursor: pointer; + transition: all var(--tx); + font-weight: 500; + max-width: 100%; + height: 24px; + line-height: 1; + letter-spacing: -0.005em; +} + +.group-pill.pill-available { + border-color: var(--accent-soft); +} +.group-pill.pill-required { + border-color: var(--pink-soft); +} + +.group-pill:hover:not(:disabled):not(.queued) { + border-color: var(--ink); + background: var(--surface-soft); + box-shadow: var(--shadow-xs); +} + +.group-pill.queued { + background: var(--ink); + border-color: var(--ink); + color: var(--on-primary); + font-weight: 600; + padding-left: 8px; +} +.group-pill.queued::before { + content: '✓'; + font-size: 11px; + font-weight: 700; + color: var(--on-primary); + margin-right: 2px; +} +.group-pill.queued:hover { background: var(--primary-active); } + +.group-pill.member-full { + background: var(--success-bg); + border-color: var(--success-border); + color: var(--success); +} +.group-pill.member-partial { + background: var(--warning-bg); + border-color: var(--warning-border); + color: var(--warning); +} + +.group-pill.native { + background: var(--surface-card); + border-color: var(--hairline); + color: var(--muted); + cursor: not-allowed; + font-style: italic; +} + +.group-pill.unknown { + background: var(--error-bg); + border: 1px dashed var(--error-border); + color: var(--muted); + cursor: not-allowed; + font-style: italic; +} + +.group-pill .pill-name { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 160px; +} + +.group-pill .pill-ico { + font-size: 11px; + margin-left: 2px; + opacity: 0.85; +} + +.pill-create { + background: transparent; + border: 1px dashed var(--surface-strong); + color: var(--muted); + width: 24px; + padding: 0; + font-size: 14px; + font-weight: 600; + display: inline-grid; + place-items: center; + flex-shrink: 0; +} +.pill-create:hover { + border-color: var(--ink); + color: var(--ink); + border-style: solid; + background: var(--surface-soft); +} + +.no-assignments { + font-size: 12px; + color: var(--muted); + font-style: italic; +} + +/* ============================================================= + SIDE PANEL (Cart / Existing) + ============================================================= */ + +.side-tabs { + display: grid; + grid-template-columns: 1fr 1fr; + border-bottom: 1px solid var(--hairline); +} + +.side-tab { + position: relative; + padding: 12px 14px; + background: transparent; + border: none; + color: var(--muted); + font-size: 13px; + font-weight: 500; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + transition: color var(--tx); + letter-spacing: -0.005em; + min-height: 56px; + line-height: 1.25; +} + +.side-tab:hover { color: var(--ink); } +.side-tab.active { color: var(--ink); font-weight: 600; } +.side-tab.active::after { + content: ''; + position: absolute; + inset: auto 0 -1px 0; + height: 2px; + background: var(--ink); +} + +.side-pane { padding: 16px; display: flex; flex-direction: column; gap: 12px; flex: 1; min-height: 0; } +.side-pane.hidden { display: none; } + +.side-pane-hint { + font-size: 12.5px; + color: var(--muted); + padding: 2px; + line-height: 1.5; +} + +.session-list { + flex: 1; + min-height: 120px; + max-height: 36vh; + overflow-y: auto; + border: 1px solid var(--hairline); + border-radius: var(--r-md); + background: var(--canvas); +} + +.session-item { + padding: 10px 12px; + border-bottom: 1px solid var(--hairline-soft); + display: flex; + align-items: center; + gap: 8px; + transition: background var(--tx); +} + +.session-item:hover { background: var(--surface-soft); } +.session-item:last-child { border-bottom: none; } + +.session-info { flex: 1; min-width: 0; } + +.session-app { + font-size: 13px; + font-weight: 600; + color: var(--ink); + word-break: break-word; + letter-spacing: -0.005em; +} + +.session-grp { + font-size: 11.5px; + color: var(--muted); + margin-top: 2px; + word-break: break-all; + font-family: var(--font-mono); +} + +.session-scope { + margin-top: 4px; + display: flex; + flex-wrap: wrap; + gap: 4px; +} +.scope-tag { + font-size: 10px; + font-weight: 700; + padding: 1px 6px; + border-radius: var(--r-xs); + letter-spacing: 0.2px; +} +.scope-tag.scope-dept { background: var(--teal-soft); color: var(--teal-deep); } +.scope-tag.scope-user { background: var(--violet-soft); color: var(--violet); } +.scope-target { + font-size: 11.5px; + color: var(--muted); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 200px; +} + +.session-type-badge { + font-size: 9px; + font-weight: 700; + padding: 2px 6px; + border-radius: var(--r-xs); + text-transform: uppercase; + flex-shrink: 0; + letter-spacing: 0.4px; +} + +.session-type-badge.avail { background: var(--accent-soft); color: var(--brand-accent); } +.session-type-badge.req { background: var(--pink-soft); color: var(--pink); } + +.session-remove { + background: transparent; + border: none; + color: var(--muted); + width: 24px; height: 24px; + border-radius: var(--r-sm); + font-size: 17px; + flex-shrink: 0; + display: grid; place-items: center; + transition: all var(--tx); +} +.session-remove:hover { background: var(--error-bg); color: var(--error); } + +.session-summary { + background: var(--surface-soft); + border-radius: var(--r-md); + padding: 12px 14px; +} + +.summary-section { + margin-bottom: 10px; +} +.summary-section:last-of-type { margin-bottom: 4px; } + +.summary-section-title { + font-size: 10.5px; + font-weight: 700; + text-transform: uppercase; + color: var(--muted); + letter-spacing: 0.5px; + margin-bottom: 4px; +} + +.summary-row { + display: flex; + justify-content: space-between; + font-size: 13px; + padding: 2px 0; + color: var(--body); +} + +.summary-row.sub { + font-size: 12.5px; + padding-left: 4px; +} + +.summary-row span:last-child { + color: var(--ink); + font-weight: 600; + font-variant-numeric: tabular-nums; +} + +.summary-row.total { + border-top: 1px solid var(--hairline); + margin-top: 8px; + padding-top: 10px; + font-size: 14px; + font-weight: 700; + color: var(--ink); +} + +.summary-row.total span:last-child { + font-size: 20px; + font-weight: 700; + letter-spacing: -0.02em; +} + +/* ============================================================= + EXISTING list + ============================================================= */ + +.existing-list { + flex: 1; + overflow-y: auto; + border: 1px solid var(--hairline); + border-radius: var(--r-md); + background: var(--canvas); + min-height: 120px; +} + +.existing-item { + display: flex; + justify-content: space-between; + align-items: center; + gap: 8px; + padding: 8px 12px; + border-bottom: 1px solid var(--hairline-soft); +} +.existing-item:last-child { border-bottom: none; } + +.existing-app { + flex: 1; + font-size: 12.5px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 500; + color: var(--ink); +} + +.existing-flags { display: flex; gap: 4px; flex-shrink: 0; } + +.exist-flag { + font-size: 9px; + font-weight: 700; + padding: 2px 6px; + border-radius: var(--r-xs); + letter-spacing: 0.3px; +} + +.exist-flag.a { background: var(--accent-soft); color: var(--brand-accent); } +.exist-flag.r { background: var(--pink-soft); color: var(--pink); } +.exist-flag.n { background: var(--surface-card); color: var(--muted); } + +/* ============================================================= + EMPTY STATE + ============================================================= */ + +.empty-state { + text-align: center; + padding: 40px 20px; + color: var(--muted); + font-size: 13px; + display: flex; + flex-direction: column; + align-items: center; + gap: 10px; +} + +.empty-state.small { padding: 24px 16px; font-size: 12px; } + +.empty-ico { font-size: 28px; opacity: 0.5; } + +.empty-title { + color: var(--ink); + font-weight: 600; + font-size: 14px; + letter-spacing: -0.01em; +} + +.empty-text { + font-size: 13px; + color: var(--muted); + max-width: 280px; + line-height: 1.55; +} + +/* ============================================================= + ONBOARDING — Device-Code Login + ============================================================= */ + +.onboarding { + flex: 1; + display: flex; + align-items: flex-start; + justify-content: center; + padding: 80px 24px 40px; + background: var(--canvas); +} + +.onboarding.hidden { display: none; } + +.onboarding-card { + background: var(--canvas); + border: 1px solid var(--hairline); + border-radius: var(--r-xl); + padding: 56px 56px 48px; + max-width: 540px; + width: 100%; + text-align: center; + box-shadow: var(--shadow-md); +} + +.onboarding-icon { + width: 64px; + height: 64px; + margin: 0 auto 20px; + display: grid; + place-items: center; + background: var(--ink); + color: var(--on-primary); + border-radius: var(--r-lg); +} + +.onboarding-icon-error { + background: var(--error-soft); + color: var(--error); +} + +.onboarding-title { + font-size: 28px; + font-weight: 600; + letter-spacing: -0.025em; + color: var(--ink); + margin-bottom: 12px; + line-height: 1.2; +} + +.onboarding-text { + color: var(--body); + font-size: 15px; + line-height: 1.55; + margin-bottom: 24px; + max-width: 400px; + margin-left: auto; + margin-right: auto; +} + +.onboarding-meta { + margin-top: 24px; + font-size: 12px; + color: var(--muted); + line-height: 1.55; + padding-top: 24px; + border-top: 1px solid var(--hairline-soft); +} + +/* Device-Code-Block */ +.dc-step { + font-size: 12px; + font-weight: 600; + color: var(--muted); + text-transform: uppercase; + letter-spacing: 0.5px; + margin-bottom: 8px; +} + +.dc-code-block { + display: flex; + align-items: center; + gap: 12px; + justify-content: center; + margin: 8px 0 16px; +} + +.dc-code { + font-family: var(--font-mono); + font-size: 28px; + font-weight: 600; + letter-spacing: 0.15em; + background: var(--surface-soft); + border: 1px solid var(--hairline); + border-radius: var(--r-md); + padding: 14px 22px; + color: var(--ink); + user-select: all; +} + +.dc-copy { flex-shrink: 0; } + +.dc-open-btn { + margin: 4px 0 8px; + text-decoration: none; +} +.dc-open-btn:hover { text-decoration: none; } + +.dc-waiting { + display: inline-flex; + align-items: center; + gap: 10px; + margin-top: 16px; + padding: 10px 16px; + background: var(--surface-soft); + border-radius: var(--r-pill); + font-size: 13px; + color: var(--muted); + font-weight: 500; +} + +.dc-spinner-wrap { display: flex; justify-content: center; margin-bottom: 24px; } + +/* ============================================================= + TOASTS + ============================================================= */ + +.toasts { + position: fixed; + bottom: 24px; + right: 24px; + display: flex; + flex-direction: column; + gap: 10px; + z-index: 1000; + pointer-events: none; +} + +.toast { + pointer-events: auto; + background: var(--canvas); + border: 1px solid var(--hairline); + border-radius: var(--r-md); + padding: 12px 14px; + font-size: 13px; + display: flex; + align-items: flex-start; + gap: 10px; + min-width: 280px; + max-width: 420px; + box-shadow: var(--shadow-md); + animation: slide-in 280ms cubic-bezier(0.2, 0.8, 0.2, 1); + border-left: 3px solid var(--ink); +} + +.toast.ok { border-left-color: var(--success); } +.toast.warn { border-left-color: var(--warning); } +.toast.err { border-left-color: var(--error); } + +.toast-ico { + flex-shrink: 0; + width: 22px; height: 22px; + border-radius: 50%; + display: grid; place-items: center; + font-size: 12px; + font-weight: 700; + background: var(--surface-card); + color: var(--ink); +} +.toast.ok .toast-ico { background: var(--success-soft); color: var(--success); } +.toast.warn .toast-ico { background: var(--warning-soft); color: var(--warning); } +.toast.err .toast-ico { background: var(--error-soft); color: var(--error); } + +.toast-content { flex: 1; min-width: 0; } +.toast-title { font-weight: 600; margin-bottom: 2px; color: var(--ink); } +.toast-msg { font-size: 12.5px; color: var(--body); word-wrap: break-word; } + +@keyframes slide-in { + from { transform: translateX(420px); opacity: 0; } + to { transform: translateX(0); opacity: 1; } +} + +/* ============================================================= + LOADING OVERLAY + ============================================================= */ + +.loading { + position: fixed; + inset: 0; + background: rgba(255,255,255,0.7); + backdrop-filter: blur(4px); + display: flex; + align-items: center; + justify-content: center; + z-index: 2000; + animation: fade-in 200ms ease-out; +} + +.loading-card { + background: var(--canvas); + border: 1px solid var(--hairline); + border-radius: var(--r-lg); + padding: 28px 32px; + display: flex; + align-items: center; + gap: 14px; + box-shadow: var(--shadow-lg); + min-width: 260px; +} + +.spinner { + width: 24px; height: 24px; + border-radius: 50%; + border: 2.5px solid var(--surface-strong); + border-top-color: var(--ink); + animation: spin 800ms linear infinite; + flex-shrink: 0; +} + +.spinner-sm { + width: 14px; height: 14px; + border-width: 2px; +} + +.loading-text { + font-size: 14px; + color: var(--ink); + font-weight: 500; +} + +@keyframes spin { to { transform: rotate(360deg); } } +@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } + +/* Skeleton */ +.skeleton { + padding: 12px 16px; + display: flex; + flex-direction: column; + gap: 8px; +} +.sk-line { + height: 12px; + background: linear-gradient(90deg, var(--surface-soft) 0%, var(--surface-card) 50%, var(--surface-soft) 100%); + background-size: 200% 100%; + animation: shimmer 1.4s infinite; + border-radius: var(--r-xs); +} +.sk-line.short { width: 40%; } +.sk-line.med { width: 70%; } +@keyframes shimmer { + 0% { background-position: 200% 0; } + 100% { background-position: -200% 0; } +} + +/* ============================================================= + MODALS + ============================================================= */ + +.modal { + position: fixed; + inset: 0; + z-index: 1500; + display: flex; + align-items: center; + justify-content: center; + animation: fade-in 200ms ease-out; +} + +.modal-backdrop { + position: absolute; + inset: 0; + background: rgba(17,17,17,0.4); + backdrop-filter: blur(4px); +} + +.modal-box { + position: relative; + background: var(--canvas); + border-radius: var(--r-lg); + width: 92%; + max-width: 500px; + box-shadow: var(--shadow-lg); + animation: modal-in 240ms cubic-bezier(0.2, 0.8, 0.3, 1); + overflow: hidden; +} + +.modal-box.modal-lg { max-width: 720px; } +.modal-box.modal-xl { max-width: 1320px; } + +@keyframes modal-in { + from { transform: scale(0.96) translateY(-8px); opacity: 0; } + to { transform: scale(1) translateY(0); opacity: 1; } +} + +.modal-head { + display: flex; + align-items: center; + justify-content: space-between; + padding: 20px 24px; + border-bottom: 1px solid var(--hairline); +} + +.modal-head h3 { + font-size: 17px; + font-weight: 600; + letter-spacing: -0.015em; + color: var(--ink); +} + +.modal-close { + background: transparent; + border: none; + color: var(--muted); + font-size: 22px; + width: 32px; height: 32px; + border-radius: var(--r-sm); + transition: all var(--tx); + display: grid; place-items: center; + line-height: 1; +} +.modal-close:hover { background: var(--surface-soft); color: var(--ink); } + +.modal-body { + padding: 24px; + /* Hoch genug damit gaengige Modal-Inhalte (Settings, Create-Assignment) + ohne Scrollen passen. Bei extrem langen Inhalten oder kleinen Displays + greift der Scroll als Fallback. */ + max-height: 85vh; + overflow-y: auto; +} + +.modal-foot { + display: flex; + justify-content: flex-end; + gap: 10px; + padding: 16px 24px; + border-top: 1px solid var(--hairline); + background: var(--surface-soft); +} + +.form-group { margin-bottom: 16px; } +.form-group .lbl { + display: block; + font-size: 12px; + color: var(--muted); + margin-bottom: 6px; + font-weight: 600; + letter-spacing: -0.005em; +} +.form-group .input { width: 100%; } + +.form-hint { + font-size: 12px; + margin-top: 6px; + color: var(--muted); + font-weight: 500; +} +.form-hint.ok { color: var(--success); } +.form-hint.err { color: var(--error); } + +.confirm-text { + font-size: 15px; + margin-bottom: 16px; + line-height: 1.55; + color: var(--body); +} +.confirm-text strong { color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums; } + +.confirm-warn { + font-size: 13px; + color: var(--body); + background: var(--surface-soft); + border: 1px solid var(--hairline); + border-left: 3px solid var(--warning); + border-radius: var(--r-md); + padding: 12px 14px; +} + +/* Result Modal */ + +.res-banner { + display: flex; + align-items: center; + gap: 12px; + padding: 14px 16px; + border-radius: var(--r-md); + font-size: 14px; + font-weight: 600; + margin-bottom: 16px; + border: 1px solid; +} +.res-banner-ok { background: var(--success-soft); border-color: var(--success-shadow); color: var(--success); } +.res-banner-warn { background: var(--warning-soft); border-color: var(--warning-border); color: var(--warning); } +.res-banner-err { background: var(--error-soft); border-color: var(--error-border); color: var(--error); } + +.res-banner-ico { + display: inline-grid; + place-items: center; + width: 28px; height: 28px; + border-radius: 50%; + font-size: 16px; + font-weight: 800; + color: #fff; + flex-shrink: 0; + line-height: 1; +} +.res-banner-ok .res-banner-ico { background: var(--success); } +.res-banner-warn .res-banner-ico { background: var(--warning); } +.res-banner-err .res-banner-ico { background: var(--error); } + +.result-stats { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 10px; + margin-bottom: 18px; +} + +.rstat { + background: var(--surface-card); + border-radius: var(--r-md); + padding: 16px 12px; + text-align: center; + display: flex; + flex-direction: column; + gap: 4px; +} + +.rstat .num { + font-size: 32px; + font-weight: 700; + font-variant-numeric: tabular-nums; + letter-spacing: -0.025em; + line-height: 1; + color: var(--ink); +} + +.rstat .lbl { + font-size: 11px; + text-transform: uppercase; + color: var(--muted); + letter-spacing: 0.5px; + font-weight: 600; +} + +.rstat.ok .num { color: var(--success); } +.rstat.warn .num { color: var(--warning); } +.rstat.err .num { color: var(--error); } +.rstat.tot .num { color: var(--ink); } + +/* Detail-Liste */ +.res-details { margin-bottom: 16px; } +.res-details-head { + font-size: 12px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.5px; + color: var(--muted); + margin-bottom: 8px; + padding: 0 2px; +} +.res-details-list { + border: 1px solid var(--hairline); + border-radius: var(--r-md); + max-height: 320px; + overflow-y: auto; + background: var(--canvas); +} +.res-row { + display: flex; + align-items: flex-start; + gap: 10px; + padding: 10px 12px; + border-bottom: 1px solid var(--hairline-soft); +} +.res-row:last-child { border-bottom: none; } + +.res-row-ico { + display: inline-grid; + place-items: center; + width: 20px; height: 20px; + border-radius: 50%; + font-size: 12px; + font-weight: 800; + flex-shrink: 0; + margin-top: 1px; +} +.res-row-ok .res-row-ico { background: var(--success-soft); color: var(--success); } +.res-row-warn .res-row-ico { background: var(--warning-soft); color: var(--warning); } +.res-row-err .res-row-ico { background: var(--error-soft); color: var(--error); } + +.res-row-main { flex: 1; min-width: 0; } +.res-row-line1 { + font-size: 13.5px; + color: var(--ink); + word-break: break-word; +} +.res-row-line1 strong { font-weight: 700; } +.res-row-line2 { + font-size: 11.5px; + color: var(--muted); + font-family: var(--font-mono); + margin-top: 2px; + word-break: break-all; +} +.res-row-type { + font-family: var(--font-body); + font-size: 9.5px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.5px; + padding: 1px 6px; + border-radius: var(--r-xs); + background: var(--surface-card); + margin-left: 4px; + vertical-align: middle; +} +.res-row-msg { + font-size: 11.5px; + color: var(--body); + margin-top: 4px; + font-style: italic; +} + +.report-link { + text-align: center; + padding: 8px; +} + +.report-link .btn { + text-decoration: none; + display: inline-flex; +} + +.res-debug { margin-top: 12px; } +.res-debug details { + background: var(--surface-soft); + border: 1px solid var(--hairline); + border-radius: var(--r-md); + padding: 8px 12px; +} +.res-debug summary { + font-size: 11px; + color: var(--muted); + cursor: pointer; + user-select: none; + font-weight: 500; +} +.res-debug pre { + margin-top: 8px; + font-family: var(--font-mono); + font-size: 11px; + background: var(--canvas); + border: 1px solid var(--hairline); + border-radius: var(--r-sm); + padding: 10px; + overflow-x: auto; + color: var(--ink); +} + +/* ============================================================= + RESPONSIVE + ============================================================= */ + +@media (max-width: 1280px) { + .stepper { display: none; } + .topbar { grid-template-columns: auto 1fr auto; } +} + +@media (max-width: 1100px) { + .layout { grid-template-columns: 1fr; } + .panel { position: static; max-height: none; } + .panel-side { order: 99; } +} + +@media (max-width: 640px) { + .topbar { padding: 0 14px; height: auto; flex-wrap: wrap; gap: 12px; padding-block: 12px; } + .layout { padding: 12px; } + .mode-segment { grid-template-columns: 1fr; } + .result-stats { grid-template-columns: 1fr 1fr; } + .apps-toolbar { flex-direction: column; } + .apps-toolbar .select { width: 100%; } + .onboarding-card { padding: 32px 24px; } + .dc-code { font-size: 22px; padding: 12px 16px; } +} + +/* ============================================================= + Erweiterungen 2026-05-18: + - dezente Link-Icons neben Namen + - App-Delete-Button + - Picker mit Side-Actions (Entra, Members-Tab, Delete-Assignment) + - Standalone Members-Seite + ============================================================= */ + +/* Name-Spalten: nicht mehr klickbar, kleines Icon daneben */ +.target-name .target-text { + display: inline; + color: inherit; +} +.target-link-icons { + display: inline-flex; + align-items: center; + gap: 2px; + flex-shrink: 0; + margin-left: 4px; +} +.target-row .col-create { /* (no-op, just keeps cascade clean) */ } + +.app-name-line .entra-link { + margin-left: 2px; +} +.ex-member-name .entra-link { + margin-left: 4px; +} + +/* App-Delete-Button (Spalte ganz rechts) */ +.col-delete { justify-content: center; } +.app-delete-btn { + width: 24px; + height: 24px; + display: inline-grid; + place-items: center; + background: transparent; + border: 1px solid transparent; + border-radius: var(--r-sm); + color: var(--muted); + cursor: pointer; + opacity: 0; + transition: all var(--tx); + padding: 0; + flex-shrink: 0; +} +.app-row:hover .app-delete-btn { opacity: 0.7; } +.app-delete-btn:hover { + opacity: 1; + color: var(--error); + background: var(--error-soft, rgba(220, 38, 38, 0.12)); + border-color: var(--error); +} +.app-delete-btn.app-delete-locked { + cursor: not-allowed; + opacity: 0.35; +} +.app-row:hover .app-delete-btn.app-delete-locked { opacity: 0.55; } +.app-delete-btn.app-delete-locked:hover { + color: var(--muted); + background: var(--surface-soft); + border-color: var(--hairline); +} + +/* Inline-Edit-Icon neben dem App-Namen (Pencil). PMPC-Apps: passives Lock. */ +.app-rename-btn { + background: transparent; + border: 1px solid transparent; + padding: 0; + cursor: pointer; + display: inline-grid; + place-items: center; + width: 22px; + height: 22px; + border-radius: var(--r-sm); + color: var(--muted); + opacity: 0; + transition: all var(--tx); + flex-shrink: 0; +} +.app-row:hover .app-rename-btn { opacity: 0.65; } +.app-rename-btn:hover { + opacity: 1; + color: var(--brand-accent); + background: var(--surface-soft); + border-color: var(--hairline); +} +.app-rename-locked { + display: inline-grid; + place-items: center; + width: 22px; + height: 22px; + border-radius: var(--r-sm); + color: var(--muted); + flex-shrink: 0; + opacity: 0; + cursor: not-allowed; +} +.app-row:hover .app-rename-locked { opacity: 0.4; } + +/* Rename-Modal */ +.ra-old-name { + font-size: 13px; + color: var(--muted); + padding: 6px 0; + word-break: break-word; + font-style: italic; +} +.form-hint-err { + color: var(--error); + font-weight: 500; + min-height: 1.2em; + margin-top: 4px; +} + +/* Group-Picker: jede Zeile bekommt Side-Actions rechts */ +.picker-row { + display: flex; + align-items: stretch; + gap: 2px; + border-bottom: 1px solid var(--hairline-soft); +} +.picker-row:last-child { border-bottom: none; } +.picker-row.queued { background: rgba(17, 17, 17, 0.04); font-weight: 600; } +.picker-row .picker-item { border-bottom: none; flex: 1; } + +.picker-actions { + display: inline-flex; + align-items: center; + gap: 2px; + padding-right: 8px; + flex-shrink: 0; +} +.picker-actions .entra-link { + opacity: 0.55; +} +.picker-row:hover .picker-actions .entra-link { opacity: 1; } + +.picker-del { + width: 22px; + height: 22px; + display: inline-grid; + place-items: center; + background: transparent; + border: 1px solid transparent; + border-radius: var(--r-sm); + color: var(--muted); + cursor: pointer; + opacity: 0.55; + transition: all var(--tx); + padding: 0; +} +.picker-row:hover .picker-del { opacity: 0.85; } +.picker-del:hover { + opacity: 1; + color: var(--error); + background: var(--error-soft, rgba(220, 38, 38, 0.12)); + border-color: var(--error); +} + +/* Members-Standalone-Seite */ +body.members-page { + background: var(--canvas); +} +.members-page .topbar .brand-name { font-weight: 600; } +.members-main { + max-width: 980px; + margin: 28px auto; + padding: 0 16px 80px 16px; +} +.members-card { + background: var(--surface); + border: 1px solid var(--hairline); + border-radius: var(--r-lg); + overflow: hidden; + box-shadow: var(--shadow-soft, 0 1px 3px rgba(0,0,0,0.04)); +} +.members-head { + padding: 18px 22px 14px 22px; + display: flex; + flex-direction: column; + gap: 6px; + border-bottom: 1px solid var(--hairline-soft); +} +.members-title { + font-size: 18px; + font-weight: 700; + letter-spacing: -0.015em; + margin: 0; + color: var(--ink); + word-break: break-word; +} +.members-meta { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; +} +.meta-mono { + font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace); + font-size: 11.5px; + background: var(--surface-soft); + color: var(--muted); + padding: 2px 8px; + border-radius: var(--r-xs); + border: 1px solid var(--hairline); +} +.members-toolbar { + display: flex; + gap: 8px; + align-items: center; + padding: 12px 22px; + border-bottom: 1px solid var(--hairline-soft); + background: var(--surface-soft); +} +.members-toolbar .search-wrap { flex: 1; } + +.members-list { + max-height: 70vh; + overflow-y: auto; +} +.m-row { + padding: 10px 22px; + border-bottom: 1px solid var(--hairline-soft); + transition: background var(--tx); +} +.m-row:last-child { border-bottom: none; } +.m-row:hover { background: var(--surface-soft); } +.m-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; } +.m-name { + font-size: 13.5px; + color: var(--ink); + font-weight: 500; + display: inline-flex; + align-items: center; + gap: 6px; +} +.m-name .entra-link { opacity: 0.5; } +.m-row:hover .m-name .entra-link { opacity: 1; } +.m-upn { + font-size: 12px; + color: var(--muted); +} +.m-loading { + padding: 32px 22px; + display: flex; + align-items: center; + gap: 10px; + color: var(--muted); + font-size: 13px; + justify-content: center; +} + +/* Picker-Item soll innerhalb der Row keinen Rand-Radius brechen */ +.picker-row .picker-item { border-radius: 0; } +.picker-row:first-child .picker-item { border-top-left-radius: var(--r-md); } +.picker-row:last-child .picker-item { border-bottom-left-radius: var(--r-md); } + +/* Zuweisungen-Sektion im aufgeklappten App-Detail */ +.asg-section .asg-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 14px; + margin-top: 8px; +} +@media (max-width: 900px) { .asg-section .asg-grid { grid-template-columns: 1fr; } } +.asg-col { + background: var(--surface); + border: 1px solid var(--hairline); + border-radius: var(--r-sm); + overflow: hidden; +} +.asg-col-head { + display: flex; + align-items: center; + gap: 8px; + padding: 6px 10px; + background: var(--surface-soft); + border-bottom: 1px solid var(--hairline-soft); +} +.asg-badge { + font-size: 10px; + font-weight: 700; + letter-spacing: 0.4px; + text-transform: uppercase; + padding: 2px 7px; + border-radius: var(--r-xs); +} +.asg-badge.avail { background: var(--accent-soft, rgba(99,102,241,0.15)); color: var(--brand-accent); } +.asg-badge.req { background: var(--pink-soft, rgba(236,72,153,0.15)); color: var(--pink, #ec4899); } +.asg-count { + font-size: 11px; + color: var(--muted); + font-variant-numeric: tabular-nums; + margin-left: auto; +} +.asg-list { + list-style: none; + margin: 0; + padding: 0; +} +.asg-row { + display: flex; + align-items: center; + gap: 8px; + padding: 6px 10px; + border-bottom: 1px solid var(--hairline-soft); + transition: background var(--tx); +} +.asg-row:last-child { border-bottom: none; } +.asg-row:hover { background: var(--surface-soft); } +.asg-name { + flex: 1; + min-width: 0; + font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace); + font-size: 11.5px; + color: var(--ink); + /* nicht buchstabenweise brechen — overflow-wrap erlaubt nur Notbruch */ + overflow-wrap: anywhere; + word-break: normal; + line-height: 1.45; +} +.asg-row.native .asg-name { color: var(--muted); font-style: italic; } +.asg-native-tag { + font-size: 9.5px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.4px; + padding: 1px 6px; + border-radius: var(--r-xs); + background: var(--surface-soft); + color: var(--muted); + border: 1px solid var(--hairline); +} +.asg-mb { + font-size: 10px; + font-weight: 700; + padding: 1px 6px; + border-radius: var(--r-xs); + letter-spacing: 0.3px; + flex-shrink: 0; +} +.asg-mb.full { background: var(--success-soft); color: var(--success); } +.asg-mb.partial { background: var(--warning-soft, rgba(245,158,11,0.15)); color: var(--warning, #f59e0b); } +.asg-actions { + display: inline-flex; + align-items: center; + gap: 2px; + flex-shrink: 0; +} +.asg-actions .entra-link { opacity: 0.55; } +.asg-row:hover .asg-actions .entra-link { opacity: 1; } +.asg-del { + width: 22px; + height: 22px; + display: inline-grid; + place-items: center; + background: transparent; + border: 1px solid transparent; + border-radius: var(--r-sm); + color: var(--muted); + cursor: pointer; + opacity: 0.55; + transition: all var(--tx); + padding: 0; +} +.asg-row:hover .asg-del { opacity: 0.85; } +.asg-del:hover { + opacity: 1; + color: var(--error); + background: var(--error-soft, rgba(220,38,38,0.12)); + border-color: var(--error); +} +.asg-empty { + padding: 10px 12px; + font-size: 12px; + color: var(--muted); + font-style: italic; +} + +/* ============================================================= + Einstellungen-Modal + ============================================================= */ +.icon-btn-header { + width: 32px; + height: 32px; + border-radius: var(--r-sm); +} +.icon-btn-header svg { display: block; } +/* Disconnect-Button: Hover-Akzent in Fehlerfarbe damit "Trennen" als + destruktive Aktion sofort erkennbar ist. */ +#btnDisconnect:hover { + color: var(--error); + background: var(--error-bg); + border-color: transparent; +} + +.settings-form { display: flex; flex-direction: column; gap: 18px; } +.settings-sec { + border: 1px solid var(--hairline); + background: var(--surface); + border-radius: var(--r-md); + padding: 14px 16px; +} +.settings-sec.settings-sec-meta { background: var(--surface-soft); } + +/* First-Run / Setup-Required-Banner — wird im Settings-Modal-Body und im + Onboarding-Panel verwendet. Optisch warnend, aber dezent (kein rot). */ +.banner-warning { + border: 1px solid var(--warning, #f59e0b); + background: color-mix(in srgb, var(--warning, #f59e0b) 12%, var(--surface)); + color: var(--ink); + border-radius: var(--r-md); + padding: 10px 14px; + margin: 0 0 14px 0; + font-size: 12.5px; + line-height: 1.45; +} +.banner-warning strong { font-weight: 700; } +.banner-warning a { color: var(--accent); font-weight: 600; } +.banner-warning a:hover { text-decoration: underline; } + +/* Setup-Datei aktualisieren */ +.content-update-row { display: flex; flex-direction: column; gap: 6px; } +.uc-path-row { display: flex; gap: 8px; align-items: stretch; } +.uc-path-row .input { flex: 1; min-width: 0; } +.uc-path-row .btn { flex-shrink: 0; white-space: nowrap; } +.content-update-progress { + display: flex; + align-items: center; + gap: 8px; + margin-top: 10px; + padding: 8px 12px; + border-radius: var(--r-md); + background: var(--surface-soft); + border: 1px solid var(--hairline-soft); + font-size: 12.5px; + color: var(--ink); +} + +/* Konfig-Test-Ergebnisse im Settings-Modal — eine Zeile pro Pruefung, + farbliche Statuspille links. */ +.settings-test-result { + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; + gap: 4px; +} +.set-test-line { + font-size: 12.5px; + line-height: 1.5; + color: var(--ink); + display: flex; + flex-wrap: wrap; + align-items: baseline; + gap: 6px; +} +.set-test-line code { font-size: 11.5px; } +.set-test-icon { + display: inline-block; + min-width: 36px; + padding: 1px 6px; + border-radius: var(--r-sm); + font-size: 10.5px; + font-weight: 700; + text-align: center; + letter-spacing: 0.04em; +} +.set-test-icon.ok { background: color-mix(in srgb, var(--success, #10b981) 18%, var(--surface)); color: var(--success, #10b981); } +.set-test-icon.fail { background: color-mix(in srgb, var(--error, #ef4444) 18%, var(--surface)); color: var(--error, #ef4444); } +.set-test-icon.warn { background: color-mix(in srgb, var(--warning, #f59e0b) 18%, var(--surface)); color: var(--warning, #f59e0b); } +.set-test-line.set-test-pending { color: var(--ink-muted); } +.set-test-line.set-test-warn { color: var(--ink-muted); } +.set-test-sample { color: var(--ink-muted); font-size: 11.5px; } +.settings-sec-head { margin-bottom: 10px; } +.settings-sec-head-row { + display: flex; + align-items: flex-start; + gap: 12px; + justify-content: space-between; +} +.settings-sec-head-row > div:first-child { flex: 1; min-width: 0; } +.settings-sec-head-row .btn { flex-shrink: 0; white-space: nowrap; } +.settings-sec-head h4 { + margin: 0 0 2px 0; + font-size: 13px; + font-weight: 700; + letter-spacing: -0.005em; + color: var(--ink); + text-transform: none; +} +.settings-sec-sub { + font-size: 11.5px; + color: var(--muted); + line-height: 1.45; +} +.settings-sec-sub code { + font-family: var(--font-mono); + font-size: 11px; + background: var(--surface-soft); + padding: 1px 5px; + border-radius: var(--r-xs); + color: var(--body); +} +.settings-form .form-group { margin-top: 8px; } +.settings-form .form-group:first-child { margin-top: 0; } +.settings-form .lbl { + display: block; + font-size: 11px; + font-weight: 600; + color: var(--muted); + margin-bottom: 4px; + text-transform: uppercase; + letter-spacing: 0.4px; +} +.settings-form .input { + width: 100%; + padding: 8px 10px; + font-size: 13px; +} +.settings-form textarea.input { + resize: vertical; + min-height: 80px; + line-height: 1.5; +} +.settings-form .input.mono { + font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace); + font-size: 12.5px; +} +.settings-form .form-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; +} +@media (max-width: 600px) { + .settings-form .form-row { grid-template-columns: 1fr; } +} +.settings-form .form-check-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); + gap: 6px; +} +.settings-form .form-hint { + font-size: 11.5px; + color: var(--muted); + margin-top: 6px; +} +.settings-form .set-preview { + font-family: var(--font-mono); + font-size: 12px; + background: var(--surface-soft); + padding: 2px 7px; + border-radius: var(--r-xs); + color: var(--ink); + border: 1px solid var(--hairline); +} +.settings-form .set-path { + font-family: var(--font-mono); + font-size: 11px; + color: var(--muted); + word-break: break-all; +} +.modal-foot-spacer { flex: 1; } + +/* Branding: Logo-Auswahl */ +.logo-row { + display: flex; + align-items: center; + gap: 16px; +} +.logo-preview { + width: 56px; height: 56px; + border-radius: var(--r-md); + background: var(--brand-primary); + color: var(--on-primary); + display: grid; place-items: center; + font-weight: 700; + font-size: 22px; + overflow: hidden; + flex-shrink: 0; + border: 1px solid var(--hairline); +} +.logo-preview:has(.logo-preview-img) { background: var(--surface-soft); } +.logo-preview-img { + width: 100%; height: 100%; + object-fit: contain; + display: block; +} +.logo-actions { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 6px; +} +.logo-actions .btn { white-space: nowrap; } +.input.hidden { display: none; } + +/* Farben-Grid */ +.color-grid { display: flex; flex-direction: column; gap: 6px; } +.color-row { + display: grid; + grid-template-columns: 22px 1fr 36px 92px 28px; + align-items: center; + gap: 10px; + padding: 8px 10px; + border: 1px solid var(--hairline); + border-radius: var(--r-sm); + background: var(--surface); + transition: border-color var(--tx); +} +.color-row:hover { border-color: var(--surface-strong); } +.color-swatch { + width: 22px; height: 22px; + border-radius: var(--r-xs); + border: 1px solid var(--hairline); + display: block; + background: var(--ink); +} +.color-meta { min-width: 0; } +.color-name { + font-size: 12.5px; + font-weight: 600; + color: var(--ink); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.color-desc { + font-size: 11px; + color: var(--muted); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.color-picker { + width: 36px; + height: 28px; + padding: 0; + border: 1px solid var(--hairline); + border-radius: var(--r-xs); + background: transparent; + cursor: pointer; +} +.color-picker::-webkit-color-swatch-wrapper { padding: 2px; } +.color-picker::-webkit-color-swatch { border: none; border-radius: 3px; } +.color-hex { + font-size: 12px !important; + padding: 4px 8px !important; + text-align: center; + width: 92px; +} +.color-row .link-btn { + font-size: 16px; + line-height: 1; + color: var(--muted); + background: transparent; + border: none; + cursor: pointer; + padding: 4px 6px; + border-radius: var(--r-xs); +} +.color-row .link-btn:hover { color: var(--ink); background: var(--surface-soft); } + +@media (max-width: 640px) { + .color-row { + grid-template-columns: 22px 1fr 36px; + grid-template-rows: auto auto; + gap: 6px 10px; + } + .color-row .color-hex { grid-column: 1 / 4; width: 100%; } + .color-row .link-btn { grid-column: 1 / 4; justify-self: flex-end; } +} + +/* Statische entra-Links (z.B. in der Members-Seite, der App-Zeile, + im Group-Picker). */ +.entra-link-static, +.app-name-line .entra-link, +.picker-actions .entra-link, +.m-name .entra-link { + opacity: 0.55; +} +.app-row:hover .app-name-line .entra-link { + opacity: 1; +} +/* Empfaenger-Liste (links): Icons sind IMMER voll sichtbar — egal ob + Abteilung, RPA-Gruppe oder Einzel-User. Vorher hover-only -> verwirrend. */ +.target-link-icons .entra-link { + opacity: 1; +} + +/* ============================================================= + Help-Modal — TOC-Sidebar links, gerenderter Markdown-Content rechts + ============================================================= */ +.help-body { + display: grid; + grid-template-columns: 260px 1fr; + gap: 28px; + padding: 32px 28px 24px 28px; + max-height: 80vh; + overflow: hidden; +} +@media (max-width: 800px) { + .help-body { grid-template-columns: 1fr; } + .help-toc { display: none; } +} +.help-toc { + position: sticky; + top: 0; + align-self: start; + max-height: 80vh; + overflow-y: auto; + padding: 0 12px 0 4px; + border-right: 1px solid var(--hairline-soft); +} +.help-toc-title { + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.05em; + color: var(--muted); + margin-bottom: 16px; +} +.help-toc ul { + list-style: none; + margin: 0; + padding: 0; +} +.help-toc li { + margin: 2px 0; +} +.help-toc a { + display: block; + padding: 6px 12px; + border-radius: var(--r-sm); + font-size: 12.5px; + color: var(--body); + text-decoration: none; + transition: background var(--tx), color var(--tx); +} +.help-toc a:hover { + background: var(--surface-soft); + color: var(--ink); +} +.help-toc a.active { + background: var(--accent-soft); + color: var(--brand-accent); + font-weight: 600; +} +.help-toc a.active:hover { + background: var(--accent-soft); + color: var(--brand-accent); +} +.help-content { + overflow-y: auto; + max-height: 80vh; + padding-right: 12px; +} +.help-content h1:first-child { + margin-top: 0; + margin-bottom: 14px; +} +.help-content h2 { + padding-top: 14px; + border-top: 1px solid var(--hairline-soft); + transition: background var(--tx); + border-radius: var(--r-sm); +} +.help-content h2:first-of-type { + border-top: none; + padding-top: 0; +} +/* Flash beim TOC-Klick */ +.help-h-flash { + background: var(--accent-soft); + padding-left: 8px; + padding-right: 8px; + margin-left: -8px; + margin-right: -8px; + animation: helpHFlash 1.2s ease-out; +} +@keyframes helpHFlash { + 0%, 100% { background: var(--accent-soft); } + 50% { background: transparent; } +} +.help-loading { + padding: 40px 20px; + text-align: center; + color: var(--muted); + font-size: 13px; +} +.help-error { + padding: 16px 20px; + background: var(--error-soft); + color: var(--error); + border: 1px solid var(--error-border); + border-radius: var(--r-md); +} +.help-version-badge { + font-family: var(--font-mono); + font-size: 11px; + color: var(--muted); + padding: 4px 10px; + background: var(--surface-soft); + border: 1px solid var(--hairline-soft); + border-radius: var(--r-pill); +} +/* Help-Modal: padding kommt komplett aus .help-body. KEINE eigene Regel + fuer #modalHelp .modal-body — die wuerde wegen ID-Specificity das + .help-body-Padding aushebeln. */ + +/* WICHTIG: das Help-Modal-Content-Div hat BEIDE Klassen am selben Element + (
    ), deshalb COMPOUND-Selector + (.help-content.md-content) — Descendant-Selector mit Leerzeichen wuerde + NICHT matchen. --detail-text wird global gesetzt (helle Panel-Farbe -> + dunkler readableForeground) und macht die md-content-Headings im Dark + Mode unlesbar. Wir overriden hier mit den Basis-Vars. !important + forciert Sieg gegen die generische .md-content-Regel — Specificity + alleine reicht nicht, weil die Help-/Detail-Regeln gemischt liegen. */ +.help-content.md-content { color: var(--ink) !important; } +.help-content.md-content h1, +.help-content.md-content h2, +.help-content.md-content h4 { color: var(--ink) !important; } +.help-content.md-content h3, +.help-content.md-content h5, +.help-content.md-content h6 { color: var(--muted) !important; } +.help-content.md-content p, +.help-content.md-content li, +.help-content.md-content td { color: var(--ink) !important; } +.help-content.md-content del { color: var(--muted) !important; } +.help-content.md-content blockquote { + color: var(--muted) !important; + border-left-color: var(--hairline) !important; + background: var(--surface-soft) !important; +} +.help-content.md-content code { + background: var(--surface-soft) !important; + border-color: var(--hairline-soft) !important; + color: var(--ink) !important; +} +.help-content.md-content pre, +.help-content.md-content th { + background: var(--surface-soft) !important; + border-color: var(--hairline-soft) !important; + color: var(--ink) !important; +} +.help-content.md-content th, +.help-content.md-content td { border-color: var(--hairline-soft) !important; } +.help-content.md-content tr:nth-child(even) td { background: var(--surface-soft) !important; } +.help-content.md-content hr { border-top-color: var(--hairline-soft) !important; } + +/* ============================================================= + Create-Assignment Modal — zwei Intent-Spalten (Required + Available) + mit je drei Optionen (Neue Gruppe / All Users / All Devices). + Farbliche Unterscheidung via cg-intent-required/-available. + ============================================================= */ +.cg-intent-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 12px; + margin-top: 6px; +} +@media (max-width: 600px) { .cg-intent-grid { grid-template-columns: 1fr; } } + +.cg-intent-col { + display: flex; + flex-direction: column; + gap: 6px; + padding: 10px; + border: 1px solid var(--hairline); + border-radius: var(--r-md); + background: var(--surface); +} +/* Intent-Faerbung: Required = pink-ton, Available = accent-blau */ +.cg-intent-required { border-top: 3px solid var(--pink); } +.cg-intent-available { border-top: 3px solid var(--brand-accent); } + +.cg-intent-head { + display: flex; + flex-direction: column; + gap: 2px; + padding: 0 2px 4px; +} +.cg-intent-badge { + font-size: 10px; + font-weight: 700; + letter-spacing: 0.06em; + padding: 3px 8px; + border-radius: var(--r-xs); + align-self: flex-start; +} +.cg-intent-badge.req { background: var(--pink-soft); color: var(--pink); } +.cg-intent-badge.avail { background: var(--accent-soft); color: var(--brand-accent); } +.cg-intent-sub { + font-size: 11px; + color: var(--muted); +} + +.cg-mode { + display: flex; + align-items: flex-start; + gap: 10px; + padding: 10px 12px; + border: 1px solid var(--hairline-soft); + border-radius: var(--r-md); + background: var(--canvas); + cursor: pointer; + transition: all var(--tx); +} +.cg-mode:hover { background: var(--surface-soft); border-color: var(--surface-strong); } +.cg-mode input[type="radio"] { + margin-top: 2px; + flex-shrink: 0; +} +.cg-intent-required .cg-mode input[type="radio"] { accent-color: var(--pink); } +.cg-intent-available .cg-mode input[type="radio"] { accent-color: var(--brand-accent); } +.cg-intent-required .cg-mode:has(input:checked) { + border-color: var(--pink); + background: var(--pink-soft); +} +.cg-intent-available .cg-mode:has(input:checked) { + border-color: var(--brand-accent); + background: var(--accent-soft); +} +.cg-mode-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; } +.cg-mode-title { + font-size: 12.5px; + font-weight: 600; + color: var(--ink); +} +.cg-mode-desc { + font-size: 11.5px; + color: var(--muted); + line-height: 1.4; +} + +/* Disabled-Card: Option bereits zugewiesen, keine zweite Zuweisung moeglich. + pointer-events: none verhindert Klicks ohne JS-Logik dafuer schreiben zu + muessen. Strike-Through im Title macht visuell sofort klar dass die + Option nicht waehlbar ist. */ +.cg-mode--disabled { + opacity: 0.5; + pointer-events: none; + background: var(--surface-soft); + border-color: var(--hairline-soft) !important; +} +.cg-mode--disabled .cg-mode-title { + text-decoration: line-through; + color: var(--muted); +} +.cg-mode--disabled .cg-mode-title::after { + content: ' ✓ aktiv'; + font-size: 10px; + font-weight: 600; + letter-spacing: 0.03em; + color: var(--success); + margin-left: 4px; + text-decoration: none; + display: inline-block; +} +.cg-mode--disabled .cg-mode-desc { + font-style: italic; +} + +/* ============================================================= + App-Detail — Installations-Statistik (Erfolge/Fehler je User/Device) + ============================================================= */ +.install-stats { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 14px; + margin-top: 6px; +} +@media (max-width: 900px) { .install-stats { grid-template-columns: 1fr; } } +.install-axis { + border: 1px solid var(--detail-border-soft, var(--hairline)); + border-radius: var(--r-md); + background: var(--detail-surface, var(--surface)); + padding: 10px 12px; +} +.install-axis-head { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: 10px; + margin-bottom: 8px; +} +.install-axis-title { + font-size: 12px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--detail-text-muted, var(--muted)); +} +.install-axis-rate { + font-size: 11px; + font-weight: 600; + padding: 2px 8px; + border-radius: var(--r-pill); +} +.install-axis-rate.good { background: var(--success-soft); color: var(--success); } +.install-axis-rate.mid { background: var(--warning-soft); color: var(--warning); } +.install-axis-rate.bad { background: var(--error-soft); color: var(--error); } +.install-stats-grid { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 6px; +} +.stat-cell { + text-align: center; + padding: 8px 4px; + border-radius: var(--r-sm); + background: var(--canvas); + border: 1px solid var(--detail-border-soft, var(--hairline-soft)); +} +.stat-num { + font-size: 18px; + font-weight: 700; + line-height: 1.1; + font-variant-numeric: tabular-nums; + color: var(--detail-text, var(--ink)); +} +.stat-lbl { + font-size: 10px; + color: var(--detail-text-faint, var(--muted)); + text-transform: uppercase; + letter-spacing: 0.04em; + margin-top: 2px; +} +.stat-ok .stat-num { color: var(--success); } +.stat-err .stat-num { color: var(--error); } +.stat-pend .stat-num { color: var(--warning); } +.stat-not .stat-num { color: var(--muted); } +.stat-na .stat-num { color: var(--muted-soft); } + +/* ============================================================= + App-Detail — Flow-Visualisierung (Dependencies + Supersedence) + ============================================================= */ +.flow-subtitle { + font-size: 12px; + color: var(--detail-text-muted, var(--muted)); + margin: -2px 0 8px; +} +.flow-container { + width: 100%; + overflow-x: auto; + padding: 4px 0; +} +.flow-svg { + display: block; + color: var(--detail-text-faint, var(--muted)); + min-width: 640px; +} +.flow-arrow { + fill: none; + stroke: currentColor; + stroke-width: 1.5; + stroke-linecap: round; + stroke-linejoin: round; + opacity: 0.7; +} +.flow-arrow-label { + font-size: 10.5px; + font-family: var(--font-mono); + fill: var(--detail-text-muted, var(--muted)); + pointer-events: none; + font-weight: 600; +} +/* Label-Hintergrund — damit der Text nicht in die Linie reinlaeuft */ +.flow-arrow-label-bg { + fill: var(--detail-surface, var(--canvas)); + stroke: var(--detail-border-soft, var(--hairline-soft)); + stroke-width: 1; +} +.flow-node-wrap { + width: 100%; + height: 100%; + display: block; +} +.flow-node { + width: 100%; + height: 100%; + border: 1.5px solid var(--detail-border, var(--hairline)); + border-radius: var(--r-md); + background: var(--canvas); + padding: 8px 12px; + display: flex; + flex-direction: column; + justify-content: center; + gap: 1px; + overflow: hidden; + box-sizing: border-box; + transition: all var(--tx); +} +.flow-node-name { + font-size: 12.5px; + font-weight: 600; + color: var(--detail-text, var(--ink)); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.flow-node-meta { + font-size: 10.5px; + color: var(--detail-text-faint, var(--muted)); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.flow-node-center { + border-color: var(--brand-accent); + background: var(--accent-soft); +} +.flow-node-center .flow-node-name { color: var(--brand-accent); } +.flow-node-known { + cursor: pointer; +} +.flow-node-known:hover { + border-color: var(--brand-accent); + box-shadow: 0 2px 8px -2px var(--accent-soft); +} +.flow-node-known:focus-visible { + outline: 2px solid var(--brand-accent); + outline-offset: 1px; +} + +/* Klartext-Erklaerungen unter dem Flow-Diagramm — beschreibt was die + Visualisierung in der UI tatsaechlich bedeutet (in welcher Reihenfolge + Intune installiert, was bei Supersedence passiert, etc.). */ +.flow-explanations { + margin-top: 14px; + padding: 12px 16px 14px; + background: var(--detail-surface, var(--surface-soft)); + border: 1px solid var(--detail-border-soft, var(--hairline-soft)); + border-radius: var(--r-md); + border-left: 3px solid var(--brand-accent); +} +.flow-explanations-title { + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.05em; + color: var(--detail-text-muted, var(--muted)); + margin-bottom: 6px; +} +.flow-explanations ul { + margin: 0; + padding: 0; + list-style: none; +} +.flow-explanations li { + padding: 4px 0; + font-size: 13px; + color: var(--detail-text, var(--ink)); + line-height: 1.55; +} +.flow-explanations li + li { + border-top: 1px dashed var(--detail-border-soft, var(--hairline-soft)); + margin-top: 4px; + padding-top: 8px; +} +.flow-explanations strong { + font-weight: 600; + color: var(--detail-text, var(--ink)); +} + +/* Flash-Animation wenn man via Flow-Klick zu einer App springt */ +.app-row-wrap--flash { + animation: rowFlash 1.2s ease-out; +} +@keyframes rowFlash { + 0%, 100% { box-shadow: none; } + 30% { box-shadow: 0 0 0 3px var(--brand-accent); } +} + +/* ============================================================= + Markdown-Content (App-Beschreibung). Wird in renderMarkdown + per marked.js zu HTML. Styling so, dass es sich in das + App-Detail-Panel einfuegt — keine grossen Headings, alles dezent. + ============================================================= */ +.md-content { line-height: 1.55; } +.md-content > *:first-child { margin-top: 0; } +.md-content > *:last-child { margin-bottom: 0; } +.md-content p { margin: 0 0 8px 0; } +.md-content h1, .md-content h2, .md-content h3, +.md-content h4, .md-content h5, .md-content h6 { + margin: 14px 0 6px; + font-weight: 700; + line-height: 1.25; + color: var(--detail-text, var(--ink)); + letter-spacing: -0.005em; +} +.md-content h1 { font-size: 15px; } +.md-content h2 { font-size: 14px; } +.md-content h3 { font-size: 13px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--detail-text-muted, var(--muted)); } +.md-content h4 { font-size: 12.5px; } +.md-content h5, .md-content h6 { font-size: 12px; color: var(--detail-text-muted, var(--muted)); } +.md-content strong { font-weight: 700; } +.md-content em { font-style: italic; } +.md-content del { text-decoration: line-through; color: var(--detail-text-muted, var(--muted)); } +.md-content a { + color: var(--brand-accent); + text-decoration: none; + border-bottom: 1px solid transparent; + transition: border-color var(--tx); +} +.md-content a:hover { border-bottom-color: var(--brand-accent); } +.md-content ul, .md-content ol { + margin: 0 0 8px 0; + padding-left: 22px; +} +.md-content li { padding: 1px 0; } +.md-content li > p { margin: 0; } +.md-content blockquote { + margin: 0 0 8px 0; + padding: 4px 12px; + border-left: 3px solid var(--detail-border, var(--hairline)); + color: var(--detail-text-muted, var(--muted)); + font-style: italic; + background: var(--detail-surface, var(--surface-soft)); + border-radius: 0 var(--r-xs) var(--r-xs) 0; +} +.md-content code { + font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; + font-size: 11.5px; + padding: 1px 5px; + border-radius: var(--r-xs); + background: var(--detail-surface, var(--surface-soft)); + border: 1px solid var(--detail-border-soft, var(--hairline-soft)); + color: var(--detail-text, var(--ink)); + word-break: break-all; +} +.md-content pre { + margin: 0 0 8px 0; + padding: 10px 12px; + border-radius: var(--r-sm); + background: var(--detail-surface, var(--surface-soft)); + border: 1px solid var(--detail-border-soft, var(--hairline-soft)); + overflow-x: auto; + line-height: 1.45; +} +.md-content pre code { + background: transparent; + border: none; + padding: 0; + font-size: 11.5px; + white-space: pre; + word-break: normal; +} +.md-content table { + width: 100%; + border-collapse: collapse; + margin: 0 0 8px 0; + font-size: 12px; +} +.md-content th, .md-content td { + border: 1px solid var(--detail-border-soft, var(--hairline-soft)); + padding: 5px 8px; + text-align: left; + vertical-align: top; +} +.md-content th { + background: var(--detail-surface, var(--surface-soft)); + font-weight: 700; + color: var(--detail-text, var(--ink)); + font-size: 11.5px; +} +.md-content tr:nth-child(even) td { + background: var(--detail-surface, transparent); +} +.md-content hr { + border: none; + border-top: 1px solid var(--detail-border-soft, var(--hairline-soft)); + margin: 12px 0; +} +.md-content img { + max-width: 100%; + height: auto; + border-radius: var(--r-xs); +} + +/* ============================================================= + flatpickr (Date-Picker Popup) — Dark-Mode-Theming + Light-Mode nutzt den Default des Pakets, im Dark-Mode passen wir + die wichtigsten Tokens an unsere Surface-/Ink-Vars an. + ============================================================= */ +html[data-theme="dark"] .flatpickr-calendar { + background: var(--surface-soft); + color: var(--ink); + box-shadow: 0 4px 20px rgba(0,0,0,0.5); + border: 1px solid var(--hairline); +} +html[data-theme="dark"] .flatpickr-calendar.arrowTop:before, +html[data-theme="dark"] .flatpickr-calendar.arrowBottom:before { + border-bottom-color: var(--hairline); + border-top-color: var(--hairline); +} +html[data-theme="dark"] .flatpickr-calendar.arrowTop:after, +html[data-theme="dark"] .flatpickr-calendar.arrowBottom:after { + border-bottom-color: var(--surface-soft); + border-top-color: var(--surface-soft); +} +html[data-theme="dark"] .flatpickr-months, +html[data-theme="dark"] .flatpickr-month { + color: var(--ink); + fill: var(--ink); + background: transparent; +} +html[data-theme="dark"] .flatpickr-current-month input.cur-year, +html[data-theme="dark"] .flatpickr-current-month .cur-month { + color: var(--ink); +} +html[data-theme="dark"] .flatpickr-monthDropdown-months { + background: var(--surface-soft); + color: var(--ink); +} +html[data-theme="dark"] .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month { + background: var(--surface-soft); +} +html[data-theme="dark"] .flatpickr-weekdays, +html[data-theme="dark"] span.flatpickr-weekday { + color: var(--muted); + background: transparent; +} +html[data-theme="dark"] .flatpickr-day { + color: var(--body); +} +html[data-theme="dark"] .flatpickr-day:hover, +html[data-theme="dark"] .flatpickr-day:focus { + background: var(--surface-strong); + border-color: var(--surface-strong); + color: var(--ink); +} +html[data-theme="dark"] .flatpickr-day.today { + border-color: var(--brand-accent); + color: var(--brand-accent); +} +html[data-theme="dark"] .flatpickr-day.today:hover { + background: var(--brand-accent); + color: var(--on-primary); +} +html[data-theme="dark"] .flatpickr-day.selected, +html[data-theme="dark"] .flatpickr-day.startRange, +html[data-theme="dark"] .flatpickr-day.endRange { + background: var(--brand-accent); + border-color: var(--brand-accent); + color: var(--on-primary); +} +html[data-theme="dark"] .flatpickr-day.flatpickr-disabled, +html[data-theme="dark"] .flatpickr-day.prevMonthDay, +html[data-theme="dark"] .flatpickr-day.nextMonthDay { + color: var(--muted-soft); +} +html[data-theme="dark"] .flatpickr-prev-month, +html[data-theme="dark"] .flatpickr-next-month { + color: var(--ink); + fill: var(--ink); +} +html[data-theme="dark"] .flatpickr-prev-month:hover svg, +html[data-theme="dark"] .flatpickr-next-month:hover svg { + fill: var(--brand-accent); +} +html[data-theme="dark"] .numInputWrapper:hover, +html[data-theme="dark"] .numInputWrapper span.arrowUp, +html[data-theme="dark"] .numInputWrapper span.arrowDown { + background: transparent; + border-color: var(--hairline); +} + +/* Kompakte Optik fuer beide Themes — passt besser zum Tool */ +.flatpickr-calendar { + font-family: inherit; + font-size: 12.5px; +} +.flatpickr-day { + font-size: 12px; +} diff --git a/Intune/Intune-App-Manager-Web/www/vendor/flatpickr.min.css b/Intune/Intune-App-Manager-Web/www/vendor/flatpickr.min.css new file mode 100644 index 0000000..a10acc6 --- /dev/null +++ b/Intune/Intune-App-Manager-Web/www/vendor/flatpickr.min.css @@ -0,0 +1,13 @@ +.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/* + /*rtl:begin:ignore*/left:0/* + /*rtl:end:ignore*/}/* + /*rtl:begin:ignore*/ +/* + /*rtl:end:ignore*/ +.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/* + /*rtl:begin:ignore*/right:0/* + /*rtl:end:ignore*/}/* + /*rtl:begin:ignore*/ +/* + /*rtl:end:ignore*/ +.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}} \ No newline at end of file diff --git a/Intune/Intune-App-Manager-Web/www/vendor/flatpickr.min.js b/Intune/Intune-App-Manager-Web/www/vendor/flatpickr.min.js new file mode 100644 index 0000000..b0f59ec --- /dev/null +++ b/Intune/Intune-App-Manager-Web/www/vendor/flatpickr.min.js @@ -0,0 +1,2 @@ +/* flatpickr v4.6.13,, @license MIT */ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).flatpickr=n()}(this,(function(){"use strict";var e=function(){return(e=Object.assign||function(e){for(var n,t=1,a=arguments.length;t",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},i={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var n=e%100;if(n>3&&n<21)return"th";switch(n%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},o=function(e,n){return void 0===n&&(n=2),("000"+e).slice(-1*n)},r=function(e){return!0===e?1:0};function l(e,n){var t;return function(){var a=this,i=arguments;clearTimeout(t),t=setTimeout((function(){return e.apply(a,i)}),n)}}var c=function(e){return e instanceof Array?e:[e]};function s(e,n,t){if(!0===t)return e.classList.add(n);e.classList.remove(n)}function d(e,n,t){var a=window.document.createElement(e);return n=n||"",t=t||"",a.className=n,void 0!==t&&(a.textContent=t),a}function u(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function f(e,n){return n(e)?e:e.parentNode?f(e.parentNode,n):void 0}function m(e,n){var t=d("div","numInputWrapper"),a=d("input","numInput "+e),i=d("span","arrowUp"),o=d("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?a.type="number":(a.type="text",a.pattern="\\d*"),void 0!==n)for(var r in n)a.setAttribute(r,n[r]);return t.appendChild(a),t.appendChild(i),t.appendChild(o),t}function g(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(n){return e.target}}var p=function(){},h=function(e,n,t){return t.months[n?"shorthand":"longhand"][e]},v={D:p,F:function(e,n,t){e.setMonth(t.months.longhand.indexOf(n))},G:function(e,n){e.setHours((e.getHours()>=12?12:0)+parseFloat(n))},H:function(e,n){e.setHours(parseFloat(n))},J:function(e,n){e.setDate(parseFloat(n))},K:function(e,n,t){e.setHours(e.getHours()%12+12*r(new RegExp(t.amPM[1],"i").test(n)))},M:function(e,n,t){e.setMonth(t.months.shorthand.indexOf(n))},S:function(e,n){e.setSeconds(parseFloat(n))},U:function(e,n){return new Date(1e3*parseFloat(n))},W:function(e,n,t){var a=parseInt(n),i=new Date(e.getFullYear(),0,2+7*(a-1),0,0,0,0);return i.setDate(i.getDate()-i.getDay()+t.firstDayOfWeek),i},Y:function(e,n){e.setFullYear(parseFloat(n))},Z:function(e,n){return new Date(n)},d:function(e,n){e.setDate(parseFloat(n))},h:function(e,n){e.setHours((e.getHours()>=12?12:0)+parseFloat(n))},i:function(e,n){e.setMinutes(parseFloat(n))},j:function(e,n){e.setDate(parseFloat(n))},l:p,m:function(e,n){e.setMonth(parseFloat(n)-1)},n:function(e,n){e.setMonth(parseFloat(n)-1)},s:function(e,n){e.setSeconds(parseFloat(n))},u:function(e,n){return new Date(parseFloat(n))},w:p,y:function(e,n){e.setFullYear(2e3+parseFloat(n))}},D={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},w={Z:function(e){return e.toISOString()},D:function(e,n,t){return n.weekdays.shorthand[w.w(e,n,t)]},F:function(e,n,t){return h(w.n(e,n,t)-1,!1,n)},G:function(e,n,t){return o(w.h(e,n,t))},H:function(e){return o(e.getHours())},J:function(e,n){return void 0!==n.ordinal?e.getDate()+n.ordinal(e.getDate()):e.getDate()},K:function(e,n){return n.amPM[r(e.getHours()>11)]},M:function(e,n){return h(e.getMonth(),!0,n)},S:function(e){return o(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,n,t){return t.getWeek(e)},Y:function(e){return o(e.getFullYear(),4)},d:function(e){return o(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return o(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,n){return n.weekdays.longhand[e.getDay()]},m:function(e){return o(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var n=e.config,t=void 0===n?a:n,o=e.l10n,r=void 0===o?i:o,l=e.isMobile,c=void 0!==l&&l;return function(e,n,a){var i=a||r;return void 0===t.formatDate||c?n.split("").map((function(n,a,o){return w[n]&&"\\"!==o[a-1]?w[n](e,i,t):"\\"!==n?n:""})).join(""):t.formatDate(e,n,i)}},C=function(e){var n=e.config,t=void 0===n?a:n,o=e.l10n,r=void 0===o?i:o;return function(e,n,i,o){if(0===e||e){var l,c=o||r,s=e;if(e instanceof Date)l=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)l=new Date(e);else if("string"==typeof e){var d=n||(t||a).dateFormat,u=String(e).trim();if("today"===u)l=new Date,i=!0;else if(t&&t.parseDate)l=t.parseDate(e,d);else if(/Z$/.test(u)||/GMT$/.test(u))l=new Date(e);else{for(var f=void 0,m=[],g=0,p=0,h="";g=0?new Date:new Date(w.config.minDate.getTime()),t=E(w.config);n.setHours(t.hours,t.minutes,t.seconds,n.getMilliseconds()),w.selectedDates=[n],w.latestSelectedDateObj=n}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var n="keydown"===e.type,t=g(e),a=t;void 0!==w.amPM&&t===w.amPM&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]);var i=parseFloat(a.getAttribute("min")),l=parseFloat(a.getAttribute("max")),c=parseFloat(a.getAttribute("step")),s=parseInt(a.value,10),d=e.delta||(n?38===e.which?1:-1:0),u=s+c*d;if(void 0!==a.value&&2===a.value.length){var f=a===w.hourElement,m=a===w.minuteElement;ul&&(u=a===w.hourElement?u-l-r(!w.amPM):i,m&&L(void 0,1,w.hourElement)),w.amPM&&f&&(1===c?u+s===23:Math.abs(u-s)>c)&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]),a.value=o(u)}}(e);var a=w._input.value;O(),ye(),w._input.value!==a&&w._debouncedChange()}function O(){if(void 0!==w.hourElement&&void 0!==w.minuteElement){var e,n,t=(parseInt(w.hourElement.value.slice(-2),10)||0)%24,a=(parseInt(w.minuteElement.value,10)||0)%60,i=void 0!==w.secondElement?(parseInt(w.secondElement.value,10)||0)%60:0;void 0!==w.amPM&&(e=t,n=w.amPM.textContent,t=e%12+12*r(n===w.l10n.amPM[1]));var o=void 0!==w.config.minTime||w.config.minDate&&w.minDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.minDate,!0),l=void 0!==w.config.maxTime||w.config.maxDate&&w.maxDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.maxDate,!0);if(void 0!==w.config.maxTime&&void 0!==w.config.minTime&&w.config.minTime>w.config.maxTime){var c=y(w.config.minTime.getHours(),w.config.minTime.getMinutes(),w.config.minTime.getSeconds()),s=y(w.config.maxTime.getHours(),w.config.maxTime.getMinutes(),w.config.maxTime.getSeconds()),d=y(t,a,i);if(d>s&&d=12)]),void 0!==w.secondElement&&(w.secondElement.value=o(t)))}function N(e){var n=g(e),t=parseInt(n.value)+(e.delta||0);(t/1e3>1||"Enter"===e.key&&!/[^\d]/.test(t.toString()))&&ee(t)}function P(e,n,t,a){return n instanceof Array?n.forEach((function(n){return P(e,n,t,a)})):e instanceof Array?e.forEach((function(e){return P(e,n,t,a)})):(e.addEventListener(n,t,a),void w._handlers.push({remove:function(){return e.removeEventListener(n,t,a)}}))}function Y(){De("onChange")}function j(e,n){var t=void 0!==e?w.parseDate(e):w.latestSelectedDateObj||(w.config.minDate&&w.config.minDate>w.now?w.config.minDate:w.config.maxDate&&w.config.maxDate=0&&M(e,w.selectedDates[1])<=0)}(n)&&!be(n)&&o.classList.add("inRange"),w.weekNumbers&&1===w.config.showMonths&&"prevMonthDay"!==e&&a%7==6&&w.weekNumbers.insertAdjacentHTML("beforeend",""+w.config.getWeek(n)+""),De("onDayCreate",o),o}function W(e){e.focus(),"range"===w.config.mode&&oe(e)}function B(e){for(var n=e>0?0:w.config.showMonths-1,t=e>0?w.config.showMonths:-1,a=n;a!=t;a+=e)for(var i=w.daysContainer.children[a],o=e>0?0:i.children.length-1,r=e>0?i.children.length:-1,l=o;l!=r;l+=e){var c=i.children[l];if(-1===c.className.indexOf("hidden")&&ne(c.dateObj))return c}}function J(e,n){var t=k(),a=te(t||document.body),i=void 0!==e?e:a?t:void 0!==w.selectedDateElem&&te(w.selectedDateElem)?w.selectedDateElem:void 0!==w.todayDateElem&&te(w.todayDateElem)?w.todayDateElem:B(n>0?1:-1);void 0===i?w._input.focus():a?function(e,n){for(var t=-1===e.className.indexOf("Month")?e.dateObj.getMonth():w.currentMonth,a=n>0?w.config.showMonths:-1,i=n>0?1:-1,o=t-w.currentMonth;o!=a;o+=i)for(var r=w.daysContainer.children[o],l=t-w.currentMonth===o?e.$i+n:n<0?r.children.length-1:0,c=r.children.length,s=l;s>=0&&s0?c:-1);s+=i){var d=r.children[s];if(-1===d.className.indexOf("hidden")&&ne(d.dateObj)&&Math.abs(e.$i-s)>=Math.abs(n))return W(d)}w.changeMonth(i),J(B(i),0)}(i,n):W(i)}function K(e,n){for(var t=(new Date(e,n,1).getDay()-w.l10n.firstDayOfWeek+7)%7,a=w.utils.getDaysInMonth((n-1+12)%12,e),i=w.utils.getDaysInMonth(n,e),o=window.document.createDocumentFragment(),r=w.config.showMonths>1,l=r?"prevMonthDay hidden":"prevMonthDay",c=r?"nextMonthDay hidden":"nextMonthDay",s=a+1-t,u=0;s<=a;s++,u++)o.appendChild(R("flatpickr-day "+l,new Date(e,n-1,s),0,u));for(s=1;s<=i;s++,u++)o.appendChild(R("flatpickr-day",new Date(e,n,s),0,u));for(var f=i+1;f<=42-t&&(1===w.config.showMonths||u%7!=0);f++,u++)o.appendChild(R("flatpickr-day "+c,new Date(e,n+1,f%i),0,u));var m=d("div","dayContainer");return m.appendChild(o),m}function U(){if(void 0!==w.daysContainer){u(w.daysContainer),w.weekNumbers&&u(w.weekNumbers);for(var e=document.createDocumentFragment(),n=0;n1||"dropdown"!==w.config.monthSelectorType)){var e=function(e){return!(void 0!==w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&ew.config.maxDate.getMonth())};w.monthsDropdownContainer.tabIndex=-1,w.monthsDropdownContainer.innerHTML="";for(var n=0;n<12;n++)if(e(n)){var t=d("option","flatpickr-monthDropdown-month");t.value=new Date(w.currentYear,n).getMonth().toString(),t.textContent=h(n,w.config.shorthandCurrentMonth,w.l10n),t.tabIndex=-1,w.currentMonth===n&&(t.selected=!0),w.monthsDropdownContainer.appendChild(t)}}}function $(){var e,n=d("div","flatpickr-month"),t=window.document.createDocumentFragment();w.config.showMonths>1||"static"===w.config.monthSelectorType?e=d("span","cur-month"):(w.monthsDropdownContainer=d("select","flatpickr-monthDropdown-months"),w.monthsDropdownContainer.setAttribute("aria-label",w.l10n.monthAriaLabel),P(w.monthsDropdownContainer,"change",(function(e){var n=g(e),t=parseInt(n.value,10);w.changeMonth(t-w.currentMonth),De("onMonthChange")})),q(),e=w.monthsDropdownContainer);var a=m("cur-year",{tabindex:"-1"}),i=a.getElementsByTagName("input")[0];i.setAttribute("aria-label",w.l10n.yearAriaLabel),w.config.minDate&&i.setAttribute("min",w.config.minDate.getFullYear().toString()),w.config.maxDate&&(i.setAttribute("max",w.config.maxDate.getFullYear().toString()),i.disabled=!!w.config.minDate&&w.config.minDate.getFullYear()===w.config.maxDate.getFullYear());var o=d("div","flatpickr-current-month");return o.appendChild(e),o.appendChild(a),t.appendChild(o),n.appendChild(t),{container:n,yearElement:i,monthElement:e}}function V(){u(w.monthNav),w.monthNav.appendChild(w.prevMonthNav),w.config.showMonths&&(w.yearElements=[],w.monthElements=[]);for(var e=w.config.showMonths;e--;){var n=$();w.yearElements.push(n.yearElement),w.monthElements.push(n.monthElement),w.monthNav.appendChild(n.container)}w.monthNav.appendChild(w.nextMonthNav)}function z(){w.weekdayContainer?u(w.weekdayContainer):w.weekdayContainer=d("div","flatpickr-weekdays");for(var e=w.config.showMonths;e--;){var n=d("div","flatpickr-weekdaycontainer");w.weekdayContainer.appendChild(n)}return G(),w.weekdayContainer}function G(){if(w.weekdayContainer){var e=w.l10n.firstDayOfWeek,t=n(w.l10n.weekdays.shorthand);e>0&&e\n "+t.join("")+"\n \n "}}function Z(e,n){void 0===n&&(n=!0);var t=n?e:e-w.currentMonth;t<0&&!0===w._hidePrevMonthArrow||t>0&&!0===w._hideNextMonthArrow||(w.currentMonth+=t,(w.currentMonth<0||w.currentMonth>11)&&(w.currentYear+=w.currentMonth>11?1:-1,w.currentMonth=(w.currentMonth+12)%12,De("onYearChange"),q()),U(),De("onMonthChange"),Ce())}function Q(e){return w.calendarContainer.contains(e)}function X(e){if(w.isOpen&&!w.config.inline){var n=g(e),t=Q(n),a=!(n===w.input||n===w.altInput||w.element.contains(n)||e.path&&e.path.indexOf&&(~e.path.indexOf(w.input)||~e.path.indexOf(w.altInput)))&&!t&&!Q(e.relatedTarget),i=!w.config.ignoredFocusElements.some((function(e){return e.contains(n)}));a&&i&&(w.config.allowInput&&w.setDate(w._input.value,!1,w.config.altInput?w.config.altFormat:w.config.dateFormat),void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement&&""!==w.input.value&&void 0!==w.input.value&&_(),w.close(),w.config&&"range"===w.config.mode&&1===w.selectedDates.length&&w.clear(!1))}}function ee(e){if(!(!e||w.config.minDate&&ew.config.maxDate.getFullYear())){var n=e,t=w.currentYear!==n;w.currentYear=n||w.currentYear,w.config.maxDate&&w.currentYear===w.config.maxDate.getFullYear()?w.currentMonth=Math.min(w.config.maxDate.getMonth(),w.currentMonth):w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&(w.currentMonth=Math.max(w.config.minDate.getMonth(),w.currentMonth)),t&&(w.redraw(),De("onYearChange"),q())}}function ne(e,n){var t;void 0===n&&(n=!0);var a=w.parseDate(e,void 0,n);if(w.config.minDate&&a&&M(a,w.config.minDate,void 0!==n?n:!w.minDateHasTime)<0||w.config.maxDate&&a&&M(a,w.config.maxDate,void 0!==n?n:!w.maxDateHasTime)>0)return!1;if(!w.config.enable&&0===w.config.disable.length)return!0;if(void 0===a)return!1;for(var i=!!w.config.enable,o=null!==(t=w.config.enable)&&void 0!==t?t:w.config.disable,r=0,l=void 0;r=l.from.getTime()&&a.getTime()<=l.to.getTime())return i}return!i}function te(e){return void 0!==w.daysContainer&&(-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&w.daysContainer.contains(e))}function ae(e){var n=e.target===w._input,t=w._input.value.trimEnd()!==Me();!n||!t||e.relatedTarget&&Q(e.relatedTarget)||w.setDate(w._input.value,!0,e.target===w.altInput?w.config.altFormat:w.config.dateFormat)}function ie(e){var n=g(e),t=w.config.wrap?p.contains(n):n===w._input,a=w.config.allowInput,i=w.isOpen&&(!a||!t),o=w.config.inline&&t&&!a;if(13===e.keyCode&&t){if(a)return w.setDate(w._input.value,!0,n===w.altInput?w.config.altFormat:w.config.dateFormat),w.close(),n.blur();w.open()}else if(Q(n)||i||o){var r=!!w.timeContainer&&w.timeContainer.contains(n);switch(e.keyCode){case 13:r?(e.preventDefault(),_(),fe()):me(e);break;case 27:e.preventDefault(),fe();break;case 8:case 46:t&&!w.config.allowInput&&(e.preventDefault(),w.clear());break;case 37:case 39:if(r||t)w.hourElement&&w.hourElement.focus();else{e.preventDefault();var l=k();if(void 0!==w.daysContainer&&(!1===a||l&&te(l))){var c=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),Z(c),J(B(1),0)):J(void 0,c)}}break;case 38:case 40:e.preventDefault();var s=40===e.keyCode?1:-1;w.daysContainer&&void 0!==n.$i||n===w.input||n===w.altInput?e.ctrlKey?(e.stopPropagation(),ee(w.currentYear-s),J(B(1),0)):r||J(void 0,7*s):n===w.currentYearElement?ee(w.currentYear-s):w.config.enableTime&&(!r&&w.hourElement&&w.hourElement.focus(),_(e),w._debouncedChange());break;case 9:if(r){var d=[w.hourElement,w.minuteElement,w.secondElement,w.amPM].concat(w.pluginElements).filter((function(e){return e})),u=d.indexOf(n);if(-1!==u){var f=d[u+(e.shiftKey?-1:1)];e.preventDefault(),(f||w._input).focus()}}else!w.config.noCalendar&&w.daysContainer&&w.daysContainer.contains(n)&&e.shiftKey&&(e.preventDefault(),w._input.focus())}}if(void 0!==w.amPM&&n===w.amPM)switch(e.key){case w.l10n.amPM[0].charAt(0):case w.l10n.amPM[0].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[0],O(),ye();break;case w.l10n.amPM[1].charAt(0):case w.l10n.amPM[1].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[1],O(),ye()}(t||Q(n))&&De("onKeyDown",e)}function oe(e,n){if(void 0===n&&(n="flatpickr-day"),1===w.selectedDates.length&&(!e||e.classList.contains(n)&&!e.classList.contains("flatpickr-disabled"))){for(var t=e?e.dateObj.getTime():w.days.firstElementChild.dateObj.getTime(),a=w.parseDate(w.selectedDates[0],void 0,!0).getTime(),i=Math.min(t,w.selectedDates[0].getTime()),o=Math.max(t,w.selectedDates[0].getTime()),r=!1,l=0,c=0,s=i;si&&sl)?l=s:s>a&&(!c||s ."+n)).forEach((function(n){var i,o,s,d=n.dateObj.getTime(),u=l>0&&d0&&d>c;if(u)return n.classList.add("notAllowed"),void["inRange","startRange","endRange"].forEach((function(e){n.classList.remove(e)}));r&&!u||(["startRange","inRange","endRange","notAllowed"].forEach((function(e){n.classList.remove(e)})),void 0!==e&&(e.classList.add(t<=w.selectedDates[0].getTime()?"startRange":"endRange"),at&&d===a&&n.classList.add("endRange"),d>=l&&(0===c||d<=c)&&(o=a,s=t,(i=d)>Math.min(o,s)&&i0||t.getMinutes()>0||t.getSeconds()>0),w.selectedDates&&(w.selectedDates=w.selectedDates.filter((function(e){return ne(e)})),w.selectedDates.length||"min"!==e||F(t),ye()),w.daysContainer&&(ue(),void 0!==t?w.currentYearElement[e]=t.getFullYear().toString():w.currentYearElement.removeAttribute(e),w.currentYearElement.disabled=!!a&&void 0!==t&&a.getFullYear()===t.getFullYear())}}function ce(){return w.config.wrap?p.querySelector("[data-input]"):p}function se(){"object"!=typeof w.config.locale&&void 0===I.l10ns[w.config.locale]&&w.config.errorHandler(new Error("flatpickr: invalid locale "+w.config.locale)),w.l10n=e(e({},I.l10ns.default),"object"==typeof w.config.locale?w.config.locale:"default"!==w.config.locale?I.l10ns[w.config.locale]:void 0),D.D="("+w.l10n.weekdays.shorthand.join("|")+")",D.l="("+w.l10n.weekdays.longhand.join("|")+")",D.M="("+w.l10n.months.shorthand.join("|")+")",D.F="("+w.l10n.months.longhand.join("|")+")",D.K="("+w.l10n.amPM[0]+"|"+w.l10n.amPM[1]+"|"+w.l10n.amPM[0].toLowerCase()+"|"+w.l10n.amPM[1].toLowerCase()+")",void 0===e(e({},v),JSON.parse(JSON.stringify(p.dataset||{}))).time_24hr&&void 0===I.defaultConfig.time_24hr&&(w.config.time_24hr=w.l10n.time_24hr),w.formatDate=b(w),w.parseDate=C({config:w.config,l10n:w.l10n})}function de(e){if("function"!=typeof w.config.position){if(void 0!==w.calendarContainer){De("onPreCalendarPosition");var n=e||w._positionElement,t=Array.prototype.reduce.call(w.calendarContainer.children,(function(e,n){return e+n.offsetHeight}),0),a=w.calendarContainer.offsetWidth,i=w.config.position.split(" "),o=i[0],r=i.length>1?i[1]:null,l=n.getBoundingClientRect(),c=window.innerHeight-l.bottom,d="above"===o||"below"!==o&&ct,u=window.pageYOffset+l.top+(d?-t-2:n.offsetHeight+2);if(s(w.calendarContainer,"arrowTop",!d),s(w.calendarContainer,"arrowBottom",d),!w.config.inline){var f=window.pageXOffset+l.left,m=!1,g=!1;"center"===r?(f-=(a-l.width)/2,m=!0):"right"===r&&(f-=a-l.width,g=!0),s(w.calendarContainer,"arrowLeft",!m&&!g),s(w.calendarContainer,"arrowCenter",m),s(w.calendarContainer,"arrowRight",g);var p=window.document.body.offsetWidth-(window.pageXOffset+l.right),h=f+a>window.document.body.offsetWidth,v=p+a>window.document.body.offsetWidth;if(s(w.calendarContainer,"rightMost",h),!w.config.static)if(w.calendarContainer.style.top=u+"px",h)if(v){var D=function(){for(var e=null,n=0;nw.currentMonth+w.config.showMonths-1)&&"range"!==w.config.mode;if(w.selectedDateElem=t,"single"===w.config.mode)w.selectedDates=[a];else if("multiple"===w.config.mode){var o=be(a);o?w.selectedDates.splice(parseInt(o),1):w.selectedDates.push(a)}else"range"===w.config.mode&&(2===w.selectedDates.length&&w.clear(!1,!1),w.latestSelectedDateObj=a,w.selectedDates.push(a),0!==M(a,w.selectedDates[0],!0)&&w.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()})));if(O(),i){var r=w.currentYear!==a.getFullYear();w.currentYear=a.getFullYear(),w.currentMonth=a.getMonth(),r&&(De("onYearChange"),q()),De("onMonthChange")}if(Ce(),U(),ye(),i||"range"===w.config.mode||1!==w.config.showMonths?void 0!==w.selectedDateElem&&void 0===w.hourElement&&w.selectedDateElem&&w.selectedDateElem.focus():W(t),void 0!==w.hourElement&&void 0!==w.hourElement&&w.hourElement.focus(),w.config.closeOnSelect){var l="single"===w.config.mode&&!w.config.enableTime,c="range"===w.config.mode&&2===w.selectedDates.length&&!w.config.enableTime;(l||c)&&fe()}Y()}}w.parseDate=C({config:w.config,l10n:w.l10n}),w._handlers=[],w.pluginElements=[],w.loadedPlugins=[],w._bind=P,w._setHoursFromDate=F,w._positionCalendar=de,w.changeMonth=Z,w.changeYear=ee,w.clear=function(e,n){void 0===e&&(e=!0);void 0===n&&(n=!0);w.input.value="",void 0!==w.altInput&&(w.altInput.value="");void 0!==w.mobileInput&&(w.mobileInput.value="");w.selectedDates=[],w.latestSelectedDateObj=void 0,!0===n&&(w.currentYear=w._initialDate.getFullYear(),w.currentMonth=w._initialDate.getMonth());if(!0===w.config.enableTime){var t=E(w.config),a=t.hours,i=t.minutes,o=t.seconds;A(a,i,o)}w.redraw(),e&&De("onChange")},w.close=function(){w.isOpen=!1,w.isMobile||(void 0!==w.calendarContainer&&w.calendarContainer.classList.remove("open"),void 0!==w._input&&w._input.classList.remove("active"));De("onClose")},w.onMouseOver=oe,w._createElement=d,w.createDay=R,w.destroy=function(){void 0!==w.config&&De("onDestroy");for(var e=w._handlers.length;e--;)w._handlers[e].remove();if(w._handlers=[],w.mobileInput)w.mobileInput.parentNode&&w.mobileInput.parentNode.removeChild(w.mobileInput),w.mobileInput=void 0;else if(w.calendarContainer&&w.calendarContainer.parentNode)if(w.config.static&&w.calendarContainer.parentNode){var n=w.calendarContainer.parentNode;if(n.lastChild&&n.removeChild(n.lastChild),n.parentNode){for(;n.firstChild;)n.parentNode.insertBefore(n.firstChild,n);n.parentNode.removeChild(n)}}else w.calendarContainer.parentNode.removeChild(w.calendarContainer);w.altInput&&(w.input.type="text",w.altInput.parentNode&&w.altInput.parentNode.removeChild(w.altInput),delete w.altInput);w.input&&(w.input.type=w.input._type,w.input.classList.remove("flatpickr-input"),w.input.removeAttribute("readonly"));["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach((function(e){try{delete w[e]}catch(e){}}))},w.isEnabled=ne,w.jumpToDate=j,w.updateValue=ye,w.open=function(e,n){void 0===n&&(n=w._positionElement);if(!0===w.isMobile){if(e){e.preventDefault();var t=g(e);t&&t.blur()}return void 0!==w.mobileInput&&(w.mobileInput.focus(),w.mobileInput.click()),void De("onOpen")}if(w._input.disabled||w.config.inline)return;var a=w.isOpen;w.isOpen=!0,a||(w.calendarContainer.classList.add("open"),w._input.classList.add("active"),De("onOpen"),de(n));!0===w.config.enableTime&&!0===w.config.noCalendar&&(!1!==w.config.allowInput||void 0!==e&&w.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return w.hourElement.select()}),50))},w.redraw=ue,w.set=function(e,n){if(null!==e&&"object"==typeof e)for(var a in Object.assign(w.config,e),e)void 0!==ge[a]&&ge[a].forEach((function(e){return e()}));else w.config[e]=n,void 0!==ge[e]?ge[e].forEach((function(e){return e()})):t.indexOf(e)>-1&&(w.config[e]=c(n));w.redraw(),ye(!0)},w.setDate=function(e,n,t){void 0===n&&(n=!1);void 0===t&&(t=w.config.dateFormat);if(0!==e&&!e||e instanceof Array&&0===e.length)return w.clear(n);pe(e,t),w.latestSelectedDateObj=w.selectedDates[w.selectedDates.length-1],w.redraw(),j(void 0,n),F(),0===w.selectedDates.length&&w.clear(!1);ye(n),n&&De("onChange")},w.toggle=function(e){if(!0===w.isOpen)return w.close();w.open(e)};var ge={locale:[se,G],showMonths:[V,S,z],minDate:[j],maxDate:[j],positionElement:[ve],clickOpens:[function(){!0===w.config.clickOpens?(P(w._input,"focus",w.open),P(w._input,"click",w.open)):(w._input.removeEventListener("focus",w.open),w._input.removeEventListener("click",w.open))}]};function pe(e,n){var t=[];if(e instanceof Array)t=e.map((function(e){return w.parseDate(e,n)}));else if(e instanceof Date||"number"==typeof e)t=[w.parseDate(e,n)];else if("string"==typeof e)switch(w.config.mode){case"single":case"time":t=[w.parseDate(e,n)];break;case"multiple":t=e.split(w.config.conjunction).map((function(e){return w.parseDate(e,n)}));break;case"range":t=e.split(w.l10n.rangeSeparator).map((function(e){return w.parseDate(e,n)}))}else w.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));w.selectedDates=w.config.allowInvalidPreload?t:t.filter((function(e){return e instanceof Date&&ne(e,!1)})),"range"===w.config.mode&&w.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()}))}function he(e){return e.slice().map((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?w.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:w.parseDate(e.from,void 0),to:w.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function ve(){w._positionElement=w.config.positionElement||w._input}function De(e,n){if(void 0!==w.config){var t=w.config[e];if(void 0!==t&&t.length>0)for(var a=0;t[a]&&a1||"static"===w.config.monthSelectorType?w.monthElements[n].textContent=h(t.getMonth(),w.config.shorthandCurrentMonth,w.l10n)+" ":w.monthsDropdownContainer.value=t.getMonth().toString(),e.value=t.getFullYear().toString()})),w._hidePrevMonthArrow=void 0!==w.config.minDate&&(w.currentYear===w.config.minDate.getFullYear()?w.currentMonth<=w.config.minDate.getMonth():w.currentYearw.config.maxDate.getMonth():w.currentYear>w.config.maxDate.getFullYear()))}function Me(e){var n=e||(w.config.altInput?w.config.altFormat:w.config.dateFormat);return w.selectedDates.map((function(e){return w.formatDate(e,n)})).filter((function(e,n,t){return"range"!==w.config.mode||w.config.enableTime||t.indexOf(e)===n})).join("range"!==w.config.mode?w.config.conjunction:w.l10n.rangeSeparator)}function ye(e){void 0===e&&(e=!0),void 0!==w.mobileInput&&w.mobileFormatStr&&(w.mobileInput.value=void 0!==w.latestSelectedDateObj?w.formatDate(w.latestSelectedDateObj,w.mobileFormatStr):""),w.input.value=Me(w.config.dateFormat),void 0!==w.altInput&&(w.altInput.value=Me(w.config.altFormat)),!1!==e&&De("onValueUpdate")}function xe(e){var n=g(e),t=w.prevMonthNav.contains(n),a=w.nextMonthNav.contains(n);t||a?Z(t?-1:1):w.yearElements.indexOf(n)>=0?n.select():n.classList.contains("arrowUp")?w.changeYear(w.currentYear+1):n.classList.contains("arrowDown")&&w.changeYear(w.currentYear-1)}return function(){w.element=w.input=p,w.isOpen=!1,function(){var n=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],i=e(e({},JSON.parse(JSON.stringify(p.dataset||{}))),v),o={};w.config.parseDate=i.parseDate,w.config.formatDate=i.formatDate,Object.defineProperty(w.config,"enable",{get:function(){return w.config._enable},set:function(e){w.config._enable=he(e)}}),Object.defineProperty(w.config,"disable",{get:function(){return w.config._disable},set:function(e){w.config._disable=he(e)}});var r="time"===i.mode;if(!i.dateFormat&&(i.enableTime||r)){var l=I.defaultConfig.dateFormat||a.dateFormat;o.dateFormat=i.noCalendar||r?"H:i"+(i.enableSeconds?":S":""):l+" H:i"+(i.enableSeconds?":S":"")}if(i.altInput&&(i.enableTime||r)&&!i.altFormat){var s=I.defaultConfig.altFormat||a.altFormat;o.altFormat=i.noCalendar||r?"h:i"+(i.enableSeconds?":S K":" K"):s+" h:i"+(i.enableSeconds?":S":"")+" K"}Object.defineProperty(w.config,"minDate",{get:function(){return w.config._minDate},set:le("min")}),Object.defineProperty(w.config,"maxDate",{get:function(){return w.config._maxDate},set:le("max")});var d=function(e){return function(n){w.config["min"===e?"_minTime":"_maxTime"]=w.parseDate(n,"H:i:S")}};Object.defineProperty(w.config,"minTime",{get:function(){return w.config._minTime},set:d("min")}),Object.defineProperty(w.config,"maxTime",{get:function(){return w.config._maxTime},set:d("max")}),"time"===i.mode&&(w.config.noCalendar=!0,w.config.enableTime=!0);Object.assign(w.config,o,i);for(var u=0;u-1?w.config[m]=c(f[m]).map(T).concat(w.config[m]):void 0===i[m]&&(w.config[m]=f[m])}i.altInputClass||(w.config.altInputClass=ce().className+" "+w.config.altInputClass);De("onParseConfig")}(),se(),function(){if(w.input=ce(),!w.input)return void w.config.errorHandler(new Error("Invalid input element specified"));w.input._type=w.input.type,w.input.type="text",w.input.classList.add("flatpickr-input"),w._input=w.input,w.config.altInput&&(w.altInput=d(w.input.nodeName,w.config.altInputClass),w._input=w.altInput,w.altInput.placeholder=w.input.placeholder,w.altInput.disabled=w.input.disabled,w.altInput.required=w.input.required,w.altInput.tabIndex=w.input.tabIndex,w.altInput.type="text",w.input.setAttribute("type","hidden"),!w.config.static&&w.input.parentNode&&w.input.parentNode.insertBefore(w.altInput,w.input.nextSibling));w.config.allowInput||w._input.setAttribute("readonly","readonly");ve()}(),function(){w.selectedDates=[],w.now=w.parseDate(w.config.now)||new Date;var e=w.config.defaultDate||("INPUT"!==w.input.nodeName&&"TEXTAREA"!==w.input.nodeName||!w.input.placeholder||w.input.value!==w.input.placeholder?w.input.value:null);e&&pe(e,w.config.dateFormat);w._initialDate=w.selectedDates.length>0?w.selectedDates[0]:w.config.minDate&&w.config.minDate.getTime()>w.now.getTime()?w.config.minDate:w.config.maxDate&&w.config.maxDate.getTime()0&&(w.latestSelectedDateObj=w.selectedDates[0]);void 0!==w.config.minTime&&(w.config.minTime=w.parseDate(w.config.minTime,"H:i"));void 0!==w.config.maxTime&&(w.config.maxTime=w.parseDate(w.config.maxTime,"H:i"));w.minDateHasTime=!!w.config.minDate&&(w.config.minDate.getHours()>0||w.config.minDate.getMinutes()>0||w.config.minDate.getSeconds()>0),w.maxDateHasTime=!!w.config.maxDate&&(w.config.maxDate.getHours()>0||w.config.maxDate.getMinutes()>0||w.config.maxDate.getSeconds()>0)}(),w.utils={getDaysInMonth:function(e,n){return void 0===e&&(e=w.currentMonth),void 0===n&&(n=w.currentYear),1===e&&(n%4==0&&n%100!=0||n%400==0)?29:w.l10n.daysInMonth[e]}},w.isMobile||function(){var e=window.document.createDocumentFragment();if(w.calendarContainer=d("div","flatpickr-calendar"),w.calendarContainer.tabIndex=-1,!w.config.noCalendar){if(e.appendChild((w.monthNav=d("div","flatpickr-months"),w.yearElements=[],w.monthElements=[],w.prevMonthNav=d("span","flatpickr-prev-month"),w.prevMonthNav.innerHTML=w.config.prevArrow,w.nextMonthNav=d("span","flatpickr-next-month"),w.nextMonthNav.innerHTML=w.config.nextArrow,V(),Object.defineProperty(w,"_hidePrevMonthArrow",{get:function(){return w.__hidePrevMonthArrow},set:function(e){w.__hidePrevMonthArrow!==e&&(s(w.prevMonthNav,"flatpickr-disabled",e),w.__hidePrevMonthArrow=e)}}),Object.defineProperty(w,"_hideNextMonthArrow",{get:function(){return w.__hideNextMonthArrow},set:function(e){w.__hideNextMonthArrow!==e&&(s(w.nextMonthNav,"flatpickr-disabled",e),w.__hideNextMonthArrow=e)}}),w.currentYearElement=w.yearElements[0],Ce(),w.monthNav)),w.innerContainer=d("div","flatpickr-innerContainer"),w.config.weekNumbers){var n=function(){w.calendarContainer.classList.add("hasWeeks");var e=d("div","flatpickr-weekwrapper");e.appendChild(d("span","flatpickr-weekday",w.l10n.weekAbbreviation));var n=d("div","flatpickr-weeks");return e.appendChild(n),{weekWrapper:e,weekNumbers:n}}(),t=n.weekWrapper,a=n.weekNumbers;w.innerContainer.appendChild(t),w.weekNumbers=a,w.weekWrapper=t}w.rContainer=d("div","flatpickr-rContainer"),w.rContainer.appendChild(z()),w.daysContainer||(w.daysContainer=d("div","flatpickr-days"),w.daysContainer.tabIndex=-1),U(),w.rContainer.appendChild(w.daysContainer),w.innerContainer.appendChild(w.rContainer),e.appendChild(w.innerContainer)}w.config.enableTime&&e.appendChild(function(){w.calendarContainer.classList.add("hasTime"),w.config.noCalendar&&w.calendarContainer.classList.add("noCalendar");var e=E(w.config);w.timeContainer=d("div","flatpickr-time"),w.timeContainer.tabIndex=-1;var n=d("span","flatpickr-time-separator",":"),t=m("flatpickr-hour",{"aria-label":w.l10n.hourAriaLabel});w.hourElement=t.getElementsByTagName("input")[0];var a=m("flatpickr-minute",{"aria-label":w.l10n.minuteAriaLabel});w.minuteElement=a.getElementsByTagName("input")[0],w.hourElement.tabIndex=w.minuteElement.tabIndex=-1,w.hourElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getHours():w.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),w.minuteElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getMinutes():e.minutes),w.hourElement.setAttribute("step",w.config.hourIncrement.toString()),w.minuteElement.setAttribute("step",w.config.minuteIncrement.toString()),w.hourElement.setAttribute("min",w.config.time_24hr?"0":"1"),w.hourElement.setAttribute("max",w.config.time_24hr?"23":"12"),w.hourElement.setAttribute("maxlength","2"),w.minuteElement.setAttribute("min","0"),w.minuteElement.setAttribute("max","59"),w.minuteElement.setAttribute("maxlength","2"),w.timeContainer.appendChild(t),w.timeContainer.appendChild(n),w.timeContainer.appendChild(a),w.config.time_24hr&&w.timeContainer.classList.add("time24hr");if(w.config.enableSeconds){w.timeContainer.classList.add("hasSeconds");var i=m("flatpickr-second");w.secondElement=i.getElementsByTagName("input")[0],w.secondElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getSeconds():e.seconds),w.secondElement.setAttribute("step",w.minuteElement.getAttribute("step")),w.secondElement.setAttribute("min","0"),w.secondElement.setAttribute("max","59"),w.secondElement.setAttribute("maxlength","2"),w.timeContainer.appendChild(d("span","flatpickr-time-separator",":")),w.timeContainer.appendChild(i)}w.config.time_24hr||(w.amPM=d("span","flatpickr-am-pm",w.l10n.amPM[r((w.latestSelectedDateObj?w.hourElement.value:w.config.defaultHour)>11)]),w.amPM.title=w.l10n.toggleTitle,w.amPM.tabIndex=-1,w.timeContainer.appendChild(w.amPM));return w.timeContainer}());s(w.calendarContainer,"rangeMode","range"===w.config.mode),s(w.calendarContainer,"animate",!0===w.config.animate),s(w.calendarContainer,"multiMonth",w.config.showMonths>1),w.calendarContainer.appendChild(e);var i=void 0!==w.config.appendTo&&void 0!==w.config.appendTo.nodeType;if((w.config.inline||w.config.static)&&(w.calendarContainer.classList.add(w.config.inline?"inline":"static"),w.config.inline&&(!i&&w.element.parentNode?w.element.parentNode.insertBefore(w.calendarContainer,w._input.nextSibling):void 0!==w.config.appendTo&&w.config.appendTo.appendChild(w.calendarContainer)),w.config.static)){var l=d("div","flatpickr-wrapper");w.element.parentNode&&w.element.parentNode.insertBefore(l,w.element),l.appendChild(w.element),w.altInput&&l.appendChild(w.altInput),l.appendChild(w.calendarContainer)}w.config.static||w.config.inline||(void 0!==w.config.appendTo?w.config.appendTo:window.document.body).appendChild(w.calendarContainer)}(),function(){w.config.wrap&&["open","close","toggle","clear"].forEach((function(e){Array.prototype.forEach.call(w.element.querySelectorAll("[data-"+e+"]"),(function(n){return P(n,"click",w[e])}))}));if(w.isMobile)return void function(){var e=w.config.enableTime?w.config.noCalendar?"time":"datetime-local":"date";w.mobileInput=d("input",w.input.className+" flatpickr-mobile"),w.mobileInput.tabIndex=1,w.mobileInput.type=e,w.mobileInput.disabled=w.input.disabled,w.mobileInput.required=w.input.required,w.mobileInput.placeholder=w.input.placeholder,w.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",w.selectedDates.length>0&&(w.mobileInput.defaultValue=w.mobileInput.value=w.formatDate(w.selectedDates[0],w.mobileFormatStr));w.config.minDate&&(w.mobileInput.min=w.formatDate(w.config.minDate,"Y-m-d"));w.config.maxDate&&(w.mobileInput.max=w.formatDate(w.config.maxDate,"Y-m-d"));w.input.getAttribute("step")&&(w.mobileInput.step=String(w.input.getAttribute("step")));w.input.type="hidden",void 0!==w.altInput&&(w.altInput.type="hidden");try{w.input.parentNode&&w.input.parentNode.insertBefore(w.mobileInput,w.input.nextSibling)}catch(e){}P(w.mobileInput,"change",(function(e){w.setDate(g(e).value,!1,w.mobileFormatStr),De("onChange"),De("onClose")}))}();var e=l(re,50);w._debouncedChange=l(Y,300),w.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&P(w.daysContainer,"mouseover",(function(e){"range"===w.config.mode&&oe(g(e))}));P(w._input,"keydown",ie),void 0!==w.calendarContainer&&P(w.calendarContainer,"keydown",ie);w.config.inline||w.config.static||P(window,"resize",e);void 0!==window.ontouchstart?P(window.document,"touchstart",X):P(window.document,"mousedown",X);P(window.document,"focus",X,{capture:!0}),!0===w.config.clickOpens&&(P(w._input,"focus",w.open),P(w._input,"click",w.open));void 0!==w.daysContainer&&(P(w.monthNav,"click",xe),P(w.monthNav,["keyup","increment"],N),P(w.daysContainer,"click",me));if(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement){var n=function(e){return g(e).select()};P(w.timeContainer,["increment"],_),P(w.timeContainer,"blur",_,{capture:!0}),P(w.timeContainer,"click",H),P([w.hourElement,w.minuteElement],["focus","click"],n),void 0!==w.secondElement&&P(w.secondElement,"focus",(function(){return w.secondElement&&w.secondElement.select()})),void 0!==w.amPM&&P(w.amPM,"click",(function(e){_(e)}))}w.config.allowInput&&P(w._input,"blur",ae)}(),(w.selectedDates.length||w.config.noCalendar)&&(w.config.enableTime&&F(w.config.noCalendar?w.latestSelectedDateObj:void 0),ye(!1)),S();var n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!w.isMobile&&n&&de(),De("onReady")}(),w}function T(e,n){for(var t=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),a=[],i=0;i{for(var t in e)H(l,t,{get:e[t],enumerable:!0})},Re=(l,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Te(e))!we.call(l,s)&&s!==t&&H(l,s,{get:()=>e[s],enumerable:!(n=be(e,s))||n.enumerable});return l};var Se=l=>Re(H({},"__esModule",{value:!0}),l);var kt={};ye(kt,{Hooks:()=>L,Lexer:()=>x,Marked:()=>E,Parser:()=>b,Renderer:()=>$,TextRenderer:()=>_,Tokenizer:()=>S,defaults:()=>w,getDefaults:()=>z,lexer:()=>ht,marked:()=>k,options:()=>it,parse:()=>pt,parseInline:()=>ct,parser:()=>ut,setOptions:()=>ot,use:()=>lt,walkTokens:()=>at});module.exports=Se(kt);function z(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var w=z();function N(l){w=l}var I={exec:()=>null};function h(l,e=""){let t=typeof l=="string"?l:l.source,n={replace:(s,i)=>{let r=typeof i=="string"?i:i.source;return r=r.replace(m.caret,"$1"),t=t.replace(s,r),n},getRegex:()=>new RegExp(t,e)};return n}var m={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:l=>new RegExp(`^( {0,3}${l})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}#`),htmlBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}<(?:[a-z].*>|!--)`,"i")},$e=/^(?:[ \t]*(?:\n|$))+/,_e=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Le=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,O=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,ze=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,F=/(?:[*+-]|\d{1,9}[.)])/,ie=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,oe=h(ie).replace(/bull/g,F).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Me=h(ie).replace(/bull/g,F).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Q=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Pe=/^[^\n]+/,U=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Ae=h(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",U).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ee=h(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,F).getRegex(),v="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",K=/|$))/,Ce=h("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",K).replace("tag",v).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),le=h(Q).replace("hr",O).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",v).getRegex(),Ie=h(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",le).getRegex(),X={blockquote:Ie,code:_e,def:Ae,fences:Le,heading:ze,hr:O,html:Ce,lheading:oe,list:Ee,newline:$e,paragraph:le,table:I,text:Pe},re=h("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",O).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",v).getRegex(),Oe={...X,lheading:Me,table:re,paragraph:h(Q).replace("hr",O).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",re).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",v).getRegex()},Be={...X,html:h(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",K).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:I,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:h(Q).replace("hr",O).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",oe).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},qe=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ve=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ae=/^( {2,}|\\)\n(?!\s*$)/,De=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,ue=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,je=h(ue,"u").replace(/punct/g,D).getRegex(),Fe=h(ue,"u").replace(/punct/g,pe).getRegex(),he="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Qe=h(he,"gu").replace(/notPunctSpace/g,ce).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),Ue=h(he,"gu").replace(/notPunctSpace/g,He).replace(/punctSpace/g,Ge).replace(/punct/g,pe).getRegex(),Ke=h("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,ce).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),Xe=h(/\\(punct)/,"gu").replace(/punct/g,D).getRegex(),We=h(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Je=h(K).replace("(?:-->|$)","-->").getRegex(),Ve=h("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Je).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),q=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Ye=h(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",q).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ke=h(/^!?\[(label)\]\[(ref)\]/).replace("label",q).replace("ref",U).getRegex(),ge=h(/^!?\[(ref)\](?:\[\])?/).replace("ref",U).getRegex(),et=h("reflink|nolink(?!\\()","g").replace("reflink",ke).replace("nolink",ge).getRegex(),J={_backpedal:I,anyPunctuation:Xe,autolink:We,blockSkip:Ne,br:ae,code:ve,del:I,emStrongLDelim:je,emStrongRDelimAst:Qe,emStrongRDelimUnd:Ke,escape:qe,link:Ye,nolink:ge,punctuation:Ze,reflink:ke,reflinkSearch:et,tag:Ve,text:De,url:I},tt={...J,link:h(/^!?\[(label)\]\((.*?)\)/).replace("label",q).getRegex(),reflink:h(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",q).getRegex()},j={...J,emStrongRDelimAst:Ue,emStrongLDelim:Fe,url:h(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},fe=l=>st[l];function R(l,e){if(e){if(m.escapeTest.test(l))return l.replace(m.escapeReplace,fe)}else if(m.escapeTestNoEncode.test(l))return l.replace(m.escapeReplaceNoEncode,fe);return l}function V(l){try{l=encodeURI(l).replace(m.percentDecode,"%")}catch{return null}return l}function Y(l,e){let t=l.replace(m.findPipe,(i,r,o)=>{let a=!1,c=r;for(;--c>=0&&o[c]==="\\";)a=!a;return a?"|":" |"}),n=t.split(m.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length0?-2:-1}function me(l,e,t,n,s){let i=e.href,r=e.title||null,o=l[1].replace(s.other.outputLinkReplace,"$1");n.state.inLink=!0;let a={type:l[0].charAt(0)==="!"?"image":"link",raw:t,href:i,title:r,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,a}function rt(l,e,t){let n=l.match(t.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(` +`).map(i=>{let r=i.match(t.other.beginningSpace);if(r===null)return i;let[o]=r;return o.length>=s.length?i.slice(s.length):i}).join(` +`)}var S=class{options;rules;lexer;constructor(e){this.options=e||w}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:A(n,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],s=rt(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:s}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let s=A(n,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:A(t[0],` +`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=A(t[0],` +`).split(` +`),s="",i="",r=[];for(;n.length>0;){let o=!1,a=[],c;for(c=0;c1,i={type:"list",raw:"",ordered:s,start:s?+n.slice(0,-1):"",loose:!1,items:[]};n=s?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=s?n:"[*+-]");let r=this.rules.other.listItemRegex(n),o=!1;for(;e;){let c=!1,p="",u="";if(!(t=r.exec(e))||this.rules.block.hr.test(e))break;p=t[0],e=e.substring(p.length);let d=t[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,Z=>" ".repeat(3*Z.length)),g=e.split(` +`,1)[0],T=!d.trim(),f=0;if(this.options.pedantic?(f=2,u=d.trimStart()):T?f=t[1].length+1:(f=t[2].search(this.rules.other.nonSpaceChar),f=f>4?1:f,u=d.slice(f),f+=t[1].length),T&&this.rules.other.blankLine.test(g)&&(p+=g+` +`,e=e.substring(g.length+1),c=!0),!c){let Z=this.rules.other.nextBulletRegex(f),te=this.rules.other.hrRegex(f),ne=this.rules.other.fencesBeginRegex(f),se=this.rules.other.headingBeginRegex(f),xe=this.rules.other.htmlBeginRegex(f);for(;e;){let G=e.split(` +`,1)[0],C;if(g=G,this.options.pedantic?(g=g.replace(this.rules.other.listReplaceNesting," "),C=g):C=g.replace(this.rules.other.tabCharGlobal," "),ne.test(g)||se.test(g)||xe.test(g)||Z.test(g)||te.test(g))break;if(C.search(this.rules.other.nonSpaceChar)>=f||!g.trim())u+=` +`+C.slice(f);else{if(T||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||ne.test(d)||se.test(d)||te.test(d))break;u+=` +`+g}!T&&!g.trim()&&(T=!0),p+=G+` +`,e=e.substring(G.length+1),d=C.slice(f)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(p)&&(o=!0));let y=null,ee;this.options.gfm&&(y=this.rules.other.listIsTask.exec(u),y&&(ee=y[0]!=="[ ] ",u=u.replace(this.rules.other.listReplaceTask,""))),i.items.push({type:"list_item",raw:p,task:!!y,checked:ee,loose:!1,text:u,tokens:[]}),i.raw+=p}let a=i.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let c=0;cd.type==="space"),u=p.length>0&&p.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=u}if(i.loose)for(let c=0;c({text:a,tokens:this.lexer.inline(a),header:!1,align:r.align[c]})));return r}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===` +`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let r=A(n.slice(0,-1),"\\");if((n.length-r.length)%2===0)return}else{let r=de(t[2],"()");if(r===-2)return;if(r>-1){let a=(t[0].indexOf("!")===0?5:4)+t[1].length+r;t[2]=t[2].substring(0,r),t[0]=t[0].substring(0,a).trim(),t[3]=""}}let s=t[2],i="";if(this.options.pedantic){let r=this.rules.other.pedanticHrefTitle.exec(s);r&&(s=r[1],i=r[3])}else i=t[3]?t[3].slice(1,-1):"";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?s=s.slice(1):s=s.slice(1,-1)),me(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let s=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[s.toLowerCase()];if(!i){let r=n[0].charAt(0);return{type:"text",raw:r,text:r}}return me(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s||s[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(s[1]||s[2]||"")||!n||this.rules.inline.punctuation.exec(n)){let r=[...s[0]].length-1,o,a,c=r,p=0,u=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+r);(s=u.exec(t))!=null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o)continue;if(a=[...o].length,s[3]||s[4]){c+=a;continue}else if((s[5]||s[6])&&r%3&&!((r+a)%3)){p+=a;continue}if(c-=a,c>0)continue;a=Math.min(a,a+c+p);let d=[...s[0]][0].length,g=e.slice(0,r+s.index+d+a);if(Math.min(r,a)%2){let f=g.slice(1,-1);return{type:"em",raw:g,text:f,tokens:this.lexer.inlineTokens(f)}}let T=g.slice(2,-2);return{type:"strong",raw:g,text:T,tokens:this.lexer.inlineTokens(T)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),s=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return s&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,s;return t[2]==="@"?(n=t[1],s="mailto:"+n):(n=t[1],s=n),{type:"link",raw:t[0],text:n,href:s,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,s;if(t[2]==="@")n=t[0],s="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?s="http://"+t[0]:s=t[0]}return{type:"link",raw:t[0],text:n,href:s,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}};var x=class l{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||w,this.options.tokenizer=this.options.tokenizer||new S,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:B.normal,inline:P.normal};this.options.pedantic?(t.block=B.pedantic,t.inline=P.pedantic):this.options.gfm&&(t.block=B.gfm,this.options.breaks?t.inline=P.breaks:t.inline=P.gfm),this.tokenizer.rules=t}static get rules(){return{block:B,inline:P}}static lex(e,t){return new l(t).lex(e)}static lexInline(e,t){return new l(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let t=0;t(s=r.call({lexer:this},e,t))?(e=e.substring(s.raw.length),t.push(s),!0):!1))continue;if(s=this.tokenizer.space(e)){e=e.substring(s.raw.length);let r=t.at(-1);s.raw.length===1&&r!==void 0?r.raw+=` +`:t.push(s);continue}if(s=this.tokenizer.code(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` +`+s.raw,r.text+=` +`+s.text,this.inlineQueue.at(-1).src=r.text):t.push(s);continue}if(s=this.tokenizer.fences(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.heading(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.hr(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.blockquote(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.list(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.html(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.def(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` +`+s.raw,r.text+=` +`+s.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title});continue}if(s=this.tokenizer.table(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.lheading(e)){e=e.substring(s.raw.length),t.push(s);continue}let i=e;if(this.options.extensions?.startBlock){let r=1/0,o=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},o),typeof a=="number"&&a>=0&&(r=Math.min(r,a))}),r<1/0&&r>=0&&(i=e.substring(0,r+1))}if(this.state.top&&(s=this.tokenizer.paragraph(i))){let r=t.at(-1);n&&r?.type==="paragraph"?(r.raw+=` +`+s.raw,r.text+=` +`+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(s),n=i.length!==e.length,e=e.substring(s.raw.length);continue}if(s=this.tokenizer.text(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="text"?(r.raw+=` +`+s.raw,r.text+=` +`+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(s);continue}if(e){let r="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(r);break}else throw new Error(r)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,s=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)o.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,s.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(s=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let i=!1,r="";for(;e;){i||(r=""),i=!1;let o;if(this.options.extensions?.inline?.some(c=>(o=c.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let c=t.at(-1);o.type==="text"&&c?.type==="text"?(c.raw+=o.raw,c.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,r)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let a=e;if(this.options.extensions?.startInline){let c=1/0,p=e.slice(1),u;this.options.extensions.startInline.forEach(d=>{u=d.call({lexer:this},p),typeof u=="number"&&u>=0&&(c=Math.min(c,u))}),c<1/0&&c>=0&&(a=e.substring(0,c+1))}if(o=this.tokenizer.inlineText(a)){e=e.substring(o.raw.length),o.raw.slice(-1)!=="_"&&(r=o.raw.slice(-1)),i=!0;let c=t.at(-1);c?.type==="text"?(c.raw+=o.raw,c.text+=o.text):t.push(o);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return t}};var $=class{options;parser;constructor(e){this.options=e||w}space(e){return""}code({text:e,lang:t,escaped:n}){let s=(t||"").match(m.notSpaceStart)?.[0],i=e.replace(m.endingNewline,"")+` +`;return s?'
    '+(n?i:R(i,!0))+`
    +`:"
    "+(n?i:R(i,!0))+`
    +`}blockquote({tokens:e}){return`
    +${this.parser.parse(e)}
    +`}html({text:e}){return e}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)} +`}hr(e){return`
    +`}list(e){let t=e.ordered,n=e.start,s="";for(let o=0;o +`+s+" +`}listitem(e){let t="";if(e.task){let n=this.checkbox({checked:!!e.checked});e.loose?e.tokens[0]?.type==="paragraph"?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=n+" "+R(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:n+" ",text:n+" ",escaped:!0}):t+=n+" "}return t+=this.parser.parse(e.tokens,!!e.loose),`
  • ${t}
  • +`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    +`}table(e){let t="",n="";for(let i=0;i${s}`),` + +`+t+` +`+s+`
    +`}tablerow({text:e}){return` +${e} +`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+` +`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${R(e,!0)}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let s=this.parser.parseInline(n),i=V(e);if(i===null)return s;e=i;let r='
    ",r}image({href:e,title:t,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let i=V(e);if(i===null)return R(n);e=i;let r=`${n}{let o=i[r].flat(1/0);n=n.concat(this.walkTokens(o,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let r=t.renderers[i.name];r?t.renderers[i.name]=function(...o){let a=i.renderer.apply(this,o);return a===!1&&(a=r.apply(this,o)),a}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let r=t[i.level];r?r.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),s.extensions=t),n.renderer){let i=this.defaults.renderer||new $(this.defaults);for(let r in n.renderer){if(!(r in i))throw new Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let o=r,a=n.renderer[o],c=i[o];i[o]=(...p)=>{let u=a.apply(i,p);return u===!1&&(u=c.apply(i,p)),u||""}}s.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new S(this.defaults);for(let r in n.tokenizer){if(!(r in i))throw new Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let o=r,a=n.tokenizer[o],c=i[o];i[o]=(...p)=>{let u=a.apply(i,p);return u===!1&&(u=c.apply(i,p)),u}}s.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new L;for(let r in n.hooks){if(!(r in i))throw new Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let o=r,a=n.hooks[o],c=i[o];L.passThroughHooks.has(r)?i[o]=p=>{if(this.defaults.async)return Promise.resolve(a.call(i,p)).then(d=>c.call(i,d));let u=a.call(i,p);return c.call(i,u)}:i[o]=(...p)=>{let u=a.apply(i,p);return u===!1&&(u=c.apply(i,p)),u}}s.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,r=n.walkTokens;s.walkTokens=function(o){let a=[];return a.push(r.call(this,o)),i&&(a=a.concat(i.call(this,o))),a}}this.defaults={...this.defaults,...s}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,s)=>{let i={...s},r={...this.defaults,...i},o=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&i.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof n>"u"||n===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));r.hooks&&(r.hooks.options=r,r.hooks.block=e);let a=r.hooks?r.hooks.provideLexer():e?x.lex:x.lexInline,c=r.hooks?r.hooks.provideParser():e?b.parse:b.parseInline;if(r.async)return Promise.resolve(r.hooks?r.hooks.preprocess(n):n).then(p=>a(p,r)).then(p=>r.hooks?r.hooks.processAllTokens(p):p).then(p=>r.walkTokens?Promise.all(this.walkTokens(p,r.walkTokens)).then(()=>p):p).then(p=>c(p,r)).then(p=>r.hooks?r.hooks.postprocess(p):p).catch(o);try{r.hooks&&(n=r.hooks.preprocess(n));let p=a(n,r);r.hooks&&(p=r.hooks.processAllTokens(p)),r.walkTokens&&this.walkTokens(p,r.walkTokens);let u=c(p,r);return r.hooks&&(u=r.hooks.postprocess(u)),u}catch(p){return o(p)}}}onError(e,t){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let s="

    An error occurred:

    "+R(n.message+"",!0)+"
    ";return t?Promise.resolve(s):s}if(t)return Promise.reject(n);throw n}}};var M=new E;function k(l,e){return M.parse(l,e)}k.options=k.setOptions=function(l){return M.setOptions(l),k.defaults=M.defaults,N(k.defaults),k};k.getDefaults=z;k.defaults=w;k.use=function(...l){return M.use(...l),k.defaults=M.defaults,N(k.defaults),k};k.walkTokens=function(l,e){return M.walkTokens(l,e)};k.parseInline=M.parseInline;k.Parser=b;k.parser=b.parse;k.Renderer=$;k.TextRenderer=_;k.Lexer=x;k.lexer=x.lex;k.Tokenizer=S;k.Hooks=L;k.parse=k;var it=k.options,ot=k.setOptions,lt=k.use,at=k.walkTokens,ct=k.parseInline,pt=k,ut=b.parse,ht=x.lex; + +if(__exports != exports)module.exports = exports;return module.exports}));