﻿<?xml version="1.0" encoding="utf-8"?>
<package xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:dm1="http://schemas.microsoft.com/dsltools/Kernel" xmlns:dm2="http://schemas.microsoft.com/dsltools/Component" xmlns:dm3="http://schemas.microsoft.com/dsltools/UseCase" xmlns:dm4="http://schemas.microsoft.com/dsltools/Activity" xmlns:dm5="http://schemas.microsoft.com/dsltools/Interaction" xmlns:dm6="http://schemas.microsoft.com/dsltools/UmlModelLibrary" xmlns:dm7="http://schemas.microsoft.com/dsltools/UmlDiagrams" xmlns:dm8="http://schemas.microsoft.com/dsltools/LogicalClassDesigner"
  dslVersion="1.0.0.0"
  Id="30622e7a-96f1-41b7-83af-6de6f2c37861"
  name="Pass.Container" xmlns="http://schemas.microsoft.com/dsltools/ModelStore">
  <suppliersInternal>
    <dependency
      Id="03391160-31da-444a-9b1b-2ac8fdec0ae8">
      <packageMoniker
        Id="884e21c8-6329-4b60-906e-e07c8e62093c"
        LastKnownName="FileStorage"
        LastKnownLocation="FileStorage.uml" />
    </dependency>
  </suppliersInternal>
  <packagedElements>
    <packageHasNamedElement>
      <class
        Id="802c7aa6-2faa-4adb-9ed6-31a13319da32"
        name="PassFieldValue"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="0f60adc9-5d73-4823-a3f8-7d31bef6ce4d"
            isDerived="false"
            sourceEndRoleName="PassFieldValue"
            targetEndRoleName="PassField"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="c6be7d12-6827-42f2-833f-8c25f0459f18"
              LastKnownName="PassField"
              LastKnownLocation="PassContainer.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="0972778f-f3db-4660-b468-2de858346ff8"
                  name="PassFieldValue"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="0442d132-86f6-4cd5-81c3-3b8067c29f60"
                  name="PassField"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="a1d868d8-8107-448d-8d6d-a518fccb9b28"
            name="Value"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="62dbecd8-9bd8-4c6c-b8ef-6ff3e11a32b3"
            name="Label"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="c6be7d12-6827-42f2-833f-8c25f0459f18"
        name="PassField"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <ownedAttributesInternal>
          <property
            Id="998c5a8d-9d79-420c-8230-1a9b865787e8"
            name="Name"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="ac6e8322-58a4-4f48-ba09-daf9e9951276"
            name="DefaultValue"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="1c65595b-ca35-42fd-8533-c176e0937209"
            name="DefaultLabal"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="ce141a54-1528-47d5-a12b-b125cc938c43"
        name="PassDistributionService"
        isAbstract="true"
        isLeaf="false"
        isActiveClass="false">
        <suppliersInternal>
          <interfaceRealization
            Id="579f4926-13af-46cf-b48a-a41829bbc938">
            <interfaceMoniker
              Id="939f0582-e1f9-4664-a425-86de153d00ec"
              LastKnownName="IPassDistributionService"
              LastKnownLocation="PassContainer.uml" />
          </interfaceRealization>
          <dependency
            Id="871dcbc7-c8eb-498c-9ed4-549830142bc2">
            <interfaceMoniker
              Id="bf94aa0f-b7a0-4be6-818a-a6d2150d0be3"
              LastKnownName="IFileStorageService"
              LastKnownLocation="FileStorage.uml" />
          </dependency>
        </suppliersInternal>
        <ownedOperationsInternal>
          <operation
            Id="6bd2dc20-b55a-452d-9343-995e90508515"
            name="UpdatePassFields"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="c299d57f-9d07-4cea-9318-a2235d2a04c5"
                  name="PassId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="d1de5770-e48e-4c93-972f-1cb005ef98da"
                  name="PassFieldValues)("
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="f8e1b1fd-9a5d-4bb0-bf24-2ab0e7739067"
            name="CreatePass"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="5107bf65-1eb6-4610-86c6-bce780207f38"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="0693b71d-c1d2-436f-a8a3-ac10ec30becb"
                  name="PassFieldValues"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="a30d4e6e-dd0f-462d-98bc-15e8ee09bc67"
            name="GetPassPackage"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="df3913df-17f2-4b7f-879d-c4efaa311d1c"
                  name="PassId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="ee098f5c-fa7f-4609-92d4-ef3a2a7ddd54"
                  name="DeviceType"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="004049a0-e6c3-476f-ac7f-82a00db70fb2"
            name="GetPassPackageByTemplate"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="c5365025-1dd1-465e-8093-8b3e31fdafc3"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="5622c913-9c9f-44ec-846c-4243fa8a6619"
                  name="DeviceType"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="939f0582-e1f9-4664-a425-86de153d00ec"
        name="IPassDistributionService"
        isAbstract="false"
        isLeaf="false">
        <appliedStereotypesInternal>
          <stereotypeInstance
            Id="74ecce6e-3c9f-457f-82a6-de8372e2d1e0"
            name="TextTemplateBindings"
            profile="TextTemplateBindings">
            <propertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="a06eac30-64be-4bfc-80b0-c1232882afc6">
                <propertyInstance
                  Id="d6a97fb3-bbff-4717-9005-9fbbaf9355bf"
                  name="Alias" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="1b034541-42f5-4ef6-b9bd-73aec0768cef">
                <propertyInstance
                  Id="84ebca12-f785-4922-86da-1ca0f777853c"
                  name="TemplateFilePath" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="553bdf91-0577-4f2b-a8ba-71f882033a67">
                <propertyInstance
                  Id="73a24680-55cf-4efa-a037-c5b905ed10dd"
                  name="ProjectPath" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="5ca404ed-0ac4-4018-9e49-f44db37ac431">
                <propertyInstance
                  Id="dc99b1b0-e540-49e6-a04f-5a9ef3fdf730"
                  name="TargetDirectory" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="eef78e39-36f7-4237-98e9-187efae03ba1">
                <propertyInstance
                  Id="df42a8b3-2084-4d38-a3b3-c127d1d96cd6"
                  name="TargetName" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="2ec3ae99-76f2-4d39-a57d-202a7ed08529">
                <propertyInstance
                  Id="e5c83a5b-2b7f-4e42-b56f-f36e5c3f8850"
                  name="Overwrite" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="2d0ea5a1-8337-4513-81b2-7f4b0819d785">
                <propertyInstance
                  Id="8b387923-5525-42a9-bbf7-f441f80187c5"
                  name="Parameters" />
              </stereotypeInstanceHasPropertyInstances>
            </propertyInstances>
          </stereotypeInstance>
        </appliedStereotypesInternal>
        <ownedOperations>
          <operation
            Id="0ccc2f6d-8efc-4765-8754-741dc517077a"
            name="UpdatePassFields"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="e26c6ca0-7abe-4b8b-87a6-eba04f8774b1"
                  name="PassId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="32d97839-7cd8-464b-bb60-73f1076ff99c"
                  name="PassFieldValues)("
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="16508bc6-78ac-4624-aea5-6d0a8dc24522"
            name="CreatePass"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="9d4cc483-bce8-4d47-8809-6d4680d63146"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="e6426070-1e3f-431b-bcfe-a17008de6e10"
                  name="PassFieldValues"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="577ff9a2-eec1-4dc6-a813-17d354928282"
            name="GetPassPackage"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="75dd481b-5d97-43ce-ac4b-5da995bb2e10"
                  name="PassId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="786b87e2-0061-4337-9a8c-319faeac789c"
                  name="DeviceType"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="62a909d8-5da1-4576-bcca-398d882f6710"
            name="GetPassPackageByTemplate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="c265436e-f573-43b2-b8fe-989076e177bc"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="2bb7d5cc-2232-4128-bcab-3e9375b65d27"
                  name="DeviceType"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperations>
      </Interface>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="0011cd7d-47e4-4709-8c0b-9fc6f641ccdd"
        name="IApplePassProcessingService"
        isAbstract="false"
        isLeaf="false">
        <appliedStereotypesInternal>
          <stereotypeInstance
            Id="ea0e201a-9d23-46f5-a9d9-5cc911afae03"
            name="TextTemplateBindings"
            profile="TextTemplateBindings">
            <propertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="4ed98891-526b-4ca2-9232-01cefc4ddc1c">
                <propertyInstance
                  Id="393356d8-209d-46a1-b595-5a68fcda47e4"
                  name="Alias" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="1669752f-4995-4576-b00f-ffb166856c01">
                <propertyInstance
                  Id="4159c0c0-5ffe-414c-9a46-976c6176e9e5"
                  name="TemplateFilePath" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="031088b2-7035-47c5-ad7a-8b0072a75423">
                <propertyInstance
                  Id="4d66ef71-c1df-42a7-a7e0-6e06b3278cc9"
                  name="ProjectPath" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="806a91e2-45e8-4d28-baff-8cf3a221584e">
                <propertyInstance
                  Id="b0137ec6-7f27-4204-90ca-6766f8d4790b"
                  name="TargetDirectory" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="ecea026f-1ea7-419d-9bf5-2d209bc0d6b0">
                <propertyInstance
                  Id="fc085745-5e77-4e29-a2aa-de098d81ef7b"
                  name="TargetName" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="c3e1838d-46b1-4485-b0e2-2ea7179d8d58">
                <propertyInstance
                  Id="ae3fda40-5346-46f7-9f24-682f86cacdf0"
                  name="Overwrite" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="434be8dd-cb82-44ba-b389-0b4774bbb375">
                <propertyInstance
                  Id="4ab1353b-f554-4708-a832-8069b4139bfe"
                  name="Parameters" />
              </stereotypeInstanceHasPropertyInstances>
            </propertyInstances>
          </stereotypeInstance>
        </appliedStereotypesInternal>
        <ownedOperations>
          <operation
            Id="175dcf47-9d53-4a44-ae42-a7ff1075342c"
            name="GetPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="acb9661c-a441-43f8-a518-bb9161dd8af0"
                  name="passTypeIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="99d002d1-d6f2-4b48-8281-3d6897b467d1"
                  name="serialNumber"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="6ec3f819-3140-4542-82d9-f3ef54154639"
            name="GetSerialNumbersOfPasses"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="3f1ff04a-d835-4fc5-bb04-62ddf93b6627"
                  name="deviceLibraryIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="44d8a95a-f547-447e-a09c-cd52f5b33951"
                  name="passTypeIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="49b13666-d727-4c7d-9c4e-e224aee797d7"
                  name="passesUpdatedSince"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="37fd8e27-aad3-4849-81b3-53df25001a5a"
            name="Log"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="f8f344ad-132d-441c-9c10-8ac0cc28c27d"
                  name="logMessage"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="b42053d6-1442-40da-bfb8-f78fd2837505"
            name="RegisterDevice"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="7bc1d260-3e1e-43a9-b0c6-d625ebd968d3"
                  name="deviceLibraryIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="1515fcd8-ec52-44cc-916e-df0f41ccbc17"
                  name="passTypeIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="4dacc931-cd4f-42c0-9f0d-0daf259824fa"
                  name="serialNumber"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="9f3f1b00-e594-4bf6-9882-a7dfef217f7d"
                  name="pushTokenJson"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="dd1d8dd8-ba0d-4223-b799-e03e4963d3fe"
            name="UnregisterDevice"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="78d1b97c-e453-4f9c-b003-04f2d9bf3c58"
                  name="deviceLibraryIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="7190f465-9ce0-4122-977d-ac9ad7b5fe80"
                  name="passTypeIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="d0f0fcd0-1a5d-48d2-86af-d7cd39345f0f"
                  name="serialNumber"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="9182a1b5-fb58-41cb-ba12-2ebfb3a9b33c"
                  name="pushTokenJson"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperations>
      </Interface>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="2871f6c0-aa1f-417a-bcc1-b966ca97f2cb"
        name="PassTemplate"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <appliedStereotypesInternal>
          <stereotypeInstance
            Id="ecb38dc6-1eb7-4a53-b044-dae527928676"
            name="TextTemplateBindings"
            profile="TextTemplateBindings">
            <propertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="490e3d24-e56f-4a3f-9b69-7a4dee0557e9">
                <propertyInstance
                  Id="44cc99cf-622c-44ef-9d47-aef531a47e5e"
                  name="Alias" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="09d9297c-636e-484e-92aa-eb56d568fcbb">
                <propertyInstance
                  Id="c5074b79-715c-4e07-9bf4-0d80ab0bdd7c"
                  name="TemplateFilePath" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="95eab9cf-7735-4b80-ab61-61b0e735964a">
                <propertyInstance
                  Id="111d34b2-5c0c-4500-8b53-0a44ddf61230"
                  name="ProjectPath" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="10f0d4ab-c45e-4ea4-8a4f-5241629180d2">
                <propertyInstance
                  Id="3cffd1c0-29bf-4865-8633-070c6e1a3065"
                  name="TargetDirectory" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="52f475bb-8d76-4cb8-9cf9-0bf3b709e8f5">
                <propertyInstance
                  Id="7f406f0d-a386-473f-aa2c-a9f32a85b40e"
                  name="TargetName" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="f6295025-c3af-402e-8c40-b54e77fb38ac">
                <propertyInstance
                  Id="fe6d4b98-65b5-4b7a-8280-8eefb1387164"
                  name="Overwrite" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="0aa13e07-f121-4628-81c0-7844f03d098b">
                <propertyInstance
                  Id="30235c7a-0aa8-4d9c-83c9-083fffeba03a"
                  name="Parameters" />
              </stereotypeInstanceHasPropertyInstances>
            </propertyInstances>
          </stereotypeInstance>
        </appliedStereotypesInternal>
        <targetEnds>
          <association
            Id="00f65239-d9fc-4647-b85a-21c28aea66c7"
            isDerived="false"
            sourceEndRoleName="Pass"
            targetEndRoleName="PassField"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="c6be7d12-6827-42f2-833f-8c25f0459f18"
              LastKnownName="PassField"
              LastKnownLocation="PassContainer.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="0914aa39-2d24-4cdf-aad3-70e01ed2d174"
                  name="Pass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="dbbaefa9-260b-4eba-be2f-66a92e3089f2"
                  name="PassField"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true">
                  <lowerValueInternal>
                    <literalString
                      Id="05727cf2-5348-4080-80f8-46c639b059d3"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="e12a48a3-7b3f-4754-a957-a7a9ec502a2a"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
          <association
            Id="7b8a4bc6-2a5b-416e-9b2d-bf0d6bcc4cfd"
            isDerived="false"
            sourceEndRoleName="Pass"
            targetEndRoleName="ClientPass"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="f150d342-3120-4ead-8f72-7922f2c616db"
              LastKnownName="Pass"
              LastKnownLocation="PassContainer.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="ab0bf6ec-08a3-4eff-8667-6666578ac33c"
                  name="Pass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="08660441-dec8-4967-9ae7-76c5fa113283"
                  name="ClientPass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true">
                  <lowerValueInternal>
                    <literalString
                      Id="78bdcedf-5cda-4c6a-8e50-f36026317e16"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="9b7d9139-0aa4-42f4-8661-0da7f929d1d6"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
          <association
            Id="5855de81-9d9c-4bbc-8a43-234fc856dfad"
            isDerived="false"
            sourceEndRoleName="PassTemplate"
            targetEndRoleName="INativePassTemplate"
            isLeaf="false"
            isAbstract="false">
            <interfaceMoniker
              Id="9b0624bd-9d02-45e7-b84c-8ea7df594ccd"
              LastKnownName="INativePassTemplate"
              LastKnownLocation="PassContainer.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="1630f3af-66bb-45e6-b5df-c4255be37333"
                  name="PassTemplate"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="1bc22c15-3f21-4226-a411-adeaecf45bb2"
                  name="INativePassTemplate"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true">
                  <lowerValueInternal>
                    <literalString
                      Id="1b79b875-a822-47b9-b985-3a0c9d6b684d"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="3b2e308c-3a23-416c-b006-633766b07fdf"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
          <association
            Id="e6d32a80-0943-4ce5-8265-917454e1e779"
            isDerived="false"
            sourceEndRoleName=""
            targetEndRoleName=""
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="c7fd8b4d-4e1d-46ea-a96c-bcc81f584eea"
              LastKnownName="PassTemplateNative"
              LastKnownLocation="PassContainer.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="0ad8d824-0f2b-42b2-85c7-059bf9a3f004"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="02d68bfa-4e44-4494-b563-1c83d742816b"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="d4bdb5c8-7509-42c8-b720-798f15484fbc"
            name="TemplateStorageId"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="50e4283e-0264-4484-a593-6c1424cc7889"
            name="Name"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="b8c9d615-1bf4-43d2-b68a-be2e96008605"
            name="Status"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="f150d342-3120-4ead-8f72-7922f2c616db"
        name="Pass"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="b994be99-ed7f-470d-a063-64519f85a71f"
            isDerived="false"
            sourceEndRoleName="ClientPass"
            targetEndRoleName="PassFieldValue"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="802c7aa6-2faa-4adb-9ed6-31a13319da32"
              LastKnownName="PassFieldValue"
              LastKnownLocation="PassContainer.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="6f0b0ec3-1354-4ea5-a386-ddbb2dd730cb"
                  name="ClientPass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="a6194cee-87c7-46da-8cd8-4ab5b4adf217"
                  name="PassFieldValue"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true">
                  <lowerValueInternal>
                    <literalString
                      Id="4f8934b4-ad2f-485e-a9b5-c45b4eee7bb7"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="19893d7e-efe3-4d43-9908-12c248690a82"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
          <association
            Id="e86932e7-18e7-4dca-bb2f-f4c4ad789cef"
            isDerived="false"
            sourceEndRoleName="Pass"
            targetEndRoleName="PassNative"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="8c785a7e-0a61-4196-9539-b2d72fac57ae"
              LastKnownName="PassNative"
              LastKnownLocation="PassModeling.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="10ba2f62-f90c-4b37-810a-14472b0cf4ee"
                  name="Pass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="730a2317-ea15-42c3-8db2-85ed064c63da"
                  name="PassNative"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="f24187c7-d4e4-4473-8de9-4e6379a16764"
            name="AuthToken"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="3f4c3a61-5b0c-4d30-b9fa-70cd203ae3c9"
            name="UpdateDate"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="7d8fa58e-fc3a-4f43-bf7e-2b8a848d1b39"
            name="ExpirationDate"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="c03194d0-0aaa-4996-9e8f-7ea3c3323630"
            name="Status"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="94448a0b-b237-43cb-a04f-a02230b2b6ba"
        name="Registration"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="c33b3673-5c30-4736-bcad-294ba9d84308"
            isDerived="false"
            sourceEndRoleName=""
            targetEndRoleName=""
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="f150d342-3120-4ead-8f72-7922f2c616db"
              LastKnownName="Pass"
              LastKnownLocation="PassContainer.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="f2cd1876-6b83-41ad-b4be-8c65290d7372"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="8c1975a4-8170-4e2f-940a-aaaf5fe78ee9"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="42da0c6d-bab3-4ce3-8877-4720e0d23682"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="91cba98c-e5e2-4e70-a97f-1467784b08df"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false">
                  <lowerValueInternal>
                    <literalString
                      Id="ff13c2e8-dde2-4271-a439-744511524dce"
                      name="Lower"
                      value="1" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="65830a8f-6e95-4b2c-baa5-1900f5aa973f"
                      name="Upper"
                      value="1" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
          <association
            Id="49001d0a-24e6-46a7-8138-544ab5382a18"
            isDerived="false"
            sourceEndRoleName=""
            targetEndRoleName=""
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="af83e8fe-54d1-4d1c-8740-2f3fda8e7cfd"
              LastKnownName="ClientDevice"
              LastKnownLocation="PassContainer.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="ed1d3b15-85d2-4b39-a27b-304099dfa411"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="6b9fced4-43b2-4887-bbf6-dd6f0623eb5b"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="075ea5a7-9409-4997-8589-9f9cc5d19cbd"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="27f36f73-5251-44d1-8529-db2e5dc25de1"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="31a1e01c-e77e-4b8c-9a0d-143e2a397950"
            name="Status"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="af83e8fe-54d1-4d1c-8740-2f3fda8e7cfd"
        name="ClientDevice"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <ownedAttributesInternal>
          <property
            Id="febdf95a-c949-4a47-a519-9c33aca713f3"
            name="DeviceId"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="9d95876a-bd38-4dde-8217-e5f49d198028"
            name="DeviceType"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="a675e13d-9743-4c46-b827-28b7d6bb582d"
        name="ClientDeviceApple"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <generalsInternal>
          <generalization
            Id="22c23ebf-0ba2-48d1-9a2a-76f660637136"
            isSubstitutable="false">
            <classMoniker
              Id="af83e8fe-54d1-4d1c-8740-2f3fda8e7cfd"
              LastKnownName="ClientDevice"
              LastKnownLocation="PassContainer.uml" />
          </generalization>
        </generalsInternal>
        <ownedAttributesInternal>
          <property
            Id="05cc2574-50ac-43ce-bf9d-ebbbfb11203a"
            name="PushToken"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="a43116b0-4ace-415d-b843-f44a04c81df0"
        name="ApplePassProcessingService"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <suppliersInternal>
          <interfaceRealization
            Id="2b1728e0-68d8-4434-b40e-92d70d4463a1">
            <interfaceMoniker
              Id="0011cd7d-47e4-4709-8c0b-9fc6f641ccdd"
              LastKnownName="IApplePassProcessingService"
              LastKnownLocation="PassContainer.uml" />
          </interfaceRealization>
          <dependency
            Id="af4899f0-8811-4349-813a-61cc6ee8243b">
            <interfaceMoniker
              Id="bf94aa0f-b7a0-4be6-818a-a6d2150d0be3"
              LastKnownName="IFileStorageService"
              LastKnownLocation="FileStorage.uml" />
          </dependency>
        </suppliersInternal>
        <ownedOperationsInternal>
          <operation
            Id="1008bdb4-639a-486e-bad7-0a5fef66deba"
            name="GetPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="924e6c10-d122-42fd-9e69-9b53cb113218"
                  name="passTypeIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="4c6a7624-bad7-4158-9715-f168af479bc3"
                  name="serialNumber"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="f90a8dcc-5c55-4bb4-88e2-687b9e7f313d"
            name="GetSerialNumbersOfPasses"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="41628e8d-71d5-401e-ac69-020f69fa2fa2"
                  name="deviceLibraryIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="dcc6b86d-7060-4fc0-835e-962426f95bd2"
                  name="passTypeIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="4ce812ac-9228-4c2f-8774-f63ee0dcfd85"
                  name="passesUpdatedSince"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="5402ae7f-283d-44dc-bae1-5285e06af96c"
            name="Log"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="d9a872b8-6b88-45d7-85d6-3042c0873c81"
                  name="logMessage"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="fab1857c-5d80-4f56-af80-c9fe39c1e762"
            name="RegisterDevice"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="25b23aa9-dd86-48ec-83b2-8471b5ed6449"
                  name="deviceLibraryIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="73b6df62-c3d3-4a86-9773-b1ac36ab62ad"
                  name="passTypeIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="245f4c8c-0992-4994-a819-b4a238e51c73"
                  name="serialNumber"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="cb7e7721-1448-48f4-a04e-264d1586315b"
                  name="pushTokenJson"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="6d89b070-e149-4120-8872-50c0b590b696"
            name="UnregisterDevice"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="b9b95af5-62ad-4716-8f99-166e8ee71277"
                  name="deviceLibraryIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="a6694cd2-37b9-44d6-b639-e94fe3170db1"
                  name="passTypeIdentifier"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="f9615775-4157-430d-9584-d24de9c7edc4"
                  name="serialNumber"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="28c10cef-dff1-4c73-8d57-165ad30265d2"
                  name="pushTokenJson"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="9b0624bd-9d02-45e7-b84c-8ea7df594ccd"
        name="INativePassTemplate"
        isAbstract="false"
        isLeaf="false">
        <ownedAttributes>
          <property
            Id="34ca12ed-d5ad-48f2-b80b-d5bcf1ea2c41"
            name="PackageId"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <primitiveTypeMoniker
                Id="220a3521-e091-4221-bae9-3ef9018e845c"
                LastKnownName="Integer"
                LastKnownLocation="PassModeling.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="7de05bcd-0a3b-4518-8a40-4ca0395269ac"
            name="PassTemplate"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <classMoniker
                Id="2871f6c0-aa1f-417a-bcc1-b966ca97f2cb"
                LastKnownName="PassTemplate"
                LastKnownLocation="PassContainer.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="55822b66-68c7-48e6-86c6-fd690ee123e1"
            name="PassTemplateType"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="3985b238-07b3-4daa-ad3d-e4d3673519d5"
            name="NativePassTemplateId"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <primitiveTypeMoniker
                Id="220a3521-e091-4221-bae9-3ef9018e845c"
                LastKnownName="Integer"
                LastKnownLocation="PassModeling.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributes>
      </Interface>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="379bf228-012d-4aac-b760-0606251b3b80"
        name="IPassTemplateService"
        isAbstract="false"
        isLeaf="false">
        <ownedOperations>
          <operation
            Id="40dba8d2-8db5-458c-9ff6-fb983f72a1f4"
            name="CreatePassTemlate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="0f994e36-b129-41a9-bf08-e565a8b3a842"
                  name="PassTemplatePath"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="42e255de-34bb-45b0-b60b-5ca4688733eb"
            name="UpdatePassTemplate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="2d476ea1-9bb3-459f-b0de-25064c4c9570"
                  name="PassTemplatePath"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="6286648c-dc66-4fed-8919-9288b071e478"
            name="DeletePassTemplate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="59a56fd3-7224-4b00-b932-574224a19274"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="6131ab18-ba32-4f9a-a221-8c03e08ba37c"
            name="GetNativePassTemplate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="9f3dd4d6-ddf9-4885-98dc-22b20b03904b"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="220a3521-e091-4221-bae9-3ef9018e845c"
                      LastKnownName="Integer"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="d9a5b02a-1279-41fc-97e1-781034edeb67"
                  name="PassTemplateType"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="35222eaf-d68f-4cda-a892-dffe21cbcd39"
            name="GetPassFields"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="e4bfee93-a0c4-4555-ae0c-3024ffda4479"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperations>
      </Interface>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="d76f181c-9d95-492b-b481-555437f72b4c"
        name="PassTemplateService"
        isAbstract="true"
        isLeaf="false"
        isActiveClass="false">
        <suppliersInternal>
          <interfaceRealization
            Id="51ac5da6-b1e7-4cfe-80e4-5465827bb666">
            <interfaceMoniker
              Id="379bf228-012d-4aac-b760-0606251b3b80"
              LastKnownName="IPassTemplateService"
              LastKnownLocation="PassContainer.uml" />
          </interfaceRealization>
          <dependency
            Id="a29243ed-6a21-4dc8-bdf1-bda508f076ff">
            <interfaceMoniker
              Id="bf94aa0f-b7a0-4be6-818a-a6d2150d0be3"
              LastKnownName="IFileStorageService"
              LastKnownLocation="FileStorage.uml" />
          </dependency>
        </suppliersInternal>
        <ownedOperationsInternal>
          <operation
            Id="35b83144-2487-49ec-aa38-a67879c6f6d2"
            name="CreatePassTemlate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="5037abd9-a4d7-4b13-98c7-ad8c48a9ebb7"
                  name="PassTemplatePath"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="88c9c29c-10c1-4e9c-b780-9d20d3b94c6d"
            name="DeletePassTemplate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="005dc714-b266-4b20-9a8d-8896e24ca498"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="7d82cba6-c4a2-4efe-a285-ba2fc49f9bb3"
            name="GetNativePassTemplate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="f32e0576-c0df-44c5-936f-f3c9fac5788c"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="220a3521-e091-4221-bae9-3ef9018e845c"
                      LastKnownName="Integer"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="aabd0bf5-3e55-4156-a440-85660a1bdca8"
                  name="PassTemplateTypy"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="3078164b-33a1-4ae5-ae1c-9f305ccd43aa"
            name="GetPassFields"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="6548d5e1-2527-4293-9b15-21d6498bb266"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="c11fa549-cf0e-4932-80ce-f145c5de0d31"
            name="UpdatePassTemplate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="ea52f142-08da-4620-97af-f91a68e92bee"
                  name="PassTemplatePath"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="PassModeling.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="c7fd8b4d-4e1d-46ea-a96c-bcc81f584eea"
        name="PassTemplateNative"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="d089eef9-d4da-47cb-b028-efa09c245cbc"
            isDerived="false"
            sourceEndRoleName="PassTemplateNative"
            targetEndRoleName="Certificate"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="dfe73b5a-6f03-4ed3-b4fb-26c9570e8360"
              LastKnownName="Certificate"
              LastKnownLocation="PassCertificateStorage.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="eabca4d8-deb9-4060-9a46-a142cb9eb961"
                  name="PassTemplateNative"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="d28ee4f0-273e-43e3-8926-ac62f4e835ab"
                  name="Certificate"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="3f7fb1d4-b4df-44a6-9ee5-a147b970c0da"
            name="DeviceType"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="b59f099c-2e8a-46f7-a507-280f9a5dd320"
            name="CertificateId"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="99bb5dd9-9803-4902-a2e9-44562eee880c"
        name="PassTemplateApple"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <generalsInternal>
          <generalization
            Id="20403e51-cddf-4bef-b204-3a92e78fdca9"
            isSubstitutable="false">
            <classMoniker
              Id="c7fd8b4d-4e1d-46ea-a96c-bcc81f584eea"
              LastKnownName="PassTemplateNative"
              LastKnownLocation="PassContainer.uml" />
          </generalization>
        </generalsInternal>
        <ownedAttributesInternal>
          <property
            Id="32c7ba9e-cb96-4964-90f7-ecc021ceef12"
            name="PassTypeId"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="6af47d6d-6e31-40a8-8e84-909719f06e2c"
        name="IPassContainerService"
        isAbstract="false"
        isLeaf="false">
        <ownedOperations>
          <operation
            Id="628ad5a5-4468-45e0-9d32-6bb06c681cf6"
            name="CreatePass"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="aae791f4-5572-483d-a7ac-6367501e29a0"
            name="UpdatePassFields"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false" />
        </ownedOperations>
      </Interface>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="c17a5123-9184-40da-9513-b0b2d0e53aac"
        name="IPassCertificateService"
        isAbstract="false"
        isLeaf="false">
        <ownedOperations>
          <operation
            Id="0b33b71b-36de-4399-b5e1-ff37454e1cb6"
            name="GetCertificate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false" />
        </ownedOperations>
      </Interface>
    </packageHasNamedElement>
  </packagedElements>
</package>