(function() {
  var extra = [
    {
      id: 'az104-322',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Contoso, Ltd. Your team is evaluating the subtractive field for data access, not management actions.',
        de: 'Sie arbeiten für Contoso, Ltd. Ihr Team evaluiert das subtraktive Feld für Datenzugriff und nicht für Verwaltungsaktionen.'
      },
      question: {
        en: 'Which property in the custom role definition should contain the excluded data-plane permission?',
        de: 'Welche Eigenschaft in der benutzerdefinierten Rollendefinition sollte die ausgeschlossene Datenebenenberechtigung enthalten?'
      },
      options: [
        { id: 'A', text: { en: 'Actions', de: 'Actions' } },
        { id: 'B', text: { en: 'NotActions', de: 'NotActions' } },
        { id: 'C', text: { en: 'DataActions', de: 'DataActions' } },
        { id: 'D', text: { en: 'NotDataActions', de: 'NotDataActions' } }
      ],
      correct: ['D'],
      explanation: {
        en: 'NotDataActions excludes specific data-plane operations from the permissions granted through DataActions.',
        de: 'NotDataActions schließt bestimmte Datenebenenoperationen aus den über DataActions gewährten Berechtigungen aus.'
      },
      hint: {
        en: 'Think about the subtractive field for data access, not management actions.',
        de: 'Denken Sie an das subtraktive Feld für Datenzugriff und nicht für Verwaltungsaktionen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles'
    },
    {
      id: 'az104-323',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which custom RBAC role property defines where the role can be assigned?',
        de: 'Welche Eigenschaft einer benutzerdefinierten RBAC-Rolle definiert, wo die Rolle zugewiesen werden kann?'
      },
      options: [
        { id: 'A', text: { en: 'AssignableScopes', de: 'AssignableScopes' } },
        { id: 'B', text: { en: 'ConditionVersion', de: 'ConditionVersion' } },
        { id: 'C', text: { en: 'DataActions', de: 'DataActions' } },
        { id: 'D', text: { en: 'RoleName', de: 'RoleName' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'AssignableScopes limits the scopes where the custom role can be assigned.',
        de: 'AssignableScopes begrenzt die Bereiche, in denen die benutzerdefinierte Rolle zugewiesen werden kann.'
      },
      hint: {
        en: 'This property controls assignment scope, not allowed operations.',
        de: 'Diese Eigenschaft steuert den Zuweisungsbereich und nicht die erlaubten Operationen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles'
    },
    {
      id: 'az104-324',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Contoso, Ltd., a governance team wants diagnostic settings to be deployed automatically when new subscriptions or resources are missing the required configuration.',
        de: 'Bei Contoso, Ltd.: ein Governance-Team möchte, dass Diagnoseeinstellungen automatisch bereitgestellt werden, wenn neuen Abonnements oder Ressourcen die erforderliche Konfiguration fehlt.'
      },
      question: {
        en: 'Which Azure Policy effect is designed for this requirement?',
        de: 'Welcher Azure-Policy-Effekt ist für diese Anforderung vorgesehen?'
      },
      options: [
        { id: 'A', text: { en: 'Audit', de: 'Audit' } },
        { id: 'B', text: { en: 'DeployIfNotExists', de: 'DeployIfNotExists' } },
        { id: 'C', text: { en: 'Deny', de: 'Deny' } },
        { id: 'D', text: { en: 'Disabled', de: 'Disabled' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'DeployIfNotExists evaluates resources and can deploy related configuration when it is missing.',
        de: 'DeployIfNotExists wertet Ressourcen aus und kann eine zugehörige Konfiguration bereitstellen, wenn sie fehlt.'
      },
      hint: {
        en: 'You need a policy effect that can deploy a missing dependency.',
        de: 'Sie benötigen einen Policy-Effekt, der eine fehlende Abhängigkeit bereitstellen kann.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/policy/concepts/effect-deploy-if-not-exists'
    },
    {
      id: 'az104-325',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You want a policy to report noncompliant resources but never block deployment or change the resources. Which effect should you use?',
        de: 'Sie möchten, dass eine Richtlinie nicht konforme Ressourcen meldet, aber niemals die Bereitstellung blockiert oder die Ressourcen verändert. Welchen Effekt sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Audit', de: 'Audit' } },
        { id: 'B', text: { en: 'Modify', de: 'Modify' } },
        { id: 'C', text: { en: 'Append', de: 'Append' } },
        { id: 'D', text: { en: 'Deny', de: 'Deny' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Audit records noncompliance without preventing deployment or changing the resource.',
        de: 'Audit protokolliert Nichtkonformität, ohne die Bereitstellung zu verhindern oder die Ressource zu verändern.'
      },
      hint: {
        en: 'Choose the reporting-only policy effect.',
        de: 'Wählen Sie den reinen Berichtseffekt der Richtlinie.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/policy/concepts/effect-audit'
    },
    {
      id: 'az104-326',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Fabrikam, Inc., a Berlin helpdesk team must reset passwords only for users in the Berlin office and must not gain tenant-wide administration rights.',
        de: 'Bei Fabrikam, Inc.: ein Berliner Helpdesk-Team muss Kennwörter nur für Benutzer im Berliner Büro zurücksetzen und darf keine mandantenweiten Administratorrechte erhalten.'
      },
      question: {
        en: 'Which Microsoft Entra feature should you use?',
        de: 'Welche Microsoft-Entra-Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Administrative unit', de: 'Administrative Einheit' } },
        { id: 'B', text: { en: 'Management group', de: 'Verwaltungsgruppe' } },
        { id: 'C', text: { en: 'Resource lock', de: 'Ressourcensperre' } },
        { id: 'D', text: { en: 'Azure Policy exemption', de: 'Azure-Policy-Ausnahme' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Administrative units scope delegated user and group administration to a subset of directory objects.',
        de: 'Administrative Einheiten begrenzen delegierte Benutzer- und Gruppenverwaltung auf eine Teilmenge der Verzeichnisobjekte.'
      },
      hint: {
        en: 'Think directory delegation, not Azure resource hierarchy.',
        de: 'Denken Sie an Verzeichnisdelegation und nicht an die Azure-Ressourcenhierarchie.'
      },
      reference: 'https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/administrative-units'
    },
    {
      id: 'az104-327',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which statements about Azure management groups are correct? Choose all that apply.',
        de: 'Welche Aussagen zu Azure-Verwaltungsgruppen sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Subscriptions inherit policy and RBAC assignments from parent management groups', de: 'Abonnements erben Richtlinien- und RBAC-Zuweisungen von übergeordneten Verwaltungsgruppen' } },
        { id: 'B', text: { en: 'Management groups can be nested in a hierarchy', de: 'Verwaltungsgruppen können in einer Hierarchie verschachtelt werden' } },
        { id: 'C', text: { en: 'A subscription can have only one direct parent management group', de: 'Ein Abonnement kann nur eine direkte übergeordnete Verwaltungsgruppe haben' } },
        { id: 'D', text: { en: 'Resource groups can directly contain management groups', de: 'Ressourcengruppen können Verwaltungsgruppen direkt enthalten' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Management groups form a hierarchy. Subscriptions inherit governance from their parent, and resource groups do not contain management groups.',
        de: 'Verwaltungsgruppen bilden eine Hierarchie. Abonnements erben Governance von ihrer übergeordneten Gruppe, und Ressourcengruppen enthalten keine Verwaltungsgruppen.'
      },
      hint: {
        en: 'Follow the Azure hierarchy from tenant to management groups to subscriptions.',
        de: 'Folgen Sie der Azure-Hierarchie vom Mandanten über Verwaltungsgruppen zu Abonnements.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/management-groups/overview'
    },
    {
      id: 'az104-328',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Northwind Traders, a platform engineer must create and remove RBAC assignments in a subscription but should not receive broad rights to manage the resources themselves.',
        de: 'Bei Northwind Traders: ein Plattformingenieur muss RBAC-Zuweisungen in einem Abonnement erstellen und entfernen können, soll aber keine weitreichenden Rechte zur Verwaltung der Ressourcen selbst erhalten.'
      },
      question: {
        en: 'Which built-in role is the best fit?',
        de: 'Welche integrierte Rolle passt am besten?'
      },
      options: [
        { id: 'A', text: { en: 'Contributor', de: 'Mitwirkender' } },
        { id: 'B', text: { en: 'Reader', de: 'Leser' } },
        { id: 'C', text: { en: 'User Access Administrator', de: 'Benutzerzugriffsadministrator' } },
        { id: 'D', text: { en: 'Security Reader', de: 'Sicherheitsleser' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'User Access Administrator is intended for managing access assignments without broad resource management rights.',
        de: 'Der Benutzerzugriffsadministrator ist für die Verwaltung von Zugriffszuweisungen ohne umfassende Rechte zur Ressourcenverwaltung vorgesehen.'
      },
      hint: {
        en: 'Separate access administration from resource administration.',
        de: 'Trennen Sie Zugriffsverwaltung von Ressourcenverwaltung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles'
    },
    {
      id: 'az104-329',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which entries are valid elements of a custom Azure RBAC role definition? Choose all that apply.',
        de: 'Welche Einträge sind gültige Elemente einer benutzerdefinierten Azure-RBAC-Rollendefinition? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Actions', de: 'Actions' } },
        { id: 'B', text: { en: 'NotActions', de: 'NotActions' } },
        { id: 'C', text: { en: 'DataActions', de: 'DataActions' } },
        { id: 'D', text: { en: 'AssignableScopes', de: 'AssignableScopes' } }
      ],
      correct: ['A', 'B', 'C', 'D'],
      explanation: {
        en: 'Custom roles can contain Actions, NotActions, DataActions, NotDataActions, and AssignableScopes.',
        de: 'Benutzerdefinierte Rollen können Actions, NotActions, DataActions, NotDataActions und AssignableScopes enthalten.'
      },
      hint: {
        en: 'All listed entries belong to custom role structure.',
        de: 'Alle aufgeführten Einträge gehören zur Struktur benutzerdefinierter Rollen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles'
    },
    {
      id: 'az104-330',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Contoso, Ltd., production administrators must update resources in a resource group, but accidental deletion must be blocked.',
        de: 'Bei Contoso, Ltd.: produktionsadministratoren müssen Ressourcen in einer Ressourcengruppe aktualisieren, aber versehentliches Löschen muss verhindert werden.'
      },
      question: {
        en: 'Which lock should you apply?',
        de: 'Welche Sperre sollten Sie anwenden?'
      },
      options: [
        { id: 'A', text: { en: 'ReadOnly', de: 'ReadOnly' } },
        { id: 'B', text: { en: 'CanNotDelete', de: 'CanNotDelete' } },
        { id: 'C', text: { en: 'DeleteAll', de: 'DeleteAll' } },
        { id: 'D', text: { en: 'AppendOnly', de: 'AppendOnly' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'A CanNotDelete lock blocks delete operations while still allowing permitted updates.',
        de: 'Eine CanNotDelete-Sperre blockiert Löschvorgänge und erlaubt weiterhin zulässige Aktualisierungen.'
      },
      hint: {
        en: 'You must stop deletion only, not every change.',
        de: 'Sie müssen nur das Löschen stoppen und nicht jede Änderung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/lock-resources'
    },
    {
      id: 'az104-331',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which Azure CLI command lists RBAC role assignments at the RG1 resource group scope?',
        de: 'Welcher Azure-CLI-Befehl listet RBAC-Rollenzuweisungen im Bereich der Ressourcengruppe RG1 auf?'
      },
      options: [
        { id: 'A', text: { en: 'az role assignment list --resource-group RG1', de: 'az role assignment list --resource-group RG1' } },
        { id: 'B', text: { en: 'az account role list --group RG1', de: 'az account role list --group RG1' } },
        { id: 'C', text: { en: 'az policy assignment list --resource-group RG1', de: 'az policy assignment list --resource-group RG1' } },
        { id: 'D', text: { en: 'az ad role assignment list --scope RG1', de: 'az ad role assignment list --scope RG1' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'az role assignment list --resource-group RG1 returns Azure RBAC assignments scoped to that resource group.',
        de: 'az role assignment list --resource-group RG1 gibt Azure-RBAC-Zuweisungen zurück, die auf diese Ressourcengruppe begrenzt sind.'
      },
      hint: {
        en: 'Use the RBAC role assignment command, not policy or Entra role commands.',
        de: 'Verwenden Sie den Befehl für RBAC-Rollenzuweisungen und nicht Policy- oder Entra-Rollenbefehle.'
      },
      reference: 'https://learn.microsoft.com/en-us/cli/azure/role/assignment'
    },
    {
      id: 'az104-332',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Fabrikam, Inc., all resources must inherit a CostCenter tag from their resource group, and existing resources with missing tags must be remediated automatically.',
        de: 'Bei Fabrikam, Inc.: alle Ressourcen müssen einen CostCenter-Tag von ihrer Ressourcengruppe erben, und vorhandene Ressourcen mit fehlenden Tags sollen automatisch behoben werden.'
      },
      question: {
        en: 'Which Azure Policy effect should you use?',
        de: 'Welchen Azure-Policy-Effekt sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Audit', de: 'Audit' } },
        { id: 'B', text: { en: 'Deny', de: 'Deny' } },
        { id: 'C', text: { en: 'Modify', de: 'Modify' } },
        { id: 'D', text: { en: 'Disabled', de: 'Disabled' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'Modify can add or replace tags and supports remediation for existing resources.',
        de: 'Modify kann Tags hinzufügen oder ersetzen und unterstützt die Behebung vorhandener Ressourcen.'
      },
      hint: {
        en: 'You need the effect that can change resource properties.',
        de: 'Sie benötigen den Effekt, der Ressourceneigenschaften ändern kann.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-policies'
    },
    {
      id: 'az104-333',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'A subscription is moved from the Dev management group to the Prod management group. What happens to inherited governance?',
        de: 'Ein Abonnement wird von der Verwaltungsgruppe Dev in die Verwaltungsgruppe Prod verschoben. Was passiert mit der geerbten Governance?'
      },
      options: [
        { id: 'A', text: { en: 'It inherits from both old and new management groups', de: 'Es erbt sowohl von der alten als auch von der neuen Verwaltungsgruppe' } },
        { id: 'B', text: { en: 'It stops inheriting from Dev and inherits from Prod', de: 'Es beendet die Vererbung von Dev und erbt von Prod' } },
        { id: 'C', text: { en: 'It keeps old inheritance until the next billing cycle', de: 'Es behält die alte Vererbung bis zum nächsten Abrechnungszyklus' } },
        { id: 'D', text: { en: 'All direct role assignments on the subscription are deleted', de: 'Alle direkten Rollenzuweisungen im Abonnement werden gelöscht' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Inherited policy and RBAC come from the new parent management group after the move. Direct assignments at subscription scope remain.',
        de: 'Geerbte Richtlinien und RBAC stammen nach dem Verschieben von der neuen übergeordneten Verwaltungsgruppe. Direkte Zuweisungen auf Abonnementebene bleiben erhalten.'
      },
      hint: {
        en: 'Inheritance follows the current parent in the hierarchy.',
        de: 'Die Vererbung folgt dem aktuellen übergeordneten Element in der Hierarchie.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/management-groups/manage'
    },
    {
      id: 'az104-334',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Northwind Traders, a tag policy is assigned at a management group. One subscription needs a documented temporary exception without removing the assignment for everyone else.',
        de: 'Bei Northwind Traders: eine Tag-Richtlinie ist auf einer Verwaltungsgruppe zugewiesen. Ein Abonnement benötigt eine dokumentierte vorübergehende Ausnahme, ohne die Zuweisung für alle anderen zu entfernen.'
      },
      question: {
        en: 'What should you create?',
        de: 'Was sollten Sie erstellen?'
      },
      options: [
        { id: 'A', text: { en: 'A policy exemption', de: 'Eine Richtlinienausnahme' } },
        { id: 'B', text: { en: 'A resource lock', de: 'Eine Ressourcensperre' } },
        { id: 'C', text: { en: 'A deployment slot', de: 'Einen Bereitstellungsslot' } },
        { id: 'D', text: { en: 'An availability set', de: 'Eine Verfügbarkeitsgruppe' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A policy exemption provides a scoped exception while keeping the underlying assignment in place.',
        de: 'Eine Richtlinienausnahme bietet eine bereichsbezogene Ausnahme, während die zugrunde liegende Zuweisung bestehen bleibt.'
      },
      hint: {
        en: 'You need an exception, not a removal.',
        de: 'Sie benötigen eine Ausnahme und keine Entfernung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/policy/concepts/exemption-structure'
    },
    {
      id: 'az104-335',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Fabrikam, Inc. This role is focused on managed identity assignment.',
        de: 'Sie arbeiten für Fabrikam, Inc. Diese Rolle ist auf die Zuweisung verwalteter Identitäten ausgerichtet.'
      },
      question: {
        en: 'Which built-in role is designed for assigning user-assigned managed identities?',
        de: 'Welche integrierte Rolle ist für das Zuweisen benutzerseitig zugewiesener verwalteter Identitäten vorgesehen?'
      },
      options: [
        { id: 'A', text: { en: 'Managed Identity Operator', de: 'Managed Identity Operator' } },
        { id: 'B', text: { en: 'Reader', de: 'Leser' } },
        { id: 'C', text: { en: 'Virtual Machine Contributor', de: 'Mitwirkender für virtuelle Computer' } },
        { id: 'D', text: { en: 'Tag Contributor', de: 'Tag-Mitwirkender' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Managed Identity Operator can assign user-assigned managed identities to Azure resources.',
        de: 'Managed Identity Operator kann benutzerseitig zugewiesene verwaltete Identitäten Azure-Ressourcen zuweisen.'
      },
      hint: {
        en: 'This role is focused on managed identity assignment.',
        de: 'Diese Rolle ist auf die Zuweisung verwalteter Identitäten ausgerichtet.'
      },
      reference: 'https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/how-to-assign-managed-identity-via-azure-cli'
    },
    {
      id: 'az104-336',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Northwind Traders. This is the CSV-based bulk user operation.',
        de: 'Sie arbeiten für Northwind Traders. Dies ist der CSV-basierte Massenbenutzervorgang.'
      },
      question: {
        en: 'Which portal feature should you use?',
        de: 'Welche Portal-Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Bulk create', de: 'Massenerstellung' } },
        { id: 'B', text: { en: 'Privileged Identity Management', de: 'Privileged Identity Management' } },
        { id: 'C', text: { en: 'Access reviews', de: 'Zugriffsüberprüfungen' } },
        { id: 'D', text: { en: 'Named locations', de: 'Benannte Standorte' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Bulk create supports creating many Entra users from a CSV template in one operation.',
        de: 'Die Massenerstellung unterstützt das Erstellen vieler Entra-Benutzer aus einer CSV-Vorlage in einem Vorgang.'
      },
      hint: {
        en: 'This is the CSV-based bulk user operation.',
        de: 'Dies ist der CSV-basierte Massenbenutzervorgang.'
      },
      reference: 'https://learn.microsoft.com/en-us/entra/identity/users/users-bulk-add'
    },
    {
      id: 'az104-337',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'In a custom role for blob data access, where should permissions such as Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read be placed?',
        de: 'Wo sollten in einer benutzerdefinierten Rolle für Blob-Datenzugriff Berechtigungen wie Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read platziert werden?'
      },
      options: [
        { id: 'A', text: { en: 'Actions', de: 'Actions' } },
        { id: 'B', text: { en: 'DataActions', de: 'DataActions' } },
        { id: 'C', text: { en: 'AssignableScopes', de: 'AssignableScopes' } },
        { id: 'D', text: { en: 'ConditionVersion', de: 'ConditionVersion' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Blob read and write permissions are data-plane permissions, so they belong in DataActions.',
        de: 'Blob-Lese- und Schreibberechtigungen sind Datenebenenberechtigungen und gehören daher in DataActions.'
      },
      hint: {
        en: 'Think data plane instead of management plane.',
        de: 'Denken Sie an die Datenebene statt an die Verwaltungsebene.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles'
    },
    {
      id: 'az104-338',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which Azure Policy effects can actively bring resources closer to compliance instead of only reporting or blocking? Choose all that apply.',
        de: 'Welche Azure-Policy-Effekte können Ressourcen aktiv näher an die Konformität bringen, statt nur zu melden oder zu blockieren? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Audit', de: 'Audit' } },
        { id: 'B', text: { en: 'Deny', de: 'Deny' } },
        { id: 'C', text: { en: 'Modify', de: 'Modify' } },
        { id: 'D', text: { en: 'DeployIfNotExists', de: 'DeployIfNotExists' } }
      ],
      correct: ['C', 'D'],
      explanation: {
        en: 'Modify can change properties such as tags, and DeployIfNotExists can deploy missing related configuration.',
        de: 'Modify kann Eigenschaften wie Tags ändern, und DeployIfNotExists kann fehlende zugehörige Konfiguration bereitstellen.'
      },
      hint: {
        en: 'Choose the effects that can remediate or deploy.',
        de: 'Wählen Sie die Effekte, die beheben oder bereitstellen können.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/policy/concepts/effect-basics'
    },
    {
      id: 'az104-339',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'Contoso, Ltd. wants one governance baseline at the highest scope so that all subscriptions inherit it unless specifically excluded.',
        de: 'Contoso, Ltd. möchte eine Governance-Basislinie am höchsten Bereich, sodass alle Abonnements sie erben, sofern sie nicht ausdrücklich ausgeschlossen werden.'
      },
      question: {
        en: 'At which scope should you assign the initiative?',
        de: 'Auf welcher Ebene sollten Sie die Initiative zuweisen?'
      },
      options: [
        { id: 'A', text: { en: 'A single resource group', de: 'Eine einzelne Ressourcengruppe' } },
        { id: 'B', text: { en: 'A subscription', de: 'Ein Abonnement' } },
        { id: 'C', text: { en: 'The tenant root management group', de: 'Die Stammverwaltungsgruppe des Mandanten' } },
        { id: 'D', text: { en: 'A virtual network', de: 'Ein virtuelles Netzwerk' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'The tenant root management group is the highest management group scope and can enforce governance broadly across subscriptions.',
        de: 'Die Stammverwaltungsgruppe des Mandanten ist der höchste Verwaltungsgruppenbereich und kann Governance breit über Abonnements hinweg durchsetzen.'
      },
      hint: {
        en: 'Use the highest practical hierarchy scope.',
        de: 'Verwenden Sie den höchstmöglichen praktischen Bereich der Hierarchie.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/management-groups/overview'
    },
    {
      id: 'az104-340',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which PowerShell cmdlet creates an Azure resource lock?',
        de: 'Welches PowerShell-Cmdlet erstellt eine Azure-Ressourcensperre?'
      },
      options: [
        { id: 'A', text: { en: 'New-AzResourceLock', de: 'New-AzResourceLock' } },
        { id: 'B', text: { en: 'Set-AzLockPolicy', de: 'Set-AzLockPolicy' } },
        { id: 'C', text: { en: 'Add-AzResourceGuard', de: 'Add-AzResourceGuard' } },
        { id: 'D', text: { en: 'New-AzPolicyLock', de: 'New-AzPolicyLock' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'New-AzResourceLock creates a CanNotDelete or ReadOnly lock at the chosen scope.',
        de: 'New-AzResourceLock erstellt eine CanNotDelete- oder ReadOnly-Sperre im gewählten Bereich.'
      },
      hint: {
        en: 'Look for the cmdlet with ResourceLock in its name.',
        de: 'Suchen Sie nach dem Cmdlet mit ResourceLock im Namen.'
      },
      reference: 'https://learn.microsoft.com/en-us/powershell/module/az.resources/new-azresourcelock'
    },
    {
      id: 'az104-341',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Contoso, Ltd., a regional IT lead must manage users and groups only for the Retail division in Microsoft Entra ID.',
        de: 'Bei Contoso, Ltd.: ein regionaler IT-Leiter soll Benutzer und Gruppen nur für die Retail-Abteilung in Microsoft Entra ID verwalten.'
      },
      question: {
        en: 'Which feature provides this scoped delegation?',
        de: 'Welche Funktion bietet diese bereichsbezogene Delegation?'
      },
      options: [
        { id: 'A', text: { en: 'Administrative unit', de: 'Administrative Einheit' } },
        { id: 'B', text: { en: 'Resource group', de: 'Ressourcengruppe' } },
        { id: 'C', text: { en: 'Management group', de: 'Verwaltungsgruppe' } },
        { id: 'D', text: { en: 'Network security group', de: 'Netzwerksicherheitsgruppe' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Administrative units scope delegated Entra administration to selected users, groups, and devices.',
        de: 'Administrative Einheiten begrenzen delegierte Entra-Verwaltung auf ausgewählte Benutzer, Gruppen und Geräte.'
      },
      hint: {
        en: 'This is directory delegation, not Azure resource governance.',
        de: 'Dies ist Verzeichnisdelegation und keine Azure-Ressourcengovernance.'
      },
      reference: 'https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/administrative-units'
    },
    {
      id: 'az104-342',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'A ReadOnly lock is applied to a storage account. What happens when an administrator tries to list the account keys?',
        de: 'Auf ein Speicherkonto wird eine ReadOnly-Sperre angewendet. Was passiert, wenn ein Administrator versucht, die Kontoschlüssel aufzulisten?'
      },
      options: [
        { id: 'A', text: { en: 'The request succeeds because it is read-only information', de: 'Die Anforderung ist erfolgreich, weil es sich um schreibgeschützte Informationen handelt' } },
        { id: 'B', text: { en: 'The request is blocked because list keys uses a POST action', de: 'Die Anforderung wird blockiert, weil das Auflisten der Schlüssel eine POST-Aktion verwendet' } },
        { id: 'C', text: { en: 'The request succeeds only for Owners', de: 'Die Anforderung ist nur für Besitzer erfolgreich' } },
        { id: 'D', text: { en: 'The request automatically rotates the keys', de: 'Die Anforderung rotiert automatisch die Schlüssel' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'ReadOnly locks block operations that require POST, including listing storage account keys.',
        de: 'ReadOnly-Sperren blockieren Vorgänge, die POST erfordern, einschließlich des Auflistens von Speicherkontoschlüsseln.'
      },
      hint: {
        en: 'Locks affect control-plane operations, not only delete calls.',
        de: 'Sperren wirken sich auf Control-Plane-Operationen aus und nicht nur auf Löschaufrufe.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/lock-resources'
    },
    {
      id: 'az104-343',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Fabrikam, Inc., new department subscriptions must automatically inherit the same governance baseline for tags, regions, and diagnostics.',
        de: 'Bei Fabrikam, Inc.: neue Abteilungsabonnements müssen automatisch dieselbe Governance-Basislinie für Tags, Regionen und Diagnoseeinstellungen erben.'
      },
      question: {
        en: 'What is the best design?',
        de: 'Was ist das beste Design?'
      },
      options: [
        { id: 'A', text: { en: 'Assign the initiative separately to every new resource group', de: 'Die Initiative separat jeder neuen Ressourcengruppe zuweisen' } },
        { id: 'B', text: { en: 'Assign the initiative at a management group that contains the department subscriptions', de: 'Die Initiative auf einer Verwaltungsgruppe zuweisen, die die Abteilungsabonnements enthält' } },
        { id: 'C', text: { en: 'Use only subscription-level budgets', de: 'Nur Abonnementbudgets verwenden' } },
        { id: 'D', text: { en: 'Apply a lock to the tenant root', de: 'Eine Sperre auf die Mandantenwurzel anwenden' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Assigning the initiative at the relevant management group ensures both current and future child subscriptions inherit the baseline.',
        de: 'Die Zuweisung der Initiative auf der relevanten Verwaltungsgruppe stellt sicher, dass sowohl aktuelle als auch zukünftige untergeordnete Abonnements die Basislinie erben.'
      },
      hint: {
        en: 'Govern many subscriptions from one parent scope.',
        de: 'Steuern Sie viele Abonnements von einem übergeordneten Bereich aus.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/management-groups/overview'
    },
    {
      id: 'az104-344',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Fabrikam, Inc. Use the SAS feature that supports centralized revocation.',
        de: 'Sie arbeiten für Fabrikam, Inc. Verwenden Sie die SAS-Funktion, die eine zentrale Widerrufsmöglichkeit unterstützt.'
      },
      question: {
        en: 'What should you use?',
        de: 'Was sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'A stored access policy on the container', de: 'Eine gespeicherte Zugriffsrichtlinie auf dem Container' } },
        { id: 'B', text: { en: 'A management group lock', de: 'Eine Verwaltungsgruppensperre' } },
        { id: 'C', text: { en: 'A resource tag', de: 'Ein Ressourcentag' } },
        { id: 'D', text: { en: 'A public IP prefix', de: 'Ein öffentliches IP-Präfix' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A service SAS linked to a stored access policy can be revoked by modifying or deleting that policy.',
        de: 'Eine Service-SAS, die mit einer gespeicherten Zugriffsrichtlinie verknüpft ist, kann durch Ändern oder Löschen dieser Richtlinie widerrufen werden.'
      },
      hint: {
        en: 'Use the SAS feature that supports centralized revocation.',
        de: 'Verwenden Sie die SAS-Funktion, die eine zentrale Widerrufsmöglichkeit unterstützt.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview'
    },
    {
      id: 'az104-345',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which SAS type is signed with a user delegation key from Microsoft Entra credentials?',
        de: 'Welcher SAS-Typ wird mit einem Benutzerdelegierungsschlüssel aus Microsoft-Entra-Anmeldeinformationen signiert?'
      },
      options: [
        { id: 'A', text: { en: 'Service SAS', de: 'Service-SAS' } },
        { id: 'B', text: { en: 'Account SAS', de: 'Konto-SAS' } },
        { id: 'C', text: { en: 'User delegation SAS', de: 'Benutzerdelegierungs-SAS' } },
        { id: 'D', text: { en: 'Stored SAS', de: 'Gespeicherte SAS' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'A user delegation SAS is signed with a user delegation key issued through Microsoft Entra ID.',
        de: 'Eine Benutzerdelegierungs-SAS wird mit einem Benutzerdelegierungsschlüssel signiert, der über Microsoft Entra ID ausgestellt wird.'
      },
      hint: {
        en: 'This SAS type avoids using the account key for blob access.',
        de: 'Dieser SAS-Typ vermeidet die Verwendung des Kontoschlüssels für Blobzugriff.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview#user-delegation-sas'
    },
    {
      id: 'az104-346',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Northwind Traders, blob data must move to Cool after 30 days, Archive after 180 days, and be deleted after one year.',
        de: 'Bei Northwind Traders: blob-Daten müssen nach 30 Tagen in Cool, nach 180 Tagen in Archive verschoben und nach einem Jahr gelöscht werden.'
      },
      question: {
        en: 'Which feature should you configure?',
        de: 'Welche Funktion sollten Sie konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'Blob lifecycle management policy', de: 'Blob-Lebenszyklusverwaltungsrichtlinie' } },
        { id: 'B', text: { en: 'NSG flow logs', de: 'NSG-Flowlogs' } },
        { id: 'C', text: { en: 'Application Gateway rewrite rules', de: 'Application-Gateway-Neuschreibregeln' } },
        { id: 'D', text: { en: 'Administrative units', de: 'Administrative Einheiten' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Lifecycle management policies can automatically tier and delete blobs based on age and conditions.',
        de: 'Lebenszyklusverwaltungsrichtlinien können Blobs automatisch anhand von Alter und Bedingungen stufenweise verschieben und löschen.'
      },
      hint: {
        en: 'You need automated tiering and retention actions.',
        de: 'Sie benötigen automatisierte Tiering- und Aufbewahrungsaktionen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview'
    },
    {
      id: 'az104-347',
      type: 'multiple',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which storage redundancy options include zone redundancy in the primary region? Choose all that apply.',
        de: 'Welche Speicherredundanzoptionen enthalten Zonenredundanz in der primären Region? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'ZRS', de: 'ZRS' } },
        { id: 'B', text: { en: 'GZRS', de: 'GZRS' } },
        { id: 'C', text: { en: 'RA-GZRS', de: 'RA-GZRS' } },
        { id: 'D', text: { en: 'GRS', de: 'GRS' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'ZRS, GZRS, and RA-GZRS all include zone redundancy in the primary region. GRS does not.',
        de: 'ZRS, GZRS und RA-GZRS enthalten alle Zonenredundanz in der primären Region. GRS nicht.'
      },
      hint: {
        en: 'Look for the options with Z in the name.',
        de: 'Suchen Sie nach den Optionen mit Z im Namen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy'
    },
    {
      id: 'az104-348',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Contoso, Ltd., a Linux workload requires a POSIX-style NFS share hosted in Azure Files.',
        de: 'Bei Contoso, Ltd.: eine Linux-Workload benötigt eine POSIX-ähnliche NFS-Freigabe, die in Azure Files gehostet wird.'
      },
      question: {
        en: 'What should you create?',
        de: 'Was sollten Sie erstellen?'
      },
      options: [
        { id: 'A', text: { en: 'A premium Azure file share using the NFS protocol', de: 'Eine Premium-Azure-Dateifreigabe mit dem NFS-Protokoll' } },
        { id: 'B', text: { en: 'A standard Azure file share using FTP', de: 'Eine Standard-Azure-Dateifreigabe mit FTP' } },
        { id: 'C', text: { en: 'A blob container with SMB enabled', de: 'Einen Blobcontainer mit aktiviertem SMB' } },
        { id: 'D', text: { en: 'An Azure NetApp Files backup vault', de: 'Einen Azure-NetApp-Files-Sicherungstresor' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Files NFS is available on premium file shares and is intended for Linux workloads that need NFS semantics.',
        de: 'Azure Files NFS ist auf Premium-Dateifreigaben verfügbar und für Linux-Workloads gedacht, die NFS-Semantik benötigen.'
      },
      hint: {
        en: 'Azure Files supports SMB and NFS, but NFS needs the right share type.',
        de: 'Azure Files unterstützt SMB und NFS, aber NFS benötigt den richtigen Freigabetyp.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/files/files-nfs-protocol'
    },
    {
      id: 'az104-349',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What does Azure File Sync cloud tiering do on a Windows Server?',
        de: 'Was bewirkt das Cloud-Tiering von Azure File Sync auf einem Windows-Server?'
      },
      options: [
        { id: 'A', text: { en: 'It keeps the full namespace visible but stores cold file content primarily in Azure', de: 'Es hält den vollständigen Namespace sichtbar, speichert aber den Inhalt seltener genutzter Dateien primär in Azure' } },
        { id: 'B', text: { en: 'It converts SMB shares to blob containers', de: 'Es konvertiert SMB-Freigaben in Blobcontainer' } },
        { id: 'C', text: { en: 'It disables NTFS permissions', de: 'Es deaktiviert NTFS-Berechtigungen' } },
        { id: 'D', text: { en: 'It changes the server to Linux', de: 'Es ändert den Server zu Linux' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Cloud tiering keeps file names and metadata visible locally while cold content can be tiered to Azure Files.',
        de: 'Cloud-Tiering hält Dateinamen und Metadaten lokal sichtbar, während seltener genutzte Inhalte nach Azure Files verschoben werden können.'
      },
      hint: {
        en: 'The namespace stays local even when content is tiered.',
        de: 'Der Namespace bleibt lokal, auch wenn Inhalte ausgelagert werden.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/file-sync/file-sync-cloud-tiering-overview'
    },
    {
      id: 'az104-350',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Northwind Traders. This is the physical disk shipment option.',
        de: 'Sie arbeiten für Northwind Traders. Dies ist die Option mit physischem Versand von Datenträgern.'
      },
      question: {
        en: 'Which service should you use?',
        de: 'Welchen Dienst sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Import/Export', de: 'Azure Import/Export' } },
        { id: 'B', text: { en: 'Azure Firewall', de: 'Azure Firewall' } },
        { id: 'C', text: { en: 'Traffic Manager', de: 'Traffic Manager' } },
        { id: 'D', text: { en: 'Azure Bastion', de: 'Azure Bastion' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Import/Export supports offline data transfer by shipping encrypted drives to an Azure datacenter.',
        de: 'Azure Import/Export unterstützt die Offline-Datenübertragung durch den Versand verschlüsselter Laufwerke an ein Azure-Rechenzentrum.'
      },
      hint: {
        en: 'This is the physical disk shipment option.',
        de: 'Dies ist die Option mit physischem Versand von Datenträgern.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/import-export/storage-import-export-service'
    },
    {
      id: 'az104-351',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which redundancy option provides a readable secondary endpoint in a paired region for blob data?',
        de: 'Welche Redundanzoption bietet einen lesbaren sekundären Endpunkt in einer gekoppelten Region für Blob-Daten?'
      },
      options: [
        { id: 'A', text: { en: 'LRS', de: 'LRS' } },
        { id: 'B', text: { en: 'ZRS', de: 'ZRS' } },
        { id: 'C', text: { en: 'RA-GRS', de: 'RA-GRS' } },
        { id: 'D', text: { en: 'GRS', de: 'GRS' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'RA-GRS replicates to a secondary region and provides read access to that secondary endpoint.',
        de: 'RA-GRS repliziert in eine sekundäre Region und bietet Lesezugriff auf diesen sekundären Endpunkt.'
      },
      hint: {
        en: 'Read access is the key difference.',
        de: 'Der Lesezugriff ist der entscheidende Unterschied.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy'
    },
    {
      id: 'az104-352',
      type: 'multiple',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which tasks can AzCopy perform? Choose all that apply.',
        de: 'Welche Aufgaben kann AzCopy ausführen? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Copy data from local storage to Azure Blob', de: 'Daten vom lokalen Speicher nach Azure Blob kopieren' } },
        { id: 'B', text: { en: 'Copy data directly between storage accounts', de: 'Daten direkt zwischen Speicherkonten kopieren' } },
        { id: 'C', text: { en: 'Synchronize a local folder with a blob container', de: 'Einen lokalen Ordner mit einem Blobcontainer synchronisieren' } },
        { id: 'D', text: { en: 'Create Azure Policy initiatives', de: 'Azure-Policy-Initiativen erstellen' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'AzCopy is a data transfer tool for Azure Storage and supports local, service-to-service, and sync operations.',
        de: 'AzCopy ist ein Datenübertragungstool für Azure Storage und unterstützt lokale, dienstübergreifende und Synchronisierungsvorgänge.'
      },
      hint: {
        en: 'Choose storage data movement tasks only.',
        de: 'Wählen Sie nur Aufgaben zur Verschiebung von Speicherdaten.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10'
    },
    {
      id: 'az104-353',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Contoso, Ltd., a storage account must be reachable only from selected subnets over the Azure backbone, but the service should still use its public endpoint rather than a private IP.',
        de: 'Bei Contoso, Ltd. darf nur von ausgewählten Subnetzen über das Azure-Backbone erreichbar sein, soll aber weiterhin seinen öffentlichen Endpunkt statt einer privaten IP verwenden.'
      },
      question: {
        en: 'What should you configure?',
        de: 'Was sollten Sie konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'Private endpoint', de: 'Privater Endpunkt' } },
        { id: 'B', text: { en: 'Service endpoint with a storage firewall rule', de: 'Dienstendpunkt mit Speicherfirewallregel' } },
        { id: 'C', text: { en: 'Public load balancer', de: 'Öffentlicher Load Balancer' } },
        { id: 'D', text: { en: 'Azure Bastion', de: 'Azure Bastion' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Service endpoints extend the VNet identity to the storage service while the service still uses its public endpoint.',
        de: 'Dienstendpunkte erweitern die VNet-Identität zum Speicherdienst, während der Dienst weiterhin seinen öffentlichen Endpunkt verwendet.'
      },
      hint: {
        en: 'Private endpoint would give the service a private IP, which is not required here.',
        de: 'Ein privater Endpunkt würde dem Dienst eine private IP geben, was hier nicht erforderlich ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security'
    },
    {
      id: 'az104-354',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'How can you revoke an active service SAS that is associated with a stored access policy?',
        de: 'Wie können Sie eine aktive Service-SAS widerrufen, die mit einer gespeicherten Zugriffsrichtlinie verknüpft ist?'
      },
      options: [
        { id: 'A', text: { en: 'Delete or modify the stored access policy', de: 'Die gespeicherte Zugriffsrichtlinie löschen oder ändern' } },
        { id: 'B', text: { en: 'Restart the storage account', de: 'Das Speicherkonto neu starten' } },
        { id: 'C', text: { en: 'Move the storage account to another subscription', de: 'Das Speicherkonto in ein anderes Abonnement verschieben' } },
        { id: 'D', text: { en: 'Create a new resource group', de: 'Eine neue Ressourcengruppe erstellen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'When a SAS references a stored access policy, changing or deleting the policy revokes or changes the SAS permissions.',
        de: 'Wenn eine SAS auf eine gespeicherte Zugriffsrichtlinie verweist, widerruft oder ändert das Ändern oder Löschen der Richtlinie die SAS-Berechtigungen.'
      },
      hint: {
        en: 'The policy is the central control point.',
        de: 'Die Richtlinie ist der zentrale Steuerungspunkt.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview'
    },
    {
      id: 'az104-355',
      type: 'multiple',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which features help recover deleted or overwritten blob data? Choose all that apply.',
        de: 'Welche Funktionen helfen bei der Wiederherstellung gelöschter oder überschriebener Blob-Daten? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Blob soft delete', de: 'Blob-Soft-Delete' } },
        { id: 'B', text: { en: 'Blob versioning', de: 'Blob-Versionierung' } },
        { id: 'C', text: { en: 'Blob snapshots', de: 'Blob-Snapshots' } },
        { id: 'D', text: { en: 'Gateway subnet', de: 'Gateway-Subnetz' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Soft delete, versioning, and snapshots all provide recovery options for blob data.',
        de: 'Soft Delete, Versionierung und Snapshots bieten alle Wiederherstellungsoptionen für Blob-Daten.'
      },
      hint: {
        en: 'Choose the blob data protection features.',
        de: 'Wählen Sie die Funktionen zum Schutz von Blob-Daten.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/versioning-overview'
    },
    {
      id: 'az104-356',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which storage redundancy option combines zone redundancy in the primary region, geo-replication to the secondary region, and read access to the secondary endpoint?',
        de: 'Welche Speicherredundanzoption kombiniert Zonenredundanz in der primären Region, Georeplikation in die sekundäre Region und Lesezugriff auf den sekundären Endpunkt?'
      },
      options: [
        { id: 'A', text: { en: 'GRS', de: 'GRS' } },
        { id: 'B', text: { en: 'RA-GRS', de: 'RA-GRS' } },
        { id: 'C', text: { en: 'GZRS', de: 'GZRS' } },
        { id: 'D', text: { en: 'RA-GZRS', de: 'RA-GZRS' } }
      ],
      correct: ['D'],
      explanation: {
        en: 'RA-GZRS provides zone-redundant storage in the primary region plus geo-replication and read access in the secondary region.',
        de: 'RA-GZRS bietet zonenredundanten Speicher in der primären Region sowie Georeplikation und Lesezugriff in der sekundären Region.'
      },
      hint: {
        en: 'This is the most feature-rich option listed.',
        de: 'Dies ist die funktionsreichste aufgeführte Option.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy'
    },
    {
      id: 'az104-357',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Fabrikam, Inc., remote users need low-latency access to company file data from branch office servers, but the ISP blocks outbound TCP 445. The data should still sync to Azure.',
        de: 'Bei Fabrikam, Inc.: remote Benutzer benötigen latenzarmen Zugriff auf Unternehmensdateien von Servern in Niederlassungen, aber der ISP blockiert ausgehendes TCP 445. Die Daten sollen dennoch mit Azure synchronisiert werden.'
      },
      question: {
        en: 'Which Azure storage solution best fits?',
        de: 'Welche Azure-Speicherlösung passt am besten?'
      },
      options: [
        { id: 'A', text: { en: 'Azure File Sync', de: 'Azure File Sync' } },
        { id: 'B', text: { en: 'Public blob containers', de: 'Öffentliche Blobcontainer' } },
        { id: 'C', text: { en: 'Azure Queue Storage', de: 'Azure Queue Storage' } },
        { id: 'D', text: { en: 'Storage account failover', de: 'Speicherkonto-Failover' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure File Sync lets branch servers cache data locally and synchronize with Azure Files, avoiding direct client dependence on SMB over the internet.',
        de: 'Azure File Sync ermöglicht es Niederlassungsservern, Daten lokal zu cachen und mit Azure Files zu synchronisieren, ohne dass Clients direkt von SMB über das Internet abhängen.'
      },
      hint: {
        en: 'Use cached local access plus cloud synchronization.',
        de: 'Verwenden Sie lokalen Zwischenspeicher mit Cloudsynchronisierung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/file-sync/file-sync-planning'
    },
    {
      id: 'az104-358',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Azure Files component connects Windows Servers to an Azure file share and keeps them synchronized?',
        de: 'Welche Azure-Files-Komponente verbindet Windows-Server mit einer Azure-Dateifreigabe und hält sie synchron?'
      },
      options: [
        { id: 'A', text: { en: 'Server endpoint in Azure File Sync', de: 'Serverendpunkt in Azure File Sync' } },
        { id: 'B', text: { en: 'Azure Bastion host', de: 'Azure-Bastion-Host' } },
        { id: 'C', text: { en: 'Application security group', de: 'Anwendungssicherheitsgruppe' } },
        { id: 'D', text: { en: 'Recovery Services vault', de: 'Recovery Services Vault' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A server endpoint in Azure File Sync links a registered Windows Server path to the cloud endpoint in the sync group.',
        de: 'Ein Serverendpunkt in Azure File Sync verbindet einen registrierten Windows-Serverpfad mit dem Cloud-Endpunkt in der Synchronisierungsgruppe.'
      },
      hint: {
        en: 'Think of the File Sync component that represents a server path.',
        de: 'Denken Sie an die File-Sync-Komponente, die einen Serverpfad repräsentiert.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/file-sync/file-sync-terminology'
    },
    {
      id: 'az104-359',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Fabrikam, Inc. Your team needs the Azure Storage migration tool.',
        de: 'Sie arbeiten für Fabrikam, Inc. Ihr Team benötigt das Azure-Speichermigrationstool.'
      },
      question: {
        en: 'Which tool should you use?',
        de: 'Welches Tool sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'AzCopy', de: 'AzCopy' } },
        { id: 'B', text: { en: 'Traffic Manager', de: 'Traffic Manager' } },
        { id: 'C', text: { en: 'Azure Policy', de: 'Azure Policy' } },
        { id: 'D', text: { en: 'Network Watcher', de: 'Network Watcher' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'AzCopy supports Azure Files transfers and can preserve SMB info and permissions with the appropriate flags.',
        de: 'AzCopy unterstützt Übertragungen zu Azure Files und kann mit den entsprechenden Parametern SMB-Informationen und Berechtigungen beibehalten.'
      },
      hint: {
        en: 'Choose the Azure Storage migration tool.',
        de: 'Wählen Sie das Azure-Speichermigrationstool.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-files'
    },
    {
      id: 'az104-360',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which Azure Storage feature supports time-based retention and legal hold for WORM protection?',
        de: 'Welche Azure-Storage-Funktion unterstützt zeitbasierte Aufbewahrung und Legal Hold für WORM-Schutz?'
      },
      options: [
        { id: 'A', text: { en: 'Immutable blob storage', de: 'Unveränderlicher Blob-Speicher' } },
        { id: 'B', text: { en: 'Standard file share snapshots', de: 'Standard-Dateifreigabe-Snapshots' } },
        { id: 'C', text: { en: 'NAT Gateway', de: 'NAT-Gateway' } },
        { id: 'D', text: { en: 'VM boot diagnostics', de: 'VM-Bootdiagnose' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Immutable blob storage supports time-based retention and legal hold policies for regulatory compliance.',
        de: 'Unveränderlicher Blob-Speicher unterstützt Richtlinien für zeitbasierte Aufbewahrung und Legal Hold zur regulatorischen Compliance.'
      },
      hint: {
        en: 'This is the WORM capability of Azure Storage.',
        de: 'Dies ist die WORM-Funktion von Azure Storage.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/immutable-policy-configure-version-scope'
    },
    {
      id: 'az104-361',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Northwind Traders, an application runs on an Azure VM by using a managed identity. It must upload blobs to one container without using storage keys.',
        de: 'Bei Northwind Traders läuft auf einer Azure-VM unter Verwendung einer verwalteten Identität. Sie muss Blobs in einen Container hochladen, ohne Speicherschlüssel zu verwenden.'
      },
      question: {
        en: 'Which role should you assign to the identity?',
        de: 'Welche Rolle sollten Sie der Identität zuweisen?'
      },
      options: [
        { id: 'A', text: { en: 'Reader', de: 'Leser' } },
        { id: 'B', text: { en: 'Storage Blob Data Contributor', de: 'Storage Blob Data Contributor' } },
        { id: 'C', text: { en: 'Storage Account Contributor', de: 'Storage Account Contributor' } },
        { id: 'D', text: { en: 'Virtual Machine Contributor', de: 'Mitwirkender für virtuelle Computer' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Storage Blob Data Contributor grants blob data-plane read and write permissions without exposing account keys.',
        de: 'Storage Blob Data Contributor gewährt Lese- und Schreibberechtigungen auf Datenebene für Blobs, ohne Kontoschlüssel offenzulegen.'
      },
      hint: {
        en: 'The app needs blob data access, not full storage account management.',
        de: 'Die Anwendung benötigt Blob-Datenzugriff und nicht die vollständige Verwaltung des Speicherkontos.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access'
    },
    {
      id: 'az104-362',
      type: 'multiple',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which SAS types are valid in Azure Storage? Choose all that apply.',
        de: 'Welche SAS-Typen sind in Azure Storage gültig? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Account SAS', de: 'Konto-SAS' } },
        { id: 'B', text: { en: 'Service SAS', de: 'Service-SAS' } },
        { id: 'C', text: { en: 'User delegation SAS', de: 'Benutzerdelegierungs-SAS' } },
        { id: 'D', text: { en: 'Connection string SAS', de: 'Verbindungszeichenfolgen-SAS' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Azure Storage supports account SAS, service SAS, and user delegation SAS.',
        de: 'Azure Storage unterstützt Konto-SAS, Service-SAS und Benutzerdelegierungs-SAS.'
      },
      hint: {
        en: 'Only three official SAS types exist here.',
        de: 'Hier gibt es nur drei offizielle SAS-Typen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview'
    },
    {
      id: 'az104-363',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Contoso, Ltd. This is the offline disk export service.',
        de: 'Sie arbeiten für Contoso, Ltd. Dies ist der Dienst für den Offline-Export per Datenträger.'
      },
      question: {
        en: 'Which Azure service handles this workflow?',
        de: 'Welcher Azure-Dienst unterstützt diesen Workflow?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Import/Export export job', de: 'Azure Import/Export-Exportauftrag' } },
        { id: 'B', text: { en: 'Azure Backup', de: 'Azure Backup' } },
        { id: 'C', text: { en: 'Azure Advisor', de: 'Azure Advisor' } },
        { id: 'D', text: { en: 'App Service slot swap', de: 'App-Service-Slotwechsel' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Import/Export supports both import into Azure and export from Azure by using shipped encrypted disks.',
        de: 'Azure Import/Export unterstützt sowohl den Import nach Azure als auch den Export aus Azure mit versendeten verschlüsselten Datenträgern.'
      },
      hint: {
        en: 'This is the offline disk export service.',
        de: 'Dies ist der Dienst für den Offline-Export per Datenträger.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/import-export/storage-import-export-service'
    },
    {
      id: 'az104-364',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What can you use to restore an Azure file share to an earlier point quickly without rebuilding the whole environment?',
        de: 'Was können Sie verwenden, um eine Azure-Dateifreigabe schnell auf einen früheren Zeitpunkt zurückzusetzen, ohne die gesamte Umgebung neu aufzubauen?'
      },
      options: [
        { id: 'A', text: { en: 'Share snapshots', de: 'Freigabe-Snapshots' } },
        { id: 'B', text: { en: 'Application Gateway', de: 'Application Gateway' } },
        { id: 'C', text: { en: 'Azure Policy initiative', de: 'Azure-Policy-Initiative' } },
        { id: 'D', text: { en: 'Route table', de: 'Routingtabelle' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Share snapshots provide point-in-time recovery for Azure Files.',
        de: 'Freigabe-Snapshots bieten eine Point-in-Time-Wiederherstellung für Azure Files.'
      },
      hint: {
        en: 'Use the native file share recovery feature.',
        de: 'Verwenden Sie die native Wiederherstellungsfunktion der Dateifreigabe.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/files/storage-snapshots-files'
    },
    {
      id: 'az104-365',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'Fabrikam, Inc. has branch servers in Munich and Hamburg. Both servers must cache the same Azure file share locally and stay synchronized with the cloud copy.',
        de: 'Fabrikam, Inc. hat Niederlassungsserver in München und Hamburg. Beide Server müssen dieselbe Azure-Dateifreigabe lokal cachen und mit der Cloudkopie synchron bleiben.'
      },
      question: {
        en: 'What should you configure?',
        de: 'Was sollten Sie konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'One sync group with a cloud endpoint and server endpoints for both servers', de: 'Eine Synchronisierungsgruppe mit einem Cloud-Endpunkt und Serverendpunkten für beide Server' } },
        { id: 'B', text: { en: 'Two separate storage accounts with no sync', de: 'Zwei separate Speicherkonten ohne Synchronisierung' } },
        { id: 'C', text: { en: 'A load balancer in front of the servers', de: 'Einen Load Balancer vor den Servern' } },
        { id: 'D', text: { en: 'An application security group', de: 'Eine Anwendungssicherheitsgruppe' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure File Sync uses a sync group with one cloud endpoint and one or more server endpoints that synchronize with the same Azure file share.',
        de: 'Azure File Sync verwendet eine Synchronisierungsgruppe mit einem Cloud-Endpunkt und einem oder mehreren Serverendpunkten, die mit derselben Azure-Dateifreigabe synchronisiert werden.'
      },
      hint: {
        en: 'Multiple branch servers can join the same sync group.',
        de: 'Mehrere Niederlassungsserver können derselben Synchronisierungsgruppe beitreten.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/file-sync/file-sync-terminology'
    },
    {
      id: 'az104-366',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Northwind Traders. Use the extension designed for guest configuration scripts.',
        de: 'Sie arbeiten für Northwind Traders. Verwenden Sie die Erweiterung für Konfigurationsskripte im Gastbetriebssystem.'
      },
      question: {
        en: 'Which VM capability should you use?',
        de: 'Welche VM-Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Custom Script Extension', de: 'Custom Script Extension' } },
        { id: 'B', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'C', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } },
        { id: 'D', text: { en: 'Traffic Manager', de: 'Traffic Manager' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The Custom Script Extension runs post-deployment scripts inside the VM.',
        de: 'Die Custom Script Extension führt Bereitstellungsskripte innerhalb der VM aus.'
      },
      hint: {
        en: 'Use the extension designed for guest configuration scripts.',
        de: 'Verwenden Sie die Erweiterung für Konfigurationsskripte im Gastbetriebssystem.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/extensions/custom-script-windows'
    },
    {
      id: 'az104-367',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'A VM resize request fails because the requested size is not supported on the current hardware cluster. What should you do first?',
        de: 'Eine VM-Größenänderung schlägt fehl, weil die angeforderte Größe auf dem aktuellen Hardwarecluster nicht unterstützt wird. Was sollten Sie zuerst tun?'
      },
      options: [
        { id: 'A', text: { en: 'Stop and deallocate the VM', de: 'Die VM beenden und freigeben' } },
        { id: 'B', text: { en: 'Delete the OS disk', de: 'Den Betriebssystemdatenträger löschen' } },
        { id: 'C', text: { en: 'Add an NSG to the subnet', de: 'Dem Subnetz eine NSG hinzufügen' } },
        { id: 'D', text: { en: 'Convert the VM to a container group', de: 'Die VM in eine Containergruppe umwandeln' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Stopping and deallocating the VM can allow Azure to place it on hardware that supports the new size.',
        de: 'Durch das Beenden und Freigeben der VM kann Azure sie auf Hardware platzieren, die die neue Größe unterstützt.'
      },
      hint: {
        en: 'Resize constraints can be tied to the host cluster.',
        de: 'Größenänderungsbeschränkungen können an den Hostcluster gebunden sein.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/resize-vm'
    },
    {
      id: 'az104-368',
      type: 'multiple',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which are Azure managed disk types? Choose all that apply.',
        de: 'Welche sind Azure Managed-Disk-Typen? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Standard HDD', de: 'Standard HDD' } },
        { id: 'B', text: { en: 'Standard SSD', de: 'Standard SSD' } },
        { id: 'C', text: { en: 'Premium SSD', de: 'Premium SSD' } },
        { id: 'D', text: { en: 'Ultra Disk', de: 'Ultra Disk' } }
      ],
      correct: ['A', 'B', 'C', 'D'],
      explanation: {
        en: 'Azure managed disks include Standard HDD, Standard SSD, Premium SSD, and Ultra Disk offerings.',
        de: 'Azure Managed Disks umfassen Standard HDD, Standard SSD, Premium SSD und Ultra Disk.'
      },
      hint: {
        en: 'All listed items are valid managed disk types.',
        de: 'Alle aufgeführten Elemente sind gültige Managed-Disk-Typen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/managed-disks-overview'
    },
    {
      id: 'az104-369',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Contoso, Ltd. Think image versioning and regional distribution.',
        de: 'Sie arbeiten für Contoso, Ltd. Ihr Team evaluiert Image-Versionierung und regionale Verteilung.'
      },
      question: {
        en: 'Which service should you use?',
        de: 'Welchen Dienst sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Compute Gallery', de: 'Azure Compute Gallery' } },
        { id: 'B', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'C', text: { en: 'Traffic Manager', de: 'Traffic Manager' } },
        { id: 'D', text: { en: 'Recovery Services vault', de: 'Recovery Services Vault' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Compute Gallery stores and versions images and can replicate them to multiple regions.',
        de: 'Azure Compute Gallery speichert und versioniert Images und kann sie in mehrere Regionen replizieren.'
      },
      hint: {
        en: 'Think image versioning and regional distribution.',
        de: 'Denken Sie an Image-Versionierung und regionale Verteilung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/azure-compute-gallery'
    },
    {
      id: 'az104-370',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which VM scale set orchestration mode is best for identical instances managed as one set with simple autoscaling behavior?',
        de: 'Welcher VM-Scale-Set-Orchestrierungsmodus ist am besten für identische Instanzen geeignet, die als ein Satz mit einfachem Autoscaling-Verhalten verwaltet werden?'
      },
      options: [
        { id: 'A', text: { en: 'Flexible', de: 'Flexible' } },
        { id: 'B', text: { en: 'Uniform', de: 'Uniform' } },
        { id: 'C', text: { en: 'Manual', de: 'Manual' } },
        { id: 'D', text: { en: 'Dedicated', de: 'Dedicated' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Uniform orchestration is designed for large sets of identical VMs managed as a single scale set model.',
        de: 'Uniform-Orchestrierung ist für große Gruppen identischer VMs vorgesehen, die als ein einziges Scale-Set-Modell verwaltet werden.'
      },
      hint: {
        en: 'Choose the classic identical-instance model.',
        de: 'Wählen Sie das klassische Modell identischer Instanzen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview'
    },
    {
      id: 'az104-371',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Fabrikam, Inc. This is the more adaptable VMSS model.',
        de: 'Sie arbeiten für Fabrikam, Inc. Dies ist das anpassungsfähigere VMSS-Modell.'
      },
      question: {
        en: 'Which orchestration mode should you choose?',
        de: 'Welchen Orchestrierungsmodus sollten Sie wählen?'
      },
      options: [
        { id: 'A', text: { en: 'Uniform', de: 'Uniform' } },
        { id: 'B', text: { en: 'Flexible', de: 'Flexible' } },
        { id: 'C', text: { en: 'Classic', de: 'Classic' } },
        { id: 'D', text: { en: 'Isolated', de: 'Isolated' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Flexible orchestration supports more varied VM configurations and individual instance management scenarios.',
        de: 'Flexible Orchestrierung unterstützt vielfältigere VM-Konfigurationen und Szenarien für die individuelle Instanzverwaltung.'
      },
      hint: {
        en: 'This is the more adaptable VMSS model.',
        de: 'Dies ist das anpassungsfähigere VMSS-Modell.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-orchestration-modes'
    },
    {
      id: 'az104-372',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Azure service provides browser-based RDP and SSH access to VMs without requiring public IP addresses on the VMs?',
        de: 'Welcher Azure-Dienst bietet browserbasierten RDP- und SSH-Zugriff auf VMs, ohne öffentliche IP-Adressen auf den VMs zu erfordern?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'B', text: { en: 'Azure Firewall', de: 'Azure Firewall' } },
        { id: 'C', text: { en: 'Traffic Manager', de: 'Traffic Manager' } },
        { id: 'D', text: { en: 'Azure Policy', de: 'Azure Policy' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Bastion provides secure RDP and SSH access through the Azure portal without public IP addresses on the target VMs.',
        de: 'Azure Bastion bietet sicheren RDP- und SSH-Zugriff über das Azure-Portal ohne öffentliche IP-Adressen auf den Ziel-VMs.'
      },
      hint: {
        en: 'This is the managed jump host service.',
        de: 'Dies ist der verwaltete Jump-Host-Dienst.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/bastion/bastion-overview'
    },
    {
      id: 'az104-373',
      type: 'multiple',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statements about Bicep are correct? Choose all that apply.',
        de: 'Welche Aussagen zu Bicep sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'It is a declarative language for Azure deployments', de: 'Es ist eine deklarative Sprache für Azure-Bereitstellungen' } },
        { id: 'B', text: { en: 'It supports modular reusable files', de: 'Es unterstützt modulare wiederverwendbare Dateien' } },
        { id: 'C', text: { en: 'It compiles to ARM JSON templates', de: 'Es wird zu ARM-JSON-Vorlagen kompiliert' } },
        { id: 'D', text: { en: 'It requires an always-running agent in every subscription', de: 'Es erfordert einen ständig laufenden Agenten in jedem Abonnement' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Bicep is declarative, supports modules, and transpiles to ARM JSON for deployment.',
        de: 'Bicep ist deklarativ, unterstützt Module und wird für die Bereitstellung in ARM-JSON transpiliert.'
      },
      hint: {
        en: 'Focus on language characteristics, not imaginary runtime agents.',
        de: 'Konzentrieren Sie sich auf Spracheigenschaften und nicht auf imaginäre Laufzeitagenten.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview'
    },
    {
      id: 'az104-374',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Northwind Traders. Think staging slot and swap.',
        de: 'Sie arbeiten für Northwind Traders. Ihr Team evaluiert Staging-Slot und Swap.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Deployment slots', de: 'Bereitstellungsslots' } },
        { id: 'B', text: { en: 'Resource locks', de: 'Ressourcensperren' } },
        { id: 'C', text: { en: 'Azure DNS public zones', de: 'Öffentliche Azure-DNS-Zonen' } },
        { id: 'D', text: { en: 'Availability sets', de: 'Verfügbarkeitsgruppen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Deployment slots support staging and controlled swap into production with minimal downtime.',
        de: 'Bereitstellungsslots unterstützen Staging und kontrolliertes Umschalten in die Produktion mit minimaler Ausfallzeit.'
      },
      hint: {
        en: 'Think staging slot and swap.',
        de: 'Denken Sie an Staging-Slot und Swap.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/deploy-staging-slots'
    },
    {
      id: 'az104-375',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which resource determines the compute size and scaling characteristics for an Azure App Service app?',
        de: 'Welche Ressource bestimmt die Compute-Größe und die Skalierungseigenschaften für eine Azure-App-Service-Anwendung?'
      },
      options: [
        { id: 'A', text: { en: 'App Service plan', de: 'App-Service-Plan' } },
        { id: 'B', text: { en: 'Action group', de: 'Aktionsgruppe' } },
        { id: 'C', text: { en: 'Log Analytics workspace', de: 'Log-Analytics-Arbeitsbereich' } },
        { id: 'D', text: { en: 'User-defined route', de: 'Benutzerdefinierte Route' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The App Service plan defines the underlying compute resources, pricing tier, and scaling behavior for the app.',
        de: 'Der App-Service-Plan definiert die zugrunde liegenden Computeressourcen, die Preisstufe und das Skalierungsverhalten der App.'
      },
      hint: {
        en: 'The app runs inside the plan.',
        de: 'Die App läuft innerhalb des Plans.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans'
    },
    {
      id: 'az104-376',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Contoso, Ltd. Your team needs the lightweight container runtime service.',
        de: 'Sie arbeiten für Contoso, Ltd. Ihr Team benötigt den leichtgewichtigen Dienst zur Containerausführung.'
      },
      question: {
        en: 'Which service should you use?',
        de: 'Welchen Dienst sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Container Instances', de: 'Azure Container Instances' } },
        { id: 'B', text: { en: 'Azure Kubernetes Service', de: 'Azure Kubernetes Service' } },
        { id: 'C', text: { en: 'Azure Virtual Desktop', de: 'Azure Virtual Desktop' } },
        { id: 'D', text: { en: 'Azure Firewall', de: 'Azure Firewall' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Container Instances is designed for fast, serverless container execution without cluster management.',
        de: 'Azure Container Instances ist für eine schnelle serverlose Containerausführung ohne Clusterverwaltung gedacht.'
      },
      hint: {
        en: 'Choose the lightweight container runtime service.',
        de: 'Wählen Sie den leichtgewichtigen Dienst zur Containerausführung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/container-instances/container-instances-overview'
    },
    {
      id: 'az104-377',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Azure service gives you a managed Kubernetes control plane?',
        de: 'Welcher Azure-Dienst stellt Ihnen eine verwaltete Kubernetes-Steuerungsebene bereit?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Kubernetes Service', de: 'Azure Kubernetes Service' } },
        { id: 'B', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'C', text: { en: 'Azure NetApp Files', de: 'Azure NetApp Files' } },
        { id: 'D', text: { en: 'Azure Advisor', de: 'Azure Advisor' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'AKS provides a managed Kubernetes service with Azure-managed control plane components.',
        de: 'AKS bietet einen verwalteten Kubernetes-Dienst mit von Azure verwalteten Control-Plane-Komponenten.'
      },
      hint: {
        en: 'This is the managed Kubernetes offering.',
        de: 'Dies ist das verwaltete Kubernetes-Angebot.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/aks/what-is-aks'
    },
    {
      id: 'az104-378',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Fabrikam, Inc. Generalize the operating system first.',
        de: 'Sie arbeiten für Fabrikam, Inc. Generalisieren Sie zuerst das Betriebssystem.'
      },
      question: {
        en: 'What must you do before capturing the image?',
        de: 'Was müssen Sie vor dem Erfassen des Images tun?'
      },
      options: [
        { id: 'A', text: { en: 'Run Sysprep to generalize the VM', de: 'Sysprep ausführen, um die VM zu generalisieren' } },
        { id: 'B', text: { en: 'Enable Traffic Manager', de: 'Traffic Manager aktivieren' } },
        { id: 'C', text: { en: 'Create a VPN gateway', de: 'Ein VPN-Gateway erstellen' } },
        { id: 'D', text: { en: 'Apply a CanNotDelete lock', de: 'Eine CanNotDelete-Sperre anwenden' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Windows VMs must be generalized with Sysprep before image capture so the image can be reused safely.',
        de: 'Windows-VMs müssen vor dem Erfassen des Images mit Sysprep generalisiert werden, damit das Image sicher wiederverwendet werden kann.'
      },
      hint: {
        en: 'Generalize the operating system first.',
        de: 'Generalisieren Sie zuerst das Betriebssystem.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/generalize'
    },
    {
      id: 'az104-379',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Azure VM disk type can be detached from one VM and attached to another while keeping the data?',
        de: 'Welcher Azure-VM-Datenträgertyp kann von einer VM getrennt und an eine andere angefügt werden, während die Daten erhalten bleiben?'
      },
      options: [
        { id: 'A', text: { en: 'Temporary disk', de: 'Temporärer Datenträger' } },
        { id: 'B', text: { en: 'Data disk', de: 'Datenträger' } },
        { id: 'C', text: { en: 'Ephemeral OS disk', de: 'Ephemerer Betriebssystemdatenträger' } },
        { id: 'D', text: { en: 'Cache disk', de: 'Cache-Datenträger' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Managed data disks are persistent and can be detached and reattached to other VMs.',
        de: 'Verwaltete Datenträger sind persistent und können getrennt und an andere VMs angefügt werden.'
      },
      hint: {
        en: 'Temporary and ephemeral disks are not for persistent reattachment.',
        de: 'Temporäre und ephemere Datenträger sind nicht für persistente Wiederanfügung gedacht.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/managed-disks-overview'
    },
    {
      id: 'az104-380',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Northwind Traders, a clustered application running on several VMs requires the same managed disk to be mounted by multiple VMs simultaneously.',
        de: 'Bei Northwind Traders: eine Clusteranwendung, die auf mehreren VMs läuft, erfordert, dass derselbe verwaltete Datenträger gleichzeitig von mehreren VMs eingebunden wird.'
      },
      question: {
        en: 'Which Azure disk feature supports this?',
        de: 'Welche Azure-Datenträgerfunktion unterstützt dies?'
      },
      options: [
        { id: 'A', text: { en: 'Shared disks', de: 'Freigegebene Datenträger' } },
        { id: 'B', text: { en: 'Ephemeral OS disks', de: 'Ephemere Betriebssystemdatenträger' } },
        { id: 'C', text: { en: 'Host caching', de: 'Hostcaching' } },
        { id: 'D', text: { en: 'Boot diagnostics', de: 'Bootdiagnose' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure shared disks allow a managed disk to be attached to multiple VMs for clustered applications.',
        de: 'Freigegebene Azure-Datenträger ermöglichen es, einen verwalteten Datenträger für Clusteranwendungen an mehrere VMs anzufügen.'
      },
      hint: {
        en: 'This is the multi-attach disk feature.',
        de: 'Dies ist die Multi-Attach-Funktion für Datenträger.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/disks-shared'
    },
    {
      id: 'az104-381',
      type: 'multiple',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which are Azure Bastion benefits? Choose all that apply.',
        de: 'Welche Vorteile bietet Azure Bastion? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'RDP and SSH through the Azure portal', de: 'RDP und SSH über das Azure-Portal' } },
        { id: 'B', text: { en: 'No public IP address required on the target VM', de: 'Keine öffentliche IP-Adresse auf der Ziel-VM erforderlich' } },
        { id: 'C', text: { en: 'Managed jump host service in the VNet', de: 'Verwalteter Jump-Host-Dienst im VNet' } },
        { id: 'D', text: { en: 'Automatic OS patching of the guest VM', de: 'Automatisches Patchen des Gastbetriebssystems der VM' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Azure Bastion provides managed jump host access for RDP and SSH without exposing target VMs with public IP addresses.',
        de: 'Azure Bastion bietet verwalteten Jump-Host-Zugriff für RDP und SSH, ohne Ziel-VMs mit öffentlichen IP-Adressen offenzulegen.'
      },
      hint: {
        en: 'It is about secure access, not guest patch management.',
        de: 'Es geht um sicheren Zugriff und nicht um das Patchmanagement des Gastsystems.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/bastion/bastion-overview'
    },
    {
      id: 'az104-382',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Contoso, Ltd., a Linux VM fails to boot after a kernel update. You need a screenshot and serial console log for troubleshooting.',
        de: 'Bei Contoso, Ltd.: eine Linux-VM startet nach einem Kernel-Update nicht mehr. Sie benötigen einen Screenshot und ein Seriellkonsolenprotokoll zur Fehlerbehebung.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Boot diagnostics', de: 'Bootdiagnose' } },
        { id: 'B', text: { en: 'Azure Firewall logs', de: 'Azure-Firewall-Protokolle' } },
        { id: 'C', text: { en: 'Azure Policy remediation', de: 'Azure-Policy-Behebung' } },
        { id: 'D', text: { en: 'Traffic Manager probes', de: 'Traffic-Manager-Sonden' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Boot diagnostics captures screenshots and serial console logs for startup troubleshooting.',
        de: 'Die Bootdiagnose erfasst Screenshots und Seriellkonsolenprotokolle für die Fehlerbehebung beim Start.'
      },
      hint: {
        en: 'Use the startup evidence feature.',
        de: 'Verwenden Sie die Funktion für Startdiagnosedaten.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/boot-diagnostics'
    },
    {
      id: 'az104-383',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Azure VM feature lets you run a script inside a VM without opening inbound RDP or SSH access?',
        de: 'Welche Azure-VM-Funktion ermöglicht es Ihnen, ein Skript innerhalb einer VM auszuführen, ohne eingehenden RDP- oder SSH-Zugriff zu öffnen?'
      },
      options: [
        { id: 'A', text: { en: 'Run Command', de: 'Run Command' } },
        { id: 'B', text: { en: 'Application Gateway', de: 'Application Gateway' } },
        { id: 'C', text: { en: 'Virtual WAN', de: 'Virtual WAN' } },
        { id: 'D', text: { en: 'Azure DNS', de: 'Azure DNS' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Run Command executes scripts in the guest through the Azure control plane.',
        de: 'Run Command führt Skripte im Gast über die Azure-Control-Plane aus.'
      },
      hint: {
        en: 'It is a control-plane assisted guest command feature.',
        de: 'Es handelt sich um eine über die Control-Plane unterstützte Gastbefehlsfunktion.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/windows/run-command'
    },
    {
      id: 'az104-384',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Northwind Traders. Scale the compute plan that hosts the app.',
        de: 'Sie arbeiten für Northwind Traders. Skalieren Sie den Compute-Plan, der die App hostet.'
      },
      question: {
        en: 'Where should you configure autoscale?',
        de: 'Wo sollten Sie Autoscale konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'On the App Service plan', de: 'Auf dem App-Service-Plan' } },
        { id: 'B', text: { en: 'On the deployment slot only', de: 'Nur auf dem Bereitstellungsslot' } },
        { id: 'C', text: { en: 'On the private DNS zone', de: 'Auf der privaten DNS-Zone' } },
        { id: 'D', text: { en: 'On the action group', de: 'Auf der Aktionsgruppe' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'App Service scale settings apply at the App Service plan level because the plan provides the compute instances.',
        de: 'App-Service-Skalierungseinstellungen gelten auf Ebene des App-Service-Plans, weil der Plan die Compute-Instanzen bereitstellt.'
      },
      hint: {
        en: 'Scale the compute plan that hosts the app.',
        de: 'Skalieren Sie den Compute-Plan, der die App hostet.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/manage-scale-up'
    },
    {
      id: 'az104-385',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What does the bicep build command produce?',
        de: 'Was erzeugt der Befehl bicep build?'
      },
      options: [
        { id: 'A', text: { en: 'An ARM JSON template', de: 'Eine ARM-JSON-Vorlage' } },
        { id: 'B', text: { en: 'A running VM scale set', de: 'Ein laufendes VM-Scale-Set' } },
        { id: 'C', text: { en: 'A Log Analytics workspace', de: 'Einen Log-Analytics-Arbeitsbereich' } },
        { id: 'D', text: { en: 'A ZIP deployment package only', de: 'Nur ein ZIP-Bereitstellungspaket' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'bicep build transpiles Bicep code into an ARM JSON template.',
        de: 'bicep build transpiliert Bicep-Code in eine ARM-JSON-Vorlage.'
      },
      hint: {
        en: 'Bicep is compiled to ARM JSON before deployment.',
        de: 'Bicep wird vor der Bereitstellung in ARM-JSON kompiliert.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/bicep-cli'
    },
    {
      id: 'az104-386',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Contoso, Ltd. Use the Azure service made for fleets of similar VMs.',
        de: 'Sie arbeiten für Contoso, Ltd. Verwenden Sie den Azure-Dienst für Flotten ähnlicher VMs.'
      },
      question: {
        en: 'Which Azure compute option should you use?',
        de: 'Welche Azure-Compute-Option sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Virtual machine scale sets', de: 'Virtual Machine Scale Sets' } },
        { id: 'B', text: { en: 'Availability sets', de: 'Verfügbarkeitsgruppen' } },
        { id: 'C', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'D', text: { en: 'Recovery Services vault', de: 'Recovery Services Vault' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'VM scale sets are designed for large groups of similar VMs with autoscale and lifecycle management.',
        de: 'VM-Scale-Sets sind für große Gruppen ähnlicher VMs mit Autoscale und Lebenszyklusverwaltung ausgelegt.'
      },
      hint: {
        en: 'Use the Azure service made for fleets of similar VMs.',
        de: 'Verwenden Sie den Azure-Dienst für Flotten ähnlicher VMs.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview'
    },
    {
      id: 'az104-387',
      type: 'multiple',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statements about Azure Kubernetes Service are correct? Choose all that apply.',
        de: 'Welche Aussagen zu Azure Kubernetes Service sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'The Kubernetes control plane is managed by Azure', de: 'Die Kubernetes-Steuerungsebene wird von Azure verwaltet' } },
        { id: 'B', text: { en: 'AKS supports node pools for worker nodes', de: 'AKS unterstützt Knotenpools für Worker-Knoten' } },
        { id: 'C', text: { en: 'AKS integrates with Azure monitoring options', de: 'AKS integriert sich in Azure-Überwachungsoptionen' } },
        { id: 'D', text: { en: 'AKS replaces the need for any virtual network configuration', de: 'AKS ersetzt die Notwendigkeit jeglicher Konfiguration virtueller Netzwerke' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'AKS provides a managed control plane, supports node pools, and integrates with Azure monitoring, but networking still matters.',
        de: 'AKS stellt eine verwaltete Control Plane bereit, unterstützt Knotenpools und integriert sich in Azure-Monitoring, aber Netzwerkkonfiguration bleibt weiterhin wichtig.'
      },
      hint: {
        en: 'Pick real managed Kubernetes capabilities.',
        de: 'Wählen Sie echte Funktionen des verwalteten Kubernetes-Dienstes.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/aks/what-is-aks'
    },
    {
      id: 'az104-388',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Fabrikam, Inc. This is NSG grouping by workload role.',
        de: 'Sie arbeiten für Fabrikam, Inc. Dies ist die NSG-Gruppierung nach Workload-Rolle.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Application security groups', de: 'Anwendungssicherheitsgruppen' } },
        { id: 'B', text: { en: 'Management groups', de: 'Verwaltungsgruppen' } },
        { id: 'C', text: { en: 'Action groups', de: 'Aktionsgruppen' } },
        { id: 'D', text: { en: 'Recovery points', de: 'Wiederherstellungspunkte' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Application security groups let you group NICs and reference those groups in NSG rules.',
        de: 'Anwendungssicherheitsgruppen ermöglichen das Gruppieren von NICs und die Referenzierung dieser Gruppen in NSG-Regeln.'
      },
      hint: {
        en: 'This is NSG grouping by workload role.',
        de: 'Dies ist die NSG-Gruppierung nach Workload-Rolle.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/application-security-groups'
    },
    {
      id: 'az104-389',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which feature gives a storage account or Azure SQL resource a private IP address from your subnet?',
        de: 'Welche Funktion gibt einem Speicherkonto oder einer Azure-SQL-Ressource eine private IP-Adresse aus Ihrem Subnetz?'
      },
      options: [
        { id: 'A', text: { en: 'Private endpoint', de: 'Privater Endpunkt' } },
        { id: 'B', text: { en: 'Service endpoint', de: 'Dienstendpunkt' } },
        { id: 'C', text: { en: 'Public load balancer', de: 'Öffentlicher Load Balancer' } },
        { id: 'D', text: { en: 'NAT Gateway', de: 'NAT-Gateway' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A private endpoint places a private IP for the PaaS resource inside your subnet.',
        de: 'Ein privater Endpunkt platziert eine private IP für die PaaS-Ressource innerhalb Ihres Subnetzes.'
      },
      hint: {
        en: 'Private Link brings the service into your VNet by private IP.',
        de: 'Private Link bringt den Dienst über eine private IP in Ihr VNet.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-overview'
    },
    {
      id: 'az104-390',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Northwind Traders. This is Azure backbone access without a private IP on the service.',
        de: 'Sie arbeiten für Northwind Traders. Dies ist Azure-Backbone-Zugriff ohne private IP am Dienst.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Service endpoint', de: 'Dienstendpunkt' } },
        { id: 'B', text: { en: 'Private endpoint', de: 'Privater Endpunkt' } },
        { id: 'C', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'D', text: { en: 'ExpressRoute gateway', de: 'ExpressRoute-Gateway' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Service endpoints extend the subnet identity to the Azure service while the service still uses its public endpoint.',
        de: 'Dienstendpunkte erweitern die Subnetzidentität zum Azure-Dienst, während der Dienst weiterhin seinen öffentlichen Endpunkt verwendet.'
      },
      hint: {
        en: 'This is Azure backbone access without a private IP on the service.',
        de: 'Dies ist Azure-Backbone-Zugriff ohne private IP am Dienst.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/virtual-network-service-endpoints-overview'
    },
    {
      id: 'az104-391',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'What is the Azure Private DNS zone name used for Azure SQL Database private endpoints?',
        de: 'Wie lautet der Name der Azure-Private-DNS-Zone, die für private Endpunkte von Azure SQL Database verwendet wird?'
      },
      options: [
        { id: 'A', text: { en: 'privatelink.database.windows.net', de: 'privatelink.database.windows.net' } },
        { id: 'B', text: { en: 'database.private.azure.com', de: 'database.private.azure.com' } },
        { id: 'C', text: { en: 'privatelink.azure.sql', de: 'privatelink.azure.sql' } },
        { id: 'D', text: { en: 'sql.private.windows.net', de: 'sql.private.windows.net' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure SQL private endpoints commonly use the Private DNS zone privatelink.database.windows.net.',
        de: 'Private Endpunkte für Azure SQL verwenden üblicherweise die Private-DNS-Zone privatelink.database.windows.net.'
      },
      hint: {
        en: 'Remember the standard privatelink zone naming convention.',
        de: 'Merken Sie sich die Standardbenennung der privatelink-Zonen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-dns'
    },
    {
      id: 'az104-392',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which statements about VNet peering are correct? Choose all that apply.',
        de: 'Welche Aussagen zum VNet-Peering sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Peered VNets communicate over private IP addresses', de: 'Gepaarte VNets kommunizieren über private IP-Adressen' } },
        { id: 'B', text: { en: 'Global VNet peering can connect VNets in different regions', de: 'Globales VNet-Peering kann VNets in verschiedenen Regionen verbinden' } },
        { id: 'C', text: { en: 'VNet peering is non-transitive', de: 'VNet-Peering ist nicht transitiv' } },
        { id: 'D', text: { en: 'VNet peering works only inside one region', de: 'VNet-Peering funktioniert nur innerhalb einer Region' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Peering uses private connectivity, can be global, and does not provide transitive routing between VNets.',
        de: 'Peering nutzt private Konnektivität, kann global sein und bietet keine transitive Weiterleitung zwischen VNets.'
      },
      hint: {
        en: 'Know the benefits and the limitation of non-transitivity.',
        de: 'Kennen Sie die Vorteile und die Einschränkung der fehlenden Transitivität.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/virtual-network-peering-overview'
    },
    {
      id: 'az104-393',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Fabrikam, Inc., remote administrators need to connect individually from laptops to an Azure VNet by using certificates.',
        de: 'Bei Fabrikam, Inc.: remote Administratoren müssen sich einzeln von Laptops aus per Zertifikat mit einem Azure-VNet verbinden.'
      },
      question: {
        en: 'Which VPN type should you deploy?',
        de: 'Welchen VPN-Typ sollten Sie bereitstellen?'
      },
      options: [
        { id: 'A', text: { en: 'Point-to-site VPN', de: 'Point-to-Site-VPN' } },
        { id: 'B', text: { en: 'Site-to-site VPN', de: 'Site-to-Site-VPN' } },
        { id: 'C', text: { en: 'ExpressRoute', de: 'ExpressRoute' } },
        { id: 'D', text: { en: 'VNet peering', de: 'VNet-Peering' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Point-to-site VPN is designed for individual client devices connecting to Azure.',
        de: 'Point-to-Site-VPN ist für einzelne Clientgeräte konzipiert, die sich mit Azure verbinden.'
      },
      hint: {
        en: 'This is client-to-VNet connectivity.',
        de: 'Dies ist Client-zu-VNet-Konnektivität.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/vpn-gateway/point-to-site-about'
    },
    {
      id: 'az104-394',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Azure connectivity option provides a private dedicated circuit that does not traverse the public internet?',
        de: 'Welche Azure-Konnektivitätsoption bietet eine private dedizierte Leitung, die nicht über das öffentliche Internet verläuft?'
      },
      options: [
        { id: 'A', text: { en: 'Point-to-site VPN', de: 'Point-to-Site-VPN' } },
        { id: 'B', text: { en: 'ExpressRoute', de: 'ExpressRoute' } },
        { id: 'C', text: { en: 'VNet peering', de: 'VNet-Peering' } },
        { id: 'D', text: { en: 'NAT Gateway', de: 'NAT-Gateway' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'ExpressRoute provides private dedicated connectivity between your on-premises environment and Microsoft.',
        de: 'ExpressRoute bietet private dedizierte Konnektivität zwischen Ihrer lokalen Umgebung und Microsoft.'
      },
      hint: {
        en: 'Choose the dedicated private circuit service.',
        de: 'Wählen Sie den Dienst für die dedizierte private Leitung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/expressroute/expressroute-introduction'
    },
    {
      id: 'az104-395',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Northwind Traders, a subnet hosts many VMs that need scalable outbound internet access without inbound exposure or individual public IP addresses.',
        de: 'Bei Northwind Traders: ein Subnetz hostet viele VMs, die skalierbaren ausgehenden Internetzugriff ohne eingehende Erreichbarkeit oder individuelle öffentliche IP-Adressen benötigen.'
      },
      question: {
        en: 'Which Azure service should you use?',
        de: 'Welchen Azure-Dienst sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'NAT Gateway', de: 'NAT-Gateway' } },
        { id: 'B', text: { en: 'Application Gateway', de: 'Application Gateway' } },
        { id: 'C', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'D', text: { en: 'Traffic Manager', de: 'Traffic Manager' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'NAT Gateway provides scalable outbound SNAT for resources in a subnet without exposing inbound access.',
        de: 'Das NAT-Gateway bietet skalierbares ausgehendes SNAT für Ressourcen in einem Subnetz, ohne eingehenden Zugriff offenzulegen.'
      },
      hint: {
        en: 'This is outbound connectivity for a subnet.',
        de: 'Dies ist die ausgehende Konnektivität für ein Subnetz.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/nat-gateway/nat-overview'
    },
    {
      id: 'az104-396',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which are core components of an Azure Standard Load Balancer configuration? Choose all that apply.',
        de: 'Welche sind Kernkomponenten einer Konfiguration für Azure Standard Load Balancer? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Frontend IP configuration', de: 'Frontend-IP-Konfiguration' } },
        { id: 'B', text: { en: 'Backend pool', de: 'Back-End-Pool' } },
        { id: 'C', text: { en: 'Health probe', de: 'Integritätsprüfung' } },
        { id: 'D', text: { en: 'WAF policy', de: 'WAF-Richtlinie' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'A load balancer uses frontend IPs, backend pools, probes, and rules. WAF policy belongs to Application Gateway.',
        de: 'Ein Load Balancer verwendet Frontend-IPs, Back-End-Pools, Sonden und Regeln. Eine WAF-Richtlinie gehört zu Application Gateway.'
      },
      hint: {
        en: 'Separate Layer 4 load balancing from web application firewall features.',
        de: 'Trennen Sie Layer-4-Lastverteilung von Web-Application-Firewall-Funktionen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/load-balancer/load-balancer-overview'
    },
    {
      id: 'az104-397',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Contoso, Ltd. This is the Azure web traffic reverse proxy service.',
        de: 'Sie arbeiten für Contoso, Ltd. Dies ist der Azure-Dienst für Webverkehr als Reverse Proxy.'
      },
      question: {
        en: 'Which service should you use?',
        de: 'Welchen Dienst sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Application Gateway WAF', de: 'Application Gateway WAF' } },
        { id: 'B', text: { en: 'Standard Load Balancer', de: 'Standard Load Balancer' } },
        { id: 'C', text: { en: 'Traffic Manager', de: 'Traffic Manager' } },
        { id: 'D', text: { en: 'NAT Gateway', de: 'NAT-Gateway' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Application Gateway operates at Layer 7 and supports path-based routing and WAF capabilities.',
        de: 'Application Gateway arbeitet auf Layer 7 und unterstützt pfadbasiertes Routing sowie WAF-Funktionen.'
      },
      hint: {
        en: 'This is the Azure web traffic reverse proxy service.',
        de: 'Dies ist der Azure-Dienst für Webverkehr als Reverse Proxy.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/application-gateway/overview'
    },
    {
      id: 'az104-398',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Azure DNS resource hosts an internet-resolvable zone such as contoso.com?',
        de: 'Welche Azure-DNS-Ressource hostet eine im Internet auflösbare Zone wie contoso.com?'
      },
      options: [
        { id: 'A', text: { en: 'Azure DNS public zone', de: 'Öffentliche Azure-DNS-Zone' } },
        { id: 'B', text: { en: 'Azure Private DNS zone', de: 'Private Azure-DNS-Zone' } },
        { id: 'C', text: { en: 'Private endpoint', de: 'Privater Endpunkt' } },
        { id: 'D', text: { en: 'Application security group', de: 'Anwendungssicherheitsgruppe' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure DNS public zones host public DNS records resolvable on the internet.',
        de: 'Öffentliche Azure-DNS-Zonen hosten öffentliche DNS-Einträge, die im Internet auflösbar sind.'
      },
      hint: {
        en: 'Public internet names need a public DNS zone.',
        de: 'Öffentliche Internetnamen benötigen eine öffentliche DNS-Zone.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/dns/dns-overview'
    },
    {
      id: 'az104-399',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Contoso, Ltd., a name such as db.corp.contoso.internal must resolve only inside linked VNets.',
        de: 'Bei Contoso, Ltd.: ein Name wie db.corp.contoso.internal darf nur innerhalb verknüpfter VNets aufgelöst werden.'
      },
      question: {
        en: 'Which service should you use?',
        de: 'Welchen Dienst sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Private DNS zone', de: 'Private Azure-DNS-Zone' } },
        { id: 'B', text: { en: 'Azure DNS public zone', de: 'Öffentliche Azure-DNS-Zone' } },
        { id: 'C', text: { en: 'Traffic Manager profile', de: 'Traffic-Manager-Profil' } },
        { id: 'D', text: { en: 'Standard public IP', de: 'Standardmäßige öffentliche IP' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Private DNS zones provide private name resolution within linked VNets.',
        de: 'Private Azure-DNS-Zonen bieten private Namensauflösung innerhalb verknüpfter VNets.'
      },
      hint: {
        en: 'The zone must stay private to VNets.',
        de: 'Die Zone muss privat für VNets bleiben.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/dns/private-dns-privatednszone'
    },
    {
      id: 'az104-400',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Fabrikam, Inc. This is the direct regional VNet connection feature.',
        de: 'Sie arbeiten für Fabrikam, Inc. Dies ist die direkte regionsübergreifende VNet-Verbindungsfunktion.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Global VNet peering', de: 'Globales VNet-Peering' } },
        { id: 'B', text: { en: 'Site-to-site VPN between the VNets', de: 'Site-to-Site-VPN zwischen den VNets' } },
        { id: 'C', text: { en: 'Traffic Manager', de: 'Traffic Manager' } },
        { id: 'D', text: { en: 'Azure Firewall Manager', de: 'Azure Firewall Manager' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Global VNet peering connects VNets across regions over the Azure backbone without gateways.',
        de: 'Globales VNet-Peering verbindet VNets regionsübergreifend über das Azure-Backbone ohne Gateways.'
      },
      hint: {
        en: 'This is the direct regional VNet connection feature.',
        de: 'Dies ist die direkte regionsübergreifende VNet-Verbindungsfunktion.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/virtual-network-peering-overview'
    },
    {
      id: 'az104-401',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which rule types are supported by Azure Firewall? Choose all that apply.',
        de: 'Welche Regeltypen werden von Azure Firewall unterstützt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Network rules', de: 'Netzwerkregeln' } },
        { id: 'B', text: { en: 'Application rules', de: 'Anwendungsregeln' } },
        { id: 'C', text: { en: 'NAT rules', de: 'NAT-Regeln' } },
        { id: 'D', text: { en: 'Administrative unit rules', de: 'Regeln für administrative Einheiten' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Azure Firewall supports network, application, and NAT rules.',
        de: 'Azure Firewall unterstützt Netzwerk-, Anwendungs- und NAT-Regeln.'
      },
      hint: {
        en: 'Pick the firewall rule collections, not directory features.',
        de: 'Wählen Sie die Firewall-Regeltypen und keine Verzeichnisfunktionen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/firewall/features'
    },
    {
      id: 'az104-402',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'Users at Northwind Traders should be directed by DNS to the closest healthy global endpoint for an application.',
        de: 'Benutzer bei Northwind Traders sollen per DNS zum nächstgelegenen fehlerfreien globalen Endpunkt einer Anwendung geleitet werden.'
      },
      question: {
        en: 'Which service and routing method should you choose?',
        de: 'Welchen Dienst und welche Routingmethode sollten Sie wählen?'
      },
      options: [
        { id: 'A', text: { en: 'Traffic Manager with Performance routing', de: 'Traffic Manager mit Leistungsrouting' } },
        { id: 'B', text: { en: 'Standard Load Balancer with HA Ports', de: 'Standard Load Balancer mit HA-Ports' } },
        { id: 'C', text: { en: 'NAT Gateway with TCP reset', de: 'NAT-Gateway mit TCP-Reset' } },
        { id: 'D', text: { en: 'Azure Bastion with native client', de: 'Azure Bastion mit nativem Client' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Traffic Manager is DNS-based and Performance routing directs clients to the closest healthy endpoint.',
        de: 'Traffic Manager ist DNS-basiert, und Leistungsrouting leitet Clients zum nächstgelegenen fehlerfreien Endpunkt.'
      },
      hint: {
        en: 'This is global DNS-based traffic distribution.',
        de: 'Dies ist globale DNS-basierte Lastverteilung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/traffic-manager/traffic-manager-routing-methods'
    },
    {
      id: 'az104-403',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Contoso, Ltd. This is a routing decision, not an NSG setting.',
        de: 'Sie arbeiten für Contoso, Ltd. Dies ist eine Routingentscheidung und keine NSG-Einstellung.'
      },
      question: {
        en: 'What should you configure?',
        de: 'Was sollten Sie konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'A user-defined route with 0.0.0.0/0 pointing to the firewall', de: 'Eine benutzerdefinierte Route mit 0.0.0.0/0, die auf die Firewall zeigt' } },
        { id: 'B', text: { en: 'A private DNS zone', de: 'Eine private DNS-Zone' } },
        { id: 'C', text: { en: 'A management group lock', de: 'Eine Verwaltungsgruppensperre' } },
        { id: 'D', text: { en: 'A deployment slot swap', de: 'Einen Slotwechsel' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A default route in a route table can direct outbound traffic from the subnet to the Azure Firewall.',
        de: 'Eine Standardroute in einer Routingtabelle kann ausgehenden Datenverkehr aus dem Subnetz zur Azure Firewall leiten.'
      },
      hint: {
        en: 'This is a routing decision, not an NSG setting.',
        de: 'Dies ist eine Routingentscheidung und keine NSG-Einstellung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/firewall/tutorial-firewall-deploy-portal-policy'
    },
    {
      id: 'az104-404',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Fabrikam, Inc. Think Azure gateway, on-prem representation, and dedicated subnet.',
        de: 'Sie arbeiten für Fabrikam, Inc. Ihr Team evaluiert Azure-Gateway, lokale Repräsentation und dediziertes Subnetz.'
      },
      question: {
        en: 'Which Azure resources are required? Choose all that apply.',
        de: 'Welche Azure-Ressourcen werden benötigt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Gateway subnet', de: 'Gateway-Subnetz' } },
        { id: 'B', text: { en: 'Virtual network gateway', de: 'Virtuelles Netzwerkgateway' } },
        { id: 'C', text: { en: 'Local network gateway', de: 'Lokales Netzwerkgateway' } },
        { id: 'D', text: { en: 'Traffic Manager profile', de: 'Traffic-Manager-Profil' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'A site-to-site VPN needs a gateway subnet, a virtual network gateway in Azure, and a local network gateway that represents the on-premises side.',
        de: 'Ein Site-to-Site-VPN benötigt ein Gateway-Subnetz, ein virtuelles Netzwerkgateway in Azure und ein lokales Netzwerkgateway, das die lokale Seite repräsentiert.'
      },
      hint: {
        en: 'Think Azure gateway, on-prem representation, and dedicated subnet.',
        de: 'Denken Sie an Azure-Gateway, lokale Repräsentation und dediziertes Subnetz.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-about-vpngateways'
    },
    {
      id: 'az104-405',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'How does Azure evaluate NSG rule priority?',
        de: 'Wie wertet Azure die Priorität von NSG-Regeln aus?'
      },
      options: [
        { id: 'A', text: { en: 'Higher numbers are evaluated first', de: 'Höhere Zahlen werden zuerst ausgewertet' } },
        { id: 'B', text: { en: 'Lower numbers are evaluated first', de: 'Niedrigere Zahlen werden zuerst ausgewertet' } },
        { id: 'C', text: { en: 'Rules are always evaluated alphabetically', de: 'Regeln werden immer alphabetisch ausgewertet' } },
        { id: 'D', text: { en: 'Inbound rules ignore priority', de: 'Eingehende Regeln ignorieren die Priorität' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'NSG rules are processed in ascending priority order, so lower numbers are evaluated first.',
        de: 'NSG-Regeln werden in aufsteigender Prioritätsreihenfolge verarbeitet, daher werden niedrigere Zahlen zuerst ausgewertet.'
      },
      hint: {
        en: 'Small number means higher precedence.',
        de: 'Eine kleinere Zahl bedeutet höhere Priorität.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview'
    },
    {
      id: 'az104-406',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Northwind Traders, a VM cannot reach the internet, and you need to see which route Azure selected for the destination.',
        de: 'Bei Northwind Traders erreicht das Internet nicht, und Sie müssen sehen, welche Route Azure für das Ziel ausgewählt hat.'
      },
      question: {
        en: 'Which Network Watcher tool should you use?',
        de: 'Welches Network-Watcher-Tool sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Next hop', de: 'Nächster Hop' } },
        { id: 'B', text: { en: 'Packet capture', de: 'Packet Capture' } },
        { id: 'C', text: { en: 'NSG flow logs', de: 'NSG-Flowlogs' } },
        { id: 'D', text: { en: 'Connection Monitor', de: 'Connection Monitor' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Next hop shows the effective route selected for traffic to a destination.',
        de: 'Nächster Hop zeigt die effektive Route an, die für den Datenverkehr zu einem Ziel ausgewählt wurde.'
      },
      hint: {
        en: 'This tool answers the routing-path question.',
        de: 'Dieses Tool beantwortet die Frage nach dem Routingpfad.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/network-watcher/next-hop-overview'
    },
    {
      id: 'az104-407',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which statements about private endpoints are correct? Choose all that apply.',
        de: 'Welche Aussagen zu privaten Endpunkten sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'They receive a private IP address from your subnet', de: 'Sie erhalten eine private IP-Adresse aus Ihrem Subnetz' } },
        { id: 'B', text: { en: 'They provide private access to a specific PaaS resource', de: 'Sie bieten privaten Zugriff auf eine bestimmte PaaS-Ressource' } },
        { id: 'C', text: { en: 'They often use Private DNS integration for name resolution', de: 'Sie nutzen oft die Integration mit Private DNS für die Namensauflösung' } },
        { id: 'D', text: { en: 'They require a public IP address on the endpoint NIC', de: 'Sie erfordern eine öffentliche IP-Adresse auf der NIC des Endpunkts' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Private endpoints use a private IP in your subnet, connect to a specific resource, and commonly integrate with Private DNS.',
        de: 'Private Endpunkte verwenden eine private IP in Ihrem Subnetz, verbinden sich mit einer bestimmten Ressource und integrieren sich häufig mit Private DNS.'
      },
      hint: {
        en: 'Think private IP plus private name resolution.',
        de: 'Denken Sie an private IP plus private Namensauflösung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-overview'
    },
    {
      id: 'az104-408',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Contoso, Ltd. You need a web-aware reverse proxy, not simple SNAT.',
        de: 'Sie arbeiten für Contoso, Ltd. Sie benötigen einen webbewussten Reverse Proxy und kein einfaches SNAT.'
      },
      question: {
        en: 'Which service is the best fit?',
        de: 'Welcher Dienst ist am besten geeignet?'
      },
      options: [
        { id: 'A', text: { en: 'Application Gateway', de: 'Application Gateway' } },
        { id: 'B', text: { en: 'NAT Gateway', de: 'NAT-Gateway' } },
        { id: 'C', text: { en: 'Route table', de: 'Routingtabelle' } },
        { id: 'D', text: { en: 'Azure Bastion', de: 'Azure Bastion' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Application Gateway is a Layer 7 load balancer that supports web-specific features such as cookie affinity and TLS handling.',
        de: 'Application Gateway ist ein Layer-7-Load-Balancer, der webspezifische Funktionen wie Cookie-Affinität und TLS-Behandlung unterstützt.'
      },
      hint: {
        en: 'You need a web-aware reverse proxy, not simple SNAT.',
        de: 'Sie benötigen einen webbewussten Reverse Proxy und kein einfaches SNAT.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/application-gateway/overview'
    },
    {
      id: 'az104-409',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which default NSG rule allows Azure Load Balancer health probes to reach your instances?',
        de: 'Welche Standard-NSG-Regel erlaubt es Integritätsprüfungen von Azure Load Balancer, Ihre Instanzen zu erreichen?'
      },
      options: [
        { id: 'A', text: { en: 'AllowVNetInBound', de: 'AllowVNetInBound' } },
        { id: 'B', text: { en: 'AllowAzureLoadBalancerInBound', de: 'AllowAzureLoadBalancerInBound' } },
        { id: 'C', text: { en: 'DenyAllInbound', de: 'DenyAllInbound' } },
        { id: 'D', text: { en: 'AllowInternetOutBound', de: 'AllowInternetOutBound' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'AllowAzureLoadBalancerInBound is the default rule that permits health probes from the Azure Load Balancer.',
        de: 'AllowAzureLoadBalancerInBound ist die Standardregel, die Integritätsprüfungen von Azure Load Balancer zulässt.'
      },
      hint: {
        en: 'Remember the built-in service tag rule.',
        de: 'Merken Sie sich die Regel mit dem integrierten Diensttag.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview'
    },
    {
      id: 'az104-410',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Fabrikam, Inc. This is not a metric threshold or guest log event.',
        de: 'Sie arbeiten für Fabrikam, Inc. Dies ist kein Metrikschwellwert und kein Gastprotokollereignis.'
      },
      question: {
        en: 'Which alert type should you create?',
        de: 'Welchen Alarmtyp sollten Sie erstellen?'
      },
      options: [
        { id: 'A', text: { en: 'Activity Log alert', de: 'Aktivitätsprotokollalarm' } },
        { id: 'B', text: { en: 'Metric alert', de: 'Metrikalarm' } },
        { id: 'C', text: { en: 'Log alert on guest OS syslog', de: 'Log-Alarm auf Guest-OS-Syslog' } },
        { id: 'D', text: { en: 'Budget alert', de: 'Budgetalarm' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Resource group deletion is a control-plane event captured in the Azure Activity Log, so an Activity Log alert is appropriate.',
        de: 'Das Löschen einer Ressourcengruppe ist ein Control-Plane-Ereignis im Azure-Aktivitätsprotokoll, daher ist ein Aktivitätsprotokollalarm passend.'
      },
      hint: {
        en: 'This is not a metric threshold or guest log event.',
        de: 'Dies ist kein Metrikschwellwert und kein Gastprotokollereignis.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-types#activity-log-alerts'
    },
    {
      id: 'az104-411',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which KQL operator combines rows from two or more tables into one result set?',
        de: 'Welcher KQL-Operator kombiniert Zeilen aus zwei oder mehr Tabellen zu einem Ergebnissatz?'
      },
      options: [
        { id: 'A', text: { en: 'join', de: 'join' } },
        { id: 'B', text: { en: 'extend', de: 'extend' } },
        { id: 'C', text: { en: 'union', de: 'union' } },
        { id: 'D', text: { en: 'project-away', de: 'project-away' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'The union operator combines rows from multiple tables or queries into one result set.',
        de: 'Der Operator union kombiniert Zeilen aus mehreren Tabellen oder Abfragen zu einem Ergebnissatz.'
      },
      hint: {
        en: 'This is about stacking rows, not matching keys.',
        de: 'Hier geht es um das Zusammenführen von Zeilen und nicht um das Abgleichen von Schlüsseln.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/union-operator'
    },
    {
      id: 'az104-412',
      type: 'multiple',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which are common KQL operators? Choose all that apply.',
        de: 'Welche sind gängige KQL-Operatoren? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'where', de: 'where' } },
        { id: 'B', text: { en: 'project', de: 'project' } },
        { id: 'C', text: { en: 'summarize', de: 'summarize' } },
        { id: 'D', text: { en: 'execute-policy', de: 'execute-policy' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'where filters rows, project selects columns, and summarize performs aggregation in KQL.',
        de: 'where filtert Zeilen, project wählt Spalten aus und summarize führt Aggregationen in KQL durch.'
      },
      hint: {
        en: 'Choose standard KQL query operators.',
        de: 'Wählen Sie Standardoperatoren von KQL-Abfragen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/get-started-queries'
    },
    {
      id: 'az104-413',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Northwind Traders. Use the guest telemetry agent and collection rule model.',
        de: 'Sie arbeiten für Northwind Traders. Verwenden Sie das Modell mit Gasttelemetrie-Agent und Datensammlungsregel.'
      },
      question: {
        en: 'Which monitoring configuration should you use?',
        de: 'Welche Monitoringkonfiguration sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Monitor Agent with a Data Collection Rule', de: 'Azure Monitor Agent mit einer Datensammlungsregel' } },
        { id: 'B', text: { en: 'An NSG flow log', de: 'Ein NSG-Flowlog' } },
        { id: 'C', text: { en: 'An Azure DNS zone', de: 'Eine Azure-DNS-Zone' } },
        { id: 'D', text: { en: 'A route table', de: 'Eine Routingtabelle' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Monitor Agent plus a Data Collection Rule is the current approach for collecting guest data into Azure Monitor Logs.',
        de: 'Azure Monitor Agent plus Datensammlungsregel ist der aktuelle Ansatz zum Sammeln von Gastdaten in Azure Monitor Logs.'
      },
      hint: {
        en: 'Use the guest telemetry agent and collection rule model.',
        de: 'Verwenden Sie das Modell mit Gasttelemetrie-Agent und Datensammlungsregel.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/agents/azure-monitor-agent-overview'
    },
    {
      id: 'az104-414',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Azure Monitor experience is best for exploring near-real-time numeric platform metrics such as Percentage CPU?',
        de: 'Welche Azure-Monitor-Oberfläche eignet sich am besten zum Analysieren nahezu in Echtzeit erfasster numerischer Plattformmetriken wie Percentage CPU?'
      },
      options: [
        { id: 'A', text: { en: 'Metrics Explorer', de: 'Metrik-Explorer' } },
        { id: 'B', text: { en: 'Azure Policy compliance view', de: 'Azure-Policy-Konformitätsansicht' } },
        { id: 'C', text: { en: 'Resource lock pane', de: 'Ressourcensperrenbereich' } },
        { id: 'D', text: { en: 'Management group hierarchy', de: 'Verwaltungsgruppenhierarchie' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Metrics Explorer is optimized for platform metrics and time-series visualization.',
        de: 'Der Metrik-Explorer ist für Plattformmetriken und Zeitreihenvisualisierung optimiert.'
      },
      hint: {
        en: 'This is the metrics-focused Azure Monitor blade.',
        de: 'Dies ist die auf Metriken ausgerichtete Azure-Monitor-Ansicht.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/analyze-metrics'
    },
    {
      id: 'az104-415',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Fabrikam, Inc., an alert must send a JSON payload to an HTTP endpoint used by your incident management platform.',
        de: 'Bei Fabrikam, Inc.: ein Alarm muss eine JSON-Nutzlast an einen HTTP-Endpunkt senden, der von Ihrer Incident-Management-Plattform verwendet wird.'
      },
      question: {
        en: 'Which action group action should you configure?',
        de: 'Welche Aktionsgruppenaktion sollten Sie konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'Webhook', de: 'Webhook' } },
        { id: 'B', text: { en: 'VM extension', de: 'VM-Erweiterung' } },
        { id: 'C', text: { en: 'Service endpoint', de: 'Dienstendpunkt' } },
        { id: 'D', text: { en: 'Route filter', de: 'Routenfilter' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Webhook is the action group mechanism for posting alert data to an HTTP endpoint.',
        de: 'Webhook ist der Mechanismus einer Aktionsgruppe zum Senden von Alarmdaten an einen HTTP-Endpunkt.'
      },
      hint: {
        en: 'Use the HTTP callback action.',
        de: 'Verwenden Sie die HTTP-Callback-Aktion.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/action-groups'
    },
    {
      id: 'az104-416',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Azure log should you check to see who started, stopped, or deleted Azure resources?',
        de: 'Welches Azure-Protokoll sollten Sie prüfen, um zu sehen, wer Azure-Ressourcen gestartet, gestoppt oder gelöscht hat?'
      },
      options: [
        { id: 'A', text: { en: 'Activity Log', de: 'Aktivitätsprotokoll' } },
        { id: 'B', text: { en: 'Azure Files data plane log only', de: 'Nur Azure-Files-Datenebenenprotokoll' } },
        { id: 'C', text: { en: 'DNS query log only', de: 'Nur DNS-Abfrageprotokoll' } },
        { id: 'D', text: { en: 'Serial console log', de: 'Seriellkonsolenprotokoll' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The Activity Log records subscription-level control-plane operations and the caller identity.',
        de: 'Das Aktivitätsprotokoll zeichnet Control-Plane-Operationen auf Abonnementebene und die Identität des Aufrufers auf.'
      },
      hint: {
        en: 'This is the Azure control-plane audit trail.',
        de: 'Dies ist der Audit-Trail der Azure-Control-Plane.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log'
    },
    {
      id: 'az104-417',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Contoso, Ltd. You need continuous path monitoring, not one-time packet collection.',
        de: 'Sie arbeiten für Contoso, Ltd. Sie benötigen eine kontinuierliche Pfadüberwachung und keine einmalige Paketsammlung.'
      },
      question: {
        en: 'Which Network Watcher capability should you use?',
        de: 'Welche Network-Watcher-Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Connection Monitor', de: 'Connection Monitor' } },
        { id: 'B', text: { en: 'Packet capture', de: 'Packet Capture' } },
        { id: 'C', text: { en: 'Azure Policy initiative', de: 'Azure-Policy-Initiative' } },
        { id: 'D', text: { en: 'Stored access policy', de: 'Gespeicherte Zugriffsrichtlinie' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Connection Monitor performs ongoing connectivity checks and can integrate with alerting.',
        de: 'Connection Monitor führt laufende Konnektivitätsprüfungen durch und kann in die Alarmierung integriert werden.'
      },
      hint: {
        en: 'You need continuous path monitoring, not one-time packet collection.',
        de: 'Sie benötigen eine kontinuierliche Pfadüberwachung und keine einmalige Paketsammlung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/network-watcher/connection-monitor-overview'
    },
    {
      id: 'az104-418',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Network Watcher feature captures actual packets from a VM network interface for deep troubleshooting?',
        de: 'Welche Network-Watcher-Funktion erfasst tatsächliche Pakete von einer VM-Netzwerkschnittstelle für eine tiefgehende Fehlerbehebung?'
      },
      options: [
        { id: 'A', text: { en: 'Packet capture', de: 'Packet Capture' } },
        { id: 'B', text: { en: 'Next hop', de: 'Nächster Hop' } },
        { id: 'C', text: { en: 'IP flow verify', de: 'IP Flow Verify' } },
        { id: 'D', text: { en: 'Connection troubleshoot', de: 'Verbindungsfehlerbehebung' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Packet capture records network packets from a supported VM for later inspection.',
        de: 'Packet Capture zeichnet Netzwerkpakete einer unterstützten VM zur späteren Analyse auf.'
      },
      hint: {
        en: 'This is the packet-level troubleshooting tool.',
        de: 'Dies ist das Tool zur Fehlerbehebung auf Paketebene.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/network-watcher/packet-capture-overview'
    },
    {
      id: 'az104-419',
      type: 'multiple',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which signal types can Azure Monitor alerts use? Choose all that apply.',
        de: 'Welche Signaltypen können Azure-Monitor-Alarme verwenden? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Metrics', de: 'Metriken' } },
        { id: 'B', text: { en: 'Logs', de: 'Protokolle' } },
        { id: 'C', text: { en: 'Activity Log', de: 'Aktivitätsprotokoll' } },
        { id: 'D', text: { en: 'Resource Health', de: 'Resource Health' } }
      ],
      correct: ['A', 'B', 'C', 'D'],
      explanation: {
        en: 'Azure Monitor alerts can be based on metric, log, Activity Log, and Resource Health signals.',
        de: 'Azure-Monitor-Alarme können auf Metrik-, Log-, Aktivitätsprotokoll- und Resource-Health-Signalen basieren.'
      },
      hint: {
        en: 'All listed items are valid alert signal sources.',
        de: 'Alle aufgeführten Elemente sind gültige Quellen für Alarmsignale.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-types'
    },
    {
      id: 'az104-420',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Fabrikam, Inc. Backups are managed from the vault resource.',
        de: 'Sie arbeiten für Fabrikam, Inc. Sicherungen werden über die Tresorressource verwaltet.'
      },
      question: {
        en: 'Which Azure resource manages these backups?',
        de: 'Welche Azure-Ressource verwaltet diese Sicherungen?'
      },
      options: [
        { id: 'A', text: { en: 'Recovery Services vault', de: 'Recovery Services Vault' } },
        { id: 'B', text: { en: 'Application Gateway', de: 'Application Gateway' } },
        { id: 'C', text: { en: 'NAT Gateway', de: 'NAT-Gateway' } },
        { id: 'D', text: { en: 'Management group', de: 'Verwaltungsgruppe' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Recovery Services vault is the Azure Backup resource used to protect workloads such as Azure Files.',
        de: 'Recovery Services Vault ist die Azure-Backup-Ressource, die zum Schutz von Workloads wie Azure Files verwendet wird.'
      },
      hint: {
        en: 'Backups are managed from the vault resource.',
        de: 'Sicherungen werden über die Tresorressource verwaltet.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/backup/backup-overview'
    },
    {
      id: 'az104-421',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which KQL filter returns only records from the last 15 minutes?',
        de: 'Welcher KQL-Filter gibt nur Datensätze aus den letzten 15 Minuten zurück?'
      },
      options: [
        { id: 'A', text: { en: 'where TimeGenerated > ago(15m)', de: 'where TimeGenerated > ago(15m)' } },
        { id: 'B', text: { en: 'project last15m', de: 'project last15m' } },
        { id: 'C', text: { en: 'take 15m', de: 'take 15m' } },
        { id: 'D', text: { en: 'sort by last15m', de: 'sort by last15m' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The where operator with ago(15m) is the standard KQL pattern for filtering the last 15 minutes.',
        de: 'Der where-Operator mit ago(15m) ist das Standard-KQL-Muster zum Filtern der letzten 15 Minuten.'
      },
      hint: {
        en: 'Use a time-based where clause.',
        de: 'Verwenden Sie eine zeitbasierte where-Klausel.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/get-started-queries'
    },
    {
      id: 'az104-422',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Northwind Traders. Pick the streaming destination, not the archive or governance feature.',
        de: 'Sie arbeiten für Northwind Traders. Ihr Team benötigt das Streamingziel und keine Archiv- oder Governance-Funktion.'
      },
      question: {
        en: 'Which diagnostic setting destination should you choose?',
        de: 'Welches Ziel für Diagnoseeinstellungen sollten Sie wählen?'
      },
      options: [
        { id: 'A', text: { en: 'Event Hubs', de: 'Event Hubs' } },
        { id: 'B', text: { en: 'Resource lock', de: 'Ressourcensperre' } },
        { id: 'C', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } },
        { id: 'D', text: { en: 'Administrative unit', de: 'Administrative Einheit' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Event Hubs is the streaming destination commonly used to send diagnostic data to external SIEM platforms.',
        de: 'Event Hubs ist das Streamingziel, das üblicherweise verwendet wird, um Diagnosedaten an externe SIEM-Plattformen zu senden.'
      },
      hint: {
        en: 'Pick the streaming destination, not the archive or governance feature.',
        de: 'Wählen Sie das Streamingziel und keine Archiv- oder Governance-Funktion.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings'
    },
    {
      id: 'az104-423',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You want an alert when the health state of one Azure resource changes to Unavailable. Which signal should the alert monitor?',
        de: 'Sie möchten einen Alarm, wenn sich der Gesundheitszustand einer Azure-Ressource auf Nicht verfügbar ändert. Welches Signal sollte der Alarm überwachen?'
      },
      options: [
        { id: 'A', text: { en: 'Resource Health events', de: 'Resource-Health-Ereignisse' } },
        { id: 'B', text: { en: 'Blob lifecycle actions', de: 'Blob-Lebenszyklusaktionen' } },
        { id: 'C', text: { en: 'Route table changes only', de: 'Nur Änderungen an Routingtabellen' } },
        { id: 'D', text: { en: 'Kubernetes pod restarts only', de: 'Nur Neustarts von Kubernetes-Pods' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Resource Health events are the Azure Monitor signal for changes in the health state of a specific resource.',
        de: 'Resource-Health-Ereignisse sind das Azure-Monitor-Signal für Änderungen des Gesundheitszustands einer bestimmten Ressource.'
      },
      hint: {
        en: 'This is resource-specific health monitoring.',
        de: 'Dies ist ressourcenspezifisches Gesundheitsmonitoring.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/service-health/resource-health-alert-arm-template-guide'
    },
    {
      id: 'az104-424',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Contoso, Ltd. The reusable schedule object is the policy.',
        de: 'Sie arbeiten für Contoso, Ltd. Das wiederverwendbare Zeitplanobjekt ist die Richtlinie.'
      },
      question: {
        en: 'Which Azure Backup object should you configure?',
        de: 'Welches Azure-Backup-Objekt sollten Sie konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'Backup policy', de: 'Sicherungsrichtlinie' } },
        { id: 'B', text: { en: 'Action group', de: 'Aktionsgruppe' } },
        { id: 'C', text: { en: 'NSG rule', de: 'NSG-Regel' } },
        { id: 'D', text: { en: 'Bastion host', de: 'Bastion-Host' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A backup policy defines backup schedule and retention and can be associated with multiple protected items.',
        de: 'Eine Sicherungsrichtlinie definiert Sicherungszeitplan und Aufbewahrung und kann mehreren geschützten Elementen zugeordnet werden.'
      },
      hint: {
        en: 'The reusable schedule object is the policy.',
        de: 'Das wiederverwendbare Zeitplanobjekt ist die Richtlinie.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/backup/backup-azure-vms-introduction'
    },
    {
      id: 'az104-425',
      type: 'multiple',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which are Network Watcher troubleshooting tools? Choose all that apply.',
        de: 'Welche sind Fehlerbehebungstools von Network Watcher? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'IP flow verify', de: 'IP Flow Verify' } },
        { id: 'B', text: { en: 'Next hop', de: 'Nächster Hop' } },
        { id: 'C', text: { en: 'Connection troubleshoot', de: 'Verbindungsfehlerbehebung' } },
        { id: 'D', text: { en: 'Deployment slots', de: 'Bereitstellungsslots' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'IP flow verify, Next hop, and Connection troubleshoot are Network Watcher diagnostics. Deployment slots belong to App Service.',
        de: 'IP Flow Verify, Nächster Hop und Verbindungsfehlerbehebung sind Network-Watcher-Diagnosen. Bereitstellungsslots gehören zu App Service.'
      },
      hint: {
        en: 'Choose the network diagnostic tools.',
        de: 'Wählen Sie die Tools zur Netzwerkdiagnose.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/network-watcher/network-watcher-monitoring-overview'
    },
    {
      id: 'az104-426',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Fabrikam, Inc. This is the central logs workspace.',
        de: 'Sie arbeiten für Fabrikam, Inc. Dies ist der zentrale Arbeitsbereich für Protokolle.'
      },
      question: {
        en: 'Which Azure Monitor resource should you use?',
        de: 'Welche Azure-Monitor-Ressource sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Log Analytics workspace', de: 'Log-Analytics-Arbeitsbereich' } },
        { id: 'B', text: { en: 'Application security group', de: 'Anwendungssicherheitsgruppe' } },
        { id: 'C', text: { en: 'Virtual network gateway', de: 'Virtuelles Netzwerkgateway' } },
        { id: 'D', text: { en: 'Public IP address', de: 'Öffentliche IP-Adresse' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A Log Analytics workspace stores Azure Monitor logs and provides the KQL query engine.',
        de: 'Ein Log-Analytics-Arbeitsbereich speichert Azure-Monitor-Protokolle und stellt die KQL-Abfrage-Engine bereit.'
      },
      hint: {
        en: 'This is the central logs workspace.',
        de: 'Dies ist der zentrale Arbeitsbereich für Protokolle.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/log-analytics-workspace-overview'
    },
    {
      id: 'az104-427',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What does the KQL statement summarize count() by Caller return?',
        de: 'Was gibt die KQL-Anweisung summarize count() by Caller zurück?'
      },
      options: [
        { id: 'A', text: { en: 'A count of matching records for each caller', de: 'Eine Anzahl passender Datensätze für jeden Aufrufer' } },
        { id: 'B', text: { en: 'A command to delete duplicate callers', de: 'Einen Befehl zum Löschen doppelter Aufrufer' } },
        { id: 'C', text: { en: 'Only the most recent caller', de: 'Nur den neuesten Aufrufer' } },
        { id: 'D', text: { en: 'A list of VM sizes', de: 'Eine Liste von VM-Größen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'summarize count() by Caller groups records by caller and returns the count for each group.',
        de: 'summarize count() by Caller gruppiert Datensätze nach Aufrufer und gibt für jede Gruppe die Anzahl zurück.'
      },
      hint: {
        en: 'summarize performs grouped aggregation.',
        de: 'summarize führt eine gruppierte Aggregation durch.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/get-started-queries'
    },
    {
      id: 'az104-428',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Northwind Traders, a VM cannot reach 10.0.2.4 on TCP 443. You need to know whether an NSG rule is allowing or denying that exact flow.',
        de: 'Bei Northwind Traders kann 10.0.2.4 über TCP 443 nicht erreichen. Sie müssen wissen, ob eine NSG-Regel genau diesen Datenfluss erlaubt oder verweigert.'
      },
      question: {
        en: 'Which Network Watcher feature should you use?',
        de: 'Welche Network-Watcher-Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'IP flow verify', de: 'IP Flow Verify' } },
        { id: 'B', text: { en: 'Traffic analytics', de: 'Traffic Analytics' } },
        { id: 'C', text: { en: 'Packet capture', de: 'Packet Capture' } },
        { id: 'D', text: { en: 'Connection Monitor', de: 'Connection Monitor' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'IP flow verify evaluates the effective NSG rules for a specific source, destination, protocol, and port combination.',
        de: 'IP Flow Verify wertet die effektiven NSG-Regeln für eine bestimmte Kombination aus Quelle, Ziel, Protokoll und Port aus.'
      },
      hint: {
        en: 'This tool answers a yes-or-no question for one flow.',
        de: 'Dieses Tool beantwortet eine Ja-Nein-Frage für einen einzelnen Datenfluss.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/network-watcher/ip-flow-verify-overview'
    },
    {
      id: 'az104-429',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Azure feature shows service incidents, planned maintenance, and advisories that affect your subscriptions and regions?',
        de: 'Welche Azure-Funktion zeigt Dienstvorfälle, geplante Wartungen und Hinweise an, die Ihre Abonnements und Regionen betreffen?'
      },
      options: [
        { id: 'A', text: { en: 'Service Health', de: 'Service Health' } },
        { id: 'B', text: { en: 'Resource Health', de: 'Resource Health' } },
        { id: 'C', text: { en: 'Boot diagnostics', de: 'Bootdiagnose' } },
        { id: 'D', text: { en: 'Azure Policy compliance', de: 'Azure-Policy-Konformität' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Service Health reports Azure platform events that may affect your subscriptions and regions.',
        de: 'Service Health meldet Azure-Plattformereignisse, die sich auf Ihre Abonnements und Regionen auswirken können.'
      },
      hint: {
        en: 'This is broader than the health of one resource.',
        de: 'Dies ist umfassender als der Gesundheitszustand einer einzelnen Ressource.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/service-health/service-health-overview'
    },
    {
      id: 'az104-430',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Contoso, Ltd. Use a metric threshold alert for platform metrics.',
        de: 'Sie arbeiten für Contoso, Ltd. Verwenden Sie einen Metrikschwellenwertalarm für Plattformmetriken.'
      },
      question: {
        en: 'Which alert rule type should you create and connect to an action group?',
        de: 'Welchen Alarmregeltyp sollten Sie erstellen und mit einer Aktionsgruppe verbinden?'
      },
      options: [
        { id: 'A', text: { en: 'Metric alert', de: 'Metrikalarm' } },
        { id: 'B', text: { en: 'Budget alert', de: 'Budgetalarm' } },
        { id: 'C', text: { en: 'Azure Policy alert', de: 'Azure-Policy-Alarm' } },
        { id: 'D', text: { en: 'Access review alert', de: 'Zugriffsüberprüfungsalarm' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'CPU percentage is a metric, so a metric alert is the correct rule type. The action group handles the email action.',
        de: 'CPU-Prozentsatz ist eine Metrik, daher ist ein Metrikalarm der richtige Regeltyp. Die Aktionsgruppe übernimmt die E-Mail-Aktion.'
      },
      hint: {
        en: 'Use a metric threshold alert for platform metrics.',
        de: 'Verwenden Sie einen Metrikschwellenwertalarm für Plattformmetriken.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-types#metric-alerts'
    },
    {
      id: 'az104-431',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Before protecting Azure VMs in a new Recovery Services vault, which setting determines whether backup data uses LRS or GRS storage?',
        de: 'Welche Einstellung bestimmt vor dem Schutz von Azure-VMs in einem neuen Recovery Services Vault, ob Sicherungsdaten LRS- oder GRS-Speicher verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Storage replication type', de: 'Speicherreplikationstyp' } },
        { id: 'B', text: { en: 'Action group', de: 'Aktionsgruppe' } },
        { id: 'C', text: { en: 'NSG rule priority', de: 'NSG-Regelpriorität' } },
        { id: 'D', text: { en: 'Bicep target scope', de: 'Bicep-Zielbereich' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The vault storage replication type controls whether backup data is stored with local or geo redundancy.',
        de: 'Der Speicherreplikationstyp des Tresors steuert, ob Sicherungsdaten lokal redundant oder georedundant gespeichert werden.'
      },
      hint: {
        en: 'This is a vault storage configuration choice.',
        de: 'Dies ist eine Konfigurationsentscheidung für den Tresorspeicher.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/backup/backup-create-rs-vault'
    }
  ];
  if (window.ExamData && window.ExamData['az-104']) {
    window.ExamData['az-104'].questions = window.ExamData['az-104'].questions.concat(extra);
  }
})();
