GuidesAPI Reference
Guides

LPP 18.3.0 ASN.1 Schema

This LPP 18.3.0 ASN.1 schema is used in UPER encoding the LPP data in Message payloads.

You can download the ASN.1 schema file from the code block below.

You can download the LPP v18.3.0 specification from LPP v18.3.0.

Supported data elements

Tables 1 and 2 summarize the supported data elements, corresponding Protobuf data types and support for each constellation for correctional data and for A-GNSS data, respectively. With A-GNSS data, Protobuf data type is DATATYPE_LPP_AGNSS_>, where brackets are replaced with constellation abbreviation.

Table 1. LPP elements for correction data. Brackets in data types are replaced with constellation abbreviation.

LPP elementProtobuf data typeGPSGLONASSBeidouGalileo
gnss-SSR-OrbitCorrections-r15DATATYPE_LPP_CLOCK_AND_ORBIT_>XXXX
gnss-SSR-ClockCorrections-r15DATATYPE_LPP_CLOCK_AND_ORBIT_>XXXX
gnss-SSR-CodeBias-r15DATATYPE_LPP_CODE_BIAS_>XXXX
GNSS-SSR-CorrectionPointsDATATYPE_LPP_IONO_>XXXX
GNSS-SSR-STEC-CorrectionDATATYPE_LPP_IONO_>XXXX
GNSS-SSR-GriddedCorrectionDATATYPE_LPP_IONO_>XXXX

Table 2. LPP elements for A-GNSS data.

LPP elementGPSGLONASSBeidouGalileoQZSS
GNSS-ReferenceTimeXXXXX
GNSS-IonosphericModelXXXX
GNSS-TimeModelListXXXXX
GNSS-NavigationModelXXXXX
GNSS-RealTimeIntegrityXXXXX
GNSS-AlmanacXXXXX
GNSS-UTC-ModelXXXXX
GNSS-AuxiliaryInformationXX

ASN.1 schema file

ASN.1 Schema
-- ASN.1 schema generated from https://www.3gpp.org/ftp/Specs/archive/37_series/37.355/37355-i30.zip

-- 3GPP TS 37.355 V18.3.0 (2024-09)
-- Technical Specification
-- 3rd Generation Partnership Project;
-- Technical Specification Group Radio Access Network;
-- LTE Positioning Protocol (LPP)
-- (Release 18)
--


LPP-PDU-Definitions
DEFINITIONS AUTOMATIC TAGS ::=

BEGIN


LPP-Message ::= SEQUENCE {
  transactionID           LPP-TransactionID   OPTIONAL,   -- Need ON
  endTransaction          BOOLEAN,
  sequenceNumber          SequenceNumber      OPTIONAL,   -- Need ON
  acknowledgement         Acknowledgement     OPTIONAL,   -- Need ON
  lpp-MessageBody         LPP-MessageBody     OPTIONAL    -- Need ON
}

SequenceNumber ::= INTEGER (0..255)

Acknowledgement ::= SEQUENCE {
  ackRequested    BOOLEAN,
  ackIndicator    SequenceNumber      OPTIONAL
}


LPP-MessageBody ::= CHOICE {
  c1                      CHOICE {
      requestCapabilities         RequestCapabilities,
      provideCapabilities         ProvideCapabilities,
      requestAssistanceData       RequestAssistanceData,
      provideAssistanceData       ProvideAssistanceData,
      requestLocationInformation  RequestLocationInformation,
      provideLocationInformation  ProvideLocationInformation,
      abort                       Abort,
      error                       Error,
      spare7 NULL, spare6 NULL, spare5 NULL, spare4 NULL,
      spare3 NULL, spare2 NULL, spare1 NULL, spare0 NULL
  },
  messageClassExtension   SEQUENCE {}
}


LPP-TransactionID ::= SEQUENCE {
  initiator               Initiator,
  transactionNumber       TransactionNumber,
  ...
}

Initiator ::= ENUMERATED {
  locationServer,
  targetDevice,
  ...
}

TransactionNumber ::= INTEGER (0..255)


RequestCapabilities ::= SEQUENCE {
  criticalExtensions      CHOICE {
      c1                      CHOICE {
          requestCapabilities-r9      RequestCapabilities-r9-IEs,
          spare3 NULL, spare2 NULL, spare1 NULL
      },
      criticalExtensionsFuture    SEQUENCE {}
  }
}

RequestCapabilities-r9-IEs ::= SEQUENCE {
  commonIEsRequestCapabilities        CommonIEsRequestCapabilities        OPTIONAL,   -- Need ON
  a-gnss-RequestCapabilities          A-GNSS-RequestCapabilities          OPTIONAL,   -- Need ON
  otdoa-RequestCapabilities           OTDOA-RequestCapabilities           OPTIONAL,   -- Need ON
  ecid-RequestCapabilities            ECID-RequestCapabilities            OPTIONAL,   -- Need ON
  epdu-RequestCapabilities            EPDU-Sequence                       OPTIONAL,   -- Need ON
  ...,
  [[  sensor-RequestCapabilities-r13  Sensor-RequestCapabilities-r13      OPTIONAL,   -- Need ON
      tbs-RequestCapabilities-r13     TBS-RequestCapabilities-r13         OPTIONAL,   -- Need ON
      wlan-RequestCapabilities-r13    WLAN-RequestCapabilities-r13        OPTIONAL,   -- Need ON
      bt-RequestCapabilities-r13      BT-RequestCapabilities-r13          OPTIONAL    -- Need ON
  ]],
  [[  nr-ECID-RequestCapabilities-r16 NR-ECID-RequestCapabilities-r16     OPTIONAL,   -- Need ON
      nr-Multi-RTT-RequestCapabilities-r16
                                      NR-Multi-RTT-RequestCapabilities-r16
                                                                          OPTIONAL,   -- Need ON
      nr-DL-AoD-RequestCapabilities-r16
                                      NR-DL-AoD-RequestCapabilities-r16   OPTIONAL,   -- Need ON
      nr-DL-TDOA-RequestCapabilities-r16
                                      NR-DL-TDOA-RequestCapabilities-r16  OPTIONAL,   -- Need ON
      nr-UL-RequestCapabilities-r16   NR-UL-RequestCapabilities-r16       OPTIONAL    -- Need ON
  ]]
}


ProvideCapabilities ::= SEQUENCE {
  criticalExtensions      CHOICE {
      c1                      CHOICE {
          provideCapabilities-r9      ProvideCapabilities-r9-IEs,
          spare3 NULL, spare2 NULL, spare1 NULL
      },
      criticalExtensionsFuture    SEQUENCE {}
  }
}

ProvideCapabilities-r9-IEs ::= SEQUENCE {
  commonIEsProvideCapabilities        CommonIEsProvideCapabilities            OPTIONAL,
  a-gnss-ProvideCapabilities          A-GNSS-ProvideCapabilities              OPTIONAL,
  otdoa-ProvideCapabilities           OTDOA-ProvideCapabilities               OPTIONAL,
  ecid-ProvideCapabilities            ECID-ProvideCapabilities                OPTIONAL,
  epdu-ProvideCapabilities            EPDU-Sequence                           OPTIONAL,
  ...,
  [[  sensor-ProvideCapabilities-r13  Sensor-ProvideCapabilities-r13          OPTIONAL,
      tbs-ProvideCapabilities-r13     TBS-ProvideCapabilities-r13             OPTIONAL,
      wlan-ProvideCapabilities-r13    WLAN-ProvideCapabilities-r13            OPTIONAL,
      bt-ProvideCapabilities-r13      BT-ProvideCapabilities-r13              OPTIONAL
  ]],
  [[  nr-ECID-ProvideCapabilities-r16 NR-ECID-ProvideCapabilities-r16         OPTIONAL,
      nr-Multi-RTT-ProvideCapabilities-r16
                                      NR-Multi-RTT-ProvideCapabilities-r16    OPTIONAL,
      nr-DL-AoD-ProvideCapabilities-r16
                                      NR-DL-AoD-ProvideCapabilities-r16       OPTIONAL,
      nr-DL-TDOA-ProvideCapabilities-r16
                                      NR-DL-TDOA-ProvideCapabilities-r16      OPTIONAL,
      nr-UL-ProvideCapabilities-r16   NR-UL-ProvideCapabilities-r16           OPTIONAL
  ]]
}


RequestAssistanceData ::= SEQUENCE {
  criticalExtensions      CHOICE {
      c1                      CHOICE {
          requestAssistanceData-r9    RequestAssistanceData-r9-IEs,
          spare3 NULL, spare2 NULL, spare1 NULL
      },
      criticalExtensionsFuture    SEQUENCE {}
  }
}

RequestAssistanceData-r9-IEs ::= SEQUENCE {
  commonIEsRequestAssistanceData      CommonIEsRequestAssistanceData      OPTIONAL,
  a-gnss-RequestAssistanceData        A-GNSS-RequestAssistanceData        OPTIONAL,
  otdoa-RequestAssistanceData         OTDOA-RequestAssistanceData         OPTIONAL,
  epdu-RequestAssistanceData          EPDU-Sequence                       OPTIONAL,
  ...,
  [[  sensor-RequestAssistanceData-r14
                                      Sensor-RequestAssistanceData-r14    OPTIONAL,
      tbs-RequestAssistanceData-r14   TBS-RequestAssistanceData-r14       OPTIONAL,
      wlan-RequestAssistanceData-r14  WLAN-RequestAssistanceData-r14      OPTIONAL
  ]],
  [[  nr-Multi-RTT-RequestAssistanceData-r16  NR-Multi-RTT-RequestAssistanceData-r16  OPTIONAL,
      nr-DL-AoD-RequestAssistanceData-r16     NR-DL-AoD-RequestAssistanceData-r16     OPTIONAL,
      nr-DL-TDOA-RequestAssistanceData-r16    NR-DL-TDOA-RequestAssistanceData-r16    OPTIONAL
  ]],
  [[
      bt-RequestAssistanceData-r18            BT-RequestAssistanceData-r18        OPTIONAL
  ]]}


ProvideAssistanceData ::= SEQUENCE {
  criticalExtensions      CHOICE {
      c1                      CHOICE {
          provideAssistanceData-r9    ProvideAssistanceData-r9-IEs,
          spare3 NULL, spare2 NULL, spare1 NULL
      },
      criticalExtensionsFuture    SEQUENCE {}
  }
}

ProvideAssistanceData-r9-IEs ::= SEQUENCE {
  commonIEsProvideAssistanceData      CommonIEsProvideAssistanceData      OPTIONAL,   -- Need ON
  a-gnss-ProvideAssistanceData        A-GNSS-ProvideAssistanceData        OPTIONAL,   -- Need ON
  otdoa-ProvideAssistanceData         OTDOA-ProvideAssistanceData         OPTIONAL,   -- Need ON
  epdu-Provide-Assistance-Data        EPDU-Sequence                       OPTIONAL,   -- Need ON
  ...,
  [[
  sensor-ProvideAssistanceData-r14    Sensor-ProvideAssistanceData-r14    OPTIONAL,   -- Need ON
  tbs-ProvideAssistanceData-r14       TBS-ProvideAssistanceData-r14       OPTIONAL,   -- Need ON
  wlan-ProvideAssistanceData-r14      WLAN-ProvideAssistanceData-r14      OPTIONAL    -- Need ON
  ]],
  [[  nr-Multi-RTT-ProvideAssistanceData-r16
                                      NR-Multi-RTT-ProvideAssistanceData-r16
                                                                          OPTIONAL,   -- Need ON
      nr-DL-AoD-ProvideAssistanceData-r16
                                      NR-DL-AoD-ProvideAssistanceData-r16 OPTIONAL,   -- Need ON
      nr-DL-TDOA-ProvideAssistanceData-r16
                                      NR-DL-TDOA-ProvideAssistanceData-r16
                                                                          OPTIONAL    -- Need ON
  ]],
  [[
      bt-ProvideAssistanceData-r18    BT-ProvideAssistanceData-r18        OPTIONAL    -- Need ON
  ]]
}


RequestLocationInformation ::= SEQUENCE {
  criticalExtensions      CHOICE {
      c1                      CHOICE {
          requestLocationInformation-r9   RequestLocationInformation-r9-IEs,
          spare3 NULL, spare2 NULL, spare1 NULL
      },
      criticalExtensionsFuture    SEQUENCE {}
  }
}

RequestLocationInformation-r9-IEs ::= SEQUENCE {
  commonIEsRequestLocationInformation
                                      CommonIEsRequestLocationInformation OPTIONAL,   -- Need ON
  a-gnss-RequestLocationInformation   A-GNSS-RequestLocationInformation   OPTIONAL,   -- Need ON
  otdoa-RequestLocationInformation    OTDOA-RequestLocationInformation    OPTIONAL,   -- Need ON
  ecid-RequestLocationInformation     ECID-RequestLocationInformation     OPTIONAL,   -- Need ON
  epdu-RequestLocationInformation     EPDU-Sequence                       OPTIONAL,   -- Need ON
  ...,
  [[
  sensor-RequestLocationInformation-r13
                                      Sensor-RequestLocationInformation-r13
                                                                          OPTIONAL,   -- Need ON
  tbs-RequestLocationInformation-r13  TBS-RequestLocationInformation-r13  OPTIONAL,   -- Need ON
  wlan-RequestLocationInformation-r13 WLAN-RequestLocationInformation-r13 OPTIONAL,   -- Need ON
  bt-RequestLocationInformation-r13   BT-RequestLocationInformation-r13   OPTIONAL    -- Need ON
  ]],
  [[  nr-ECID-RequestLocationInformation-r16
                                      NR-ECID-RequestLocationInformation-r16
                                                                          OPTIONAL,   -- Need ON
      nr-Multi-RTT-RequestLocationInformation-r16
                                      NR-Multi-RTT-RequestLocationInformation-r16
                                                                          OPTIONAL,   -- Need ON
      nr-DL-AoD-RequestLocationInformation-r16
                                      NR-DL-AoD-RequestLocationInformation-r16
                                                                          OPTIONAL,   -- Need ON
      nr-DL-TDOA-RequestLocationInformation-r16
                                      NR-DL-TDOA-RequestLocationInformation-r16
                                                                          OPTIONAL    -- Need ON
  ]]
}


ProvideLocationInformation ::= SEQUENCE {
  criticalExtensions      CHOICE {
      c1                      CHOICE {
          provideLocationInformation-r9   ProvideLocationInformation-r9-IEs,
          spare3 NULL, spare2 NULL, spare1 NULL
      },
      criticalExtensionsFuture    SEQUENCE {}
  }
}

ProvideLocationInformation-r9-IEs ::= SEQUENCE {
  commonIEsProvideLocationInformation
                                      CommonIEsProvideLocationInformation OPTIONAL,
  a-gnss-ProvideLocationInformation   A-GNSS-ProvideLocationInformation   OPTIONAL,
  otdoa-ProvideLocationInformation    OTDOA-ProvideLocationInformation    OPTIONAL,
  ecid-ProvideLocationInformation     ECID-ProvideLocationInformation     OPTIONAL,
  epdu-ProvideLocationInformation     EPDU-Sequence                       OPTIONAL,
  ...,
  [[
  sensor-ProvideLocationInformation-r13
                                      Sensor-ProvideLocationInformation-r13
                                                                          OPTIONAL,
  tbs-ProvideLocationInformation-r13  TBS-ProvideLocationInformation-r13  OPTIONAL,
  wlan-ProvideLocationInformation-r13 WLAN-ProvideLocationInformation-r13 OPTIONAL,
  bt-ProvideLocationInformation-r13   BT-ProvideLocationInformation-r13   OPTIONAL
  ]],
  [[  nr-ECID-ProvideLocationInformation-r16
                                  NR-ECID-ProvideLocationInformation-r16      OPTIONAL,
      nr-Multi-RTT-ProvideLocationInformation-r16
                                  NR-Multi-RTT-ProvideLocationInformation-r16 OPTIONAL,
      nr-DL-AoD-ProvideLocationInformation-r16
                                  NR-DL-AoD-ProvideLocationInformation-r16    OPTIONAL,
      nr-DL-TDOA-ProvideLocationInformation-r16
                                  NR-DL-TDOA-ProvideLocationInformation-r16   OPTIONAL
  ]]
}


Abort ::= SEQUENCE {
  criticalExtensions      CHOICE {
      c1                      CHOICE {
          abort-r9        Abort-r9-IEs,
          spare3 NULL, spare2 NULL, spare1 NULL
      },
      criticalExtensionsFuture    SEQUENCE {}
  }
}

Abort-r9-IEs ::= SEQUENCE {
  commonIEsAbort      CommonIEsAbort          OPTIONAL,   -- Need ON
  ...,
  epdu-Abort          EPDU-Sequence           OPTIONAL    -- Need ON
}


Error ::= CHOICE {
  error-r9                    Error-r9-IEs,
  criticalExtensionsFuture    SEQUENCE {}
}

Error-r9-IEs ::= SEQUENCE {
  commonIEsError      CommonIEsError          OPTIONAL,   -- Need ON
  ...,
  epdu-Error          EPDU-Sequence           OPTIONAL    -- Need ON
}

AccessTypes ::= SEQUENCE {
  accessTypes     BIT STRING {    eutra       (0),
                                  utra        (1),
                                  gsm         (2),
                                  nb-iot      (3),
                                  nr-v1510    (4) } (SIZE (1..8)),
  ...
}


ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)

ARFCN-ValueEUTRA-v9a0 ::=   INTEGER (maxEARFCN-Plus1..maxEARFCN2)

ARFCN-ValueEUTRA-r14 ::=    INTEGER (0..maxEARFCN2)


ARFCN-ValueNR-r15 ::= INTEGER (0..3279165)


ARFCN-ValueUTRA ::= INTEGER (0..16383)


CarrierFreq-NB-r14 ::=      SEQUENCE {
  carrierFreq-r14             ARFCN-ValueEUTRA-r14,
  carrierFreqOffset-r14       CarrierFreqOffsetNB-r14             OPTIONAL,
  ...
}


CarrierFreqOffsetNB-r14 ::=     ENUMERATED {
                                  v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5,
                                  v0, v1, v2, v3, v4, v5, v6, v7, v8, v9
                                  }


CellGlobalIdEUTRA-AndUTRA ::= SEQUENCE {
  plmn-Identity       SEQUENCE {
                          mcc     SEQUENCE (SIZE (3)) OF INTEGER (0..9),
                          mnc     SEQUENCE (SIZE (2..3))  OF INTEGER (0..9)
                      },
  cellIdentity        CHOICE {
      eutra   BIT STRING (SIZE (28)),
      utra    BIT STRING (SIZE (32))
  },
  ...
}


CellGlobalIdGERAN ::= SEQUENCE {
  plmn-Identity       SEQUENCE {
                          mcc     SEQUENCE (SIZE (3)) OF INTEGER (0..9),
                          mnc     SEQUENCE (SIZE (2..3))  OF INTEGER (0..9)
                          },
  locationAreaCode        BIT STRING (SIZE (16)),
  cellIdentity            BIT STRING (SIZE (16)),
  ...
}


ECGI ::= SEQUENCE {
  mcc             SEQUENCE (SIZE (3)) OF INTEGER (0..9),
  mnc             SEQUENCE (SIZE (2..3))  OF INTEGER (0..9),
  cellidentity    BIT STRING (SIZE (28))
}


Ellipsoid-Point ::= SEQUENCE {
  latitudeSign                ENUMERATED {north, south},
  degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
  degreesLongitude            INTEGER (-8388608..8388607)     -- 24 bit field
}


Ellipsoid-PointWithUncertaintyCircle ::= SEQUENCE {
  latitudeSign                ENUMERATED {north, south},
  degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
  degreesLongitude            INTEGER (-8388608..8388607),    -- 24 bit field
  uncertainty                 INTEGER (0..127)
}


EllipsoidPointWithUncertaintyEllipse ::= SEQUENCE {
  latitudeSign                ENUMERATED {north, south},
  degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
  degreesLongitude            INTEGER (-8388608..8388607),    -- 24 bit field
  uncertaintySemiMajor        INTEGER (0..127),
  uncertaintySemiMinor        INTEGER (0..127),
  orientationMajorAxis        INTEGER (0..179),
  confidence                  INTEGER (0..100)
}


EllipsoidPointWithAltitude ::= SEQUENCE {
  latitudeSign                ENUMERATED {north, south},
  degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
  degreesLongitude            INTEGER (-8388608..8388607),    -- 24 bit field
  altitudeDirection           ENUMERATED {height, depth},
  altitude                    INTEGER (0..32767)              -- 15 bit field
}


EllipsoidPointWithAltitudeAndUncertaintyEllipsoid ::= SEQUENCE {
  latitudeSign                ENUMERATED {north, south},
  degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
  degreesLongitude            INTEGER (-8388608..8388607),    -- 24 bit field
  altitudeDirection           ENUMERATED {height, depth},
  altitude                    INTEGER (0..32767),             -- 15 bit field
  uncertaintySemiMajor        INTEGER (0..127),
  uncertaintySemiMinor        INTEGER (0..127),
  orientationMajorAxis        INTEGER (0..179),
  uncertaintyAltitude         INTEGER (0..127),
  confidence                  INTEGER (0..100)
}


EllipsoidArc ::= SEQUENCE {
  latitudeSign                ENUMERATED {north, south},
  degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
  degreesLongitude            INTEGER (-8388608..8388607),    -- 24 bit field
  innerRadius                 INTEGER (0..65535),             -- 16 bit field,
  uncertaintyRadius           INTEGER (0..127),
  offsetAngle                 INTEGER (0..179),
  includedAngle               INTEGER (0..179),
  confidence                  INTEGER (0..100)
}


EPDU-Sequence ::= SEQUENCE (SIZE (1..maxEPDU)) OF EPDU

maxEPDU INTEGER ::= 16

EPDU ::= SEQUENCE {
  ePDU-Identifier         EPDU-Identifier,
  ePDU-Body               EPDU-Body
}

EPDU-Identifier ::= SEQUENCE {
  ePDU-ID                 EPDU-ID,
  ePDU-Name               EPDU-Name       OPTIONAL,
  ...
}

EPDU-ID ::= INTEGER (1..256)

EPDU-Name ::= VisibleString (SIZE (1..32))

EPDU-Body ::= OCTET STRING


FreqBandIndicatorNR-r16 ::= INTEGER (1..1024)


HA-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-r16 ::= SEQUENCE {
  degreesLatitude-r16                         INTEGER(-2147483648..2147483647),
  degreesLongitude-r16                        INTEGER(-2147483648..2147483647),
  altitude-r16                                INTEGER(-64000..1280000),
  uncertaintySemiMajor-r16                    INTEGER (0..255),
  uncertaintySemiMinor-r16                    INTEGER (0..255),
  orientationMajorAxis-r16                    INTEGER (0..179),
  horizontalConfidence-r16                    INTEGER (0..100),
  uncertaintyAltitude-r16                     INTEGER (0..255),
  verticalConfidence-r16                      INTEGER (0..100),
  ha-HorizontalExtendedRangeUsed-r16          BOOLEAN,
  ha-VerticalExtendedRangeUsed-r16            BOOLEAN
}


HA-EllipsoidPointWithScalableUncertaintyEllipse-r16 ::= SEQUENCE {
  degreesLatitude-r16                         INTEGER(-2147483648..2147483647),
  degreesLongitude-r16                        INTEGER(-2147483648..2147483647),
  uncertaintySemiMajor-r16                    INTEGER (0..255),
  uncertaintySemiMinor-r16                    INTEGER (0..255),
  orientationMajorAxis-r16                    INTEGER (0..179),
  confidence-r16                              INTEGER (0..100),
  ha-ExtendedUncertaintyRangeUsed-r16         BOOLEAN
}


HighAccuracyEllipsoidPointWithUncertaintyEllipse-r15 ::= SEQUENCE {
  degreesLatitude-r15             INTEGER(-2147483648..2147483647),
  degreesLongitude-r15            INTEGER(-2147483648..2147483647),
  uncertaintySemiMajor-r15        INTEGER (0..255),
  uncertaintySemiMinor-r15        INTEGER (0..255),
  orientationMajorAxis-r15        INTEGER (0..179),
  confidence-r15                  INTEGER (0..100)
}


HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15 ::= SEQUENCE {
  degreesLatitude-r15             INTEGER(-2147483648..2147483647),
  degreesLongitude-r15            INTEGER(-2147483648..2147483647),
  altitude-r15                    INTEGER(-64000..1280000),
  uncertaintySemiMajor-r15        INTEGER (0..255),
  uncertaintySemiMinor-r15        INTEGER (0..255),
  orientationMajorAxis-r15        INTEGER (0..179),
  horizontalConfidence-r15        INTEGER (0..100),
  uncertaintyAltitude-r15         INTEGER (0..255),
  verticalConfidence-r15          INTEGER (0..100)
}


HorizontalVelocity ::= SEQUENCE {
  bearing                     INTEGER(0..359),
  horizontalSpeed             INTEGER(0..2047)
}


HorizontalWithVerticalVelocity ::= SEQUENCE {
  bearing                     INTEGER(0..359),
  horizontalSpeed             INTEGER(0..2047),
  verticalDirection           ENUMERATED{upward, downward},
  verticalSpeed               INTEGER(0..255)
}


HorizontalVelocityWithUncertainty ::= SEQUENCE {
  bearing                     INTEGER(0..359),
  horizontalSpeed             INTEGER(0..2047),
  uncertaintySpeed            INTEGER(0..255)
}


HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE {
  bearing                     INTEGER(0..359),
  horizontalSpeed             INTEGER(0..2047),
  verticalDirection           ENUMERATED{upward, downward},
  verticalSpeed               INTEGER(0..255),
  horizontalUncertaintySpeed  INTEGER(0..255),
  verticalUncertaintySpeed    INTEGER(0..255)
}


Local2dPointWithUncertaintyEllipse-r18 ::= SEQUENCE {
  localOrigin-r18                             ReferencePoint-r16,
  cartesianCoordinatesUnits-r18               ENUMERATED { mm, cm, dm, m, ...},
  x-value-r18                                 X-Value-r18,
  y-value-r18                                 Y-Value-r18,
  uncertaintySemiMajor-r18                    INTEGER (0..127),
  uncertaintySemiMinor-r18                    INTEGER (0..127),
  orientationMajorAxis-r18                    INTEGER (0..179),
  confidence-r18                              INTEGER (0..100)
}


Local3dPointWithUncertaintyEllipsoid-r18 ::= SEQUENCE {
  localOrigin-r18                             ReferencePoint-r16,
  cartesianCoordinatesUnits-r18               ENUMERATED { mm, cm, dm, m, ...},
  x-value-r18                                 X-Value-r18,
  y-value-r18                                 Y-Value-r18,
  z-value-r18                                 Z-Value-r18,
  uncertaintySemiMajor-r18                    INTEGER (0..127),
  uncertaintySemiMinor-r18                    INTEGER (0..127),
  orientationMajorAxis-r18                    INTEGER (0..179),
  uncertaintyAltitude-r18                     INTEGER (0..127),
  confidence-r18                              INTEGER (0..100),
  vConfidence-r18                             INTEGER (0..100)            OPTIONAL    -- Need ON
}


LocationCoordinateTypes ::= SEQUENCE {
  ellipsoidPoint                                          BOOLEAN,
  ellipsoidPointWithUncertaintyCircle                     BOOLEAN,
  ellipsoidPointWithUncertaintyEllipse                    BOOLEAN,
  polygon                                                 BOOLEAN,
  ellipsoidPointWithAltitude                              BOOLEAN,
  ellipsoidPointWithAltitudeAndUncertaintyEllipsoid       BOOLEAN,
  ellipsoidArc                                            BOOLEAN,
  ...,
  [[
      highAccuracyEllipsoidPointWithUncertaintyEllipse-r15
                                                          BOOLEAN     OPTIONAL, -- Need ON
      highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15
                                                          BOOLEAN     OPTIONAL  -- Need ON
  ]],
  [[
      ha-EllipsoidPointWithScalableUncertaintyEllipse-r16
                                                          BOOLEAN     OPTIONAL, -- Need ON
      ha-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-r16
                                                          BOOLEAN     OPTIONAL  -- Need ON
  ]],
  [[
      local2dPointWithUncertaintyEllipse-r18              BOOLEAN     OPTIONAL, -- Need ON
      local3dPointWithUncertaintyEllipsoid-r18            BOOLEAN     OPTIONAL  -- Need ON
  ]]
}


NCGI-r15 ::= SEQUENCE {
  mcc-r15                 SEQUENCE (SIZE (3))     OF INTEGER (0..9),
  mnc-r15                 SEQUENCE (SIZE (2..3))  OF INTEGER (0..9),
  nr-cellidentity-r15     BIT STRING (SIZE (36))
}


NR-PhysCellID-r16 ::= INTEGER (0..1007)


PeriodicAssistanceDataControlParameters-r15 ::= SEQUENCE {
  periodicSessionID-r15           PeriodicSessionID-r15,
  ...,
  [[
      updateCapabilities-r15      UpdateCapabilities-r15      OPTIONAL     -- Need ON
  ]]
}

PeriodicSessionID-r15 ::= SEQUENCE {
  periodicSessionInitiator-r15    ENUMERATED { locationServer, targetDevice, ... },
  periodicSessionNumber-r15       INTEGER (0..255),
  ...
}

UpdateCapabilities-r15 ::= BIT STRING {primaryCellID-r15    (0)} (SIZE(1..8))


PeriodicReportingIntervalMsSupport-r18 ::= SEQUENCE {
  minPeriodicReportingIntervalMs-r18  ENUMERATED {ms1, ms10, ms100,...},
  ...
}


PeriodicReportingIntervalMsSupportPerMode-r18 ::= SEQUENCE {
  minPeriodicReportingIntervalMs1-Supported-r18   PositioningModes    OPTIONAL,
  minPeriodicReportingIntervalMs10-Supported-r18  PositioningModes    OPTIONAL,
  minPeriodicReportingIntervalMs100-Supported-r18 PositioningModes    OPTIONAL,
  ...
}


Polygon ::= SEQUENCE (SIZE (3..15)) OF PolygonPoints

PolygonPoints ::= SEQUENCE {
  latitudeSign                ENUMERATED {north, south},
  degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
  degreesLongitude            INTEGER (-8388608..8388607)     -- 24 bit field
}


PositioningModes ::= SEQUENCE {
  posModes        BIT STRING {    standalone  (0),
                                  ue-based    (1),
                                  ue-assisted (2)
  } (SIZE (1..8)),
  ...
}


ScheduledLocationTimeSupport-r17 ::= SEQUENCE {
  utcTime-r17         ENUMERATED { supported }            OPTIONAL,
  gnssTime-r17        GNSS-ID-Bitmap                      OPTIONAL,
  e-utraTime-r17      ENUMERATED { supported }            OPTIONAL,
  nrTime-r17          ENUMERATED { supported }            OPTIONAL,
  relativeTime-r17    ENUMERATED { supported }            OPTIONAL,
  ...
}


ScheduledLocationTimeSupportPerMode-r17 ::= SEQUENCE {
  utcTime-r17         PositioningModes                                OPTIONAL,
  gnssTime-r17        SEQUENCE {
                          posModes-r17        PositioningModes,
                          gnss-TimeIDs-r17    GNSS-ID-Bitmap
                      }                                               OPTIONAL,
  e-utraTime-r17      PositioningModes                                OPTIONAL,
  nrTime-r17          PositioningModes                                OPTIONAL,
  relativeTime-r17    PositioningModes                                OPTIONAL,
  ...
}


SegmentationInfo-r14 ::= ENUMERATED { noMoreMessages, moreMessagesOnTheWay }


VelocityTypes ::= SEQUENCE {
  horizontalVelocity                                      BOOLEAN,
  horizontalWithVerticalVelocity                          BOOLEAN,
  horizontalVelocityWithUncertainty                       BOOLEAN,
  horizontalWithVerticalVelocityAndUncertainty            BOOLEAN,
  ...
}


CommonIEsRequestCapabilities ::= SEQUENCE {
  ...,
  [[
  lpp-message-segmentation-req-r14    BIT STRING {    serverToTarget  (0),
                                                      targetToServer  (1) }   OPTIONAL -- Need ON
  ]],
  [[
  remoteUE-IndicationReq-r18      ENUMERATED { true }             OPTIONAL -- Cond NR
  ]]
}


CommonIEsProvideCapabilities ::= SEQUENCE {
  ...,
  [[
  segmentationInfo-r14            SegmentationInfo-r14            OPTIONAL,   -- Cond Segmentation
  lpp-message-segmentation-r14    BIT STRING { serverToTarget (0),
                                              targetToServer  (1) }   OPTIONAL
  ]],
  [[
  remoteUE-Indication-r18                     BOOLEAN                     OPTIONAL,   -- Cond NR
  locationEstimateAndMeasurementReporting-r18 ENUMERATED { supported }    OPTIONAL
  ]]
}


CommonIEsRequestAssistanceData ::= SEQUENCE {
  primaryCellID       ECGI        OPTIONAL,   -- Cond EUTRA
  ...,
  [[
      segmentationInfo-r14        SegmentationInfo-r14        OPTIONAL    -- Cond Segmentation
  ]],
  [[
      periodicAssistanceDataReq-r15
                                  PeriodicAssistanceDataControlParameters-r15
                                                              OPTIONAL,   -- Cond PerADreq
      primaryCellID-r15           NCGI-r15                    OPTIONAL    -- Cond NR
  ]]
}


CommonIEsProvideAssistanceData ::= SEQUENCE {
  ...,
  [[
      segmentationInfo-r14        SegmentationInfo-r14        OPTIONAL    -- Need ON
  ]],
  [[
      periodicAssistanceData-r15  PeriodicAssistanceDataControlParameters-r15
                                                              OPTIONAL    -- Cond PerAD
  ]]
}


CommonIEsRequestLocationInformation ::= SEQUENCE {
  locationInformationType     LocationInformationType,
  triggeredReporting          TriggeredReportingCriteria  OPTIONAL,   -- Cond ECID
  periodicalReporting         PeriodicalReportingCriteria OPTIONAL,   -- Need ON
  additionalInformation       AdditionalInformation       OPTIONAL,   -- Need ON
  qos                         QoS                         OPTIONAL,   -- Need ON
  environment                 Environment                 OPTIONAL,   -- Need ON
  locationCoordinateTypes     LocationCoordinateTypes     OPTIONAL,   -- Need ON
  velocityTypes               VelocityTypes               OPTIONAL,   -- Need ON
  ...,
  [[
      messageSizeLimitNB-r14  MessageSizeLimitNB-r14      OPTIONAL    -- Need ON
  ]],
  [[
      segmentationInfo-r14    SegmentationInfo-r14        OPTIONAL    -- Need ON
  ]],
  [[
      scheduledLocationTime-r17
                              ScheduledLocationTime-r17   OPTIONAL,   -- Need ON
      targetIntegrityRisk-r17
                              TargetIntegrityRisk-r17     OPTIONAL    -- Need ON
  ]],
  [[
      periodicalReportingExt-r18
                              PeriodicalReportingCriteriaExt-r18
                                                          OPTIONAL    -- Need ON
  ]]
}

LocationInformationType ::= ENUMERATED {
  locationEstimateRequired,
  locationMeasurementsRequired,
  locationEstimatePreferred,
  locationMeasurementsPreferred,
  ...,
  locationEstimateAndMeasurementsRequired-r18
}

PeriodicalReportingCriteria ::=     SEQUENCE {
  reportingAmount                     ENUMERATED {
                                          ra1, ra2, ra4, ra8, ra16, ra32,
                                          ra64, ra-Infinity
                                      } DEFAULT ra-Infinity,
  reportingInterval                   ENUMERATED {
                                          noPeriodicalReporting, ri0-25,
                                          ri0-5, ri1, ri2, ri4, ri8, ri16, ri32, ri64
                                      }
}

PeriodicalReportingCriteriaExt-r18 ::=      SEQUENCE {
  reportingAmount-r18                         ENUMERATED {
                                                  ra2, ra4, ra8, ra16, ra32,
                                                  ra64, ra-Infinity
                                              } DEFAULT ra-Infinity,
  reportingIntervalMs-r18                     INTEGER (1..999),
  ...
}

TriggeredReportingCriteria ::=      SEQUENCE {
  cellChange                          BOOLEAN,
  reportingDuration                   ReportingDuration,
  ...
}

ReportingDuration ::=               INTEGER (0..255)

AdditionalInformation ::= ENUMERATED {
  onlyReturnInformationRequested,
  mayReturnAdditionalInformation,
  ...
}

QoS ::= SEQUENCE {
  horizontalAccuracy          HorizontalAccuracy      OPTIONAL,   -- Need ON
  verticalCoordinateRequest   BOOLEAN,
  verticalAccuracy            VerticalAccuracy        OPTIONAL,   -- Need ON
  responseTime                ResponseTime            OPTIONAL,   -- Need ON
  velocityRequest             BOOLEAN,
  ...,
  [[  responseTimeNB-r14      ResponseTimeNB-r14      OPTIONAL    -- Need ON
  ]],
  [[  horizontalAccuracyExt-r15   HorizontalAccuracyExt-r15       OPTIONAL,   -- Need ON
      verticalAccuracyExt-r15     VerticalAccuracyExt-r15         OPTIONAL    -- Need ON
  ]]
}

HorizontalAccuracy ::= SEQUENCE {
  accuracy        INTEGER(0..127),
  confidence      INTEGER(0..100),
  ...
}

VerticalAccuracy ::= SEQUENCE {
  accuracy        INTEGER(0..127),
  confidence      INTEGER(0..100),
  ...
}

HorizontalAccuracyExt-r15 ::= SEQUENCE {
  accuracyExt-r15     INTEGER(0..255),
  confidence-r15      INTEGER(0..100),
  ...
}

VerticalAccuracyExt-r15 ::= SEQUENCE {
  accuracyExt-r15     INTEGER(0..255),
  confidence-r15      INTEGER(0..100),
  ...
}

ResponseTime ::= SEQUENCE {
  time                                INTEGER (1..128),
  ...,
  [[  responseTimeEarlyFix-r12        INTEGER (1..128)        OPTIONAL        -- Need ON
  ]],
  [[  unit-r15                ENUMERATED { ten-seconds, ... , ten-milli-seconds-v1700 }
                                                              OPTIONAL        -- Need ON
  ]]
}

ResponseTimeNB-r14 ::= SEQUENCE {
  timeNB-r14                          INTEGER (1..512),
  responseTimeEarlyFixNB-r14          INTEGER (1..512)        OPTIONAL,       -- Need ON
  ...,
  [[  unitNB-r15              ENUMERATED { ten-seconds, ... } OPTIONAL        -- Need ON
  ]]
}

Environment ::= ENUMERATED {
  badArea,
  notBadArea,
  mixedArea,
  ...
}

MessageSizeLimitNB-r14 ::= SEQUENCE {
  measurementLimit-r14                INTEGER (1..512)        OPTIONAL,       -- Need ON
  ...
}

ScheduledLocationTime-r17 ::= SEQUENCE {
  utcTime-r17         UTCTime                                         OPTIONAL,   -- Need ON
  gnssTime-r17        SEQUENCE {
                          gnss-TOD-msec-r17       INTEGER (0..3599999),
                          gnss-TimeID-r17         GNSS-ID
                      }                                               OPTIONAL,   -- Need ON
  networkTime-r17     CHOICE {
                          e-utraTime-r17          SEQUENCE {
                              lte-PhysCellId-r17          INTEGER (0..503),
                              lte-ArfcnEUTRA-r17          ARFCN-ValueEUTRA,
                              lte-CellGlobalId-r17        CellGlobalIdEUTRA-AndUTRA
                                                                      OPTIONAL,   -- Need ON
                              lte-SystemFrameNumber-r17   INTEGER (0..1023)
                          },
                          nrTime-r17              SEQUENCE {
                              nr-PhysCellID-r17       NR-PhysCellID-r16,
                              nr-ARFCN-r17            ARFCN-ValueNR-r15,
                              nr-CellGlobalID-r17     NCGI-r15    OPTIONAL,       -- Need ON
                              nr-SFN-r17              INTEGER (0..1023),
                              nr-Slot-r17             CHOICE {
                                  scs15-r17               INTEGER (0..9),
                                  scs30-r17               INTEGER (0..19),
                                  scs60-r17               INTEGER (0..39),
                                  scs120-r17              INTEGER (0..79)
                              }                                       OPTIONAL    -- Need ON
                          },
                          ...
                      }                                               OPTIONAL,   -- Need ON
  relativeTime-r17    INTEGER (1..1024)                               OPTIONAL    -- Need ON
}

TargetIntegrityRisk-r17 ::=     INTEGER (10..90)


CommonIEsProvideLocationInformation ::= SEQUENCE {
  locationEstimate            LocationCoordinates     OPTIONAL,
  velocityEstimate            Velocity                OPTIONAL,
  locationError               LocationError           OPTIONAL,
  ...,
  [[  earlyFixReport-r12      EarlyFixReport-r12      OPTIONAL
  ]],
  [[  locationSource-r13      LocationSource-r13      OPTIONAL,
      locationTimestamp-r13   UTCTime                 OPTIONAL
  ]],
  [[
      segmentationInfo-r14    SegmentationInfo-r14    OPTIONAL        -- Cond Segmentation
  ]],
  [[
      integrityInfo-r17       IntegrityInfo-r17       OPTIONAL
  ]]
}

LocationCoordinates ::= CHOICE {
  ellipsoidPoint                              Ellipsoid-Point,
  ellipsoidPointWithUncertaintyCircle         Ellipsoid-PointWithUncertaintyCircle,
  ellipsoidPointWithUncertaintyEllipse        EllipsoidPointWithUncertaintyEllipse,
  polygon                                     Polygon,
  ellipsoidPointWithAltitude                  EllipsoidPointWithAltitude,
  ellipsoidPointWithAltitudeAndUncertaintyEllipsoid
                                              EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
  ellipsoidArc                                EllipsoidArc,
  ...,
  highAccuracyEllipsoidPointWithUncertaintyEllipse-v1510
                              HighAccuracyEllipsoidPointWithUncertaintyEllipse-r15,
  highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-v1510
                              HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15,
  ha-EllipsoidPointWithScalableUncertaintyEllipse-v1680                                                                           HA-EllipsoidPointWithScalableUncertaintyEllipse-r16,
  ha-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-v1680
                              HA-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-r16,
  local2dPointWithUncertaintyEllipse-v1800    Local2dPointWithUncertaintyEllipse-r18,
  local3dPointWithUncertaintyEllipsoid-v1800  Local3dPointWithUncertaintyEllipsoid-r18
}

Velocity ::= CHOICE {
  horizontalVelocity                          HorizontalVelocity,
  horizontalWithVerticalVelocity              HorizontalWithVerticalVelocity,
  horizontalVelocityWithUncertainty           HorizontalVelocityWithUncertainty,
  horizontalWithVerticalVelocityAndUncertainty
                                              HorizontalWithVerticalVelocityAndUncertainty,
  ...
}

LocationError ::= SEQUENCE {
  locationfailurecause            LocationFailureCause,
  ...
}

LocationFailureCause ::= ENUMERATED {
  undefined,
  requestedMethodNotSupported,
  positionMethodFailure,
  periodicLocationMeasurementsNotAvailable,
  ...
}

EarlyFixReport-r12 ::= ENUMERATED {
  noMoreMessages,
  moreMessagesOnTheWay
}

LocationSource-r13 ::= BIT STRING { a-gnss              (0),
                                  wlan                (1),
                                  bt                  (2),
                                  tbs                 (3),
                                  sensor              (4),
                                  ha-gnss-v1510       (5),
                                  motion-sensor-v1550 (6),
                                  dl-tdoa-r16         (7),
                                  dl-aod-r16          (8) } (SIZE(1..16))

IntegrityInfo-r17 ::= SEQUENCE {
  horizontalProtectionLevel-r17       INTEGER (0..50000),
  verticalProtectionLevel-r17         INTEGER (0..50000)              OPTIONAL,
  achievableTargetIntegrityRisk-r17   INTEGER (10..90)                OPTIONAL,
  ...
}


CommonIEsAbort ::= SEQUENCE {
  abortCause          ENUMERATED {
      undefined,
      stopPeriodicReporting,
      targetDeviceAbort,
      networkAbort,
      ...,
      stopPeriodicAssistanceDataDelivery-v1510
  }
}


CommonIEsError ::= SEQUENCE {
  errorCause      ENUMERATED {
      undefined,
      lppMessageHeaderError,
      lppMessageBodyError,
      epduError,
      incorrectDataValue,
      ...,
      lppSegmentationError-v1450
  }
}


AreaID-CellList-r17 ::= SEQUENCE (SIZE(1..maxCellIDsPerArea-r17)) OF NR-Cell-IDs-r17

NR-Cell-IDs-r17 ::= SEQUENCE {
  nr-CellGlobalID-r17             NCGI-r15                    OPTIONAL,   -- Need ON
  nr-PhysCellID-r17               NR-PhysCellID-r16           OPTIONAL,   -- Need ON
  nr-ARFCN-r17                    ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
  ...
}


DL-PRS-ID-Info-r16 ::= SEQUENCE {
  dl-PRS-ID-r16                   INTEGER (0..255),
  nr-DL-PRS-ResourceID-List-r16   SEQUENCE (SIZE (1..nrMaxResourceIDs-r16)) OF
                                                  NR-DL-PRS-ResourceID-r16
                                                                          OPTIONAL, -- Need ON
  nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16
                                                                          OPTIONAL  -- Need ON
}


LCS-GCS-TranslationParameter-r16 ::= SEQUENCE {
  alpha-r16                       INTEGER (0..359),
  alpha-fine-r16                  INTEGER (0..9)                  OPTIONAL,   -- Cond AzElFine
  beta-r16                        INTEGER (0..359),
  beta-fine-r16                   INTEGER (0..9)                  OPTIONAL,   -- Cond AzElFine
  gamma-r16                       INTEGER (0..359),
  gamma-fine-r16                  INTEGER (0..9)                  OPTIONAL,   -- Cond AzElFine
  ...
}


LocalOrigin-r18 ::= SEQUENCE {
  coordinateID-r18    VisibleString (SIZE (1..256)),
  point-r18           HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15                                                                                   OPTIONAL, -- Need ON
  horizAxesOrientation-r18    INTEGER (0..3599)                       OPTIONAL,    -- Need ON
  ...
}


LOS-NLOS-Indicator-r17 ::= SEQUENCE {
  indicator-r17           CHOICE {
          soft-r17                INTEGER (0..10),
          hard-r17                BOOLEAN
          },
  ...
}


LOS-NLOS-IndicatorGranularity1-r17 ::=  ENUMERATED { trpspecific, resourcespecific }


LOS-NLOS-IndicatorGranularity2-r17 ::=  ENUMERATED { trpspecific, resourcespecific, both }


LOS-NLOS-IndicatorType1-r17 ::= ENUMERATED { hardvalue, softvalue }


LOS-NLOS-IndicatorType2-r17 ::= ENUMERATED { hardvalue, hardAndsoftvalue }


NR-AdditionalPathList-r16 ::= SEQUENCE (SIZE(1..2)) OF NR-AdditionalPath-r16

NR-AdditionalPathListExt-r17 ::= SEQUENCE (SIZE(1..8)) OF NR-AdditionalPath-r16

NR-AdditionalPath-r16 ::= SEQUENCE {
  nr-RelativeTimeDifference-r16   CHOICE {
              k0-r16                  INTEGER(0..16351),
              k1-r16                  INTEGER(0..8176),
              k2-r16                  INTEGER(0..4088),
              k3-r16                  INTEGER(0..2044),
              k4-r16                  INTEGER(0..1022),
              k5-r16                  INTEGER(0..511),
              ...,
              kMinus6-r18             INTEGER(0..1046401),
              kMinus5-r18             INTEGER(0..523201),
              kMinus4-r18             INTEGER(0..261601),
              kMinus3-r18             INTEGER(0..130801),
              kMinus2-r18             INTEGER(0..65401),
              kMinus1-r18             INTEGER(0..32701)
  },
  nr-PathQuality-r16              NR-TimingQuality-r16                    OPTIONAL,
  ...,
  [[
  nr-DL-PRS-RSRPP-r17             INTEGER (0..126)                        OPTIONAL
  ]]
}


NR-AggregatedDL-PRS-ResourceInfo-Element-r18 ::= SEQUENCE {
  aggregatedDL-PRS-ID-r18             INTEGER (0..255)                                OPTIONAL,
  nr-DL-PRS-ResourceSetID-r18         NR-DL-PRS-ResourceSetID-r16                 OPTIONAL,
  nr-DL-PRS-ResourceID-r18            NR-DL-PRS-ResourceID-r16                        OPTIONAL,
  ...
}


NR-DL-PRS-AssistanceData-r16 ::= SEQUENCE {
  nr-DL-PRS-ReferenceInfo-r16         DL-PRS-ID-Info-r16,
  nr-DL-PRS-AssistanceDataList-r16    SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                      NR-DL-PRS-AssistanceDataPerFreq-r16,
  nr-SSB-Config-r16                   SEQUENCE (SIZE (1..nrMaxTRPs-r16)) OF
                                                      NR-SSB-Config-r16   OPTIONAL,   -- Need ON
  ...,
  [[
  nr-DL-PRS-AggregationInfo-r18       NR-DL-PRS-AggregationInfo-r18       OPTIONAL    -- Need ON
  ]]
}

NR-DL-PRS-AssistanceDataPerFreq-r16 ::= SEQUENCE {
  nr-DL-PRS-PositioningFrequencyLayer-r16
                                      NR-DL-PRS-PositioningFrequencyLayer-r16,
  nr-DL-PRS-AssistanceDataPerFreq-r16 SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                      NR-DL-PRS-AssistanceDataPerTRP-r16,
  ...
}

NR-DL-PRS-AssistanceDataPerTRP-r16 ::= SEQUENCE {
  dl-PRS-ID-r16                   INTEGER (0..255),
  nr-PhysCellID-r16               NR-PhysCellID-r16           OPTIONAL,   -- Need ON
  nr-CellGlobalID-r16             NCGI-r15                    OPTIONAL,   -- Need ON
  nr-ARFCN-r16                    ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
  nr-DL-PRS-SFN0-Offset-r16       NR-DL-PRS-SFN0-Offset-r16,
  nr-DL-PRS-ExpectedRSTD-r16      INTEGER (-3841..3841),
  nr-DL-PRS-ExpectedRSTD-Uncertainty-r16
                                  INTEGER (0..246),
  nr-DL-PRS-Info-r16              NR-DL-PRS-Info-r16,
  ...,
  [[
      prs-OnlyTP-r16              ENUMERATED { true }     OPTIONAL    -- Need ON
  ]],
  [[
      nr-DL-PRS-ExpectedAoD-or-AoA-r17
                                  NR-DL-PRS-ExpectedAoD-or-AoA-r17    OPTIONAL    -- Need ON
  ]]
}

NR-DL-PRS-PositioningFrequencyLayer-r16 ::= SEQUENCE {
  dl-PRS-SubcarrierSpacing-r16    ENUMERATED {kHz15, kHz30, kHz60, kHz120, ...},
  dl-PRS-ResourceBandwidth-r16    INTEGER (1..63),
  dl-PRS-StartPRB-r16             INTEGER (0..2176),
  dl-PRS-PointA-r16               ARFCN-ValueNR-r15,
  dl-PRS-CombSizeN-r16            ENUMERATED {n2, n4, n6, n12, ...},
  dl-PRS-CyclicPrefix-r16         ENUMERATED {normal, extended, ...},
  ...
}

NR-DL-PRS-SFN0-Offset-r16 ::= SEQUENCE {
  sfn-Offset-r16                  INTEGER (0..1023),
  integerSubframeOffset-r16       INTEGER (0..9),
  ...
}

NR-DL-PRS-ExpectedAoD-or-AoA-r17 ::= CHOICE {
  expectedAoD-r17         SEQUENCE {
                              expectedDL-AzimuthAoD-r17       INTEGER (0..359),
                              expectedDL-AzimuthAoD-Unc-r17   INTEGER (0..60) OPTIONAL, -- Need OP
                              expectedDL-ZenithAoD-r17        INTEGER (0..180),
                              expectedDL-ZenithAoD-Unc-r17    INTEGER (0..30) OPTIONAL  -- Need OP
                          },
  expectedAoA-r17         SEQUENCE {
                              expectedDL-AzimuthAoA-r17       INTEGER (0..359),
                              expectedDL-AzimuthAoA-Unc-r17   INTEGER (0..60) OPTIONAL, -- Need OP
                              expectedDL-ZenithAoA-r17        INTEGER (0..180),
                              expectedDL-ZenithAoA-Unc-r17    INTEGER (0..30) OPTIONAL  -- Need OP
                          }
}

NR-DL-PRS-AggregationInfo-r18 ::= SEQUENCE (SIZE (1..nrMaxNumPRS-BandWidthAggregation-r18)) OF
                                          NR-linkedDL-PRS-ResourceSetID-PRS-AggregationList-r18

NR-linkedDL-PRS-ResourceSetID-PRS-AggregationList-r18 ::= SEQUENCE (SIZE (2..3)) OF
                                          NR-DL-PRS-AggregationElement-r18

NR-DL-PRS-AggregationElement-r18 ::= SEQUENCE {
  nr-DL-PRS-FrequencyLayerIndex-r18       INTEGER (0..nrMaxFreqLayers-1-r16),
  nr-DL-PRS-TRP-Index-r18                 INTEGER (0..nrMaxTRPsPerFreq-1-r16),
  nr-DL-PRS-ResourceSetIndex-r18          INTEGER (0..nrMaxSetsPerTrpPerFreqLayer-1-r16)
}


NR-DL-PRS-BeamInfo-r16 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                              NR-DL-PRS-BeamInfoPerFreqLayer-r16

NR-DL-PRS-BeamInfoPerFreqLayer-r16 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                              NR-DL-PRS-BeamInfoPerTRP-r16

NR-DL-PRS-BeamInfoPerTRP-r16 ::= SEQUENCE {
  dl-PRS-ID-r16                       INTEGER (0..255),
  nr-PhysCellID-r16                   NR-PhysCellID-r16       OPTIONAL,   -- Need ON
  nr-CellGlobalID-r16                 NCGI-r15                OPTIONAL,   -- Need ON
  nr-ARFCN-r16                        ARFCN-ValueNR-r15       OPTIONAL,   -- Need ON
  associated-DL-PRS-ID-r16            INTEGER (0..255)        OPTIONAL,   -- Need OP
  lcs-GCS-TranslationParameter-r16    LCS-GCS-TranslationParameter-r16
                                                              OPTIONAL,   -- Need OP
  dl-PRS-BeamInfoSet-r16              DL-PRS-BeamInfoSet-r16  OPTIONAL,   -- Need OP
  ...
}

DL-PRS-BeamInfoSet-r16 ::= SEQUENCE (SIZE(1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                                              DL-PRS-BeamInfoResourceSet-r16

DL-PRS-BeamInfoResourceSet-r16 ::= SEQUENCE (SIZE(1..nrMaxResourcesPerSet-r16)) OF
                                                              DL-PRS-BeamInfoElement-r16

DL-PRS-BeamInfoElement-r16 ::= SEQUENCE {
  dl-PRS-Azimuth-r16              INTEGER (0..359),
  dl-PRS-Azimuth-fine-r16         INTEGER (0..9)                  OPTIONAL,   -- Need ON
  dl-PRS-Elevation-r16            INTEGER (0..180)                OPTIONAL,   -- Need ON
  dl-PRS-Elevation-fine-r16       INTEGER (0..9)                  OPTIONAL,   -- Need ON
  ...,
  [[
  nr-IntegrityBeamInfoBounds-r18  NR-IntegrityBeamInfoBounds-r18  OPTIONAL    -- Need OP
  ]]
}

NR-IntegrityBeamInfoBounds-r18 ::= SEQUENCE {
  meanAzimuth-r18                 INTEGER (0..255),
  stdDevAzimuth-r18               INTEGER (0..255),
  meanElevation-r18               INTEGER (0..255),
  stdDevElevation-r18             INTEGER (0..255),
  ...
}


NR-DL-PRS-ExpectedLOS-NLOS-Assistance-r17 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                          NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerFreqLayer-r17

NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerFreqLayer-r17 ::=
                                              SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                          NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerTRP-r17

NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerTRP-r17 ::= SEQUENCE {
  dl-PRS-ID-r17               INTEGER (0..255),
  nr-PhysCellID-r17           NR-PhysCellID-r16           OPTIONAL,   -- Need ON
  nr-CellGlobalID-r17         NCGI-r15                    OPTIONAL,   -- Need ON
  nr-ARFCN-r17                ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
  nr-los-nlos-indicator-r17   CHOICE {
              perTrp-r17          LOS-NLOS-Indicator-r17,
              perResource-r17     SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                          NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerResource-r17                },
  ...
}

NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerResource-r17 ::=
                                      SEQUENCE (SIZE (1..nrMaxResourcesPerSet-r16)) OF
                                          LOS-NLOS-Indicator-r17


NR-DL-PRS-Info-r16 ::= SEQUENCE {
  nr-DL-PRS-ResourceSetList-r16       SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                                                  NR-DL-PRS-ResourceSet-r16,
  ...
}

NR-DL-PRS-ResourceSet-r16 ::= SEQUENCE {
  nr-DL-PRS-ResourceSetID-r16         NR-DL-PRS-ResourceSetID-r16,
  dl-PRS-Periodicity-and-ResourceSetSlotOffset-r16
                                      NR-DL-PRS-Periodicity-and-ResourceSetSlotOffset-r16,
  dl-PRS-ResourceRepetitionFactor-r16 ENUMERATED {n2, n4, n6, n8, n16, n32, ...}
                                                                          OPTIONAL,   -- Need OP
  dl-PRS-ResourceTimeGap-r16          ENUMERATED {s1, s2, s4, s8, s16, s32, ...}
                                                                          OPTIONAL,   -- Cond Rep
  dl-PRS-NumSymbols-r16               ENUMERATED {n2, n4, n6, n12, ..., n1-v1800 },
  dl-PRS-MutingOption1-r16            DL-PRS-MutingOption1-r16            OPTIONAL,   -- Need OP
  dl-PRS-MutingOption2-r16            DL-PRS-MutingOption2-r16            OPTIONAL,   -- Need OP
  dl-PRS-ResourcePower-r16            INTEGER (-60..50),
  dl-PRS-ResourceList-r16             SEQUENCE (SIZE (1..nrMaxResourcesPerSet-r16)) OF
                                                                  NR-DL-PRS-Resource-r16,
  ...
}

DL-PRS-MutingOption1-r16 ::= SEQUENCE {
  dl-prs-MutingBitRepetitionFactor-r16
                                      ENUMERATED { n1, n2, n4, n8, ... }  OPTIONAL,   -- Need OP
  nr-option1-muting-r16               NR-MutingPattern-r16,
  ...
}

DL-PRS-MutingOption2-r16 ::= SEQUENCE {
  nr-option2-muting-r16               NR-MutingPattern-r16,
  ...
}

NR-MutingPattern-r16 ::= CHOICE {
  po2-r16                             BIT STRING (SIZE(2)),
  po4-r16                             BIT STRING (SIZE(4)),
  po6-r16                             BIT STRING (SIZE(6)),
  po8-r16                             BIT STRING (SIZE(8)),
  po16-r16                            BIT STRING (SIZE(16)),
  po32-r16                            BIT STRING (SIZE(32)),
  ...
}

NR-DL-PRS-Resource-r16 ::= SEQUENCE {
  nr-DL-PRS-ResourceID-r16            NR-DL-PRS-ResourceID-r16,
  dl-PRS-SequenceID-r16               INTEGER (0.. 4095),
  dl-PRS-CombSizeN-AndReOffset-r16    CHOICE {
          n2-r16                          INTEGER (0..1),
          n4-r16                          INTEGER (0..3),
          n6-r16                          INTEGER (0..5),
          n12-r16                         INTEGER (0..11),
          ...
  },
  dl-PRS-ResourceSlotOffset-r16       INTEGER (0..nrMaxResourceOffsetValue-1-r16),
  dl-PRS-ResourceSymbolOffset-r16     INTEGER (0..12),
  dl-PRS-QCL-Info-r16                 DL-PRS-QCL-Info-r16                 OPTIONAL,   --Need ON
  ...,
  [[
  dl-PRS-ResourcePrioritySubset-r17   DL-PRS-ResourcePrioritySubset-r17   OPTIONAL    -- Need ON
  ]],
  [[
  dl-PRS-ResourceSymbolOffset-v1800   INTEGER (13)                        OPTIONAL    -- Need OR
  ]]
}

DL-PRS-QCL-Info-r16 ::= CHOICE {
  ssb-r16                     SEQUENCE {
      pci-r16                         NR-PhysCellID-r16,
      ssb-Index-r16                   INTEGER (0..63),
      rs-Type-r16                     ENUMERATED {typeC, typeD, typeC-plus-typeD}
  },
  dl-PRS-r16                  SEQUENCE {
      qcl-DL-PRS-ResourceID-r16       NR-DL-PRS-ResourceID-r16,
      qcl-DL-PRS-ResourceSetID-r16    NR-DL-PRS-ResourceSetID-r16
  }
}

NR-DL-PRS-Periodicity-and-ResourceSetSlotOffset-r16 ::= CHOICE {
  scs15-r16       CHOICE {
                      n4-r16                  INTEGER (0..3),
                      n5-r16                  INTEGER (0..4),
                      n8-r16                  INTEGER (0..7),
                      n10-r16                 INTEGER (0..9),
                      n16-r16                 INTEGER (0..15),
                      n20-r16                 INTEGER (0..19),
                      n32-r16                 INTEGER (0..31),
                      n40-r16                 INTEGER (0..39),
                      n64-r16                 INTEGER (0..63),
                      n80-r16                 INTEGER (0..79),
                      n160-r16                INTEGER (0..159),
                      n320-r16                INTEGER (0..319),
                      n640-r16                INTEGER (0..639),
                      n1280-r16               INTEGER (0..1279),
                      n2560-r16               INTEGER (0..2559),
                      n5120-r16               INTEGER (0..5119),
                      n10240-r16              INTEGER (0..10239),
                      ...
  },
  scs30-r16       CHOICE {
                      n8-r16                  INTEGER (0..7),
                      n10-r16                 INTEGER (0..9),
                      n16-r16                 INTEGER (0..15),
                      n20-r16                 INTEGER (0..19),
                      n32-r16                 INTEGER (0..31),
                      n40-r16                 INTEGER (0..39),
                      n64-r16                 INTEGER (0..63),
                      n80-r16                 INTEGER (0..79),
                      n128-r16                INTEGER (0..127),
                      n160-r16                INTEGER (0..159),
                      n320-r16                INTEGER (0..319),
                      n640-r16                INTEGER (0..639),
                      n1280-r16               INTEGER (0..1279),
                      n2560-r16               INTEGER (0..2559),
                      n5120-r16               INTEGER (0..5119),
                      n10240-r16              INTEGER (0..10239),
                      n20480-r16              INTEGER (0..20479),
                      ...
  },
  scs60-r16       CHOICE {
                      n16-r16                 INTEGER (0..15),
                      n20-r16                 INTEGER (0..19),
                      n32-r16                 INTEGER (0..31),
                      n40-r16                 INTEGER (0..39),
                      n64-r16                 INTEGER (0..63),
                      n80-r16                 INTEGER (0..79),
                      n128-r16                INTEGER (0..127),
                      n160-r16                INTEGER (0..159),
                      n256-r16                INTEGER (0..255),
                      n320-r16                INTEGER (0..319),
                      n640-r16                INTEGER (0..639),
                      n1280-r16               INTEGER (0..1279),
                      n2560-r16               INTEGER (0..2559),
                      n5120-r16               INTEGER (0..5119),
                      n10240-r16              INTEGER (0..10239),
                      n20480-r16              INTEGER (0..20479),
                      n40960-r16              INTEGER (0..40959),
                      ...
  },
  scs120-r16      CHOICE {
                      n32-r16                 INTEGER (0..31),
                      n40-r16                 INTEGER (0..39),
                      n64-r16                 INTEGER (0..63),
                      n80-r16                 INTEGER (0..79),
                      n128-r16                INTEGER (0..127),
                      n160-r16                INTEGER (0..159),
                      n256-r16                INTEGER (0..255),
                      n320-r16                INTEGER (0..319),
                      n512-r16                INTEGER (0..511),
                      n640-r16                INTEGER (0..639),
                      n1280-r16               INTEGER (0..1279),
                      n2560-r16               INTEGER (0..2559),
                      n5120-r16               INTEGER (0..5119),
                      n10240-r16              INTEGER (0..10239),
                      n20480-r16              INTEGER (0..20479),
                      n40960-r16              INTEGER (0..40959),
                      n81920-r16              INTEGER (0..81919),
                      ...
  },
  ...
}

DL-PRS-ResourcePrioritySubset-r17 ::= SEQUENCE (SIZE (1..maxNumPrioResources-r17)) OF
                                                      NR-DL-PRSResourcePriorityItem-r17

NR-DL-PRSResourcePriorityItem-r17 ::= SEQUENCE {
  nr-DL-PRS-PrioResourceSetID-r17         NR-DL-PRS-ResourceSetID-r16 OPTIONAL,   -- Cond NotSame
  nr-DL-PRS-PrioResourceID-r17            NR-DL-PRS-ResourceID-r16,
  ...
}


NR-DL-PRS-MeasurementTimeWindowsConfig-r18 ::=
                                  SEQUENCE (SIZE(1..2)) OF
                                          NR-DL-PRS-MeasurementTimeWindowsConfigElement-r18

NR-DL-PRS-MeasurementTimeWindowsConfigElement-r18 ::= SEQUENCE {
  nr-StartSFN-TimeWindow-r18      INTEGER (0..1023),
  nr-PeriodicOrOneShotTimeWindow-r18 CHOICE {
      nr-PeriodicityAndSlotOffsetTimeWindow-r18
                                      NR-DL-PRS-Periodicity-and-ResourceSetSlotOffset-r16,
      nr-OneShotSlotOffsetTimeWindow-r18 CHOICE {
              scs15-r18                       INTEGER (0..10239),
              scs30-r18                       INTEGER (0..20479),
              scs60-r18                       INTEGER (0..40959),
              scs120-r18                      INTEGER (0..81919)
      }
  }                                                                       OPTIONAL, -- Need ON
  nr-SymbolOffsetTimeWindow-r18   INTEGER (0..13)                         OPTIONAL, -- Need ON
  nr-DurationTimeWindow-r18       ENUMERATED { n1, n2, n4, n6, n8, n12, n16, ... },
  nr-SelectedDL-PRS-FrequencyLayerIndex-r18   INTEGER (0..nrMaxFreqLayers-1-r16)
                                                                          OPTIONAL, -- Need ON
  nr-SelectedDL-PRS-IndexListPerFreq-r18
                                  SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                      NR-SelectedDL-PRS-IndexPerTRP-r18   OPTIONAL, -- Need OP
  nr-MeasurementsToPerformInTimeWindow-r18            BIT STRING { rstd (0),
                                                              ueRxTx (1),
                                                              rsrp (2),
                                                              rsrpp (3),
                                                              rscp (4),
                                                              rscpd (5)
                                                          } (SIZE(1..16)) OPTIONAL, -- Need ON
  ...
}

NR-SelectedDL-PRS-IndexPerTRP-r18 ::= SEQUENCE {
  nr-SelectedTRP-Index-r18                INTEGER (0..nrMaxTRPsPerFreq-1-r16),
  dl-SelectedPRS-ResourceSetIndexList-r18 SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                      INTEGER (0..nrMaxSetsPerTrpPerFreqLayer-1-r16)      OPTIONAL, --Need OP
  ...
}


NR-DL-PRS-ProcessingCapability-r16 ::= SEQUENCE {
  prs-ProcessingCapabilityBandList-r16    SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                              PRS-ProcessingCapabilityPerBand-r16,
  maxSupportedFreqLayers-r16              INTEGER (1..4),
  simulLTE-NR-PRS-r16                     ENUMERATED { supported }        OPTIONAL,
  ...,
  [[
  dummy                                   ENUMERATED { m1, m2, ... }      OPTIONAL
  ]]
}

PRS-ProcessingCapabilityPerBand-r16 ::= SEQUENCE {
  freqBandIndicatorNR-r16             FreqBandIndicatorNR-r16,
  supportedBandwidthPRS-r16           CHOICE {
      fr1                                     ENUMERATED {mhz5, mhz10, mhz20, mhz40,
                                                          mhz50, mhz80, mhz100},
      fr2                                     ENUMERATED {mhz50, mhz100, mhz200, mhz400},
      ...
  },
  dl-PRS-BufferType-r16               ENUMERATED {type1, type2, ...},
  durationOfPRS-Processing-r16        SEQUENCE {
      durationOfPRS-ProcessingSymbols-r16 ENUMERATED {nDot125, nDot25, nDot5, n1,
                                                           n2, n4, n6, n8, n12, n16, n20, n25,
                                                           n30, n32, n35, n40, n45, n50},
      durationOfPRS-ProcessingSymbolsInEveryTms-r16
                                              ENUMERATED {n8, n16, n20, n30, n40, n80,
                                                           n160,n320, n640, n1280},
      ...
  },
  maxNumOfDL-PRS-ResProcessedPerSlot-r16  SEQUENCE {
      scs15-r16                               ENUMERATED {n1, n2, n4, n8, n16, n24, n32,
                                                           n48, n64}                  OPTIONAL,
      scs30-r16                               ENUMERATED {n1, n2, n4, n8, n16, n24, n32,
                                                           n48, n64}                  OPTIONAL,
      scs60-r16                               ENUMERATED {n1, n2, n4, n8, n16, n24, n32,
                                                           n48, n64}                  OPTIONAL,
      scs120-r16                              ENUMERATED {n1, n2, n4, n8, n16, n24, n32,
                                                           n48, n64}                  OPTIONAL,
      ...,
      [[
      scs15-v1690                             ENUMERATED {n6, n12}                    OPTIONAL,
      scs30-v1690                             ENUMERATED {n6, n12}                    OPTIONAL,
      scs60-v1690                             ENUMERATED {n6, n12}                    OPTIONAL,
      scs120-v1690                            ENUMERATED {n6, n12}                    OPTIONAL
      ]]
  },
  ...,
  [[
  supportedDL-PRS-ProcessingSamples-RRC-CONNECTED-r17 ENUMERATED { supported }        OPTIONAL,
  prs-ProcessingWindowType1A-r17          ENUMERATED { option1, option2, option3}     OPTIONAL,
  prs-ProcessingWindowType1B-r17          ENUMERATED { option1, option2, option3}     OPTIONAL,
  prs-ProcessingWindowType2-r17           ENUMERATED { option1, option2, option3}     OPTIONAL,
  prs-ProcessingCapabilityOutsideMGinPPW-r17
                                          SEQUENCE (SIZE(1..3)) OF
                                              PRS-ProcessingCapabilityOutsideMGinPPWperType-r17
                                                                                      OPTIONAL,
  dl-PRS-BufferType-RRC-Inactive-r17      ENUMERATED { type1, type2, ... }            OPTIONAL,
  durationOfPRS-Processing-RRC-Inactive-r17   SEQUENCE {
      durationOfPRS-ProcessingSymbols-r17         ENUMERATED {nDot125, nDot25, nDot5, n1,
                                                              n2, n4, n6, n8, n12, n16, n20, n25,
                                                              n30, n32, n35, n40, n45, n50},
      durationOfPRS-ProcessingSymbolsInEveryTms-r17
                                                  ENUMERATED {n8, n16, n20, n30, n40, n80,
                                                              n160,n320, n640, n1280},
      ...
  }                                                                                   OPTIONAL,
  maxNumOfDL-PRS-ResProcessedPerSlot-RRC-Inactive-r17 SEQUENCE {
      scs15-r17                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs30-r17                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs60-r17                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs120-r17                              ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      ...
  }                                                                                   OPTIONAL,
  supportedLowerRxBeamSweepingFactor-FR2-r17  ENUMERATED { n1, n2, n4, n6 }           OPTIONAL
  ]],
  [[
  supportedDL-PRS-ProcessingSamples-RRC-Inactive-r17  ENUMERATED { supported }        OPTIONAL
  ]],
  [[
  prs-MeasurementWithoutMG-r17                ENUMERATED {cp, symbolDot25, symbolDot5,
                                                                          slotDot5}                   OPTIONAL
  ]],
  [[
  maxNumOfOneSymbolPRS-ResProcessedPerSlot-RRC-Inactive-r18   SEQUENCE {
      scs15-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs30-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs60-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs120-r18                              ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      ...
  }                                                                                   OPTIONAL,
  maxNumOfOneSymbolPRS-ResProcessedPerSlot-RRC-Connected-r18  SEQUENCE {
      scs15-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs30-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs60-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs120-r18                              ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      ...
  }                                                                                   OPTIONAL,
  ppw-maxNumOfOneSymbolPRS-ResProcessedPerSlot-r18    SEQUENCE {
      scs15-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs30-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs60-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      scs120-r18                              ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                          n32, n48, n64}              OPTIONAL,
      ...
  }                                                                                   OPTIONAL,
  prs-BWA-TwoContiguousIntrabandInMG-RRC-Connected-r18
                                                  PRS-BWA-TwoContiguousIntrabandInMG-r18      OPTIONAL,
          prs-BWA-ThreeContiguousIntrabandInMG-RRC-Connected-r18
                                                  PRS-BWA-ThreeContiguousIntrabandInMG-r18    OPTIONAL,
          prs-BWA-TwoContiguousIntraband-RRC-IdleAndInactive-r18
                                                  PRS-BWA-TwoContiguousIntrabandInMG-r18      OPTIONAL,
          prs-BWA-ThreeContiguousIntraband-RRC-IdleAndInactive-r18
                                                  PRS-BWA-ThreeContiguousIntrabandInMG-r18    OPTIONAL,
                  reducedNumOfSampleInMeasurementWithPRS-BWA-RRC-Connected-r18        ENUMERATED { supported }
                                                                                                      OPTIONAL,
          reducedNumOfSampleInMeasurementWithPRS-BWA-RRC-IdleAndInactive-r18
                                                  ENUMERATED { supported }                    OPTIONAL,
          dl-PRS-MeasurementWithRxFH-RRC-Inactive-r18     ENUMERATED { supported }            OPTIONAL,
          dl-PRS-MeasurementWithRxFH-RRC-Idle-r18         ENUMERATED { supported }            OPTIONAL,
          reducedNumOfSampleForMeasurementWithFH-RRC-Connected-r18    ENUMERATED { supported }
                                                                                              OPTIONAL,
          reducedNumOfSampleForMeasurementWithFH-RRC-IdleAndInactive-r18  ENUMERATED { supported }
                                                                                              OPTIONAL,
              supportOfPRS-BWA-WithTwoPFL-Combination-r18         ENUMERATED { supported }        OPTIONAL,
              dl-PRS-MeasurementWithRxFH-RRC-Connected-r18    DL-PRS-MeasurementWithRxFH-RRC-Connected-r18                                                                                        OPTIONAL
          ]]
}

PRS-ProcessingCapabilityOutsideMGinPPWperType-r17 ::= SEQUENCE {
  prsProcessingType-r17                       ENUMERATED { type1A, type1B, type2 },
  ppw-dl-PRS-BufferType-r17                   ENUMERATED { type1, type2, ... },
  ppw-durationOfPRS-Processing1-r17           SEQUENCE {
      ppw-durationOfPRS-ProcessingSymbolsN-r17
                                  ENUMERATED { msDot125, msDot25, msDot5, ms1, ms2, ms4,
                                              ms6, ms8, ms12, ms16, ms20, ms25, ms30, ms32, ms35,
                                              ms40, ms45, ms50 },
      ppw-durationOfPRS-ProcessingSymbolsT-r17
                                  ENUMERATED { ms1, ms2, ms4, ms8, ms16, ms20, ms30, ms40, ms80,
                                              ms160, ms320, ms640, ms1280 }
  }                                                                                   OPTIONAL,
  ppw-durationOfPRS-Processing2-r17           SEQUENCE {
      ppw-durationOfPRS-ProcessingSymbolsN2-r17
                                  ENUMERATED { msDot125, msDot25, msDot5, ms1, ms2, ms3, ms4, ms5,
                                              ms6, ms8, ms12 },
      ppw-durationOfPRS-ProcessingSymbolsT2-r17
                                  ENUMERATED { ms4, ms5, ms6, ms8 }
  }                                                                                   OPTIONAL,
  ppw-maxNumOfDL-PRS-ResProcessedPerSlot-r17  SEQUENCE {
      scs15-r17                                   ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                              n16, n24, n32, n48, n64 }
                                                                                      OPTIONAL,
      scs30-r17                                   ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                              n16, n24, n32, n48, n64 }
                                                                                      OPTIONAL,
      scs60-r17                                   ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                              n16, n24, n32, n48, n64 }
                                                                                      OPTIONAL,
      scs120-r17                                  ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                              n16, n24, n32, n48, n64 }
                                                                                      OPTIONAL,
      ...
  },
  ...,
  [[
  ppw-maxNumOfDL-Bandwidth-r17        CHOICE {
      fr1                                     ENUMERATED {mhz5, mhz10, mhz20, mhz40,
                                                          mhz50, mhz80, mhz100},
      fr2                                     ENUMERATED {mhz50, mhz100, mhz200, mhz400}
  }                                                                                   OPTIONAL
  ]]
}

PRS-BWA-TwoContiguousIntrabandInMG-r18 ::= SEQUENCE {
  maximumOfTwoAggregatedDL-PRS-Bandwidth-FR1-r18  ENUMERATED {mhz10, mhz20, mhz40, mhz50,
                                                              mhz80, mhz100, mhz160, mhz200}
                                                                                                  OPTIONAL,
              maximumOfTwoAggregatedDL-PRS-Bandwidth-FR2-r18  ENUMERATED {mhz100, mhz200, mhz400, mhz800}
                                                                                                  OPTIONAL,
              maximumOfDL-PRS-BandwidthPerPFL-FR1-r18         ENUMERATED {mhz5, mhz10, mhz20, mhz40,
                                                                          mhz50, mhz80, mhz100}   OPTIONAL,
              maximumOfDL-PRS-BandwidthPerPFL-FR2-r18         ENUMERATED {mhz50, mhz100, mhz200, mhz400}
                                                                                                  OPTIONAL,
              dl-PRS-BufferTypeOfBWA-r18                      ENUMERATED {type1, type2},
  prs-durationOfTwoPRS-BWA-Processing-r18         SEQUENCE {
          prs-durationOfTwoPRS-BWA-ProcessingSymbolsN-r18
                      ENUMERATED {msDot125, msDot25, msDot5, ms1, ms2, ms4, ms6, ms8, ms12,
                                  ms16, ms20, ms25, ms30, ms32, ms35, ms40, ms45, ms50},
          prs-durationOfTwoPRS-BWA-ProcessingSymbolsT-r18
                      ENUMERATED {ms8, ms16, ms20, ms30, ms40, ms80, ms160, ms320, ms640, ms1280}
              }                                                                                   OPTIONAL,
              maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR1-r18    SEQUENCE {
                      scs15-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                  n16, n24, n32, n48, n64 }       OPTIONAL,
                      scs30-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                  n16, n24, n32, n48, n64 }       OPTIONAL,
                      scs60-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                  n16, n24, n32, n48, n64 }       OPTIONAL
              },
              maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR2-r18    SEQUENCE {
                      scs60-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                  n16, n24, n32, n48, n64 }       OPTIONAL,
                      scs120-r18                      ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                  n16, n24, n32, n48, n64 }       OPTIONAL
              }
}

PRS-BWA-ThreeContiguousIntrabandInMG-r18 ::= SEQUENCE {
              maximumOfThreeAggregatedDL-PRS-Bandwidth-FR1-r18
                                  ENUMERATED {mhz15, mhz20, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100, mhz120,
                                              mhz140, mhz150, mhz180, mhz200, mhz240, mhz300}     OPTIONAL,
              maximumOfThreeAggregatedDL-PRS-Bandwidth-FR2-r18
                                  ENUMERATED {mhz150, mhz200, mhz300, mhz400, mhz600, mhz800, mhz1000,
                                              mhz1200}                                            OPTIONAL,
              maximumOfDL-PRS-BandwidthPerPFL-FR1-r18
                                  ENUMERATED {mhz5, mhz10, mhz20, mhz40, mhz50, mhz80, mhz100}    OPTIONAL,
              maximumOfDL-PRS-BandwidthPerPFL-FR2-r18
                                  ENUMERATED {mhz50, mhz100, mhz200, mhz400}                      OPTIONAL,
              dl-PRS-BufferTypeOfBWA-r18                          ENUMERATED {type1, type2},
              prs-durationOfThreePRS-BWA-Processing-r18           SEQUENCE {
                      prs-durationOfThreePRS-BWA-ProcessingSymbolsN-r18
                                  ENUMERATED {msDot125, msDot25, msDot5, ms1, ms2, ms4, ms6, ms8, ms12,
                                              ms16, ms20, ms25, ms30, ms32, ms35, ms40, ms45, ms50},
                      prs-durationOfThreePRS-BWA-ProcessingSymbolsT-r18
                                  ENUMERATED {ms8, ms16, ms20, ms30, ms40, ms80, ms160,
                                              ms320, ms640, ms1280}
              }                                                                                   OPTIONAL,
              maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR1-r18    SEQUENCE {
                      scs15-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                  n16, n24, n32, n48, n64 }       OPTIONAL,
                      scs30-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                  n16, n24, n32, n48, n64 }       OPTIONAL,
                      scs60-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                  n16, n24, n32, n48, n64 }       OPTIONAL
              },
              maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR2-r18    SEQUENCE {
                      scs60-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                  n16, n24, n32, n48, n64 }       OPTIONAL,
                      scs120-r18                      ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                  n16, n24, n32, n48, n64 }       OPTIONAL
              }
}

DL-PRS-MeasurementWithRxFH-RRC-Connected-r18 ::=SEQUENCE {
  maximumPRS-BandwidthAcrossAllHopsFR1-r18    ENUMERATED {mhz40, mhz50, mhz80, mhz100}
                                                                                      OPTIONAL,
  maximumPRS-BandwidthAcrossAllHopsFR2-r18    ENUMERATED {mhz100, mhz200, mhz400}     OPTIONAL,
  maximumFH-Hops-r18                          ENUMERATED {n2, n3, n4, n5, n6}         OPTIONAL,
  processingDuration-r18  SEQUENCE {
              processingPRS-SymbolsDurationN3-r18     ENUMERATED {msDot125, msDot25, msDot5, ms1, ms2,
                                                                  ms4, ms6, ms8, ms12,ms16, ms20, ms25,
                                                                  ms30, ms32, ms35, ms40, ms45, ms50},
          processingDurationT3-r18                ENUMERATED {ms8, ms16, ms20, ms30, ms40, ms80,
                                                              ms160, ms320, ms640, ms1280}
  }                                                                                   OPTIONAL,
  rf-RxRetuneTimeFR1-r18                      ENUMERATED {n70,n140,n210}              OPTIONAL,
  rf-RxRetuneTimeFR2-r18                      ENUMERATED {n35,n70,n140}               OPTIONAL,
  numOfOverlappingPRB-r18                     ENUMERATED {n0,n1,n2,n4}                OPTIONAL,
  ...
}


NR-DL-PRS-QCL-ProcessingCapability-r16 ::= SEQUENCE {
  dl-PRS-QCL-ProcessingCapabilityBandList-r16         SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                      DL-PRS-QCL-ProcessingCapabilityPerBand-r16,
  ...
}

DL-PRS-QCL-ProcessingCapabilityPerBand-r16 ::= SEQUENCE {
  freqBandIndicatorNR-r16                     FreqBandIndicatorNR-r16,
  ssb-FromNeighCellAsQCL-r16                  ENUMERATED { supported} OPTIONAL,
  prs-FromServNeighCellAsQCL-r16              ENUMERATED { supported} OPTIONAL,
  ...
}


NR-DL-PRS-ResourceID-r16 ::= INTEGER (0..nrMaxNumDL-PRS-ResourcesPerSet-1-r16)

NR-DL-PRS-ResourcesCapability-r16 ::= SEQUENCE {
  maxNrOfDL-PRS-ResourceSetPerTrpPerFrequencyLayer-r16
                                              INTEGER (1..2),
  maxNrOfTRP-AcrossFreqs-r16                  ENUMERATED { n4, n6, n12, n16, n32,
                                                           n64, n128, n256, ..., n24-v1690},
  maxNrOfPosLayer-r16                         INTEGER (1..4),
  dl-PRS-ResourcesCapabilityBandList-r16      SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                  DL-PRS-ResourcesCapabilityPerBand-r16,
  dl-PRS-ResourcesBandCombinationList-r16     DL-PRS-ResourcesBandCombinationList-r16,
  ...
}

DL-PRS-ResourcesCapabilityPerBand-r16 ::= SEQUENCE {
  freqBandIndicatorNR-r16                     FreqBandIndicatorNR-r16,
  maxNrOfDL-PRS-ResourcesPerResourceSet-r16   ENUMERATED { n1, n2, n4, n8, n16, n32, n64, ...},
  maxNrOfDL-PRS-ResourcesPerPositioningFrequencylayer-r16
                                              ENUMERATED { n6, n24, n32, n64, n96, n128,
                                                           n256, n512, n1024, ...},
  ...
}

DL-PRS-ResourcesBandCombinationList-r16 ::= SEQUENCE (SIZE (1..maxBandComb-r16)) OF
                                                      DL-PRS-ResourcesBandCombination-r16

DL-PRS-ResourcesBandCombination-r16 ::= SEQUENCE {
  bandList-r16                            SEQUENCE (SIZE (1..maxSimultaneousBands-r16)) OF
                                                          FreqBandIndicatorNR-r16,
  maxNrOfDL-PRS-ResourcesAcrossAllFL-TRP-ResourceSet-r16
                                          CHOICE {
      fr1-Only-r16                            ENUMERATED {n6, n24, n64, n128, n192,
                                                           n256, n512, n1024, n2048},
      fr2-Only-r16                            ENUMERATED {n24, n64, n96, n128, n192,
                                                           n256, n512, n1024, n2048},
      fr1-FR2Mix-r16                          SEQUENCE {
          fr1-r16                                 ENUMERATED {n6, n24, n64, n96, n128,
                                                               n192, n256, n512, n1024, n2048},
          fr2-r16                                 ENUMERATED {n24, n64, n96, n128, n192,
                                                               n256, n512, n1024, n2048},
          ...
      },
      ...
  },
  ...
}


                                                                                              NR-DL-PRS-ResourceSetID-r16 ::= INTEGER (0..nrMaxNumDL-PRS-ResourceSetsPerTRP-1-r16)


NR-DL-PRS-TRP-TEG-Info-r17 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                      NR-DL-PRS-TRP-TEG-InfoPerFreqLayer-r17

NR-DL-PRS-TRP-TEG-InfoPerFreqLayer-r17 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                      NR-DL-PRS-TRP-TEG-InfoPerTRP-r17

NR-DL-PRS-TRP-TEG-InfoPerTRP-r17 ::= SEQUENCE {
  dl-PRS-ID-r17                           INTEGER (0..255),
  nr-PhysCellID-r17                       NR-PhysCellID-r16       OPTIONAL,   -- Need ON
  nr-CellGlobalID-r17                     NCGI-r15                OPTIONAL,   -- Need ON
  nr-ARFCN-r17                            ARFCN-ValueNR-r15       OPTIONAL,   -- Need ON
  dl-PRS-TEG-InfoSet-r17                  SEQUENCE (SIZE(1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                              DL-PRS-TEG-InfoPerResourceSet-r17,
  ...,
  [[
  nr-TRP-TxTEG-TimingErrorMargin-r17      TEG-TimingErrorMargin-r17       OPTIONAL  -- Need ON
  ]]
}

DL-PRS-TEG-InfoPerResourceSet-r17 ::= SEQUENCE (SIZE(1..nrMaxResourcesPerSet-r16)) OF
                                                              DL-PRS-TEG-InfoElement-r17

DL-PRS-TEG-InfoElement-r17 ::= SEQUENCE {
  dl-prs-trp-Tx-TEG-ID-r17        INTEGER (0..maxNumOfTRP-TxTEGs-1-r17),
  ...
}


NR-IntegrityRiskParameters-r18  ::= SEQUENCE {
  nr-ProbOnsetTRP-Fault-r18                   INTEGER (0..255),
  nr-MeanTRP-FaultDuration-r18                INTEGER (1..3600),
  ...
}


NR-IntegrityServiceAlert-r18 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                              NR-TRP-IntegrityServiceAlertPerFreqLayer-r18

NR-TRP-IntegrityServiceAlertPerFreqLayer-r18 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16))
                                                  OF NR-TRP-IntegrityServiceAlertElement-r18

NR-TRP-IntegrityServiceAlertElement-r18 ::= SEQUENCE {
  dl-PRS-ID-r18                   INTEGER (0..255),
  nr-PhysCellID-r18               NR-PhysCellID-r16           OPTIONAL,   -- Need ON
  nr-CellGlobalID-r18             NCGI-r15                    OPTIONAL,   -- Need ON
  nr-ARFCN-r18                    ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
  rtd-DoNotUse-r18                BOOLEAN                     OPTIONAL,   -- Need OR
  trp-LocationDoNotUse-r18        BOOLEAN                     OPTIONAL,   -- Need OR
  beamInfo-DoNotUse-r18           BOOLEAN                     OPTIONAL,   -- Need OR
  beamAntennaInfo-DoNotUse-r18    BOOLEAN                     OPTIONAL,   -- Need OR
  ...
}


NR-IntegrityServiceParameters-r18 ::= SEQUENCE {
  ir-Minimum-r18                      INTEGER (0..255),
  ir-Maximum-r18                      INTEGER (0..255),
  ...
}


NR-On-Demand-DL-PRS-Configurations-r17 ::= SEQUENCE {
  on-demand-dl-prs-configuration-list-r17     SEQUENCE (SIZE (1..maxOD-DL-PRS-Configs-r17)) OF
                                                  On-Demand-DL-PRS-Configuration-r17,
  ...,
  [[
  onDemandDL-PRS-AggregationList-r18          SEQUENCE (SIZE (1.. maxOD-DL-PRS-Configs-r17)) OF
                                          OnDemandDL-PRS-AggregationInfo-r18  OPTIONAL-- Need OR
  ]]
}

On-Demand-DL-PRS-Configuration-r17 ::= SEQUENCE {
  dl-prs-configuration-id-r17                 DL-PRS-Configuration-ID-r17,
  nr-DL-PRS-PositioningFrequencyLayer-r17     NR-DL-PRS-PositioningFrequencyLayer-r16,
  nr-DL-PRS-Info-r17                          NR-DL-PRS-Info-r16,
  ...
}

DL-PRS-Configuration-ID-r17 ::= SEQUENCE {
  nr-dl-prs-configuration-id-r17              INTEGER (1..maxOD-DL-PRS-Configs-r17),
  ...
}

OnDemandDL-PRS-AggregationInfo-r18 ::= SEQUENCE (SIZE (2..3)) OF DL-PRS-Configuration-ID-r17


NR-On-Demand-DL-PRS-Information-r17 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                      NR-On-Demand-DL-PRS-PerFreqLayer-r17

NR-On-Demand-DL-PRS-PerFreqLayer-r17 ::= SEQUENCE {
  dl-prs-FrequencyRangeReq-r17            ENUMERATED { fr1, fr2, ...},
  dl-prs-ResourceSetPeriodicityReq-r17    ENUMERATED { p4, p5, p8, p10, p16, p20, p32, p40,
                                                  p64, p80, p160, p320, p640, p1280, p2560,
                                                  p5120, p10240, p20480, p40960, p81920, ...,
                                                  p128-v1760, p256-v1760, p512-v1760}
                                                                                  OPTIONAL,
  dl-prs-ResourceBandwidthReq-r17         INTEGER (1..63)                         OPTIONAL,
  dl-prs-ResourceRepetitionFactorReq-r17  ENUMERATED {n2, n4, n6, n8, n16, n32, ...}
                                                                                  OPTIONAL,
  dl-prs-NumSymbolsReq-r17        ENUMERATED {n2, n4, n6, n12, ..., n1-v1800}     OPTIONAL,
  dl-prs-CombSizeN-Req-r17                ENUMERATED {n2, n4, n6, n12, ...}       OPTIONAL,
  dl-prs-QCL-InformationReqTRPlist-r17    DL-PRS-QCL-InformationReqTRPlist-r17    OPTIONAL,
  ...
}

DL-PRS-QCL-InformationReqTRPlist-r17 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                  DL-PRS-QCL-InformationReqPerTRP-r17

DL-PRS-QCL-InformationReqPerTRP-r17 ::= SEQUENCE {
  dl-PRS-ID-r17                       INTEGER (0..255),
  nr-PhysCellID-r17                   NR-PhysCellID-r16                           OPTIONAL,
  nr-CellGlobalID-r17                 NCGI-r15                                    OPTIONAL,
  nr-ARFCN-r17                        ARFCN-ValueNR-r15                           OPTIONAL,
  dl-prs-QCL-InformationReqSet-r17    SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                                  DL-PRS-QCL-InfoReq-r17,
  ...
}

DL-PRS-QCL-InfoReq-r17 ::= SEQUENCE {
  nr-DL-PRS-ResourceSetID-r17         NR-DL-PRS-ResourceSetID-r16,
  dl-prs-QCL-InformationReq-r17       CHOICE {
                  dl-prs-QCL-InfoRecPerResourceSet-r17    DL-PRS-QCL-Info-r16,
                  dl-prs-QCL-Info-requested-r17           NULL
                  },
  ...,
  [[
  dl-prs-QCL-InfoRecPerResource-r17   SEQUENCE  (SIZE (1..nrMaxResourcesPerSet-r16)) OF
                                                      DL-PRS-QCL-Info-r16         OPTIONAL
  ]]
}


NR-On-Demand-DL-PRS-Request-r17 ::= SEQUENCE {
  dl-prs-StartTime-and-Duration-r17           DL-PRS-StartTime-and-Duration-r17       OPTIONAL,
  nr-on-demand-DL-PRS-Information-r17         NR-On-Demand-DL-PRS-Information-r17     OPTIONAL,
  dl-prs-configuration-id-PrefList-r17        SEQUENCE (SIZE (1..maxOD-DL-PRS-Configs-r17)) OF
                                                  DL-PRS-Configuration-ID-r17         OPTIONAL,
  ...,
  [[
  dl-PRS-AggregationID-PrefList-r18           SEQUENCE (SIZE (1.. maxOD-DL-PRS-Configs-r17)) OF
                                                  INTEGER (1.. maxOD-DL-PRS-Configs-r17)
                                                                                      OPTIONAL,
  nr-OnDemandDL-PRS-AggregationReqList-r18    SEQUENCE (SIZE (1.. maxOD-DL-PRS-Configs-r17)) OF
                                                  NR-OnDemandDL-PRS-AggregationReqElement-r18
                                                                                      OPTIONAL
  ]]
}

DL-PRS-StartTime-and-Duration-r17 ::= SEQUENCE {
  dl-prs-start-time-r17       INTEGER (1..1024)                       OPTIONAL,
  dl-prs-duration-r17         SEQUENCE {
                                  seconds-r17     INTEGER (0..59)     OPTIONAL,
                                  minutes-r17     INTEGER (0..59)     OPTIONAL,
                                  hours-r17       INTEGER (0..23)     OPTIONAL,
                                  ...
                              }                                       OPTIONAL,
  ...
}

NR-OnDemandDL-PRS-AggregationReqElement-r18 ::= SEQUENCE (SIZE (2..3)) OF
                                                  INTEGER (1..nrMaxFreqLayers-r16)


NR-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17 ::=
                                          SEQUENCE (SIZE (1..maxOD-DL-PRS-Configs-r17)) OF
                                                                  DL-PRS-Configuration-ID-r17


NR-On-Demand-DL-PRS-Support-r17 ::= SEQUENCE {
  nr-on-demand-DL-PRS-InformationSup-r17          ENUMERATED { supported }            OPTIONAL,
  nr-on-demand-DL-PRS-ConfigurationsSup-r17       ENUMERATED { supported }            OPTIONAL,
  ...
}

NR-PeriodicAssistData-r18 ::= SEQUENCE {
  nr-PeriodicPRU-DL-Info-r18      NR-PeriodicControlParam-r18     OPTIONAL,   -- Need ON
  ...
}


NR-PeriodicAssistDataReq-r18 ::= SEQUENCE {
  nr-PeriodicPRU-DL-InfoReq-r18   NR-PeriodicControlParam-r18 OPTIONAL, -- Cond pPRU
  ...
}


NR-PeriodicControlParam-r18 ::= SEQUENCE {
  deliveryAmount-r18          INTEGER (1..32),
  deliveryInterval-r18        INTEGER (4..81920),
  ...
}


NR-PositionCalculationAssistance-r16 ::= SEQUENCE {
  nr-TRP-LocationInfo-r16         NR-TRP-LocationInfo-r16             OPTIONAL,   -- Need ON
  nr-DL-PRS-BeamInfo-r16          NR-DL-PRS-BeamInfo-r16              OPTIONAL,   -- Need ON
  nr-RTD-Info-r16                 NR-RTD-Info-r16                     OPTIONAL,   -- Need ON
  ...,
  [[
  nr-TRP-BeamAntennaInfo-r17      NR-TRP-BeamAntennaInfo-r17          OPTIONAL,   -- Need ON
  nr-DL-PRS-Expected-LOS-NLOS-Assistance-r17
                                  NR-DL-PRS-ExpectedLOS-NLOS-Assistance-r17
                                                                      OPTIONAL,   -- Need ON
  nr-DL-PRS-TRP-TEG-Info-r17      NR-DL-PRS-TRP-TEG-Info-r17          OPTIONAL    -- Need ON
  ]],
  [[
  nr-IntegrityServiceParameters-r18   NR-IntegrityServiceParameters-r18   OPTIONAL,   -- Need OR
  nr-IntegrityServiceAlert-r18        NR-IntegrityServiceAlert-r18        OPTIONAL,   -- Need OR
  nr-IntegrityRiskParameters-r18      NR-IntegrityRiskParameters-r18      OPTIONAL,   -- Need OR
  nr-IntegrityParametersTRP-LocationInfo-r18                                                                                              NR-IntegrityParametersTRP-LocationInfo-r18
                                                                      OPTIONAL, -- Cond Integrity1
  nr-IntegrityParametersDL-PRS-BeamInfo-r18
                                      NR-IntegrityParametersDL-PRS-BeamInfo-r18
                                                                      OPTIONAL, -- Cond Integrity2
  nr-IntegrityParametersRTD-Info-r18                                                                                                      NR-IntegrityParametersRTD-Info-r18
                                                                      OPTIONAL, -- Cond Integrity3
  nr-IntegrityParametersTRP-BeamAntennaInfo-r18                                                                                           NR-IntegrityParametersTRP-BeamAntennaInfo-r18
                                                                      OPTIONAL, -- Cond Integrity4
  nr-PRU-DL-Info-r18                  NR-PRU-DL-Info-r18              OPTIONAL    -- Need ON
  ]]
}

NR-IntegrityParametersTRP-LocationInfo-r18 ::= SEQUENCE {
  trp-ErrorCorrelationTime-r18                    INTEGER(0..255)     OPTIONAL, -- Need ON
  dl-PRS-ResourceSetARP-ErrorCorrelationTime-r18  INTEGER(0..255)     OPTIONAL, -- Need ON
  dl-PRS-ResourceARP-ErrorCorrelationTime-r18     INTEGER(0..255)     OPTIONAL, -- Need ON
  ...
}

NR-IntegrityParametersDL-PRS-BeamInfo-r18 ::= SEQUENCE {
  dl-PRS-BeamInfoErrorCorrelationTime-r18     INTEGER (0..255),
  ...
}

NR-IntegrityParametersRTD-Info-r18 ::= SEQUENCE {
  rtd-ErrorCorrelationTime-r18        INTEGER (0..255),
  ...
}

NR-IntegrityParametersTRP-BeamAntennaInfo-r18 ::= SEQUENCE {
  trp-BeamAntennaInfoErrorCorrelationTime-r18     INTEGER (0..255),
  ...

}

NR-PRU-DL-Info-r18 ::= SEQUENCE {
          nr-PRU-LocationInfo-r18         LocationCoordinates                     OPTIONAL, -- Need ON
          nr-PRU-DL-TDOA-MeasInfo-r18     NR-DL-TDOA-SignalMeasurementInformation-r16
                                                                          OPTIONAL, -- Need ON
      nr-PRU-DL-AoD-MeasInfo-r18      NR-DL-AoD-SignalMeasurementInformation-r16
                                                                          OPTIONAL, -- Need ON
  nr-PRU-RSCP-MeasInfo-r18        NR-PRU-RSCP-MeasurementInformation-r18
                                                                                  OPTIONAL, -- Need ON
          ...
}

NR-PRU-RSCP-MeasurementInformation-r18 ::= SEQUENCE (SIZE(1..nrMaxTRPs-r16)) OF
                                  NR-PRU-RSCP-MeasElement-r18

NR-PRU-RSCP-MeasElement-r18 ::= SEQUENCE {
  dl-PRS-ID-r18                   INTEGER (0..255),
  nr-PhysCellID-r18               NR-PhysCellID-r16                       OPTIONAL, -- Need ON
  nr-CellGlobalID-r18             NCGI-r15                                OPTIONAL, -- Need ON
  nr-ARFCN-r18                    ARFCN-ValueNR-r15                       OPTIONAL, -- Need ON
  nr-DL-PRS-ResourceID-r18        NR-DL-PRS-ResourceID-r16                OPTIONAL, -- Need ON
  nr-DL-PRS-ResourceSetID-r18     NR-DL-PRS-ResourceSetID-r16             OPTIONAL, -- Need ON
  nr-TimeStamp-r18                NR-TimeStamp-r16,
  nr-los-nlos-Indicator-r18       CHOICE {
              perTRP                  LOS-NLOS-Indicator-r17,
              perResource             LOS-NLOS-Indicator-r17
  }                                                                       OPTIONAL, -- Need ON
  nr-RSCP-r18                     INTEGER (0..3599)                       OPTIONAL, -- Need ON
  nr-DL-PRS-RSRP-Result-r18           INTEGER (0..126)                    OPTIONAL, -- Need ON
  nr-DL-PRS-FirstPathRSRP-Result-r18  INTEGER (0..126)                    OPTIONAL, -- Need ON
  nr-PhaseQuality-r18             NR-PhaseQuality-r18                     OPTIONAL, -- Need ON
      nr-PRU-RSCP-AddSampleMeasurements-r18   SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF
                                      NR-RSCP-AdditionalMeasurements-r18      OPTIONAL, -- Need ON
  nr-PRU-RSRP-AddSampleMeasurements-r18   SEQUENCE (SIZE (1..nrNumOfSamples-1-r18)) OF
                                  INTEGER (0..61)                         OPTIONAL, -- Need ON
  nr-PRU-FirstPathRSRP-ResultDiff-AddSampleMeasurements-r18
                                      SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF INTEGER (0..61)                                                                               OPTIONAL, -- Need ON
  nr-PRU-RSCP-AdditionalMeasurements-r18
                                  NR-PRU-RSCP-AdditionalMeasurements-r18  OPTIONAL, -- Need ON
  ...
}

NR-PRU-RSCP-AdditionalMeasurements-r18 ::= SEQUENCE (SIZE (1..3)) OF
                                  NR-PRU-RSCP-AdditionalMeasurementElement-r18

NR-PRU-RSCP-AdditionalMeasurementElement-r18 ::= SEQUENCE {
  nr-DL-PRS-ResourceID-r18            NR-DL-PRS-ResourceID-r16            OPTIONAL, -- Need ON
  nr-DL-PRS-ResourceSetID-r18         NR-DL-PRS-ResourceSetID-r16         OPTIONAL, -- Need ON
  nr-DL-PRS-RSRP-ResultDiff-r18       INTEGER (0..61)                     OPTIONAL, -- Need ON
  nr-DL-PRS-FirstPathRSRP-ResultDiff-r18  INTEGER (0..61)                 OPTIONAL, -- Need ON
  nr-PRU-RSCP-AdditionalMeasurementsList-r18  SEQUENCE (SIZE (1..nrNumOfSamples-r18 )) OF
                                  NR-RSCP-AdditionalMeasurements-r18      OPTIONAL, -- Need ON
  nr-PRU-RSRPDiff-AdditionalMeasurementsList-r18  SEQUENCE (SIZE (1..nrNumOfSamples-r18 )) OF                                         INTEGER (0..61)                         OPTIONAL, -- Need ON
  nr-PRU-FirstPathRSRP-ResultDiff-AdditionalMeasurementsList-r18
      SEQUENCE (SIZE (1..nrNumOfSamples-r18 )) OF INTEGER (0..61)         OPTIONAL, -- Need ON
  ...
}


NR-RTD-Info-r16 ::= SEQUENCE {
  referenceTRP-RTD-Info-r16       ReferenceTRP-RTD-Info-r16,
  rtd-InfoList-r16                RTD-InfoList-r16,
  ...
}

ReferenceTRP-RTD-Info-r16 ::= SEQUENCE {
  dl-PRS-ID-Ref-r16               INTEGER (0..255),
  nr-PhysCellID-Ref-r16           NR-PhysCellID-r16       OPTIONAL,   -- Need ON
  nr-CellGlobalID-Ref-r16         NCGI-r15                OPTIONAL,   -- Need ON
  nr-ARFCN-Ref-r16                ARFCN-ValueNR-r15       OPTIONAL,   -- Need ON
  refTime-r16                     CHOICE {
          systemFrameNumber-r16       BIT STRING (SIZE (10)),
          utc-r16                     UTCTime,
          ...
  },
  rtd-RefQuality-r16              NR-TimingQuality-r16    OPTIONAL,   -- Need ON
  ...
}

RTD-InfoList-r16 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF RTD-InfoListPerFreqLayer-r16

RTD-InfoListPerFreqLayer-r16 ::= SEQUENCE (SIZE(1..nrMaxTRPsPerFreq-r16)) OF RTD-InfoElement-r16

RTD-InfoElement-r16 ::= SEQUENCE {
  dl-PRS-ID-r16                   INTEGER (0..255),
  nr-PhysCellID-r16               NR-PhysCellID-r16       OPTIONAL,   -- Need ON
  nr-CellGlobalID-r16             NCGI-r15                OPTIONAL,   -- Need ON
  nr-ARFCN-r16                    ARFCN-ValueNR-r15       OPTIONAL,   -- Need ON
  subframeOffset-r16              INTEGER (0..1966079),
  rtd-Quality-r16                 NR-TimingQuality-r16,
  ...,
  [[
  nr-IntegrityRTD-InfoBounds-r18  NR-IntegrityRTD-InfoBounds-r18      OPTIONAL -- Need OR
  ]]
}

NR-IntegrityRTD-InfoBounds-r18 ::= SEQUENCE {
  resolution-r18                  ENUMERATED {mdot1, m1, m10, m30, ...},
  meanRTD-r18                     INTEGER (0..255),
  stdDevRTD-r18                   INTEGER (0..31),
  ...
}


NR-SelectedDL-PRS-IndexList-r16 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                      NR-SelectedDL-PRS-PerFreq-r16

NR-SelectedDL-PRS-PerFreq-r16 ::= SEQUENCE {
          nr-SelectedDL-PRS-FrequencyLayerIndex-r16   INTEGER (0..nrMaxFreqLayers-1-r16),
  nr-SelectedDL-PRS-IndexListPerFreq-r16      SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                      NR-SelectedDL-PRS-IndexPerTRP-r16
                                                                          OPTIONAL,   --Need OP
  ...
}

NR-SelectedDL-PRS-IndexPerTRP-r16 ::= SEQUENCE {
  nr-SelectedTRP-Index-r16                    INTEGER (0..nrMaxTRPsPerFreq-1-r16),
  dl-SelectedPRS-ResourceSetIndexList-r16     SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16))
                                                  OF  DL-SelectedPRS-ResourceSetIndex-r16
                                                                          OPTIONAL,   --Need OP
  ...
}

DL-SelectedPRS-ResourceSetIndex-r16 ::= SEQUENCE {
          nr-DL-SelectedPRS-ResourceSetIndex-r16      INTEGER (0..nrMaxSetsPerTrpPerFreqLayer-1-r16),
  dl-SelectedPRS-ResourceIndexList-r16        SEQUENCE (SIZE (1..nrMaxResourcesPerSet-r16)) OF
                                                      DL-SelectedPRS-ResourceIndex-r16
                                                                          OPTIONAL    --Need OP
}

DL-SelectedPRS-ResourceIndex-r16 ::= SEQUENCE {
  nr-DL-SelectedPRS-ResourceIdIndex-r16       INTEGER (0..nrMaxNumDL-PRS-ResourcesPerSet-1-r16),
  ...
}


NR-SSB-Config-r16 ::= SEQUENCE {
  nr-PhysCellID-r16                   NR-PhysCellID-r16,
  nr-ARFCN-r16                        ARFCN-ValueNR-r15,
  ss-PBCH-BlockPower-r16              INTEGER (-60..50),
  halfFrameIndex-r16                  INTEGER (0..1),
  ssb-periodicity-r16                 ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, ...},
  ssb-PositionsInBurst-r16            CHOICE {
      shortBitmap-r16                     BIT STRING (SIZE (4)),
      mediumBitmap-r16                    BIT STRING (SIZE (8)),
      longBitmap-r16                      BIT STRING (SIZE (64))
  }                                                                           OPTIONAL, --Need OR
  ssb-SubcarrierSpacing-r16           ENUMERATED {kHz15, kHz30, kHz60, kHz120, kHz240, ...},
  sfn-SSB-Offset-r16                  INTEGER (0..15),
  ...
}


NR-TimeStamp-r16 ::= SEQUENCE {
  dl-PRS-ID-r16               INTEGER (0..255),
  nr-PhysCellID-r16           NR-PhysCellID-r16           OPTIONAL,   -- Need ON
  nr-CellGlobalID-r16         NCGI-r15                    OPTIONAL,   -- Need ON
  nr-ARFCN-r16                ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
  nr-SFN-r16                  INTEGER (0..1023),
  nr-Slot-r16                 CHOICE {
          scs15-r16               INTEGER (0..9),
          scs30-r16               INTEGER (0..19),
          scs60-r16               INTEGER (0..39),
          scs120-r16              INTEGER (0..79)
  },
  ...,
  [[
  nr-Symbol-r18               INTEGER (0..13)         OPTIONAL    -- Need ON
  ]]
}


NR-TimingQuality-r16 ::= SEQUENCE {
  timingQualityValue-r16          INTEGER (0..31),
  timingQualityResolution-r16     ENUMERATED {mdot1, m1, m10, m30, ...},
  ...
}


NR-TRP-BeamAntennaInfo-r17 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                      NR-TRP-BeamAntennaInfoPerFreqLayer-r17

NR-TRP-BeamAntennaInfoPerFreqLayer-r17 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                      NR-TRP-BeamAntennaInfoPerTRP-r17

NR-TRP-BeamAntennaInfoPerTRP-r17 ::= SEQUENCE {
  dl-PRS-ID-r17                       INTEGER (0..255),
  nr-PhysCellID-r17                   NR-PhysCellID-r16                   OPTIONAL,   -- Need ON
  nr-CellGlobalID-r17                 NCGI-r15                            OPTIONAL,   -- Need ON
  nr-ARFCN-r17                        ARFCN-ValueNR-r15                   OPTIONAL,   -- Need ON
  associated-DL-PRS-ID-r17            INTEGER (0..255)                    OPTIONAL,   -- Need OP
  lcs-GCS-TranslationParameter-r17    LCS-GCS-TranslationParameter-r16    OPTIONAL,   -- Need OP
  nr-TRP-BeamAntennaAngles-r17        NR-TRP-BeamAntennaAngles-r17        OPTIONAL,   -- Need OP
  ...
}

NR-TRP-BeamAntennaAngles-r17 ::= SEQUENCE (SIZE(1..3600)) OF
                                      NR-TRP-BeamAntennaInfoAzimuthElevation-r17

NR-TRP-BeamAntennaInfoAzimuthElevation-r17 ::= SEQUENCE {
  azimuth-r17                 INTEGER (0..359)                        OPTIONAL,   -- Cond Az
  azimuth-fine-r17            INTEGER (0..9)                          OPTIONAL,   -- Cond AzOpt
  elevationList-r17           SEQUENCE (SIZE(1..1801)) OF ElevationElement-R17,
  ...
}

ElevationElement-R17 ::= SEQUENCE {
  elevation-r17               INTEGER (0..180)                        OPTIONAL,   -- Cond El
  elevation-fine-r17          INTEGER (0..9)                          OPTIONAL,   -- Cond ElOpt
  beamPowerList-r17           SEQUENCE (SIZE (2..maxNumResourcesPerAngle-r17)) OF
                                      BeamPowerElement-r17,
  ...
}

BeamPowerElement-r17 ::= SEQUENCE {
  nr-dl-prs-ResourceSetID-r17     NR-DL-PRS-ResourceSetID-r16         OPTIONAL,   -- Need OP
  nr-dl-prs-ResourceID-r17        NR-DL-PRS-ResourceID-r16,
  nr-dl-prs-RelativePower-r17     INTEGER (0..30),
  nr-dl-prs-RelativePowerFine-r17 INTEGER (0..9)                      OPTIONAL,   -- Need ON
  ...,
  [[
  nr-IntegrityBeamPowerBounds-r18     NR-IntegrityBeamPowerBounds-r18     OPTIONAL    -- Need OP
  ]]
}

NR-IntegrityBeamPowerBounds-r18 ::= SEQUENCE {
  meanBeamPower-r18                   INTEGER (0..127),
  stdDevBeamPower-r18                 INTEGER (0..127),
  ...
}


NR-TRP-LocationInfo-r16 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                  NR-TRP-LocationInfoPerFreqLayer-r16

NR-TRP-LocationInfoPerFreqLayer-r16 ::= SEQUENCE {
  referencePoint-r16          ReferencePoint-r16              OPTIONAL,   -- Cond NotSameAsPrev
  trp-LocationInfoList-r16    SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                      TRP-LocationInfoElement-r16,
  ...
}

TRP-LocationInfoElement-r16 ::= SEQUENCE {
  dl-PRS-ID-r16                   INTEGER (0..255),
  nr-PhysCellID-r16               NR-PhysCellID-r16           OPTIONAL,   -- Need ON
  nr-CellGlobalID-r16             NCGI-r15                    OPTIONAL,   -- Need ON
  nr-ARFCN-r16                    ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
  associated-DL-PRS-ID-r16        INTEGER (0..255)            OPTIONAL,   -- Need OP
  trp-Location-r16                RelativeLocation-r16                    OPTIONAL,   -- Need OP
  trp-DL-PRS-ResourceSets-r16     SEQUENCE (SIZE(1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                      DL-PRS-ResourceSets-TRP-Element-r16 OPTIONAL,   -- Need OP
  ...,
  [[
  trp-LocationCartesian-r18       RelativeCartesianLocation-r18           OPTIONAL,   -- Need OP
  nr-IntegrityTRP-LocationBounds-r18
                                  NR-IntegrityLocationBounds-r18          OPTIONAL    -- Need OR
  ]]
}

DL-PRS-ResourceSets-TRP-Element-r16 ::= SEQUENCE {
  dl-PRS-ResourceSetARP-r16           RelativeLocation-r16                OPTIONAL,   -- Need OP
  dl-PRS-Resource-ARP-List-r16        SEQUENCE (SIZE(1..nrMaxResourcesPerSet-r16)) OF
                                          DL-PRS-Resource-ARP-Element-r16 OPTIONAL,   -- Need OP
  ...,
  [[
  dl-PRS-ResourceSetARP-Cartesian-r18 RelativeCartesianLocation-r18       OPTIONAL,   -- Need OP
  nr-IntegrityDL-PRS-ResourceSetARP-LocationBounds-r18
                                      NR-IntegrityLocationBounds-r18      OPTIONAL    -- Need OR
  ]]
}

DL-PRS-Resource-ARP-Element-r16 ::= SEQUENCE {
  dl-PRS-Resource-ARP-location-r16    RelativeLocation-r16                OPTIONAL,   -- Need OP
  ...,
  [[
  dl-PRS-Resource-ARP-locationCartesian-r18
                                      RelativeCartesianLocation-r18       OPTIONAL,   -- Need OP
  nr-IntegrityDL-PRS-ResourceARP-LocationBounds-r18
                                      NR-IntegrityLocationBounds-r18      OPTIONAL    -- Need OR
  ]]
}

NR-IntegrityLocationBounds-r18 ::= SEQUENCE {
  units-r18                           ENUMERATED {mm, cm, m, ...},
  meanLocationErrorBound-r18          SEQUENCE {
                                          horizontal-r18  INTEGER (0..255),
                                          vertical-r18    INTEGER (0..255)
                                      },
  stdDevLocationErrorBound-r18        SEQUENCE {
                                          horizontal-r18  INTEGER (0..255),
                                          vertical-r18    INTEGER (0..255)
                                      },
  ...
}


NR-UE-TEG-Capability-r17 ::= SEQUENCE {
  nr-UE-TEG-ID-CapabilityBandList-r17     SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                              NR-UE-TEG-ID-CapabilityPerBand-r17  OPTIONAL,
  ...
}

NR-UE-TEG-ID-CapabilityPerBand-r17 ::= SEQUENCE {
  freqBandIndicatorNR-r17             FreqBandIndicatorNR-r16,
  nr-UE-RxTEG-ID-MaxSupport-r17       ENUMERATED {n1, n2, n3, n4, n6, n8}         OPTIONAL,
  nr-UE-TxTEG-ID-MaxSupport-r17       ENUMERATED {n1, n2, n3, n4, n6, n8}         OPTIONAL,
  nr-UE-RxTxTEG-ID-MaxSupport-r17     ENUMERATED {n1, n2, n4, n6, n8, n12, n16,
                                                  n24, n32, n36, n48, n64}        OPTIONAL,
  measureSameDL-PRS-ResourceWithDifferentRxTEGs-r17
                                      ENUMERATED {n2, n3, n4, n6, n8}             OPTIONAL,
  measureSameDL-PRS-ResourceWithDifferentRxTEGsSimul-r17
                                      ENUMERATED {n1, n2, n3, n4, n6, n8}         OPTIONAL,
  ...
}


NR-UL-SRS-Capability-r16 ::= SEQUENCE {
  srs-CapabilityBandList-r16                  SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                  SRS-CapabilityPerBand-r16,
  srs-PosResourceConfigCA-BandList-r16        SEQUENCE (SIZE (1..nrMaxConfiguredBands-r16)) OF
                                                  SRS-PosResourcesPerBand-r16         OPTIONAL,
  maxNumberSRS-PosPathLossEstimateAllServingCells-r16
                                              ENUMERATED {n1, n4, n8, n16}            OPTIONAL,
  maxNumberSRS-PosSpatialRelationsAllServingCells-r16
                                              ENUMERATED {n0, n1, n2, n4, n8, n16}    OPTIONAL,
  ...
}

SRS-CapabilityPerBand-r16 ::= SEQUENCE {
  freqBandIndicatorNR-r16         FreqBandIndicatorNR-r16,
  olpc-SRS-Pos-r16                OLPC-SRS-Pos-r16                                    OPTIONAL,
  spatialRelationsSRS-Pos-r16     SpatialRelationsSRS-Pos-r16                         OPTIONAL,
  ...,
  [[
  posSRS-RRC-Inactive-InInitialUL-BWP-r17     PosSRS-RRC-Inactive-InInitialUL-BWP-r17 OPTIONAL,
  posSRS-RRC-Inactive-OutsideInitialUL-BWP-r17
                                              PosSRS-RRC-Inactive-OutsideInitialUL-BWP-r17
                                                                                      OPTIONAL,
  olpc-SRS-PosRRC-Inactive-r17                OLPC-SRS-Pos-r16                        OPTIONAL,
  spatialRelationsSRS-PosRRC-Inactive-r17     SpatialRelationsSRS-Pos-r16             OPTIONAL
  ]],
  [[
  posSRS-SP-RRC-Inactive-InInitialUL-BWP-r17  PosSRS-SP-RRC-Inactive-InInitialUL-BWP-r17
                                                                                      OPTIONAL
  ]],
  [[
  posSRS-Preconfigured-RRC-InactiveInitialUL-BWP-r18          ENUMERATED {supported}  OPTIONAL,
  posSRS-Preconfigured-RRC-InactiveOutsideInitialUL-BWP-r18   ENUMERATED {supported}  OPTIONAL,
                  posSRS-ValidityAreaRRC-InactiveInitialUL-BWP-r18            ENUMERATED {supported}  OPTIONAL,
                  posSRS-ValidityAreaRRC-InactiveOutsideInitialUL-BWP-r18     ENUMERATED {supported}  OPTIONAL,
  posSRS-TxFH-RRC-Connected-r18   PosSRS-TxFrequencyHoppingRRC-Connected-r18          OPTIONAL,
  posSRS-TxFH-RRC-Inactive-r18    PosSRS-TxFrequencyHoppingRRC-Inactive-r18           OPTIONAL,
  posSRS-TxFH-WithTimeWindow-r18                              ENUMERATED {supported}  OPTIONAL,
  posSRS-BWA-RRC-Inactive-r18                     PosSRS-BWA-RRC-Inactive-r18         OPTIONAL
  ]]
}

OLPC-SRS-Pos-r16 ::= SEQUENCE {
  olpc-SRS-PosBasedOnPRS-Serving-r16      ENUMERATED {supported}                      OPTIONAL,
  olpc-SRS-PosBasedOnSSB-Neigh-r16        ENUMERATED {supported}                      OPTIONAL,
  olpc-SRS-PosBasedOnPRS-Neigh-r16        ENUMERATED {supported}                      OPTIONAL,
  maxNumberPathLossEstimatePerServing-r16 ENUMERATED {n1, n4, n8, n16}                OPTIONAL,
  ...
}

SpatialRelationsSRS-Pos-r16 ::= SEQUENCE {
  spatialRelation-SRS-PosBasedOnSSB-Serving-r16       ENUMERATED {supported}          OPTIONAL,
  spatialRelation-SRS-PosBasedOnCSI-RS-Serving-r16    ENUMERATED {supported}          OPTIONAL,
  spatialRelation-SRS-PosBasedOnPRS-Serving-r16       ENUMERATED {supported}          OPTIONAL,
  spatialRelation-SRS-PosBasedOnSRS-r16               ENUMERATED {supported}          OPTIONAL,
  spatialRelation-SRS-PosBasedOnSSB-Neigh-r16         ENUMERATED {supported}          OPTIONAL,
  spatialRelation-SRS-PosBasedOnPRS-Neigh-r16         ENUMERATED {supported}          OPTIONAL,
  ...
}

SRS-PosResourcesPerBand-r16 ::= SEQUENCE {
  freqBandIndicatorNR-r16                         FreqBandIndicatorNR-r16,
  maxNumberSRS-PosResourceSetsPerBWP-r16          ENUMERATED {n1, n2, n4, n8, n12, n16},
  maxNumberSRS-PosResourcesPerBWP-r16             ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
  maxNumberPeriodicSRS-PosResourcesPerBWP-r16     ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
  maxNumberAP-SRS-PosResourcesPerBWP-r16          ENUMERATED {n1, n2, n4, n8, n16, n32, n64}
                                                                                      OPTIONAL,
  maxNumberSP-SRS-PosResourcesPerBWP-r16          ENUMERATED {n1, n2, n4, n8, n16, n32, n64}
                                                                                      OPTIONAL,
  ...,
  [[
  posSRS-BWA-RRC-Connected-r18                    PosSRS-BWA-RRC-Connected-r18        OPTIONAL,
  posSRS-BWA-IndependentCA-RRC-Connected-r18      PosSRS-BWA-IndependentCA-RRC-Connected-r18
                                                                                      OPTIONAL
  ]]
}

PosSRS-RRC-Inactive-InInitialUL-BWP-r17 ::= SEQUENCE {
  maxNumOfSRSposResourceSets-r17          ENUMERATED {n1, n2, n4, n8, n12, n16 }      OPTIONAL,
  maxNumOfPeriodicAndSemiPersistentSRSposResources-r17
                                          ENUMERATED {n1, n2, n4, n8, n16, n32, n64 }
                                                                                      OPTIONAL,
  maxNumOfPeriodicAndSemiPersistentSRSposResourcesPerSlot-r17
                                          ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14}
                                                                                      OPTIONAL,
  maxNumOfPeriodicSRSposResources-r17
                                          ENUMERATED {n1, n2, n4, n8, n16, n32, n64 }
                                                                                      OPTIONAL,
  maxNumOfPeriodicSRSposResourcesPerSlot-r17
                                          ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14}
                                                                                      OPTIONAL,
  dummy1                                  ENUMERATED {n1, n2, n4, n8, n16, n32, n64}  OPTIONAL,
  dummy2                                  ENUMERATED { n1, n2, n3, n4, n5, n6, n8, n10, n12, n14 }
                                                                                      OPTIONAL,
  ...
}

PosSRS-RRC-Inactive-OutsideInitialUL-BWP-r17 ::= SEQUENCE {
  maxSRSposBandwidthForEachSCS-withinCC-FR1-r17
                                          ENUMERATED { mhz5, mhz10, mhz15, mhz20, mhz25, mhz30,
                                                      mhz35, mhz40, mhz45, mhz50, mhz60, mhz70,
                                                      mhz80, mhz90, mhz100 }          OPTIONAL,
  maxSRSposBandwidthForEachSCS-withinCC-FR2-r17
                                          ENUMERATED {mhz50, mhz100, mhz200, mhz400}  OPTIONAL,
  maxNumOfSRSposResourceSets-r17          ENUMERATED { n1, n2, n4, n8, n12, n16 }     OPTIONAL,
  maxNumOfPeriodicSRSposResources-r17     ENUMERATED { n1, n2, n4, n8, n16, n32, n64 }
                                                                                      OPTIONAL,
  maxNumOfPeriodicSRSposResourcesPerSlot-r17
                                          ENUMERATED { n1, n2, n3, n4, n5, n6, n8, n10, n12, n14 }
                                                                                      OPTIONAL,
  differentNumerologyBetweenSRSposAndInitialBWP-r17
                                          ENUMERATED { supported }                    OPTIONAL,
  srsPosWithoutRestrictionOnBWP-r17
                                          ENUMERATED { supported }                    OPTIONAL,
  maxNumOfPeriodicAndSemiPersistentSRSposResources-r17
                                          ENUMERATED {n1, n2, n4, n8, n16, n32, n64}  OPTIONAL,
  maxNumOfPeriodicAndSemiPersistentSRSposResourcesPerSlot-r17
                                          ENUMERATED { n1, n2, n3, n4, n5, n6, n8, n10,
                                                      n12, n14 }                      OPTIONAL,
  differentCenterFreqBetweenSRSposAndInitialBWP-r17
                                          ENUMERATED { supported }                    OPTIONAL,
  maxNumOfSemiPersistentSRSposResources-r17
                                          ENUMERATED { n1, n2, n4, n8, n16, n32, n64 }
                                                                                      OPTIONAL,
  maxNumOfSemiPersistentSRSposResourcesPerSlot-r17
                                          ENUMERATED { n1, n2, n3, n4, n5, n6, n8, n10,
                                                      n12, n14 }                      OPTIONAL,
  switchingTimeSRS-TX-OtherTX-r17         ENUMERATED { us100, us140, us200, us300, us500 }
                                                                                      OPTIONAL,
  ...
}

PosSRS-SP-RRC-Inactive-InInitialUL-BWP-r17 ::= SEQUENCE {
  maxNumOfSemiPersistentSRSposResources-r17
                                      ENUMERATED {n1, n2, n4, n8, n16, n32, n64}      OPTIONAL,
  maxNumOfSemiPersistentSRSposResourcesPerSlot-r17
                                      ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14}
                                                                                      OPTIONAL,
  ...
}

PosSRS-TxFrequencyHoppingRRC-Connected-r18 ::= SEQUENCE {
  maximumSRS-BandwidthAcrossAllHopsFR1-r18    ENUMERATED {mhz40, mhz50, mhz80, mhz100}
                                                                                      OPTIONAL,
  maximumSRS-BandwidthAcrossAllHopsFR2-r18    ENUMERATED {mhz100, mhz200, mhz400}     OPTIONAL,
  maximumTxFH-Hops-r18                        ENUMERATED {n2, n3, n4, n5, n6}         OPTIONAL,
  rf-TxRetuneTimeFR1-r18                      ENUMERATED {n70, n140, n210}            OPTIONAL,
  rf-TxRetuneTimeFR2-r18                      ENUMERATED {n35, n70, n140}             OPTIONAL,
  switchTimeBetweenActiveBWP-FrequencyHop-r18 ENUMERATED {n100, n140,n200,n300,n500}  OPTIONAL,
  numOfOverlappingPRB-r18                     ENUMERATED {n0, n1, n2, n4}             OPTIONAL,
  maximumSRS-ResourcePeriodic-r18             ENUMERATED {n1, n2, n4, n8, n16, n32, n64}
                                                                                      OPTIONAL,
  maximumSRS-ResourceAperiodic-r18            ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64}
                                                                                      OPTIONAL,
  maximumSRS-ResourceSemipersistent-r18       ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64}
                                                                                      OPTIONAL,
  ...
}

PosSRS-TxFrequencyHoppingRRC-Inactive-r18 ::=SEQUENCE {
  maximumSRS-BandwidthAcrossAllHopsFR1-r18    ENUMERATED {mhz40, mhz50, mhz80, mhz100}
                                                                                      OPTIONAL,
  maximumSRS-BandwidthAcrossAllHopsFR2-r18    ENUMERATED {mhz100, mhz200, mhz400}     OPTIONAL,
  maximumTxFH-Hops-r18                        ENUMERATED {n2, n3, n4, n5, n6}         OPTIONAL,
  rf-TxRetuneTimeFR1-r18                      ENUMERATED {n70, n140, n210}            OPTIONAL,
  rf-TxRetuneTimeFR2-r18                      ENUMERATED {n35, n70, n140}             OPTIONAL,
  switchTimeBetweenActiveBWP-FrequencyHop-r18 ENUMERATED {n100, n140,n200,n300,n500}  OPTIONAL,
  numOfOverlappingPRB-r18                     ENUMERATED {n0, n1, n2, n4}             OPTIONAL,
  maximumSRS-ResourcePeriodic-r18             ENUMERATED {n1, n2, n4, n8, n16, n32, n64}
                                                                                      OPTIONAL,
  maximumSRS-ResourceSemipersistent-r18       ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64}
                                                                                      OPTIONAL,
  ...
}

PosSRS-BWA-RRC-Connected-r18 ::=SEQUENCE {
  numOfCarriersIntraBandContiguous-r18        ENUMERATED {two, three, twoandthree},
  maximumAggregatedBW-TwoCarriersFR1-r18      ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100,
                                                          mhz160, mhz180, mhz190, mhz200}
                                                                                      OPTIONAL,
  maximumAggregatedBW-TwoCarriersFR2-r18      ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600,
                                                          mhz800}                     OPTIONAL,
  maximumAggregatedBW-ThreeCarriersFR1-r18    ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240,
                                                          mhz300}                     OPTIONAL,
  maximumAggregatedBW-ThreeCarriersFR2-r18    ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
                                                          mhz600, mhz800, mhz1000, mhz1200}
                                                                                      OPTIONAL,
  maximumAggregatedResourceSet-r18            ENUMERATED {n1, n2, n4, n8, n12, n16},
  maximumAggregatedResourcePeriodic-r18       ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
  maximumAggregatedResourceAperiodic-r18      ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
  maximumAggregatedResourceSemi-r18           ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
  maximumAggregatedResourcePeriodicPerSlot-r18
                                              ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10,
                                                          n12, n14},
  maximumAggregatedResourceAperiodicPerSlot-r18
                                              ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10,
                                                          n12, n14},
  maximumAggregatedResourceSemiPerSlot-r18    ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10,
                                                          n12, n14},
  ...
  }

PosSRS-BWA-IndependentCA-RRC-Connected-r18 ::=SEQUENCE {
  numOfCarriersIntraBandContiguous-r18        ENUMERATED {two, three, twoandthree},
  maximumAggregatedBW-TwoCarriersFR1-r18      ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100,
                                                          mhz160, mhz180, mhz190, mhz200}
                                                                                      OPTIONAL,
  maximumAggregatedBW-TwoCarriersFR2-r18      ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600,
                                                          mhz800}                     OPTIONAL,
  maximumAggregatedBW-ThreeCarriersFR1-r18    ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240,
                                                          mhz300}                     OPTIONAL,
  maximumAggregatedBW-ThreeCarriersFR2-r18    ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
                                                          mhz600, mhz800, mhz1000, mhz1200}
                                                                                      OPTIONAL,
  maximumAggregatedResourceSet-r18            ENUMERATED {n1, n2, n4, n8, n12, n16},
  maximumAggregatedResourcePeriodic-r18       ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
  maximumAggregatedResourceAperiodic-r18      ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
  maximumAggregatedResourceSemi-r18           ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
  maximumAggregatedResourcePeriodicPerSlot-r18
                                              ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10,
                                                          n12, n14},
  maximumAggregatedResourceAperiodicPerSlot-r18
                                              ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10,
                                                          n12, n14},
  maximumAggregatedResourceSemiPerSlot-r18    ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10,
                                                          n12, n14},
  guardPeriod-r18                             ENUMERATED {n0, n30, n100, n140, n200},
  powerClassForTwoAggregatedCarriers-r18      ENUMERATED {pc2, pc3}                   OPTIONAL,
  powerClassForThreeAggregatedCarriers-r18    ENUMERATED {pc2, pc3}                   OPTIONAL,
  ...
}

PosSRS-BWA-RRC-Inactive-r18 ::=SEQUENCE {
  numOfCarriersIntraBandContiguous-r18        ENUMERATED {two, three, twoandthree},
  maximumAggregatedBW-TwoCarriersFR1-r18      ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100,
                                                          mhz160, mhz180, mhz190, mhz200}
                                                                                      OPTIONAL,
  maximumAggregatedBW-TwoCarriersFR2-r18      ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600,
                                                          mhz800}                     OPTIONAL,
  maximumAggregatedBW-ThreeCarriersFR1-r18    ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240,
                                                          mhz300}                     OPTIONAL,
  maximumAggregatedBW-ThreeCarriersFR2-r18    ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
                                                          mhz600, mhz800, mhz1000, mhz1200}
                                                                                      OPTIONAL,
  maximumAggregatedResourceSet-r18            ENUMERATED {n1, n2, n4, n8, n12, n16},
  maximumAggregatedResourcePeriodic-r18       ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
  maximumAggregatedResourceSemi-r18           ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
  maximumAggregatedResourcePeriodicPerSlot-r18
                                              ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10,
                                                          n12, n14},
  maximumAggregatedResourceSemiPerSlot-r18    ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10,
                                                          n12, n14},
  guardPeriod-r18                             ENUMERATED {n0, n30, n100, n140, n200},
  powerClassForTwoAggregatedCarriers-r18      ENUMERATED {pc2, pc3}                   OPTIONAL,
  powerClassForThreeAggregatedCarriers-r18    ENUMERATED {pc2, pc3}                   OPTIONAL,
  ...
}


NR-PhaseQuality-r18 ::= SEQUENCE {
  phaseQualityIndex-r18           INTEGER (0..179),
  phaseQualityResolution-r18      ENUMERATED {mdot1, m1,...},
  ...
}


ReferencePoint-r16 ::= SEQUENCE {
  referencePointGeographicLocation-r16        CHOICE {
      location3D-r16          EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
      ha-location3D-r16       HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15,
      ...,
      localOrigin-v1800       LocalOrigin-r18
  },
  ...
}


RelativeCartesianLocation-r18 ::= SEQUENCE {
  cartesianCoordinatesUnits-r18       ENUMERATED { mm, cm, dm, m, ...},
  x-value-r18                         X-Value-r18,
  y-value-r18                         Y-Value-r18,
  z-value-r18                         Z-Value-r18,
  locationUnc-r18                     LocationUncertainty-r16         OPTIONAL,       -- Need OP
  ...
}

X-Value-r18 ::= SEQUENCE {
  delta-x-r18                         INTEGER (-1024..1023),
  coarse-delta-x-r18                  INTEGER (0..4095)               OPTIONAL,       -- Need OP
  ...
}

Y-Value-r18 ::= SEQUENCE {
  delta-y-r18                         INTEGER (-1024..1023),
  coarse-delta-y-r18                  INTEGER (0..4095)               OPTIONAL,       -- Need OP
  ...
}

Z-Value-r18 ::= SEQUENCE {
  delta-z-r18                         INTEGER (-1024..1023),
  coarse-delta-z-r18                  INTEGER (0..4095)               OPTIONAL,       -- Need OP
  ...
}


RelativeLocation-r16 ::= SEQUENCE {
  milli-arc-second-units-r16  ENUMERATED { mas0-03, mas0-3, mas3, mas30, ...},
  height-units-r16            ENUMERATED {mm, cm, m, ...},
  delta-latitude-r16          Delta-Latitude-r16,
  delta-longitude-r16         Delta-Longitude-r16,
  delta-height-r16            Delta-Height-r16,
  locationUNC-r16             LocationUncertainty-r16             OPTIONAL,       -- Need OP
  ...
}

Delta-Latitude-r16 ::= SEQUENCE {
  delta-Latitude-r16                      INTEGER (-1024..1023),
  coarse-delta-Latitude-r16               INTEGER (0..4095)       OPTIONAL,       -- Need OP
  ...
}

Delta-Longitude-r16 ::= SEQUENCE {
  delta-Longitude-r16                     INTEGER (-1024..1023),
  coarse-delta-Longitude-r16              INTEGER (0..4095)       OPTIONAL,       -- Need OP
  ...
}

Delta-Height-r16 ::= SEQUENCE {
  delta-Height-r16                        INTEGER (-1024..1023),
  coarse-delta-Height-r16                 INTEGER (0..4095)       OPTIONAL,       -- Need OP
  ...
}

LocationUncertainty-r16 ::= SEQUENCE {
  horizontalUncertainty-r16               INTEGER (0..255),
  horizontalConfidence-r16                INTEGER (0..100),
  verticalUncertainty-r16                 INTEGER (0..255),
  verticalConfidence-r16                  INTEGER (0..100)
}


TEG-TimingErrorMargin-r17 ::= ENUMERATED { tc0, tc2, tc4, tc6, tc8, tc12, tc16, tc20, tc24,
                                          tc32, tc40, tc48, tc56, tc64, tc72, tc80 }


RxTxTEG-TimingErrorMargin-r17 ::= ENUMERATED { tc0-5, tc1, tc2, tc4, tc8, tc12, tc16, tc20,
                                              tc24, tc32, tc40, tc48, tc64, tc80, tc96, tc128 }


OTDOA-ProvideAssistanceData ::= SEQUENCE {
  otdoa-ReferenceCellInfo         OTDOA-ReferenceCellInfo             OPTIONAL,   -- Need ON
  otdoa-NeighbourCellInfo         OTDOA-NeighbourCellInfoList         OPTIONAL,   -- Need ON
  otdoa-Error                     OTDOA-Error                         OPTIONAL,   -- Need ON
  ...,
  [[
  otdoa-ReferenceCellInfoNB-r14   OTDOA-ReferenceCellInfoNB-r14       OPTIONAL,   -- Need ON
  otdoa-NeighbourCellInfoNB-r14   OTDOA-NeighbourCellInfoListNB-r14   OPTIONAL    -- Need ON
  ]]
}


OTDOA-ReferenceCellInfo ::= SEQUENCE {
  physCellId                  INTEGER (0..503),
  cellGlobalId                ECGI                        OPTIONAL,       -- Need ON
  earfcnRef                   ARFCN-ValueEUTRA            OPTIONAL,       -- Cond NotSameAsServ0
  antennaPortConfig           ENUMERATED {ports1-or-2, ports4, ... }
                                                          OPTIONAL,       -- Cond NotSameAsServ1
  cpLength                    ENUMERATED { normal, extended, ... },
  prsInfo                     PRS-Info                    OPTIONAL,       -- Cond PRS
  ...,
  [[ earfcnRef-v9a0           ARFCN-ValueEUTRA-v9a0       OPTIONAL        -- Cond NotSameAsServ2
  ]],
  [[  tpId-r14                INTEGER (0..4095)           OPTIONAL,       -- Need ON
      cpLengthCRS-r14         ENUMERATED { normal, extended, ... }
                                                          OPTIONAL,       -- Cond CRS
      sameMBSFNconfigRef-r14  BOOLEAN                     OPTIONAL,       -- Need ON
      dlBandwidth-r14         ENUMERATED {n6, n15, n25, n50, n75, n100}
                                                          OPTIONAL,       -- Cond NotSameAsServ3
      addPRSconfigRef-r14     SEQUENCE (SIZE (1..maxAddPRSconfig-r14)) OF PRS-Info
                                                          OPTIONAL        -- Need ON
  ]],
  [[
      nr-LTE-SFN-Offset-r15   INTEGER (0..1023)           OPTIONAL        -- Cond NR
  ]],
  [[
      tdd-config-v1520                    TDD-Config-v1520    OPTIONAL,       -- Need ON
      nr-LTE-fineTiming-Offset-r15        INTEGER (0..19)     OPTIONAL        -- Cond FineOffset
  ]]
}

maxAddPRSconfig-r14         INTEGER ::= 2


PRS-Info ::= SEQUENCE {
  prs-Bandwidth           ENUMERATED { n6, n15, n25, n50, n75, n100, ... },
  prs-ConfigurationIndex  INTEGER (0..4095),
  numDL-Frames            ENUMERATED {sf-1, sf-2, sf-4, sf-6, ..., sf-add-v1420},
  ...,
  prs-MutingInfo-r9       CHOICE {
      po2-r9                  BIT STRING (SIZE(2)),
      po4-r9                  BIT STRING (SIZE(4)),
      po8-r9                  BIT STRING (SIZE(8)),
      po16-r9                 BIT STRING (SIZE(16)),
      ...,
      po32-v1420              BIT STRING (SIZE(32)),
      po64-v1420              BIT STRING (SIZE(64)),
      po128-v1420             BIT STRING (SIZE(128)),
      po256-v1420             BIT STRING (SIZE(256)),
      po512-v1420             BIT STRING (SIZE(512)),
      po1024-v1420            BIT STRING (SIZE(1024))
  }                                                       OPTIONAL,               -- Need OP
  [[  prsID-r14               INTEGER (0..4095)           OPTIONAL,               -- Need ON
      add-numDL-Frames-r14    INTEGER (1..160)            OPTIONAL,               -- Cond sf-add
      prsOccGroupLen-r14      ENUMERATED {g2, g4, g8, g16, g32, g64, g128,... }
                                                          OPTIONAL,               -- Cond Occ-Grp
      prsHoppingInfo-r14  CHOICE {
          nb2-r14             INTEGER (0.. maxAvailNarrowBands-Minus1-r14),
          nb4-r14             SEQUENCE (SIZE (3))
                                      OF INTEGER (0.. maxAvailNarrowBands-Minus1-r14)
  }                                                       OPTIONAL                -- Cond PRS-FH
  ]]
}

maxAvailNarrowBands-Minus1-r14      INTEGER ::= 15  -- Maximum number of narrowbands minus 1


TDD-Config-v1520 ::= SEQUENCE {
  subframeAssignment-v1520            ENUMERATED { sa0, sa1, sa2, sa3, sa4, sa5, sa6 },
  ...
}


OTDOA-NeighbourCellInfoList ::= SEQUENCE (SIZE (1..maxFreqLayers)) OF OTDOA-NeighbourFreqInfo
OTDOA-NeighbourFreqInfo ::= SEQUENCE (SIZE (1..24)) OF OTDOA-NeighbourCellInfoElement

OTDOA-NeighbourCellInfoElement ::= SEQUENCE {
  physCellId                          INTEGER (0..503),
  cellGlobalId                        ECGI                OPTIONAL,       -- Need ON
  earfcn                              ARFCN-ValueEUTRA    OPTIONAL,       -- Cond NotSameAsRef0
  cpLength                            ENUMERATED {normal, extended, ...}
                                                          OPTIONAL,       -- Cond NotSameAsRef1
  prsInfo                             PRS-Info            OPTIONAL,       -- Cond NotSameAsRef2
  antennaPortConfig                   ENUMERATED {ports-1-or-2, ports-4, ...}
                                                          OPTIONAL,       -- Cond NotsameAsRef3
  slotNumberOffset                    INTEGER (0..19)     OPTIONAL,       -- Cond NotSameAsRef4
  prs-SubframeOffset                  INTEGER (0..1279)   OPTIONAL,       -- Cond InterFreq
  expectedRSTD                        INTEGER (0..16383),
  expectedRSTD-Uncertainty            INTEGER (0..1023),
  ...,
  [[ earfcn-v9a0                  ARFCN-ValueEUTRA-v9a0   OPTIONAL        -- Cond NotSameAsRef5
  ]],
  [[  tpId-r14                    INTEGER (0..4095)       OPTIONAL,       -- Need ON
      prs-only-tp-r14             ENUMERATED { true }     OPTIONAL,       -- Cond TBS
      cpLengthCRS-r14             ENUMERATED { normal, extended, ... }
                                                          OPTIONAL,       -- Cond CRS
      sameMBSFNconfigNeighbour-r14    BOOLEAN             OPTIONAL,       -- Need ON
      dlBandwidth-r14             ENUMERATED {n6, n15, n25, n50, n75, n100}
                                                          OPTIONAL,       -- Cond NotSameAsRef6
      addPRSconfigNeighbour-r14   SEQUENCE (SIZE (1..maxAddPRSconfig-r14)) OF
                                      Add-PRSconfigNeighbourElement-r14
                                                          OPTIONAL        -- Need ON
  ]],
  [[
      tdd-config-v1520            TDD-Config-v1520        OPTIONAL        -- Need ON
  ]]
}

Add-PRSconfigNeighbourElement-r14 ::= SEQUENCE {
  add-prsInfo-r14                 PRS-Info                OPTIONAL,       -- Cond NotSameAsRef7
  ...
}

maxFreqLayers   INTEGER ::= 3


OTDOA-ReferenceCellInfoNB-r14 ::= SEQUENCE {
  physCellIdNB-r14                INTEGER (0..503)            OPTIONAL,   -- Cond NoPRS-AD1
  cellGlobalIdNB-r14              ECGI                        OPTIONAL,   -- Cond NoPRS-AD2
  carrierFreqRef-r14              CarrierFreq-NB-r14          OPTIONAL,   -- Cond NotSameAsServ1
  earfcn-r14                      ARFCN-ValueEUTRA-r14        OPTIONAL,   -- Cond Inband
  eutra-NumCRS-Ports-r14          ENUMERATED {ports1-or-2, ports4}
                                                              OPTIONAL,   -- Cond NoPRS-AD3
  otdoa-SIB1-NB-repetitions-r14   ENUMERATED { r4, r8, r16 }  OPTIONAL,   -- Cond NotSameAsServ2
  nprsInfo-r14                    PRS-Info-NB-r14             OPTIONAL,   -- Cond NPRS-Type1
  ...,
  [[
  nprsInfo-Type2-v1470            PRS-Info-NB-r14             OPTIONAL    -- Cond NPRS-Type2
  ]],
  [[  tdd-config-r15              TDD-Config-v1520            OPTIONAL    -- Need ON
  ]]
}


PRS-Info-NB-r14 ::= SEQUENCE (SIZE (1..maxCarrier-r14)) OF NPRS-Info-r14

NPRS-Info-r14 ::= SEQUENCE {
  operationModeInfoNPRS-r14   ENUMERATED { inband, standalone },
  nprs-carrier-r14            CarrierFreq-NB-r14  OPTIONAL,   -- Cond Standalone/Guardband
  nprsSequenceInfo-r14        INTEGER (0..174)    OPTIONAL,   -- Cond Inband
  nprsID-r14                  INTEGER (0..4095)   OPTIONAL,   -- Cond NPRS-ID
  partA-r14                   SEQUENCE {
      nprsBitmap-r14          CHOICE {
          subframePattern10-r14   BIT STRING (SIZE (10)),
          subframePattern40-r14   BIT STRING (SIZE (40))
      },
      nprs-MutingInfoA-r14    CHOICE {
          po2-r14                 BIT STRING (SIZE(2)),
          po4-r14                 BIT STRING (SIZE(4)),
          po8-r14                 BIT STRING (SIZE(8)),
          po16-r14                BIT STRING (SIZE(16)),
          ...
      }                                                           OPTIONAL,       -- Cond MutingA
      ...
  }                                                               OPTIONAL,       -- Cond PartA
  partB-r14                   SEQUENCE {
      nprs-Period-r14         ENUMERATED { ms160, ms320, ms640, ms1280, ... , ms2560-v1510},
      nprs-startSF-r14        ENUMERATED { zero, one-eighth, two-eighths, three-eighths,
                                          four-eighths, five-eighths, six-eighths,
                                          seven-eighths, ...},
      nprs-NumSF-r14          ENUMERATED { sf10, sf20, sf40, sf80, sf160, sf320,
                                          sf640, sf1280, ... , sf2560-v1510},
      nprs-MutingInfoB-r14    CHOICE {
          po2-r14                 BIT STRING (SIZE(2)),
          po4-r14                 BIT STRING (SIZE(4)),
          po8-r14                 BIT STRING (SIZE(8)),
          po16-r14                BIT STRING (SIZE(16)),
          ...
      }                                                           OPTIONAL,       -- Cond MutingB
                                                                                                      ...,
                                                                                                  [[  sib1-SF-TDD-r15         ENUMERATED {sf0, sf4, sf0and5}      OPTIONAL        -- Cond SIB1-TDD
  ]]
  }                                                               OPTIONAL,       -- Cond PartB
  ...,
  [[
  partA-TDD-r15                   SEQUENCE {
      nprsBitmap-r15          CHOICE {
          subframePattern10-TDD-r15   BIT STRING (SIZE (8)),
          subframePattern40-TDD-r15   BIT STRING (SIZE (32)),
          ...
      },
      nprs-MutingInfoA-r15    CHOICE {
          po2-r15                 BIT STRING (SIZE(2)),
          po4-r15                 BIT STRING (SIZE(4)),
          po8-r15                 BIT STRING (SIZE(8)),
          po16-r15                BIT STRING (SIZE(16)),
          ...
      }                                                           OPTIONAL,   -- Cond MutingA
      ...
  }                                                               OPTIONAL    -- Cond PartA-TDD
  ]]
}

maxCarrier-r14  INTEGER ::= 5


OTDOA-NeighbourCellInfoListNB-r14 ::= SEQUENCE (SIZE (1..maxCells-r14)) OF
                                                      OTDOA-NeighbourCellInfoNB-r14

OTDOA-NeighbourCellInfoNB-r14 ::= SEQUENCE {
  physCellIdNB-r14                INTEGER (0..503)        OPTIONAL,       -- Cond NoPRS-AD1
  cellGlobalIdNB-r14              ECGI                    OPTIONAL,       -- Cond NoPRS-AD2
  carrierFreq-r14                 CarrierFreq-NB-r14      OPTIONAL,       -- Cond NotSameAsRef1
  earfcn-r14                      ARFCN-ValueEUTRA-r14    OPTIONAL,       -- Cond Inband
  eutra-NumCRS-Ports-r14          ENUMERATED {ports-1-or-2, ports-4, ...}
                                                          OPTIONAL,       -- Cond NotsameAsRef2
  otdoa-SIB1-NB-repetitions-r14   ENUMERATED { r4, r8, r16 }
                                                          OPTIONAL,       -- Cond NotSameAsRef3
  nprsInfo-r14                    PRS-Info-NB-r14         OPTIONAL,       -- Cond NotsameAsRef4
  nprs-slotNumberOffset-r14       INTEGER (0..19)         OPTIONAL,       -- Cond NotsameAsRef5
  nprs-SFN-Offset-r14             INTEGER (0..63)         OPTIONAL,       -- Cond NotsameAsRef6
  nprs-SubframeOffset-r14         INTEGER (0..1279)       OPTIONAL,       -- Need OP
  expectedRSTD-r14                INTEGER (0..16383)      OPTIONAL,       -- Cond NoPRS-AD3
  expectedRSTD-Uncertainty-r14    INTEGER (0..1023)       OPTIONAL,       -- Cond NoPRS-AD3
  prsNeighbourCellIndex-r14       INTEGER (1..72)         OPTIONAL,       -- Cond PRS-AD
  ...,
  [[
  nprsInfo-Type2-v1470            PRS-Info-NB-r14         OPTIONAL        -- Cond NotSameAsRef4
  ]],
  [[  tdd-config-r15              TDD-Config-v1520        OPTIONAL        -- Need ON
  ]]
}

maxCells-r14    INTEGER ::= 72


OTDOA-RequestAssistanceData ::= SEQUENCE {
  physCellId          INTEGER (0..503),
  ...,
  [[
  adType-r14          BIT STRING { prs (0), nprs (1) } (SIZE (1..8))      OPTIONAL
  ]],
  [[
      nrPhysCellId-r15    INTEGER (0..1007)                                   OPTIONAL
  ]]
}


OTDOA-ProvideLocationInformation ::= SEQUENCE {
  otdoaSignalMeasurementInformation   OTDOA-SignalMeasurementInformation  OPTIONAL,
  otdoa-Error                         OTDOA-Error                         OPTIONAL,
  ...,
  [[
      otdoaSignalMeasurementInformation-NB-r14    OTDOA-SignalMeasurementInformation-NB-r14
                                                                          OPTIONAL
  ]]
}


OTDOA-SignalMeasurementInformation ::= SEQUENCE {
  systemFrameNumber       BIT STRING (SIZE (10)),
  physCellIdRef           INTEGER (0..503),
  cellGlobalIdRef         ECGI                    OPTIONAL,
  earfcnRef               ARFCN-ValueEUTRA        OPTIONAL,       -- Cond NotSameAsRef0
  referenceQuality        OTDOA-MeasQuality       OPTIONAL,
  neighbourMeasurementList    NeighbourMeasurementList,
  ...,
  [[ earfcnRef-v9a0       ARFCN-ValueEUTRA-v9a0   OPTIONAL        -- Cond NotSameAsRef1
  ]],
  [[ tpIdRef-r14          INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer0
      prsIdRef-r14        INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer1
      additionalPathsRef-r14
                          AdditionalPathList-r14  OPTIONAL,
      nprsIdRef-r14       INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer2
      carrierFreqOffsetNB-Ref-r14
                          CarrierFreqOffsetNB-r14 OPTIONAL,       -- Cond NB-IoT
      hyperSFN-r14        BIT STRING (SIZE (10))  OPTIONAL        -- Cond H-SFN
  ]],
  [[
      motionTimeSource-r15        MotionTimeSource-r15        OPTIONAL
  ]]
}

NeighbourMeasurementList ::= SEQUENCE (SIZE(1..24)) OF NeighbourMeasurementElement

NeighbourMeasurementElement ::= SEQUENCE {
  physCellIdNeighbour     INTEGER (0..503),
  cellGlobalIdNeighbour   ECGI                    OPTIONAL,
  earfcnNeighbour         ARFCN-ValueEUTRA        OPTIONAL,       -- Cond NotSameAsRef2
  rstd                    INTEGER (0..12711),
  rstd-Quality            OTDOA-MeasQuality,
  ...,
  [[ earfcnNeighbour-v9a0 ARFCN-ValueEUTRA-v9a0   OPTIONAL        -- Cond NotSameAsRef3
  ]],
  [[ tpIdNeighbour-r14    INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer0
      prsIdNeighbour-r14  INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer1
      delta-rstd-r14      INTEGER (0..5)          OPTIONAL,
      additionalPathsNeighbour-r14
                          AdditionalPathList-r14  OPTIONAL,
      nprsIdNeighbour-r14 INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer2
      carrierFreqOffsetNB-Neighbour-r14                           CarrierFreqOffsetNB-r14 OPTIONAL        -- Cond NB-IoT
  ]],
  [[
      delta-SFN-r15           INTEGER (-8192..8191)   OPTIONAL
  ]]
}

AdditionalPathList-r14 ::= SEQUENCE (SIZE(1..maxPaths-r14)) OF AdditionalPath-r14

maxPaths-r14    INTEGER ::= 2

MotionTimeSource-r15 ::= SEQUENCE {
  timeSource-r15              ENUMERATED {servingCell, referenceCell, gnss, mixed,
                                          other, none, ...}
}


OTDOA-SignalMeasurementInformation-NB-r14 ::= SEQUENCE {
  systemFrameNumber-r14           BIT STRING (SIZE (10)),
  physCellIdRef-r14               INTEGER (0..503),
  cellGlobalIdRef-r14             ECGI                    OPTIONAL,
  earfcnRef-r14                   ARFCN-ValueEUTRA-r14    OPTIONAL,   -- Cond NotSameAsRef0
  referenceQuality-r14            OTDOA-MeasQuality       OPTIONAL,
  neighbourMeasurementList-r14    NeighbourMeasurementList-NB-r14,
  tpIdRef-r14                     INTEGER (0..4095)       OPTIONAL,   -- Cond ProvidedByServer0
  prsIdRef-r14                    INTEGER (0..4095)       OPTIONAL,   -- Cond ProvidedByServer1
  additionalPathsRef-r14          AdditionalPathList-r14  OPTIONAL,
  nprsIdRef-r14                   INTEGER (0..4095)       OPTIONAL,   -- Cond ProvidedByServer2
  carrierFreqOffsetNB-Ref-r14     CarrierFreqOffsetNB-r14 OPTIONAL,   -- Cond NB-IoT
  hyperSFN-r14                    BIT STRING (SIZE (10))  OPTIONAL,   -- Cond H-SFN
  ...
}

NeighbourMeasurementList-NB-r14 ::= SEQUENCE (SIZE(1..24)) OF NeighbourMeasurementElement-NB-r14

NeighbourMeasurementElement-NB-r14 ::= SEQUENCE {
  physCellIdNeighbour-r14     INTEGER (0..503),
  cellGlobalIdNeighbour-r14   ECGI                    OPTIONAL,
  earfcnNeighbour-r14         ARFCN-ValueEUTRA-r14    OPTIONAL,       -- Cond NotSameAsRef2
  rstd-r14                    INTEGER (0..12711),
  rstd-Quality-r14            OTDOA-MeasQuality,
  tpIdNeighbour-r14           INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer0
  prsIdNeighbour-r14          INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer1
  delta-rstd-r14              INTEGER (0..5)          OPTIONAL,
  additionalPathsNeighbour-r14
                              AdditionalPathList-r14  OPTIONAL,
  nprsIdNeighbour-r14         INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer2
  carrierFreqOffsetNB-Neighbour-r14
                              CarrierFreqOffsetNB-r14 OPTIONAL,       -- Cond NB-IoT
  ...
}


OTDOA-MeasQuality ::= SEQUENCE {
  error-Resolution        BIT STRING (SIZE (2)),
  error-Value             BIT STRING (SIZE (5)),
  error-NumSamples        BIT STRING (SIZE (3))               OPTIONAL,
  ...
}


AdditionalPath-r14 ::= SEQUENCE {
  relativeTimeDifference-r14  INTEGER (-256..255),
  path-Quality-r14            OTDOA-MeasQuality               OPTIONAL,
  ...
}


OTDOA-RequestLocationInformation ::= SEQUENCE {
  assistanceAvailability      BOOLEAN,
  ...,
  [[
      multipathRSTD-r14       ENUMERATED { requested }    OPTIONAL,       -- Need ON
      maxNoOfRSTDmeas-r14     INTEGER (1..32)             OPTIONAL        -- Need ON
  ]],
  [[
      motionMeasurements-r15  ENUMERATED { requested }    OPTIONAL        -- Need ON
  ]]
}


OTDOA-ProvideCapabilities ::= SEQUENCE {
  otdoa-Mode      BIT STRING {    ue-assisted             (0),
                                  ue-assisted-NB-r14      (1),
                                  ue-assisted-NB-TDD-r15  (2) } (SIZE (1..8)),
  ...,
  supportedBandListEUTRA      SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA     OPTIONAL,
  supportedBandListEUTRA-v9a0 SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9a0
                                                                                      OPTIONAL,
  interFreqRSTDmeasurement-r10        ENUMERATED { supported }                        OPTIONAL,
  additionalNeighbourCellInfoList-r10 ENUMERATED { supported }                        OPTIONAL,
  prs-id-r14                          ENUMERATED { supported }                        OPTIONAL,
  tp-separation-via-muting-r14        ENUMERATED { supported }                        OPTIONAL,
  additional-prs-config-r14           ENUMERATED { supported }                        OPTIONAL,
  prs-based-tbs-r14                   ENUMERATED { supported }                        OPTIONAL,
  additionalPathsReport-r14           ENUMERATED { supported }                        OPTIONAL,
  densePrsConfig-r14                  ENUMERATED { supported }                        OPTIONAL,
  maxSupportedPrsBandwidth-r14        ENUMERATED { n6, n15, n25, n50, n75, n100, ...} OPTIONAL,
  prsOccGroup-r14                     ENUMERATED { supported }                        OPTIONAL,
  prsFrequencyHopping-r14             ENUMERATED { supported }                        OPTIONAL,
  maxSupportedPrsConfigs-r14          ENUMERATED { c2, c3 }                           OPTIONAL,
  periodicalReporting-r14             ENUMERATED { supported }                        OPTIONAL,
  multiPrbNprs-r14                    ENUMERATED { supported }                        OPTIONAL,
  idleStateForMeasurements-r14        ENUMERATED { required }                         OPTIONAL,
  numberOfRXantennas-r14              ENUMERATED { rx1, ... }                         OPTIONAL,
  motionMeasurements-r15              ENUMERATED { supported }                        OPTIONAL,
  interRAT-RSTDmeasurement-r15        ENUMERATED { supported }                        OPTIONAL,
  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupport-r17            OPTIONAL,
  periodicReportingIntervalMsSupport-r18  PeriodicReportingIntervalMsSupport-r18      OPTIONAL
}

maxBands INTEGER ::= 64

SupportedBandEUTRA ::= SEQUENCE {
  bandEUTRA                           INTEGER (1..maxFBI)
}

SupportedBandEUTRA-v9a0 ::=     SEQUENCE {
  bandEUTRA-v9a0                      INTEGER (maxFBI-Plus1..maxFBI2)     OPTIONAL
}

maxFBI                              INTEGER ::= 64  -- Maximum value of frequency band indicator
maxFBI-Plus1                        INTEGER ::= 65  -- lowest value extended FBI range
maxFBI2                             INTEGER ::= 256 -- highest value extended FBI range


OTDOA-RequestCapabilities ::= SEQUENCE {
  ...
}


OTDOA-Error ::= CHOICE {
  locationServerErrorCauses       OTDOA-LocationServerErrorCauses,
  targetDeviceErrorCauses         OTDOA-TargetDeviceErrorCauses,
  ...
}


OTDOA-LocationServerErrorCauses ::= SEQUENCE {
  cause       ENUMERATED  {   undefined,
                              assistanceDataNotSupportedByServer,
                              assistanceDataSupportedButCurrentlyNotAvailableByServer,
                              ...
                          },
  ...
}


OTDOA-TargetDeviceErrorCauses ::= SEQUENCE {
  cause       ENUMERATED {    undefined,
                              assistance-data-missing,
                              unableToMeasureReferenceCell,
                              unableToMeasureAnyNeighbourCell,
                              attemptedButUnableToMeasureSomeNeighbourCells,
                              ...
                          },
  ...
}


A-GNSS-ProvideAssistanceData ::= SEQUENCE {
  gnss-CommonAssistData           GNSS-CommonAssistData               OPTIONAL,   -- Need ON
  gnss-GenericAssistData          GNSS-GenericAssistData              OPTIONAL,   -- Need ON
  gnss-Error                      A-GNSS-Error                        OPTIONAL,   -- Need ON
  ...,
  [[
      gnss-PeriodicAssistData-r15 GNSS-PeriodicAssistData-r15         OPTIONAL    -- Cond CtrTrans
  ]]
}


GNSS-CommonAssistData ::= SEQUENCE {
  gnss-ReferenceTime              GNSS-ReferenceTime                  OPTIONAL,   -- Need ON
  gnss-ReferenceLocation          GNSS-ReferenceLocation              OPTIONAL,   -- Need ON
  gnss-IonosphericModel           GNSS-IonosphericModel               OPTIONAL,   -- Need ON
  gnss-EarthOrientationParameters GNSS-EarthOrientationParameters     OPTIONAL,   -- Need ON
  ...,
  [[
      gnss-RTK-ReferenceStationInfo-r15
                                  GNSS-RTK-ReferenceStationInfo-r15   OPTIONAL,   -- Need ON
      gnss-RTK-CommonObservationInfo-r15
                                  GNSS-RTK-CommonObservationInfo-r15  OPTIONAL,   -- Cond RTK
      gnss-RTK-AuxiliaryStationData-r15
                                  GNSS-RTK-AuxiliaryStationData-r15   OPTIONAL    -- Need ON
  ]],
  [[
      gnss-SSR-CorrectionPoints-r16
                                  GNSS-SSR-CorrectionPoints-r16       OPTIONAL    -- Need ON
  ]],
  [[
      gnss-Integrity-ServiceParameters-r17
                          GNSS-Integrity-ServiceParameters-r17        OPTIONAL,   -- Need ON
      gnss-Integrity-ServiceAlert-r17
                          GNSS-Integrity-ServiceAlert-r17             OPTIONAL    -- Need OR
  ]],
  [[
      gnss-los-nlos-GridPoints-r18    GNSS-LOS-NLOS-GridPoints-r18    OPTIONAL,   -- Need ON
      gnss-SSR-IOD-Update-r18         GNSS-SSR-IOD-Update-r18         OPTIONAL    -- Need OR
  ]]
}


GNSS-GenericAssistData ::= SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataElement

GNSS-GenericAssistDataElement ::= SEQUENCE {
  gnss-ID                         GNSS-ID,
  sbas-ID                         SBAS-ID                         OPTIONAL,   -- Cond GNSS-ID-SBAS
  gnss-TimeModels                 GNSS-TimeModelList              OPTIONAL,   -- Need ON
  gnss-DifferentialCorrections    GNSS-DifferentialCorrections    OPTIONAL,   -- Need ON
  gnss-NavigationModel            GNSS-NavigationModel            OPTIONAL,   -- Need ON
  gnss-RealTimeIntegrity          GNSS-RealTimeIntegrity          OPTIONAL,   -- Need ON
  gnss-DataBitAssistance          GNSS-DataBitAssistance          OPTIONAL,   -- Need ON
  gnss-AcquisitionAssistance      GNSS-AcquisitionAssistance      OPTIONAL,   -- Need ON
  gnss-Almanac                    GNSS-Almanac                    OPTIONAL,   -- Need ON
  gnss-UTC-Model                  GNSS-UTC-Model                  OPTIONAL,   -- Need ON
  gnss-AuxiliaryInformation       GNSS-AuxiliaryInformation       OPTIONAL,   -- Need ON
  ...,
  [[
      bds-DifferentialCorrections-r12
                                  BDS-DifferentialCorrections-r12 OPTIONAL,   -- Cond GNSS-ID-BDS
      bds-GridModel-r12           BDS-GridModelParameter-r12      OPTIONAL    -- Cond GNSS-ID-BDS
  ]],
  [[
      gnss-RTK-Observations-r15   GNSS-RTK-Observations-r15       OPTIONAL,   -- Need ON
      glo-RTK-BiasInformation-r15 GLO-RTK-BiasInformation-r15     OPTIONAL,   -- Cond GNSS-ID-GLO
      gnss-RTK-MAC-CorrectionDifferences-r15
                                  GNSS-RTK-MAC-CorrectionDifferences-r15
                                                                  OPTIONAL,   -- Need ON
      gnss-RTK-Residuals-r15      GNSS-RTK-Residuals-r15          OPTIONAL,   -- Need ON
      gnss-RTK-FKP-Gradients-r15  GNSS-RTK-FKP-Gradients-r15      OPTIONAL,   -- Need ON
      gnss-SSR-OrbitCorrections-r15
                                  GNSS-SSR-OrbitCorrections-r15   OPTIONAL,   -- Need ON
      gnss-SSR-ClockCorrections-r15
                                  GNSS-SSR-ClockCorrections-r15   OPTIONAL,   -- Need ON
      gnss-SSR-CodeBias-r15       GNSS-SSR-CodeBias-r15           OPTIONAL    -- Need ON
  ]],
  [[
      gnss-SSR-URA-r16                    GNSS-SSR-URA-r16        OPTIONAL,   -- Need ON
      gnss-SSR-PhaseBias-r16              GNSS-SSR-PhaseBias-r16  OPTIONAL,   -- Need ON
      gnss-SSR-STEC-Correction-r16        GNSS-SSR-STEC-Correction-r16
                                                                  OPTIONAL,   -- Need ON
      gnss-SSR-GriddedCorrection-r16      GNSS-SSR-GriddedCorrection-r16
                                                                  OPTIONAL,   -- Need ON
      navic-DifferentialCorrections-r16   NavIC-DifferentialCorrections-r16
                                                              OPTIONAL,   -- Cond GNSS-ID-NavIC
      navic-GridModel-r16                 NavIC-GridModelParameter-r16
                                                              OPTIONAL    -- Cond GNSS-ID-NavIC
  ]],
  [[
      gnss-SSR-OrbitCorrectionsSet2-r17   GNSS-SSR-OrbitCorrectionsSet2-r17
                                                                          OPTIONAL,   -- Need ON
      gnss-SSR-ClockCorrectionsSet2-r17   GNSS-SSR-ClockCorrectionsSet2-r17
                                                                          OPTIONAL,   -- Need ON
      gnss-SSR-URA-Set2-r17               GNSS-SSR-URA-Set2-r17           OPTIONAL    -- Need ON
  ]],
  [[
      gnss-LOS-NLOS-GriddedIndications-r18    GNSS-LOS-NLOS-GriddedIndications-r18
                                                                          OPTIONAL,   -- Need ON
      gnss-SSR-SatellitePCVResiduals-r18  GNSS-SSR-SatellitePCVResiduals-r18
                                                                          OPTIONAL    -- Need ON
  ]]
}


GNSS-PeriodicAssistData-r15 ::= SEQUENCE {
  gnss-RTK-PeriodicObservations-r15       GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  glo-RTK-PeriodicBiasInformation-r15     GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  gnss-RTK-MAC-PeriodicCorrectionDifferences-r15
                                          GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  gnss-RTK-PeriodicResiduals-r15          GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  gnss-RTK-FKP-PeriodicGradients-r15      GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  gnss-SSR-PeriodicOrbitCorrections-r15
                                          GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  gnss-SSR-PeriodicClockCorrections-r15
                                          GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  gnss-SSR-PeriodicCodeBias-r15           GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  ...,
  [[
  gnss-SSR-PeriodicURA-r16                GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  gnss-SSR-PeriodicPhaseBias-r16          GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  gnss-SSR-PeriodicSTEC-Correction-r16    GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
  gnss-SSR-PeriodicGriddedCorrection-r16  GNSS-PeriodicControlParam-r15   OPTIONAL    -- Need ON
  ]],
  [[
  gnss-Integrity-PeriodicServiceAlert-r17 GNSS-PeriodicControlParam-r15   OPTIONAL    -- Need ON
  ]],
  [[
  gnss-SSR-PeriodicOrbitCorrectionsSet2-r17
                                      GNSS-PeriodicControlParam-r15       OPTIONAL,   -- Need ON
  gnss-SSR-PeriodicClockCorrectionsSet2-r17
                                      GNSS-PeriodicControlParam-r15       OPTIONAL,   -- Need ON
  gnss-SSR-PeriodicURA-Set2-r17       GNSS-PeriodicControlParam-r15       OPTIONAL    -- Need ON
  ]],
  [[
  gnss-SSR-PeriodicIOD-Update-r18     GNSS-PeriodicControlParam-r15       OPTIONAL    -- Need OR
  ]]
}


GNSS-ReferenceTime ::= SEQUENCE {
  gnss-SystemTime             GNSS-SystemTime,
  referenceTimeUnc            INTEGER (0..127)                    OPTIONAL,   -- Cond noFTA
  gnss-ReferenceTimeForCells  SEQUENCE (SIZE (1..16)) OF
                                  GNSS-ReferenceTimeForOneCell    OPTIONAL,   -- Need ON
  ...
}

GNSS-ReferenceTimeForOneCell ::= SEQUENCE {
  networkTime             NetworkTime,
  referenceTimeUnc            INTEGER (0..127),
  bsAlign                     ENUMERATED {true}   OPTIONAL,
  ...
}


GNSS-SystemTime ::= SEQUENCE {
  gnss-TimeID                     GNSS-ID,
  gnss-DayNumber                  INTEGER (0..32767),
  gnss-TimeOfDay                  INTEGER (0..86399),
  gnss-TimeOfDayFrac-msec         INTEGER (0..999)        OPTIONAL,   -- Need ON
  notificationOfLeapSecond        BIT STRING (SIZE(2))    OPTIONAL,   -- Cond gnss-TimeID-glonass
  gps-TOW-Assist                  GPS-TOW-Assist          OPTIONAL,   -- Cond gnss-TimeID-gps
  ...
}


GPS-TOW-Assist ::= SEQUENCE (SIZE(1..64)) OF GPS-TOW-AssistElement

GPS-TOW-AssistElement ::= SEQUENCE {
  satelliteID     INTEGER (1..64),
  tlmWord         INTEGER (0..16383),
  antiSpoof       INTEGER (0..1),
  alert           INTEGER (0..1),
  tlmRsvdBits     INTEGER (0..3),
  ...
}


NetworkTime ::= SEQUENCE {
  secondsFromFrameStructureStart              INTEGER(0..12533),
  fractionalSecondsFromFrameStructureStart    INTEGER(0..3999999),
  frameDrift                                  INTEGER (-64..63)   OPTIONAL,   -- Cond GNSSsynch
  cellID      CHOICE {
              eUTRA       SEQUENCE {
                          physCellId          INTEGER (0..503),
                          cellGlobalIdEUTRA   CellGlobalIdEUTRA-AndUTRA   OPTIONAL,   -- Need ON
                          earfcn              ARFCN-ValueEUTRA,
                          ...,
                          [[ earfcn-v9a0      ARFCN-ValueEUTRA-v9a0 OPTIONAL  -- Cond EARFCN-max
                          ]]
                          },
              uTRA        SEQUENCE {
                          mode    CHOICE {
                                  fdd     SEQUENCE {
                                          primary-CPICH-Info  INTEGER (0..511),
                                          ...
                                          },
                                  tdd     SEQUENCE {
                                          cellParameters      INTEGER (0..127),
                                          ...
                                          }
                                  },
                          cellGlobalIdUTRA    CellGlobalIdEUTRA-AndUTRA   OPTIONAL,   -- Need ON
                          uarfcn              ARFCN-ValueUTRA,
                          ...
                          },
              gSM         SEQUENCE {
                          bcchCarrier         INTEGER (0..1023),
                          bsic                INTEGER (0..63),
                          cellGlobalIdGERAN   CellGlobalIdGERAN           OPTIONAL,   -- Need ON
                          ...
                          },
              ...,
              nBIoT-r14   SEQUENCE {
                          nbPhysCellId-r14    INTEGER (0..503),
                          nbCellGlobalId-r14  ECGI                        OPTIONAL,   -- Need ON
                          nbCarrierFreq-r14   CarrierFreq-NB-r14,
                          ...
                          },
              nr-r15      SEQUENCE {
                          nrPhysCellId-r15    INTEGER (0..1007),
                          nrCellGlobalID-r15  NCGI-r15                    OPTIONAL,   -- Need ON
                          nrARFCN-r15         ARFCN-ValueNR-r15,
                          ...
                          }
              },
  ...
}


GNSS-ReferenceLocation ::= SEQUENCE {
      threeDlocation          EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
      ...
}


GNSS-IonosphericModel ::= SEQUENCE {
  klobucharModel          KlobucharModelParameter     OPTIONAL,   -- Need ON
  neQuickModel            NeQuickModelParameter       OPTIONAL,   -- Need ON
  ...,
  [[  klobucharModel2-r16     KlobucharModel2Parameter-r16    OPTIONAL    -- Need ON
  ]]

}


KlobucharModelParameter ::= SEQUENCE {
  dataID          BIT STRING (SIZE (2)),
  alfa0           INTEGER (-128..127),
  alfa1           INTEGER (-128..127),
  alfa2           INTEGER (-128..127),
  alfa3           INTEGER (-128..127),
  beta0           INTEGER (-128..127),
  beta1           INTEGER (-128..127),
  beta2           INTEGER (-128..127),
  beta3           INTEGER (-128..127),
  ...
}


KlobucharModel2Parameter-r16 ::= SEQUENCE {
  alfa1-r16           INTEGER (0..1023),
  alfa2-r16           INTEGER (-128..127),
  alfa3-r16           INTEGER (0..255),
  alfa4-r16           INTEGER (0..255),
  alfa5-r16           INTEGER (0..255),
  alfa6-r16           INTEGER (-128..127),
  alfa7-r16           INTEGER (-128..127),
  alfa8-r16           INTEGER (-128..127),
  alfa9-r16           INTEGER (-128..127),
  ...
}


NeQuickModelParameter ::= SEQUENCE {
  ai0         INTEGER (0..2047),
  ai1         INTEGER (-1024..1023),
  ai2         INTEGER (-8192..8191),
  ionoStormFlag1  INTEGER (0..1)      OPTIONAL,   -- Need OP
  ionoStormFlag2  INTEGER (0..1)      OPTIONAL,   -- Need OP
  ionoStormFlag3  INTEGER (0..1)      OPTIONAL,   -- Need OP
  ionoStormFlag4  INTEGER (0..1)      OPTIONAL,   -- Need OP
  ionoStormFlag5  INTEGER (0..1)      OPTIONAL,   -- Need OP
  ...
}


GNSS-EarthOrientationParameters ::= SEQUENCE {
  teop                INTEGER (0..65535),
  pmX                 INTEGER (-1048576..1048575),
  pmXdot              INTEGER (-16384..16383),
  pmY                 INTEGER (-1048576..1048575),
  pmYdot              INTEGER (-16384..16383),
  deltaUT1            INTEGER (-1073741824..1073741823),
  deltaUT1dot         INTEGER (-262144..262143),
  ...
}


GNSS-RTK-ReferenceStationInfo-r15 ::= SEQUENCE {
  referenceStationID-r15                  GNSS-ReferenceStationID-r15,
  referenceStationIndicator-r15           ENUMERATED {physical, non-physical},
  antenna-reference-point-ECEF-X-r15      INTEGER (-137438953472..137438953471),
  antenna-reference-point-ECEF-Y-r15      INTEGER (-137438953472..137438953471),
  antenna-reference-point-ECEF-Z-r15      INTEGER (-137438953472..137438953471),
  antennaHeight-r15                       INTEGER (0..65535)                  OPTIONAL, -- Need ON
  antennaDescription-r15                  AntennaDescription-r15              OPTIONAL, -- Need ON
  antenna-reference-point-unc-r15         AntennaReferencePointUnc-r15        OPTIONAL, -- Need ON
  physical-reference-station-info-r15     PhysicalReferenceStationInfo-r15    OPTIONAL, -- Cond NP
  ...,
  [[
  equalIntegerAmbiguityLevel-r16          EqualIntegerAmbiguityLevel-r16      OPTIONAL -- Need ON
  ]]
}

AntennaDescription-r15 ::= SEQUENCE {
  antennaDescriptor-r15                   VisibleString (SIZE (1..256)),
  antennaSetUpID-r15                      ENUMERATED { non-zero }             OPTIONAL, -- Need OP
  ...
}

AntennaReferencePointUnc-r15 ::= SEQUENCE {
  uncertainty-X-r15                       INTEGER (0..255),
  confidence-X-r15                        INTEGER (0..100),
  uncertainty-Y-r15                       INTEGER (0..255),
  confidence-Y-r15                        INTEGER (0..100),
  uncertainty-Z-r15                       INTEGER (0..255),
  confidence-Z-r15                        INTEGER (0..100),
  ...
}

PhysicalReferenceStationInfo-r15 ::= SEQUENCE {
  physicalReferenceStationID-r15          GNSS-ReferenceStationID-r15,
  physical-ARP-ECEF-X-r15                 INTEGER (-137438953472..137438953471),
  physical-ARP-ECEF-Y-r15                 INTEGER (-137438953472..137438953471),
  physical-ARP-ECEF-Z-r15                 INTEGER (-137438953472..137438953471),
  physical-ARP-unc-r15                    AntennaReferencePointUnc-r15        OPTIONAL, -- Need ON
  ...
}

EqualIntegerAmbiguityLevel-r16 ::= CHOICE {
  allReferenceStations-r16                NULL,
  referenceStationList-r16                ReferenceStationList-r16
}

ReferenceStationList-r16 ::= SEQUENCE (SIZE(1..16)) OF GNSS-ReferenceStationID-r15


GNSS-RTK-CommonObservationInfo-r15 ::= SEQUENCE {
  referenceStationID-r15              GNSS-ReferenceStationID-r15,
  clockSteeringIndicator-r15          INTEGER (0..3),
  externalClockIndicator-r15          INTEGER (0..3),
  smoothingIndicator-r15              BIT STRING (SIZE(1)),
  smoothingInterval-r15               BIT STRING (SIZE(3)),
  ...
}


GNSS-RTK-AuxiliaryStationData-r15 ::= SEQUENCE {
  networkID-r15                   GNSS-NetworkID-r15,
  subNetworkID-r15                GNSS-SubNetworkID-r15                   OPTIONAL,   -- Need ON
  master-referenceStationID-r15   GNSS-ReferenceStationID-r15,
  auxiliaryStationList-r15        AuxiliaryStationList-r15,
  ...
}

AuxiliaryStationList-r15 ::= SEQUENCE (SIZE (1..32)) OF AuxiliaryStationElement-r15

AuxiliaryStationElement-r15 ::= SEQUENCE {
  aux-referenceStationID-r15              GNSS-ReferenceStationID-r15,
  aux-master-delta-latitude-r15           INTEGER (-524288..524287),
  aux-master-delta-longitude-r15          INTEGER (-1048576..1048575),
  aux-master-delta-height-r15             INTEGER (-4194304..4194303),
  aux-ARP-unc-r15                         Aux-ARP-Unc-r15                 OPTIONAL,   -- Need ON
  ...
}

Aux-ARP-Unc-r15 ::= SEQUENCE {
  horizontalUncertainty-r15               INTEGER (0..255),
  horizontalConfidence-r15                INTEGER (0..100),
  verticalUncertainty-r15                 INTEGER (0..255)                OPTIONAL,   -- Need ON
  verticalConfidence-r15                  INTEGER (0..100)                OPTIONAL,   -- Need ON
  ...
}


GNSS-SSR-CorrectionPoints-r16 ::= SEQUENCE {
  correctionPointSetID-r16            INTEGER (0..16383),
  correctionPoints-r16                CHOICE {
      listOfCorrectionPoints-r16          GNSS-SSR-ListOfCorrectionPoints-r16,
      arrayOfCorrectionPoints-r16         GNSS-SSR-ArrayOfCorrectionPoints-r16
  },
  ...
}

GNSS-SSR-ListOfCorrectionPoints-r16 ::= SEQUENCE {
  referencePointLatitude-r16      INTEGER (-16384..16383),
  referencePointLongitude-r16     INTEGER (-32768..32767),
  relativeLocationsList-r16       SEQUENCE (SIZE (0..63)) OF RelativeLocationElement-r16,
  ...
}

RelativeLocationElement-r16 ::= SEQUENCE {
  deltaLatitude-r16               INTEGER (-512..511),
  deltaLongitude-r16              INTEGER (-1024..1023),
  ...
}

GNSS-SSR-ArrayOfCorrectionPoints-r16 ::=SEQUENCE {
  referencePointLatitude-r16          INTEGER (-16384..16383),
  referencePointLongitude-r16         INTEGER (-32768..32767),
  numberOfStepsLatitude-r16           INTEGER (0..63),
  numberOfStepsLongitude-r16          INTEGER (0..63),
  stepOfLatitude-r16                  INTEGER (1..511),
  stepOfLongitude-r16                 INTEGER (1..1023),
  bitmaskOfGrids-r16                  BIT STRING (SIZE(64))               OPTIONAL,   -- Need OP
  ...
}


GNSS-Integrity-ServiceParameters-r17 ::= SEQUENCE {
  irMinimum-r17                       INTEGER (0..255),
  irMaximum-r17                       INTEGER (0..255),
  ...
}


GNSS-Integrity-ServiceAlert-r17 ::= SEQUENCE {
  ionosphereDoNotUse-r17              BOOLEAN,
  troposphereDoNotUse-r17             BOOLEAN,
  ...
}


GNSS-LOS-NLOS-GridPoints-r18 ::= SEQUENCE {
  gridPointsSetID-r18             INTEGER (0..16383),
  horizontalGridPoints-r18        ArrayOfGridPoints-r18,
  referenceAltitudeFine-r18       INTEGER (0..9)                  OPTIONAL, -- Need OP
  verticalGridPoints-r18          VerticalGridPoints-r18          OPTIONAL, -- Cond 3D
  ...
}

ArrayOfGridPoints-r18 ::= SEQUENCE {
  referencePointLatitude-r18      INTEGER (-16777216.. 16777215),
  referencePointLongitude-r18     INTEGER (-33554432.. 33554431),
  numberOfStepsSouth-r18          INTEGER (0.. 255),
  numberOfStepsEast-r18           INTEGER (0.. 255),
  stepSouth-r18                   SpatialDelta-r18,
  stepEast-r18                    SpatialDelta-r18,
  bitmaskOfGrids-r18              CHOICE {
      bog16-r18                       BIT STRING (SIZE(16)),
      bog64-r18                       BIT STRING (SIZE(64)),
      bog256-r18                      BIT STRING (SIZE(256)),
      ...
  }                                                               OPTIONAL, -- Need OP
  ...
}

VerticalGridPoints-r18 ::=SEQUENCE {
  referenceAltitudeCoarse-r18     INTEGER (-50..900),
  numberOfStepsDown-r18           INTEGER (1..3),
  stepDown-r18                    SpatialDelta-r18,
  upperValidityDeltaAltitude-r18  SpatialDelta-r18                OPTIONAL, -- Need OP
  lowerValidityDeltaAltitude-r18  SpatialDelta-r18                OPTIONAL, -- Need OP
  ...
}

SpatialDelta-r18 ::= ENUMERATED {n1, n2, n3, n4, n5, n10, n20, n50, n100}


GNSS-SSR-IOD-Update-r18 ::= SEQUENCE {
  epochTime-r18                       GNSS-SystemTime,
  ssrUpdateInterval-r18               INTEGER (0..15),
  iod-ssr-r18                         INTEGER (0..15),
  iod-ssr-PCVResiduals-r18            INTEGER (0..64),
  ...
}


GNSS-TimeModelList ::= SEQUENCE (SIZE (1..15)) OF GNSS-TimeModelElement

GNSS-TimeModelElement ::= SEQUENCE {
  gnss-TimeModelRefTime       INTEGER (0..65535),
  tA0                         INTEGER (-67108864..67108863),
  tA1                         INTEGER (-4096..4095)                   OPTIONAL,   -- Need ON
  tA2                         INTEGER (-64..63)                       OPTIONAL,   -- Need ON
  gnss-TO-ID                  INTEGER (1..15),
  weekNumber                  INTEGER (0..8191)                       OPTIONAL,   -- Need ON
  deltaT                      INTEGER (-128..127)                     OPTIONAL,   -- Need ON
  ...
}


GNSS-DifferentialCorrections ::= SEQUENCE {
  dgnss-RefTime       INTEGER (0..3599),
  dgnss-SgnTypeList   DGNSS-SgnTypeList,
  ...
}

DGNSS-SgnTypeList ::= SEQUENCE (SIZE (1..3)) OF DGNSS-SgnTypeElement

DGNSS-SgnTypeElement ::= SEQUENCE {
  gnss-SignalID       GNSS-SignalID,
  gnss-StatusHealth   INTEGER (0..7),
  dgnss-SatList       DGNSS-SatList,
  ...
}

DGNSS-SatList ::= SEQUENCE (SIZE (1..64)) OF DGNSS-CorrectionsElement

DGNSS-CorrectionsElement ::= SEQUENCE {
  svID                SV-ID,
  iod                 BIT STRING (SIZE(11)),
  udre                INTEGER (0..3),
  pseudoRangeCor      INTEGER (-2047..2047),
  rangeRateCor        INTEGER (-127..127),
  udreGrowthRate      INTEGER (0..7)          OPTIONAL,   -- Need ON
  udreValidityTime    INTEGER (0..7)          OPTIONAL,   -- Need ON
  ...
}


GNSS-NavigationModel ::= SEQUENCE {
  nonBroadcastIndFlag     INTEGER (0..1),
  gnss-SatelliteList      GNSS-NavModelSatelliteList,
  ...
}

GNSS-NavModelSatelliteList ::= SEQUENCE (SIZE(1..64)) OF GNSS-NavModelSatelliteElement

GNSS-NavModelSatelliteElement ::= SEQUENCE {
  svID                SV-ID,
  svHealth            BIT STRING (SIZE(8)),
  iod                 BIT STRING (SIZE(11)),
  gnss-ClockModel     GNSS-ClockModel,
  gnss-OrbitModel     GNSS-OrbitModel,
  ...,
  [[  svHealthExt-v1240 BIT STRING (SIZE(4))          OPTIONAL        -- Need ON
  ]]
}

GNSS-ClockModel ::= CHOICE {
  standardClockModelList  StandardClockModelList,         -- Model-1
  nav-ClockModel          NAV-ClockModel,                 -- Model-2
  cnav-ClockModel         CNAV-ClockModel,                -- Model-3
  glonass-ClockModel      GLONASS-ClockModel,             -- Model-4
  sbas-ClockModel         SBAS-ClockModel,                -- Model-5
  ...,
  bds-ClockModel-r12      BDS-ClockModel-r12,             -- Model-6
          bds-ClockModel2-r16     BDS-ClockModel2-r16,            -- Model-7
  navic-ClockModel-r16    NavIC-ClockModel-r16            -- Model-8
}

GNSS-OrbitModel ::= CHOICE {
  keplerianSet            NavModelKeplerianSet,           -- Model-1
  nav-KeplerianSet        NavModelNAV-KeplerianSet,       -- Model-2
  cnav-KeplerianSet       NavModelCNAV-KeplerianSet,      -- Model-3
  glonass-ECEF            NavModel-GLONASS-ECEF,          -- Model-4
  sbas-ECEF               NavModel-SBAS-ECEF,             -- Model-5
  ...,
  bds-KeplerianSet-r12    NavModel-BDS-KeplerianSet-r12,  -- Model-6
  bds-KeplerianSet2-r16   NavModel-BDS-KeplerianSet2-r16, -- Model-7
  navic-KeplerianSet-r16  NavModel-NavIC-KeplerianSet-r16 -- Model-8
}


StandardClockModelList ::= SEQUENCE (SIZE(1..2)) OF StandardClockModelElement

StandardClockModelElement ::= SEQUENCE {
  stanClockToc            INTEGER (0..16383),
  stanClockAF2            INTEGER (-32..31),
  stanClockAF1            INTEGER (-1048576..1048575),
  stanClockAF0            INTEGER (-1073741824..1073741823),
  stanClockTgd            INTEGER (-512..511)             OPTIONAL,   -- Need ON
  sisa                    INTEGER (0..255),
  stanModelID             INTEGER (0..1)                  OPTIONAL,   -- Need ON
  ...
}


NAV-ClockModel ::= SEQUENCE {
  navToc          INTEGER (0..37799),
  navaf2          INTEGER (-128..127),
  navaf1          INTEGER (-32768..32767),
  navaf0          INTEGER (-2097152..2097151),
  navTgd          INTEGER (-128..127),
  ...
}


CNAV-ClockModel ::= SEQUENCE {
  cnavToc         INTEGER (0..2015),
  cnavTop         INTEGER (0..2015),
  cnavURA0        INTEGER (-16..15),
  cnavURA1        INTEGER (0..7),
  cnavURA2        INTEGER (0..7),
  cnavAf2         INTEGER (-512..511),
  cnavAf1         INTEGER (-524288..524287),
  cnavAf0         INTEGER (-33554432..33554431),
  cnavTgd         INTEGER (-4096..4095),
  cnavISCl1cp     INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
  cnavISCl1cd     INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
  cnavISCl1ca     INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
  cnavISCl2c      INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
  cnavISCl5i5     INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
  cnavISCl5q5     INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
  ...
}


GLONASS-ClockModel ::= SEQUENCE {
  gloTau          INTEGER (-2097152..2097151),
  gloGamma        INTEGER (-1024..1023),
  gloDeltaTau     INTEGER (-16..15)               OPTIONAL,   -- Need ON
  ...
}


SBAS-ClockModel ::= SEQUENCE {
  sbasTo          INTEGER (0..5399),
  sbasAgfo        INTEGER (-2048..2047),
  sbasAgf1        INTEGER (-128..127),
  ...
}


BDS-ClockModel-r12 ::= SEQUENCE {
  bdsAODC-r12         INTEGER (0..31),
  bdsToc-r12          INTEGER (0..131071),
  bdsA0-r12           INTEGER (-8388608..8388607),
  bdsA1-r12           INTEGER (-2097152..2097151),
  bdsA2-r12           INTEGER (-1024..1023),
  bdsTgd1-r12         INTEGER (-512..511),
  ...,
  [[ bdsTgd2-r16      INTEGER (-512..511)         OPTIONAL        -- Need ON
  ]]
}


BDS-ClockModel2-r16 ::= SEQUENCE {
  bdsToc-r16      INTEGER (0..2047),
  bdsA0-r16       INTEGER (-16777216..16777215),
  bdsA1-r16       INTEGER (-2097152..2097151),
  bdsA2-r16       INTEGER (-1024..1023),
  bdsTgdB1Cp-r16  INTEGER (-2048..2047),
  bdsIscB1Cd-r16  INTEGER (-2048..2047),
  ...,
  [[  bdsTgdB2ap-r17  INTEGER (-2048..2047)               OPTIONAL,  -- Need ON
      bdsIscB2ad-r17  INTEGER (-2048..2047)               OPTIONAL   -- Need ON
  ]]
}


NavIC-ClockModel-r16 ::= SEQUENCE {
  navic-Toc-r16           INTEGER (0..65535),
  navic-af2-r16           INTEGER (-128..127),
  navic-af1-r16           INTEGER (-32768..32767),
  navic-af0-r16           INTEGER (-2097152..2097151),
  navic-Tgd-r16           INTEGER (-128..127),
  ...
}


NavModelKeplerianSet ::= SEQUENCE {
  keplerToe       INTEGER (0 .. 16383),
  keplerW         INTEGER (-2147483648..2147483647),
  keplerDeltaN    INTEGER (-32768..32767),
  keplerM0        INTEGER (-2147483648..2147483647),
  keplerOmegaDot  INTEGER (-8388608.. 8388607),
  keplerE     INTEGER (0..4294967295),
  keplerIDot      INTEGER (-8192..8191),
  keplerAPowerHalf INTEGER (0.. 4294967295),
  keplerI0        INTEGER (-2147483648..2147483647),
  keplerOmega0    INTEGER (-2147483648..2147483647),
  keplerCrs       INTEGER (-32768..32767),
  keplerCis       INTEGER (-32768..32767),
  keplerCus       INTEGER (-32768..32767),
  keplerCrc       INTEGER (-32768..32767),
  keplerCic       INTEGER (-32768..32767),
  keplerCuc       INTEGER (-32768..32767),
  ...
}


NavModelNAV-KeplerianSet ::= SEQUENCE {
  navURA          INTEGER (0..15),
  navFitFlag      INTEGER (0..1),
  navToe          INTEGER (0..37799),
  navOmega        INTEGER (-2147483648..2147483647),
  navDeltaN       INTEGER (-32768..32767),
  navM0           INTEGER (-2147483648..2147483647),
  navOmegaADot    INTEGER (-8388608..8388607),
  navE            INTEGER (0..4294967295),
  navIDot         INTEGER (-8192..8191),
  navAPowerHalf   INTEGER (0..4294967295),
  navI0           INTEGER (-2147483648..2147483647),
  navOmegaA0      INTEGER (-2147483648..2147483647),
  navCrs          INTEGER (-32768..32767),
  navCis          INTEGER (-32768..32767),
  navCus          INTEGER (-32768..32767),
  navCrc          INTEGER (-32768..32767),
  navCic          INTEGER (-32768..32767),
  navCuc          INTEGER (-32768..32767),
  addNAVparam     SEQUENCE {
      ephemCodeOnL2   INTEGER (0..3),
      ephemL2Pflag    INTEGER (0..1),
      ephemSF1Rsvd    SEQUENCE {
          reserved1       INTEGER (0..8388607),   -- 23-bit field
          reserved2       INTEGER (0..16777215),  -- 24-bit field
          reserved3       INTEGER (0..16777215),  -- 24-bit field
          reserved4       INTEGER (0..65535)      -- 16-bit field
      },
      ephemAODA       INTEGER (0..31)
  }   OPTIONAL,   -- Need ON
  ...
}


NavModelCNAV-KeplerianSet ::= SEQUENCE {
  cnavTop             INTEGER (0..2015),
  cnavURAindex        INTEGER (-16..15),
  cnavDeltaA          INTEGER (-33554432..33554431),
  cnavAdot            INTEGER (-16777216..16777215),
  cnavDeltaNo         INTEGER (-65536..65535),
  cnavDeltaNoDot      INTEGER (-4194304..4194303),
  cnavMo              INTEGER (-4294967296..4294967295),
  cnavE               INTEGER (0..8589934591),
  cnavOmega           INTEGER (-4294967296..4294967295),
  cnavOMEGA0          INTEGER (-4294967296..4294967295),
  cnavDeltaOmegaDot   INTEGER (-65536..65535),
  cnavIo              INTEGER (-4294967296..4294967295),
  cnavIoDot           INTEGER (-16384..16383),
  cnavCis             INTEGER (-32768..32767),
  cnavCic             INTEGER (-32768..32767),
  cnavCrs             INTEGER (-8388608..8388607),
  cnavCrc             INTEGER (-8388608..8388607),
  cnavCus             INTEGER (-1048576..1048575),
  cnavCuc             INTEGER (-1048576..1048575),
  ...
}


NavModel-GLONASS-ECEF ::= SEQUENCE {
  gloEn               INTEGER (0..31),
  gloP1               BIT STRING (SIZE(2)),
  gloP2               BOOLEAN,
  gloM                INTEGER (0..3),
  gloX                INTEGER (-67108864..67108863),
  gloXdot             INTEGER (-8388608..8388607),
  gloXdotdot          INTEGER (-16..15),
  gloY                INTEGER (-67108864..67108863),
  gloYdot             INTEGER (-8388608..8388607),
  gloYdotdot          INTEGER (-16..15),
  gloZ                INTEGER (-67108864..67108863),
  gloZdot             INTEGER (-8388608..8388607),
  gloZdotdot          INTEGER (-16..15),
  ...
}


NavModel-SBAS-ECEF ::= SEQUENCE {
  sbasTo              INTEGER (0..5399)                   OPTIONAL,   -- Cond ClockModel
  sbasAccuracy        BIT STRING (SIZE(4)),
  sbasXg              INTEGER (-536870912..536870911),
  sbasYg              INTEGER (-536870912..536870911),
  sbasZg              INTEGER (-16777216..16777215),
  sbasXgDot           INTEGER (-65536..65535),
  sbasYgDot           INTEGER (-65536..65535),
  sbasZgDot           INTEGER (-131072..131071),
  sbasXgDotDot        INTEGER (-512..511),
  sbagYgDotDot        INTEGER (-512..511),
  sbasZgDotDot        INTEGER (-512..511),
  ...
}


NavModel-BDS-KeplerianSet-r12 ::= SEQUENCE {
          bdsAODE-r12             INTEGER (0..31),
          bdsURAI-r12             INTEGER (0..15),
          bdsToe-r12              INTEGER (0..131071),
  bdsAPowerHalf-r12       INTEGER (0..4294967295),
  bdsE-r12                INTEGER (0..4294967295),
  bdsW-r12                INTEGER (-2147483648..2147483647),
  bdsDeltaN-r12           INTEGER (-32768..32767),
  bdsM0-r12               INTEGER (-2147483648..2147483647),
  bdsOmega0-r12           INTEGER (-2147483648..2147483647),
  bdsOmegaDot-r12         INTEGER (-8388608..8388607),
  bdsI0-r12               INTEGER (-2147483648..2147483647),
  bdsIDot-r12             INTEGER (-8192..8191),
  bdsCuc-r12              INTEGER (-131072..131071),
  bdsCus-r12              INTEGER (-131072..131071),
  bdsCrc-r12              INTEGER (-131072..131071),
  bdsCrs-r12              INTEGER (-131072..131071),
  bdsCic-r12              INTEGER (-131072..131071),
  bdsCis-r12              INTEGER (-131072..131071),
  ...
}


NavModel-BDS-KeplerianSet2-r16 ::= SEQUENCE {
      bdsIODE-r16         INTEGER (0..255),
      bdsToe-r16                  INTEGER (0..2047),
      bdsDeltaA-r16           INTEGER (-33554432..33554431),
      bdsAdot-r16                 INTEGER (-16777216..16777216),
      bdsDeltaN0-r16          INTEGER (-65536..65535),
      bdsDeltaN0dot-r16       INTEGER (-4194304..4194303),
      bdsM0-r16                   INTEGER (-4294967296..4294967295),
      bdsE-r16                    INTEGER (0..8589934591),
      bdsOmega-r16            INTEGER (-4294967296..4294967295),
      bdsOmega0-r16           INTEGER (-4294967296..4294967295),
      bdsI0-r16                   INTEGER (-4294967296..4294967295),
      bdsOmegaDot-r16     INTEGER (-262144..262143),
          bdsI0Dot-r16            INTEGER (-16384..16383),
  bdsCuc-r16              INTEGER (-1048576..1048575),
  bdsCus-r16              INTEGER (-1048576..1048575),
      bdsCrc-r16              INTEGER (-8388608..8388607),
      bdsCrs-r16              INTEGER (-8388608..8388607),
  bdsCic-r16              INTEGER (-32768..32767),
  bdsCis-r16              INTEGER (-32768..32767),
  ...
}


NavModel-NavIC-KeplerianSet-r16  ::= SEQUENCE {
  navic-Toe-r16           INTEGER (0..65536),
  navic-URAI-r16          INTEGER (0..15),
  navic-W-r16             INTEGER (-2147483648..2147483647),
  navic-DeltaN-r16        INTEGER (-2097152..2097151),
  navic-M0-r16            INTEGER (-2147483648..2147483647),
  navic-OmegaDot-r16      INTEGER (-2147483648..2147483647),
  navic-E-r16             INTEGER (0..4294967295),
  navic-IDot-r16          INTEGER (-8192..8191),
  navic-APowerHalf-r16    INTEGER (0.. 4294967295),
  navic-I0-r16            INTEGER (-2147483648..2147483647),
  navic-Omega0-r16        INTEGER (-2147483648..2147483647),
  navic-Crs-r16           INTEGER (-32768..32767),
  navic-Cis-r16           INTEGER (-32768..32767),
  navic-Cus-r16           INTEGER (-32768..32767),
  navic-Crc-r16           INTEGER (-32768..32767),
  navic-Cic-r16           INTEGER (-32768..32767),
  navic-Cuc-r16           INTEGER (-32768..32767),
  ...
}


GNSS-RealTimeIntegrity ::= SEQUENCE {
  gnss-BadSignalList  GNSS-BadSignalList,
  ...
}

GNSS-BadSignalList ::= SEQUENCE (SIZE(1..64)) OF BadSignalElement

BadSignalElement ::= SEQUENCE {
  badSVID         SV-ID,
  badSignalID     GNSS-SignalIDs  OPTIONAL,   -- Need OP
  ...
}


GNSS-DataBitAssistance ::= SEQUENCE {
  gnss-TOD                INTEGER (0..3599),
  gnss-TODfrac            INTEGER (0..999)        OPTIONAL,   -- Need ON
  gnss-DataBitsSatList    GNSS-DataBitsSatList,
  ...
}

GNSS-DataBitsSatList ::= SEQUENCE (SIZE(1..64))OF GNSS-DataBitsSatElement

GNSS-DataBitsSatElement ::= SEQUENCE {
  svID                    SV-ID,
  gnss-DataBitsSgnList    GNSS-DataBitsSgnList,
  ...
}

GNSS-DataBitsSgnList ::= SEQUENCE (SIZE(1..8)) OF GNSS-DataBitsSgnElement

GNSS-DataBitsSgnElement ::= SEQUENCE {
  gnss-SignalType         GNSS-SignalID,
  gnss-DataBits           BIT STRING (SIZE (1..1024)),
  ...
}


GNSS-AcquisitionAssistance ::= SEQUENCE {
  gnss-SignalID               GNSS-SignalID,
  gnss-AcquisitionAssistList  GNSS-AcquisitionAssistList,
  ...,
  confidence-r10              INTEGER (0..100)    OPTIONAL    -- Need ON
}

GNSS-AcquisitionAssistList ::= SEQUENCE (SIZE(1..64)) OF GNSS-AcquisitionAssistElement

GNSS-AcquisitionAssistElement ::= SEQUENCE {
  svID                        SV-ID,
  doppler0                    INTEGER (-2048..2047),
  doppler1                    INTEGER (0..63),
  dopplerUncertainty          INTEGER (0..4),
  codePhase                   INTEGER (0..1022),
  intCodePhase                INTEGER (0..127),
  codePhaseSearchWindow       INTEGER (0..31),
  azimuth                     INTEGER (0..511),
  elevation                   INTEGER (0..127),
  ...,
  codePhase1023               BOOLEAN             OPTIONAL,   -- Need OP
  dopplerUncertaintyExt-r10   ENUMERATED {    d60,
                                              d80,
                                              d100,
                                              d120,
                                              noInformation, ... }    OPTIONAL    -- Need ON
}


GNSS-Almanac ::= SEQUENCE {
  weekNumber                  INTEGER (0..255)    OPTIONAL,   -- Need ON
  toa                         INTEGER (0..255)    OPTIONAL,   -- Need ON
  ioda                        INTEGER (0..3)      OPTIONAL,   -- Need ON
  completeAlmanacProvided     BOOLEAN,
  gnss-AlmanacList            GNSS-AlmanacList,
  ...,
  [[  toa-ext-v1240           INTEGER (256..1023) OPTIONAL,   -- Need ON
      ioda-ext-v1240          INTEGER (4..15)     OPTIONAL    -- Need ON
  ]],
  [[
      weekNumber-ext-r16      INTEGER (256..8191)         OPTIONAL,   -- Need ON
      toa-ext2-r16            INTEGER (256..65535)        OPTIONAL    -- Need ON
  ]]
}

GNSS-AlmanacList ::= SEQUENCE (SIZE(1..64)) OF GNSS-AlmanacElement

GNSS-AlmanacElement ::= CHOICE {
  keplerianAlmanacSet             AlmanacKeplerianSet,        -- Model-1
  keplerianNAV-Almanac            AlmanacNAV-KeplerianSet,    -- Model-2
  keplerianReducedAlmanac         AlmanacReducedKeplerianSet, -- Model-3
  keplerianMidiAlmanac            AlmanacMidiAlmanacSet,      -- Model-4
  keplerianGLONASS                AlmanacGLONASS-AlmanacSet,  -- Model-5
  ecef-SBAS-Almanac               AlmanacECEF-SBAS-AlmanacSet,-- Model-6
  ...,
  keplerianBDS-Almanac-r12        AlmanacBDS-AlmanacSet-r12,  -- Model-7
  keplerianNavIC-Almanac-r16      AlmanacNavIC-AlmanacSet-r16 -- Model-8
}


AlmanacKeplerianSet ::= SEQUENCE {
  svID                    SV-ID,
  kepAlmanacE             INTEGER (0..2047),
  kepAlmanacDeltaI        INTEGER (-1024..1023),
  kepAlmanacOmegaDot      INTEGER (-1024..1023),
  kepSV-StatusINAV        BIT STRING (SIZE (4)),
  kepSV-StatusFNAV        BIT STRING (SIZE (2))           OPTIONAL,   -- Need ON
  kepAlmanacAPowerHalf    INTEGER (-4096..4095),
  kepAlmanacOmega0        INTEGER (-32768..32767),
  kepAlmanacW             INTEGER (-32768..32767),
  kepAlmanacM0            INTEGER (-32768..32767),
  kepAlmanacAF0           INTEGER (-32768..32767),
  kepAlmanacAF1           INTEGER (-4096..4095),
  ...
}


AlmanacNAV-KeplerianSet ::= SEQUENCE {
  svID                    SV-ID,
  navAlmE                 INTEGER (0..65535),
  navAlmDeltaI            INTEGER (-32768..32767),
  navAlmOMEGADOT          INTEGER (-32768..32767),
  navAlmSVHealth          INTEGER (0..255),
  navAlmSqrtA             INTEGER (0..16777215),
  navAlmOMEGAo            INTEGER (-8388608..8388607),
  navAlmOmega             INTEGER (-8388608..8388607),
  navAlmMo                INTEGER (-8388608..8388607),
  navAlmaf0               INTEGER (-1024..1023),
  navAlmaf1               INTEGER (-1024..1023),
  ...
}


AlmanacReducedKeplerianSet ::= SEQUENCE {
  svID                    SV-ID,
  redAlmDeltaA            INTEGER (-128..127),
  redAlmOmega0            INTEGER (-64..63),
  redAlmPhi0              INTEGER (-64..63),
  redAlmL1Health          BOOLEAN,
  redAlmL2Health          BOOLEAN,
  redAlmL5Health          BOOLEAN,
  ...
}


AlmanacMidiAlmanacSet ::= SEQUENCE {
  svID                    SV-ID,
  midiAlmE                INTEGER (0..2047),
  midiAlmDeltaI           INTEGER (-1024..1023),
  midiAlmOmegaDot         INTEGER (-1024..1023),
  midiAlmSqrtA            INTEGER (0..131071),
  midiAlmOmega0           INTEGER (-32768..32767),
  midiAlmOmega            INTEGER (-32768..32767),
  midiAlmMo               INTEGER (-32768..32767),
  midiAlmaf0              INTEGER (-1024..1023),
  midiAlmaf1              INTEGER (-512..511),
  midiAlmL1Health         BOOLEAN,
  midiAlmL2Health         BOOLEAN,
  midiAlmL5Health         BOOLEAN,
  ...
}


AlmanacGLONASS-AlmanacSet ::= SEQUENCE {
  gloAlm-NA               INTEGER (1..1461),
  gloAlmnA                INTEGER (1..24),
  gloAlmHA                INTEGER (0..31),
  gloAlmLambdaA           INTEGER (-1048576..1048575),
  gloAlmtlambdaA          INTEGER (0..2097151),
  gloAlmDeltaIa           INTEGER (-131072..131071),
  gloAlmDeltaTA           INTEGER (-2097152..2097151),
  gloAlmDeltaTdotA        INTEGER (-64..63),
  gloAlmEpsilonA          INTEGER (0..32767),
  gloAlmOmegaA            INTEGER (-32768..32767),
  gloAlmTauA              INTEGER (-512..511),
  gloAlmCA                INTEGER (0..1),
  gloAlmMA                BIT STRING (SIZE(2))            OPTIONAL,   -- Need ON
  ...
}


AlmanacECEF-SBAS-AlmanacSet ::= SEQUENCE {
  sbasAlmDataID           INTEGER (0..3),
  svID                    SV-ID,
  sbasAlmHealth           BIT STRING (SIZE(8)),
  sbasAlmXg               INTEGER (-16384..16383),
  sbasAlmYg               INTEGER (-16384..16383),
  sbasAlmZg               INTEGER (-256..255),
  sbasAlmXgdot            INTEGER (-4..3),
  sbasAlmYgDot            INTEGER (-4..3),
  sbasAlmZgDot            INTEGER (-8..7),
  sbasAlmTo               INTEGER (0..2047),
  ...
}


AlmanacBDS-AlmanacSet-r12 ::= SEQUENCE {
  svID                    SV-ID,
  bdsAlmToa-r12           INTEGER (0..255)                    OPTIONAL,   -- Cond NotSameForAllSV
      bdsAlmSqrtA-r12         INTEGER (0..16777215),
  bdsAlmE-r12             INTEGER (0..131071),
  bdsAlmW-r12             INTEGER (-8388608..8388607),
  bdsAlmM0-r12            INTEGER (-8388608..8388607),
  bdsAlmOmega0-r12        INTEGER (-8388608..8388607),
  bdsAlmOmegaDot-r12      INTEGER (-65536..65535),
  bdsAlmDeltaI-r12        INTEGER (-32768..32767),
  bdsAlmA0-r12            INTEGER (-1024..1023),
  bdsAlmA1-r12            INTEGER (-1024..1023),
  bdsSvHealth-r12         BIT STRING (SIZE(9))                OPTIONAL,   -- Cond SV-ID
  ...
}


AlmanacNavIC-AlmanacSet-r16  ::= SEQUENCE {
  svID-r16                    SV-ID,
  navic-AlmToa-r16            INTEGER (0..65535)          OPTIONAL,   -- Cond NotSameForAllSV
  navic-AlmE-r16              INTEGER (0..65535),
  navic-AlmOMEGADOT-r16       INTEGER (-32768..32767),
  navic-AlmSqrtA-r16          INTEGER (0..16777215),
  navic-AlmOMEGAo-r16         INTEGER (-8388608..8388607),
  navic-AlmOmega-r16          INTEGER (-8388608..8388607),
  navic-AlmMo-r16             INTEGER (-8388608..8388607),
  navic-Almaf0-r16            INTEGER (-1024..1023),
  navic-Almaf1-r16            INTEGER (-1024..1023),
  ...
}


GNSS-UTC-Model ::= CHOICE {
  utcModel1           UTC-ModelSet1,          -- Model-1
  utcModel2           UTC-ModelSet2,          -- Model-2
  utcModel3           UTC-ModelSet3,          -- Model-3
  utcModel4           UTC-ModelSet4,          -- Model-4
  ...,
  utcModel5-r12       UTC-ModelSet5-r12       -- Model-5
}


UTC-ModelSet1 ::= SEQUENCE {
  gnss-Utc-A1         INTEGER (-8388608..8388607),
  gnss-Utc-A0         INTEGER (-2147483648..2147483647),
  gnss-Utc-Tot        INTEGER (0..255),
  gnss-Utc-WNt        INTEGER (0..255),
  gnss-Utc-DeltaTls   INTEGER (-128..127),
  gnss-Utc-WNlsf      INTEGER (0..255),
  gnss-Utc-DN         INTEGER (-128..127),
  gnss-Utc-DeltaTlsf  INTEGER (-128..127),
  ...
}


UTC-ModelSet2 ::= SEQUENCE {
  utcA0               INTEGER (-32768..32767),
  utcA1               INTEGER (-4096..4095),
  utcA2               INTEGER (-64..63),
  utcDeltaTls         INTEGER (-128..127),
  utcTot              INTEGER (0..65535),
  utcWNot             INTEGER (0..8191),
  utcWNlsf            INTEGER (0..255),
  utcDN               BIT STRING (SIZE(4)),
  utcDeltaTlsf        INTEGER (-128..127),
  ...,
  [[
      utcWNlsf-ext-r16    INTEGER (256..8191) OPTIONAL    -- Need ON
  ]]
}


UTC-ModelSet3 ::= SEQUENCE {
  nA                  INTEGER (1..1461),
  tauC                INTEGER (-2147483648..2147483647),
  b1                  INTEGER (-1024..1023)                   OPTIONAL,   -- Cond GLONASS-M
  b2                  INTEGER (-512..511)                     OPTIONAL,   -- Cond GLONASS-M
  kp                  BIT STRING (SIZE(2))                    OPTIONAL,   -- Cond GLONASS-M
  ...
}


UTC-ModelSet4 ::= SEQUENCE {
  utcA1wnt            INTEGER (-8388608..8388607),
  utcA0wnt            INTEGER (-2147483648..2147483647),
  utcTot              INTEGER (0..255),
  utcWNt              INTEGER (0..255),
  utcDeltaTls         INTEGER (-128..127),
  utcWNlsf            INTEGER (0..255),
  utcDN               INTEGER (-128..127),
  utcDeltaTlsf        INTEGER (-128..127),
  utcStandardID       INTEGER (0..7),
  ...
}


UTC-ModelSet5-r12 ::= SEQUENCE {
  utcA0-r12           INTEGER (-2147483648..2147483647),
  utcA1-r12           INTEGER (-8388608..8388607),
  utcDeltaTls-r12     INTEGER (-128..127),
  utcWNlsf-r12        INTEGER (0..255),
  utcDN-r12           INTEGER (0..255),
  utcDeltaTlsf-r12    INTEGER (-128..127),
  ...
}


GNSS-AuxiliaryInformation ::= CHOICE {
  gnss-ID-GPS     GNSS-ID-GPS,
  gnss-ID-GLONASS GNSS-ID-GLONASS,
  ...,
  [[  gnss-ID-BDS-r16     GNSS-ID-BDS-r16
  ]]
}

GNSS-ID-GPS ::= SEQUENCE    (SIZE(1..64)) OF GNSS-ID-GPS-SatElement

GNSS-ID-GPS-SatElement ::= SEQUENCE {
  svID                SV-ID,
  signalsAvailable    GNSS-SignalIDs,
  ...
}

GNSS-ID-GLONASS ::= SEQUENCE (SIZE(1..64)) OF GNSS-ID-GLONASS-SatElement

GNSS-ID-GLONASS-SatElement ::= SEQUENCE {
  svID                SV-ID,
  signalsAvailable    GNSS-SignalIDs,
  channelNumber       INTEGER (-7..13)        OPTIONAL,       -- Cond FDMA
  ...
}

GNSS-ID-BDS-r16 ::= SEQUENCE    (SIZE(1..64)) OF GNSS-ID-BDS-SatElement-r16

GNSS-ID-BDS-SatElement-r16 ::= SEQUENCE {
  svID-r16            SV-ID,
          satType-r16             INTEGER (0..3),
  ...
}


BDS-DifferentialCorrections-r12 ::= SEQUENCE {
  dbds-RefTime-r12            INTEGER (0..3599),
  bds-SgnTypeList-r12         BDS-SgnTypeList-r12,
  ...
}

BDS-SgnTypeList-r12 ::= SEQUENCE (SIZE (1..3)) OF BDS-SgnTypeElement-r12

BDS-SgnTypeElement-r12 ::= SEQUENCE {
  gnss-SignalID               GNSS-SignalID               OPTIONAL,   -- Need ON
  dbds-CorrectionList-r12     DBDS-CorrectionList-r12,
  ...
}

DBDS-CorrectionList-r12 ::= SEQUENCE (SIZE (1..64)) OF DBDS-CorrectionElement-r12

DBDS-CorrectionElement-r12 ::= SEQUENCE {
  svID                        SV-ID,
  bds-UDREI-r12               INTEGER (0..15),
  bds-RURAI-r12               INTEGER (0..15),
  bds-ECC-DeltaT-r12          INTEGER (-4096..4095),
  ...
}


BDS-GridModelParameter-r12 ::= SEQUENCE {
  bds-RefTime-r12         INTEGER (0..3599),
      gridIonList-r12         GridIonList-r12,
  ...
}

GridIonList-r12 ::= SEQUENCE (SIZE (1..320)) OF GridIonElement-r12

GridIonElement-r12 ::= SEQUENCE {
  igp-ID-r12              INTEGER (1..320),
  dt-r12                  INTEGER (0..511),
  givei-r12               INTEGER (0..15) ,
  ...
}


GNSS-RTK-Observations-r15 ::= SEQUENCE {
                                                                                                  epochTime-r15                           GNSS-SystemTime,
                                                                                                  gnss-ObservationList-r15                GNSS-ObservationList-r15,
                                                                                                  ...
                                                                                              }

GNSS-ObservationList-r15 ::= SEQUENCE (SIZE(1..64)) OF GNSS-RTK-SatelliteDataElement-r15

GNSS-RTK-SatelliteDataElement-r15 ::= SEQUENCE{
  svID-r15                                SV-ID,
  integer-ms-r15                          INTEGER (0..254)                OPTIONAL,   -- Need ON
  rough-range-r15                         INTEGER (0..1023),
  rough-phase-range-rate-r15              INTEGER (-8192..8191)           OPTIONAL,   -- Need ON
  gnss-rtk-SatelliteSignalDataList-r15    GNSS-RTK-SatelliteSignalDataList-r15,
  ...
}

GNSS-RTK-SatelliteSignalDataList-r15 ::= SEQUENCE (SIZE(1..24)) OF
                                                      GNSS-RTK-SatelliteSignalDataElement-r15

GNSS-RTK-SatelliteSignalDataElement-r15 ::= SEQUENCE {
  gnss-SignalID-r15                   GNSS-SignalID,
  fine-PseudoRange-r15                INTEGER (-524288..524287),
  fine-PhaseRange-r15                 INTEGER (-8388608..8388607),
  lockTimeIndicator-r15               INTEGER (0..1023),
  halfCycleAmbiguityIndicator-r15     BIT STRING (SIZE (1)),
  carrier-to-noise-ratio-r15          INTEGER (0..1023)                   OPTIONAL,   -- Need ON
  fine-PhaseRangeRate-r15             INTEGER (-16384..16383)             OPTIONAL,   -- Need ON
  ...
}


GLO-RTK-BiasInformation-r15 ::= SEQUENCE{
  referenceStationID-r15      GNSS-ReferenceStationID-r15,
  cpbIndicator-r15            BIT STRING (SIZE(1)),
  l1-ca-cpBias-r15            INTEGER (-32768..32767)         OPTIONAL,       -- Need ON
  l1-p-cpBias-r15             INTEGER (-32768..32767)         OPTIONAL,       -- Need ON
  l2-ca-cpBias-r15            INTEGER (-32768..32767)         OPTIONAL,       -- Need ON
  l2-p-cpBias-r15             INTEGER (-32768..32767)         OPTIONAL,       -- Need ON
  ...
}


GNSS-RTK-MAC-CorrectionDifferences-r15 ::= SEQUENCE {
  networkID-r15                       GNSS-NetworkID-r15,
  subNetworkID-r15                    GNSS-SubNetworkID-r15               OPTIONAL,   -- Need ON
  master-ReferenceStationID-r15       GNSS-ReferenceStationID-r15,
  l1-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
  l2-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
  rtkCorrectionDifferencesList-r15    RTK-CorrectionDifferencesList-r15,
  ...
}

RTK-CorrectionDifferencesList-r15 ::= SEQUENCE (SIZE (1..32)) OF
                                          RTK-CorrectionDifferencesElement-r15

RTK-CorrectionDifferencesElement-r15 ::= SEQUENCE {
  epochTime-r15                           GNSS-SystemTime,
  auxiliary-referenceStationID-r15        GNSS-ReferenceStationID-r15,
  geometric-ionospheric-corrections-differences-r15
                                          Geometric-Ionospheric-Corrections-Differences-r15,
  ...
}

Geometric-Ionospheric-Corrections-Differences-r15 ::= SEQUENCE (SIZE(1..64)) OF
                                  Geometric-Ionospheric-Corrections-Differences-Element-r15

Geometric-Ionospheric-Corrections-Differences-Element-r15 ::= SEQUENCE {
  svID-r15                                        SV-ID,
  ambiguityStatusFlag-r15                         INTEGER (0..3),
  non-synch-count-r15                             INTEGER (0..7),
  geometricCarrierPhaseCorrectionDifference-r15   INTEGER (-65536..65535),
  iod-r15                                         BIT STRING (SIZE(11)),
  ionosphericCarrierPhaseCorrectionDifference-r15 INTEGER (-65536..65535),
  ...
}


GNSS-RTK-Residuals-r15 ::= SEQUENCE {
  epochTime-r15                       GNSS-SystemTime,
  referenceStationID-r15              GNSS-ReferenceStationID-r15,
  n-Refs-r15                          INTEGER (0..127),
  l1-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
  l2-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
  rtk-residuals-list-r15              RTK-Residuals-List-r15,
  ...
}

RTK-Residuals-List-r15 ::= SEQUENCE (SIZE(1..64)) OF RTK-Residuals-Element-r15

RTK-Residuals-Element-r15 ::= SEQUENCE {
  svID-r15            SV-ID,
  s-oc-r15            INTEGER (0..255),
  s-od-r15            INTEGER (0..511),
  s-oh-r15            INTEGER (0..63),
  s-lc-r15            INTEGER (0..1023),
  s-ld-r15            INTEGER (0..1023),
  ...
}


GNSS-RTK-FKP-Gradients-r15 ::= SEQUENCE {
  referenceStationID-r15              GNSS-ReferenceStationID-r15,
  epochTime-r15                       GNSS-SystemTime,
  l1-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
  l2-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
  fkp-gradients-list-r15              FKP-Gradients-List-r15,
  ...
}

FKP-Gradients-List-r15 ::= SEQUENCE (SIZE(1..64)) OF FKP-Gradients-Element-r15

FKP-Gradients-Element-r15 ::= SEQUENCE {
  svID-r15                            SV-ID,
  iod-r15                             BIT STRING (SIZE(11)),
  north-geometric-gradient-r15        INTEGER (-2048..2047),
  east-geometric-gradient-r15         INTEGER (-2048..2047),
  north-ionospheric-gradient-r15      INTEGER (-8192..8191),
  east-ionospheric-gradient-r15       INTEGER (-8192..8191),
  ...
}


GNSS-SSR-OrbitCorrections-r15 ::= SEQUENCE {
  epochTime-r15                       GNSS-SystemTime,
  ssrUpdateInterval-r15               INTEGER (0..15),
  satelliteReferenceDatum-r15         ENUMERATED { itrf, regional, ... },
  iod-ssr-r15                         INTEGER (0..15),
  ssr-OrbitCorrectionList-r15         SSR-OrbitCorrectionList-r15,
  ...,
  [[
      orbit-IntegrityParameters-r17   ORBIT-IntegrityParameters-r17   OPTIONAL -- Need OR
  ]]
}

SSR-OrbitCorrectionList-r15 ::= SEQUENCE (SIZE(1..64)) OF SSR-OrbitCorrectionSatelliteElement-r15

SSR-OrbitCorrectionSatelliteElement-r15 ::= SEQUENCE {
  svID-r15                            SV-ID,
  iod-r15                             BIT STRING (SIZE(11)),
  delta-radial-r15                    INTEGER (-2097152..2097151),
  delta-AlongTrack-r15                INTEGER (-524288..524287),
  delta-CrossTrack-r15                INTEGER (-524288..524287),
  dot-delta-radial-r15                INTEGER (-1048576..1048575)     OPTIONAL, -- Need ON
  dot-delta-AlongTrack-r15            INTEGER (-262144..262143)       OPTIONAL, -- Need ON
  dot-delta-CrossTrack-r15            INTEGER (-262144..262143)       OPTIONAL, -- Need ON
  ...,
  [[
      ssr-IntegrityOrbitBounds-r17    SSR-IntegrityOrbitBounds-r17    OPTIONAL  -- Cond Integrity1
  ]]
}

ORBIT-IntegrityParameters-r17 ::= SEQUENCE {
  probOnsetConstFault-r17                 INTEGER (0..255),
  meanConstFaultDuration-r17              INTEGER (1..3600),
  probOnsetSatFault-r17                   INTEGER (0..255),
  meanSatFaultDuration-r17                INTEGER (1..3600),
  orbitRangeErrorCorrelationTime-r17      INTEGER (0..255)            OPTIONAL, -- Need OR
  orbitRangeRateErrorCorrelationTime-r17  INTEGER (0..255)            OPTIONAL, -- Cond Integrity2
  ...
}

SSR-IntegrityOrbitBounds-r17 ::= SEQUENCE {
  meanOrbitError-r17              RAC-OrbitalErrorComponents-r17,
  stdDevOrbitError-r17            RAC-OrbitalErrorComponents-r17,
  meanOrbitRateError-r17          RAC-OrbitalErrorComponents-r17,
  stdDevOrbitRateError-r17        RAC-OrbitalErrorComponents-r17,
  ...
}

RAC-OrbitalErrorComponents-r17  ::= SEQUENCE {
  radial-r17          INTEGER (0..255),
  alongTrack-r17      INTEGER (0..255),
  crossTrack-r17      INTEGER (0..255)
}


GNSS-SSR-ClockCorrections-r15 ::= SEQUENCE {
  epochTime-r15                       GNSS-SystemTime,
  ssrUpdateInterval-r15               INTEGER (0..15),
  iod-ssr-r15                         INTEGER (0..15),
  ssr-ClockCorrectionList-r15         SSR-ClockCorrectionList-r15,
  ...,
  [[
      clock-IntegrityParameters-r17   CLOCK-IntegrityParameters-r17       OPTIONAL   -- Need OR
  ]]
}

SSR-ClockCorrectionList-r15 ::= SEQUENCE (SIZE(1..64)) OF SSR-ClockCorrectionSatelliteElement-r15

SSR-ClockCorrectionSatelliteElement-r15 ::= SEQUENCE {
  svID-r15                            SV-ID,
  delta-Clock-C0-r15                  INTEGER (-2097152..2097151),
  delta-Clock-C1-r15                  INTEGER (-1048576..1048575)         OPTIONAL, -- Need ON
  delta-Clock-C2-r15                  INTEGER (-67108864..67108863)       OPTIONAL, -- Need ON
  ...,
  [[
      ssr-IntegrityClockBounds-r17    SSR-IntegrityClockBounds-r17        OPTIONAL  -- Need OR
  ]]
}

CLOCK-IntegrityParameters-r17 ::= SEQUENCE {
  clockRangeErrorCorrelationTime-r17      INTEGER (0..255),
  clockRangeRateErrorCorrelationTime-r17  INTEGER (0..255),
  ...
}

SSR-IntegrityClockBounds-r17 ::= SEQUENCE {
  meanClock-r17                           INTEGER (0..255),
  stdDevClock-r17                         INTEGER (0..255),
  meanClockRate-r17                       INTEGER (0..255),
  stdDevClockRate-r17                     INTEGER (0..255),
  ...
}


GNSS-SSR-CodeBias-r15 ::= SEQUENCE {
  epochTime-r15                       GNSS-SystemTime,
  ssrUpdateInterval-r15               INTEGER (0..15),
  iod-ssr-r15                         INTEGER (0..15),
  ssr-CodeBiasSatList-r15             SSR-CodeBiasSatList-r15,
  ...
}

SSR-CodeBiasSatList-r15 ::= SEQUENCE (SIZE(1..64)) OF SSR-CodeBiasSatElement-r15

SSR-CodeBiasSatElement-r15 ::= SEQUENCE {
  svID-r15                            SV-ID,
  ssr-CodeBiasSignalList-r15          SSR-CodeBiasSignalList-r15,
  ...
}

SSR-CodeBiasSignalList-r15 ::= SEQUENCE (SIZE(1..16)) OF SSR-CodeBiasSignalElement-r15

SSR-CodeBiasSignalElement-r15 ::= SEQUENCE {
  signal-and-tracking-mode-ID-r15     GNSS-SignalID,
  codeBias-r15                        INTEGER (-8192..8191),
  ...,
  [[
  ssr-IntegrityCodeBiasBounds-r17     SSR-IntegrityCodeBiasBounds-r17     OPTIONAL    -- Need OR
  ]]
}

SSR-IntegrityCodeBiasBounds-r17 ::= SEQUENCE {
  meanCodeBias-r17                    INTEGER (0..255),
  stdDevCodeBias-r17                  INTEGER (0..255),
  meanCodeBiasRate-r17                INTEGER (0..255),
  stdDevCodeBiasRate-r17              INTEGER (0..255),
  ...
}


GNSS-SSR-URA-r16 ::= SEQUENCE {
  epochTime-r16                       GNSS-SystemTime,
  ssrUpdateInterval-r16               INTEGER (0..15),
  iod-ssr-r16                         INTEGER (0..15),
  ssr-URA-SatList-r16                 SSR-URA-SatList-r16,
  ...
}

SSR-URA-SatList-r16 ::= SEQUENCE (SIZE(1..64)) OF SSR-URA-SatElement-r16

SSR-URA-SatElement-r16 ::= SEQUENCE {
  svID-r16                            SV-ID,
  ssr-URA-r16                         BIT STRING (SIZE (6)),
  ...
}


GNSS-SSR-PhaseBias-r16 ::= SEQUENCE {
  epochTime-r16                       GNSS-SystemTime,
  ssrUpdateInterval-r16               INTEGER (0..15),
  iod-ssr-r16                         INTEGER (0..15),
  ssr-PhaseBiasSatList-r16            SSR-PhaseBiasSatList-r16,
  ...
}

SSR-PhaseBiasSatList-r16 ::= SEQUENCE (SIZE(1..64)) OF SSR-PhaseBiasSatElement-r16

SSR-PhaseBiasSatElement-r16 ::= SEQUENCE {
  svID-r16                            SV-ID,
  ssr-PhaseBiasSignalList-r16         SSR-PhaseBiasSignalList-r16,
  ...
}

SSR-PhaseBiasSignalList-r16 ::= SEQUENCE (SIZE(1..16)) OF SSR-PhaseBiasSignalElement-r16

SSR-PhaseBiasSignalElement-r16 ::= SEQUENCE {
  signal-and-tracking-mode-ID-r16     GNSS-SignalID,
  phaseBias-r16                       INTEGER (-16384..16383),
  phaseDiscontinuityIndicator-r16     INTEGER (0..3),
  phaseBiasIntegerIndicator-r16       INTEGER (0..3)                  OPTIONAL,   -- Need OP
  ...,
  [[
  ssr-IntegrityPhaseBiasBounds-r17    SSR-IntegrityPhaseBiasBounds-r17    OPTIONAL    -- Need OR
  ]]
}

SSR-IntegrityPhaseBiasBounds-r17 ::= SEQUENCE {
  meanPhaseBias-r17                   INTEGER (0..255),
  stdDevPhaseBias-r17                 INTEGER (0..255),
  meanPhaseBiasRate-r17               INTEGER (0..255),
  stdDevPhaseBiasRate-r17             INTEGER (0..255),
  ...
}


GNSS-SSR-STEC-Correction-r16 ::= SEQUENCE {
  epochTime-r16                       GNSS-SystemTime,
  ssrUpdateInterval-r16               INTEGER (0..15),
  iod-ssr-r16                         INTEGER (0..15),
  correctionPointSetID-r16            INTEGER (0..16383),
  stec-SatList-r16                    STEC-SatList-r16,
  ...,
  [[
      stec-IntegrityParameters-r17    STEC-IntegrityParameters-r17        OPTIONAL    -- Need OR
  ]]
}

STEC-SatList-r16 ::= SEQUENCE (SIZE(1..64)) OF STEC-SatElement-r16

STEC-SatElement-r16 ::= SEQUENCE {
  svID-r16                            SV-ID,
  stecQualityIndicator-r16            BIT STRING (SIZE(6)),
  stec-C00-r16                        INTEGER (-8192..8191),
  stec-C01-r16                        INTEGER (-2048..2047)               OPTIONAL, -- Need ON
  stec-C10-r16                        INTEGER (-2048..2047)               OPTIONAL, -- Need ON
  stec-C11-r16                        INTEGER (-512..511)                 OPTIONAL, -- Need ON
  ...,
  [[
      stec-IntegrityErrorBounds-r17   STEC-IntegrityErrorBounds-r17   OPTIONAL  -- Cond Integrity1
  ]]
}

STEC-IntegrityParameters-r17 ::= SEQUENCE {
  probOnsetIonoFault-r17                      INTEGER (0..255),
  meanIonoFaultDuration-r17                   INTEGER (1..256),
  ionoRangeErrorCorrelationTime-r17           INTEGER (1..255)        OPTIONAL, -- Need OR
  ionoRangeRateErrorCorrelationTime-r17       INTEGER (1..255)        OPTIONAL, -- Cond Integrity2
  ...
}

STEC-IntegrityErrorBounds-r17 ::= SEQUENCE {
  meanIonosphere-r17                          INTEGER (0..255),
  stdDevIonosphere-r17                        INTEGER (0..255),
  meanIonosphereRate-r17                      INTEGER (0..255),
  stdDevIonosphereRate-r17                    INTEGER (0..255),
  ...
}


GNSS-SSR-GriddedCorrection-r16 ::= SEQUENCE {
  epochTime-r16                               GNSS-SystemTime,
  ssrUpdateInterval-r16                       INTEGER (0..15),
  iod-ssr-r16                                 INTEGER (0..15),
  troposphericDelayQualityIndicator-r16       BIT STRING (SIZE(6))        OPTIONAL, -- Cond Tropo
  correctionPointSetID-r16                    INTEGER (0..16383),
  gridList-r16                                GridList-r16,
  ...,
  [[
  ssr-GriddedCorrectionIntegrityParameters-r17
                                              SSR-GriddedCorrectionIntegrityParameters-r17
                                                                          OPTIONAL  -- Need OR
  ]]
}

GridList-r16 ::= SEQUENCE (SIZE(1..64)) OF GridElement-r16

GridElement-r16 ::= SEQUENCE {
  tropospericDelayCorrection-r16  TropospericDelayCorrection-r16  OPTIONAL, -- Need ON
  stec-ResidualSatList-r16        STEC-ResidualSatList-r16        OPTIONAL, -- Need ON
  ...
}

TropospericDelayCorrection-r16 ::= SEQUENCE {
  tropoHydroStaticVerticalDelay-r16       INTEGER (-256..255),
  tropoWetVerticalDelay-r16               INTEGER (-128..127),
  ...,
  [[
  tropoDelayIntegrityErrorBounds-r17      TropoDelayIntegrityErrorBounds-r17
                                                                  OPTIONAL -- Cond Integrity1
  ]]
}

STEC-ResidualSatList-r16 ::= SEQUENCE (SIZE(1..64)) OF STEC-ResidualSatElement-r16

STEC-ResidualSatElement-r16 ::= SEQUENCE {
  svID-r16                            SV-ID,
  stecResidualCorrection-r16          CHOICE {
                  b7-r16                  INTEGER (-64..63),
                  b16-r16                 INTEGER (-32768..32767)
  },
  ...
}

SSR-GriddedCorrectionIntegrityParameters-r17 ::= SEQUENCE {
  probOnsetTroposphereFault-r17                   INTEGER (0..255),
  meanTroposphereFaultDuration-r17                INTEGER (1..256),
  troposphereRangeErrorCorrelationTime-r17        INTEGER (1..255)    OPTIONAL, -- Need OR
  troposphereRangeRateErrorCorrelationTime-r17    INTEGER (1..255)    OPTIONAL, -- Cond Integrity2
  ...
}

TropoDelayIntegrityErrorBounds-r17 ::= SEQUENCE {
  meanTroposphereVerticalHydroStaticDelay-r17         INTEGER (0..255),
  stdDevTroposphereVerticalHydroStaticDelay-r17       INTEGER (0..255),
  meanTroposphereVerticalWetDelay-r17                 INTEGER (0..255),
  stdDevTroposphereVerticalWetDelay-r17               INTEGER (0..255),
  meanTroposphereVerticalHydroStaticDelayRate-r17     INTEGER (0..255),
  stdDevTroposphereVerticalHydroStaticDelayRate-r17   INTEGER (0..255),
  meanTroposphereVerticalWetDelayRate-r17             INTEGER (0..255),
  stdDevTroposphereVerticalWetDelayRate-r17           INTEGER (0..255),
  ...
}


NavIC-DifferentialCorrections-r16 ::= SEQUENCE {
  navic-RefTOWC-r16               INTEGER (0..50400),
  navic-CorrectionListAutoNav-r16 NavIC-CorrectionListAutoNav-r16,
  ...
}

NavIC-CorrectionListAutoNav-r16 ::= SEQUENCE (SIZE (1..64)) OF NavIC-CorrectionElementAutoNav-r16

NavIC-CorrectionElementAutoNav-r16 ::= SEQUENCE {
  svID                        SV-ID,
  navic-Tod-r16               INTEGER (0..65535),
  navic-iodec-r16             INTEGER (0..255),
  navic-UDRAI-r16             INTEGER (-16..15),
  navic-UDRArateI-r16         INTEGER (-16..15),
  navic-EDC-r16               NavIC-EDC-r16,
  navic-CDC-r16               NavIC-CDC-r16,
  ...
}

NavIC-EDC-r16 ::= SEQUENCE {
  navic-AlphaEDC-r16              INTEGER (-8192..8191),
  navic-BetaEDC-r16               INTEGER (-8192..8191),
  navic-GammaEDC-r16              INTEGER (-16384..16383),
  navic-AoIcorrection-r16         INTEGER (-2048..2047),
  navic-AoRAcorrection-r16        INTEGER (-2048..2047),
  navic-SemiMajorcorrection-r16   INTEGER (-2048..2047),
  ...
}

NavIC-CDC-r16 ::= SEQUENCE {
  navic-ClockBiasCorrection-r16   INTEGER (-4096..4095),
  navic-ClockDriftCorrection-r16  INTEGER (-128..127),
  ...
}


      NavIC-GridModelParameter-r16 ::= SEQUENCE {
          navic-RefTOWC-r16   INTEGER (0..50400),
          regionMasked-r16    INTEGER (0..1023),
          regionIgpList-r16   RegionIgpList-r16,
          ...
      }

      RegionIgpList-r16 ::= SEQUENCE (SIZE (1..16)) OF RegionIgpElement-r16

      RegionIgpElement-r16 ::= SEQUENCE {
          regionID-r16    INTEGER (0..15),
          givei1-r16      INTEGER (0..15),
          givd1-r16       INTEGER (0..511),
          givei2-r16      INTEGER (0..15),
          givd2-r16       INTEGER (0..511),
          givei3-r16      INTEGER (0..15),
          givd3-r16       INTEGER (0..511),
          givei4-r16      INTEGER (0..15),
          givd4-r16       INTEGER (0..511),
          givei5-r16      INTEGER (0..15),
          givd5-r16       INTEGER (0..511),
          givei6-r16      INTEGER (0..15),
          givd6-r16       INTEGER (0..511),
          givei7-r16      INTEGER (0..15),
          givd7-r16       INTEGER (0..511),
          givei8-r16      INTEGER (0..15),
          givd8-r16       INTEGER (0..511),
          givei9-r16      INTEGER (0..15),
          givd9-r16       INTEGER (0..511),
          givei10-r16     INTEGER (0..15),
          givd10-r16      INTEGER (0..511),
          givei11-r16     INTEGER (0..15),
          givd11-r16      INTEGER (0..511),
          givei12-r16     INTEGER (0..15),
          givd12-r16      INTEGER (0..511),
          givei13-r16     INTEGER (0..15),
          givd13-r16      INTEGER (0..511),
          givei14-r16     INTEGER (0..15),
          givd14-r16      INTEGER (0..511),
          givei15-r16     INTEGER (0..15),
          givd15-r16      INTEGER (0..511),
          ...
      }


GNSS-SSR-OrbitCorrectionsSet2-r17 ::= SEQUENCE {
  refEph-r17                                  ENUMERATED { b1c,...},
  gnss-SSR-OrbitCorrections-r17               GNSS-SSR-OrbitCorrections-r15,
  ...
}


GNSS-SSR-ClockCorrectionsSet2-r17 ::= SEQUENCE {
  refEph-r17                              ENUMERATED { b1c,...},
  gnss-SSR-ClockCorrections-r17           GNSS-SSR-ClockCorrections-r15,
  ...
}


GNSS-SSR-URA-Set2-r17 ::= SEQUENCE {
  refEph-r17                          ENUMERATED { b1c,...},
  gnss-SSR-URA-r17                    GNSS-SSR-URA-r16,
  ...
}


GNSS-LOS-NLOS-GriddedIndications-r18 ::= SEQUENCE {
  gridPointsSetID-r18                         INTEGER (0..16383),
  expirationTime-r18                          UTCTime             OPTIONAL, -- Need ON
  gridList-r18                                GridList-r18,
  ...
}

GridList-r18 ::= SEQUENCE (SIZE(1..1024)) OF GridElement-r18

GridElement-r18 ::= SEQUENCE {
  gnss-LOS-InfoList-r18               GNSS-LOS-InfoList-r18       OPTIONAL, -- Need ON
  ...
}

GNSS-LOS-InfoList-r18 ::= SEQUENCE (SIZE(1..64)) OF GNSS-LOS-InfoElement-r18

GNSS-LOS-InfoElement-r18 ::= SEQUENCE {
  svID-r18                        SV-ID,
  los-r18                         ENUMERATED{true, false, uncertain},
  ...
}


GNSS-SSR-SatellitePCVResiduals-r18 ::= SEQUENCE {
  iod-ssr-PCVResiduals-r18            INTEGER (0..64),
  ssr-SatellitePCV-List-r18           SSR-SatellitePCV-List-r18,
  ...
}

SSR-SatellitePCV-List-r18 ::= SEQUENCE (SIZE(1..64)) OF SSR-SatellitePCV-Element-r18

SSR-SatellitePCV-Element-r18 ::= SEQUENCE {
  svID-r18                            SV-ID,
  ssr-SatellitePCV-FrequencyList-r18  SSR-SatellitePCV-FrequencyList-r18,
  ...
}

SSR-SatellitePCV-FrequencyList-r18 ::= SEQUENCE (SIZE(1..8)) OF
                                                      SSR-SatellitePCV-FrequencyElement-r18

SSR-SatellitePCV-FrequencyElement-r18 ::= SEQUENCE {
  frequencyID-r18                         GNSS-FrequencyID-r15,
  phaseCenterVariations-r18               SSR-PhaseCenterVariationList-r18,
  ...
}

SSR-PhaseCenterVariationList-r18 ::= SEQUENCE (SIZE(1..32)) OF INTEGER(-1024..1023)


A-GNSS-RequestAssistanceData ::= SEQUENCE {
  gnss-CommonAssistDataReq        GNSS-CommonAssistDataReq        OPTIONAL, -- Cond CommonADReq
  gnss-GenericAssistDataReq       GNSS-GenericAssistDataReq       OPTIONAL, -- Cond GenADReq
  ...,
  [[
      gnss-PeriodicAssistDataReq-r15
                                  GNSS-PeriodicAssistDataReq-r15  OPTIONAL -- Cond PerADReq
  ]]
}


GNSS-CommonAssistDataReq ::= SEQUENCE {
  gnss-ReferenceTimeReq               GNSS-ReferenceTimeReq
                                                              OPTIONAL, -- Cond RefTimeReq
  gnss-ReferenceLocationReq           GNSS-ReferenceLocationReq
                                                              OPTIONAL, -- Cond RefLocReq
  gnss-IonosphericModelReq            GNSS-IonosphericModelReq
                                                              OPTIONAL, -- Cond IonoModReq
  gnss-EarthOrientationParametersReq  GNSS-EarthOrientationParametersReq
                                                              OPTIONAL, -- Cond EOPReq
  ...,
  [[
      gnss-RTK-ReferenceStationInfoReq-r15
                                      GNSS-RTK-ReferenceStationInfoReq-r15
                                                              OPTIONAL, -- Cond ARPReq
      gnss-RTK-AuxiliaryStationDataReq-r15
                                      GNSS-RTK-AuxiliaryStationDataReq-r15
                                                              OPTIONAL -- Cond AuxARPReq
  ]],
  [[
      gnss-SSR-CorrectionPointsReq-r16
                                      GNSS-SSR-CorrectionPointsReq-r16
                                                              OPTIONAL -- Cond PointsReq
  ]],
  [[
      gnss-Integrity-ServiceParametersReq-r17
                          GNSS-Integrity-ServiceParametersReq-r17
                                                              OPTIONAL,   -- Cond IntServiceReq
      gnss-Integrity-ServiceAlertReq-r17
                          GNSS-Integrity-ServiceAlertReq-r17
                                                              OPTIONAL    -- Cond IntAlertReq
  ]],
  [[
      gnss-SSR-IOD-UpdateReq-r18      GNSS-SSR-IOD-UpdateReq-r18
                                                              OPTIONAL    -- Cond IODUpdateReq
  ]]
}


GNSS-GenericAssistDataReq ::= SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataReqElement

GNSS-GenericAssistDataReqElement ::= SEQUENCE {
  gnss-ID                         GNSS-ID,
  sbas-ID                         SBAS-ID                         OPTIONAL, -- Cond GNSS-ID-SBAS
  gnss-TimeModelsReq              GNSS-TimeModelListReq           OPTIONAL, -- Cond TimeModReq
  gnss-DifferentialCorrectionsReq GNSS-DifferentialCorrectionsReq OPTIONAL, -- Cond DGNSS-Req
  gnss-NavigationModelReq         GNSS-NavigationModelReq         OPTIONAL, -- Cond NavModReq
  gnss-RealTimeIntegrityReq       GNSS-RealTimeIntegrityReq       OPTIONAL, -- Cond RTIReq
  gnss-DataBitAssistanceReq       GNSS-DataBitAssistanceReq       OPTIONAL, -- Cond DataBitsReq
  gnss-AcquisitionAssistanceReq   GNSS-AcquisitionAssistanceReq   OPTIONAL, -- Cond AcquAssistReq
  gnss-AlmanacReq                 GNSS-AlmanacReq                 OPTIONAL, -- Cond AlmanacReq
  gnss-UTCModelReq                GNSS-UTC-ModelReq               OPTIONAL, -- Cond UTCModReq
  gnss-AuxiliaryInformationReq    GNSS-AuxiliaryInformationReq    OPTIONAL, -- Cond AuxInfoReq
  ...,
  [[
      bds-DifferentialCorrectionsReq-r12
                                      BDS-DifferentialCorrectionsReq-r12
                                                                          OPTIONAL,   -- Cond DBDS-Req
              bds-GridModelReq-r12        BDS-GridModelReq-r12            OPTIONAL    -- Cond BDS-GridModReq
  ]],
  [[
      gnss-RTK-ObservationsReq-r15
                                  GNSS-RTK-ObservationsReq-r15    OPTIONAL,   -- Cond RTK-OSR-Req
      glo-RTK-BiasInformationReq-r15
                                  GLO-RTK-BiasInformationReq-r15  OPTIONAL,   -- Cond GLO-CPB-Req
      gnss-RTK-MAC-CorrectionDifferencesReq-r15
                                  GNSS-RTK-MAC-CorrectionDifferencesReq-r15
                                                                  OPTIONAL,   -- Cond MAC-Req
      gnss-RTK-ResidualsReq-r15   GNSS-RTK-ResidualsReq-r15       OPTIONAL,   -- Cond Res-Req
      gnss-RTK-FKP-GradientsReq-r15
                                  GNSS-RTK-FKP-GradientsReq-r15   OPTIONAL,   -- Cond FKP-Req
      gnss-SSR-OrbitCorrectionsReq-r15
                                  GNSS-SSR-OrbitCorrectionsReq-r15
                                                                      OPTIONAL,   -- Cond OC-Req
      gnss-SSR-ClockCorrectionsReq-r15
                                  GNSS-SSR-ClockCorrectionsReq-r15
                                                                  OPTIONAL,   -- Cond CC-Req
      gnss-SSR-CodeBiasReq-r15    GNSS-SSR-CodeBiasReq-r15        OPTIONAL    -- Cond CB-Req
  ]],
  [[
      gnss-SSR-URA-Req-r16        GNSS-SSR-URA-Req-r16            OPTIONAL,   -- Cond URA-Req
      gnss-SSR-PhaseBiasReq-r16   GNSS-SSR-PhaseBiasReq-r16       OPTIONAL,   -- Cond PB-Req
      gnss-SSR-STEC-CorrectionReq-r16
                                  GNSS-SSR-STEC-CorrectionReq-r16 OPTIONAL,   -- Cond STEC-Req
      gnss-SSR-GriddedCorrectionReq-r16   GNSS-SSR-GriddedCorrectionReq-r16
                                                                  OPTIONAL,   -- Cond Grid-Req
      navic-DifferentialCorrectionsReq-r16
                                      NavIC-DifferentialCorrectionsReq-r16
                                                                      OPTIONAL,   -- Cond DNavIC-Req
              navic-GridModelReq-r16      NavIC-GridModelReq-r16      OPTIONAL    -- Cond NavIC-GridModReq
  ]],
  [[
      gnss-SSR-OrbitCorrectionsSet2Req-r17
                                  GNSS-SSR-OrbitCorrectionsSet2Req-r17
                                                                  OPTIONAL,   -- Cond OC2-Req
      gnss-SSR-ClockCorrectionsSet2Req-r17
                                  GNSS-SSR-ClockCorrectionsSet2Req-r17
                                                                  OPTIONAL,   -- Cond CC2-Req
      gnss-SSR-URA-Set2Req-r17    GNSS-SSR-URA-Set2Req-r17        OPTIONAL    -- Cond URA2-Req
  ]],
  [[
      gnss-LOS-NLOS-GriddedIndicationsReq-r18 GNSS-LOS-NLOS-GriddedIndicationsReq-r18
                                                                  OPTIONAL,   -- Cond LOS-GridReq
      gnss-SSR-SatellitePCVResidualsReq-r18
                                  GNSS-SSR-SatellitePCVResidualsReq-r18
                                                                  OPTIONAL    -- Cond SatPCV-Req
  ]]
}


GNSS-PeriodicAssistDataReq-r15 ::= SEQUENCE {
  gnss-RTK-PeriodicObservationsReq-r15    GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pOSR
  glo-RTK-PeriodicBiasInformationReq-r15  GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pCPB
  gnss-RTK-MAC-PeriodicCorrectionDifferencesReq-r15
                                          GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pMAC
  gnss-RTK-PeriodicResidualsReq-r15       GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pRes
  gnss-RTK-FKP-PeriodicGradientsReq-r15   GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pFKP
  gnss-SSR-PeriodicOrbitCorrectionsReq-r15
                                          GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pOC
  gnss-SSR-PeriodicClockCorrectionsReq-r15
                                          GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pCC
  gnss-SSR-PeriodicCodeBiasReq-r15        GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pCB
  ...,
  [[
  gnss-SSR-PeriodicURA-Req-r16            GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pURA
  gnss-SSR-PeriodicPhaseBiasReq-r16       GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pPB
  gnss-SSR-PeriodicSTEC-CorrectionReq-r16 GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pSTEC
  gnss-SSR-PeriodicGriddedCorrectionReq-r16
                                          GNSS-PeriodicControlParam-r15   OPTIONAL  -- Cond pGrid
  ]],
  [[
  gnss-Integrity-PeriodicServiceAlertReq-r17
                                          GNSS-PeriodicControlParam-r15   OPTIONAL  -- Cond pDNU
  ]],
  [[
  gnss-SSR-PeriodicOrbitCorrectionsSet2Req-r17
                                  GNSS-PeriodicControlParam-r15   OPTIONAL,       -- Cond pOC2
  gnss-SSR-PeriodicClockCorrectionsSet2Req-r17
                                  GNSS-PeriodicControlParam-r15   OPTIONAL,       -- Cond pCC2
  gnss-SSR-PeriodicURA-Set2Req-r17
                                  GNSS-PeriodicControlParam-r15   OPTIONAL        -- Cond pURA2
  ]],
  [[
  gnss-SSR-PeriodicIOD-UpdateReq-r18
                                  GNSS-PeriodicControlParam-r15   OPTIONAL        -- Cond pPCV
  ]]
}


GNSS-ReferenceTimeReq ::= SEQUENCE {
  gnss-TimeReqPrefList    SEQUENCE (SIZE (1..8)) OF GNSS-ID,
  gps-TOW-assistReq       BOOLEAN                             OPTIONAL, -- Cond gps
  notOfLeapSecReq         BOOLEAN                             OPTIONAL, -- Cond glonass
  ...
}


GNSS-ReferenceLocationReq ::=   SEQUENCE {
  ...
}


GNSS-IonosphericModelReq ::=    SEQUENCE {
  klobucharModelReq       BIT STRING (SIZE(2))    OPTIONAL,   -- Cond klobuchar
  neQuickModelReq         NULL                    OPTIONAL,   -- Cond nequick
  ...,
  [[  klobucharModel2Req-r16  NULL                OPTIONAL    -- Cond klobuchar2
  ]]

}


GNSS-EarthOrientationParametersReq ::=  SEQUENCE {
  ...
}


GNSS-RTK-ReferenceStationInfoReq-r15 ::= SEQUENCE {
  antennaDescriptionReq-r15           BOOLEAN,
  antennaHeightReq-r15                BOOLEAN,
  physicalReferenceStationReq-r15     BOOLEAN,
  stationID-r15                       GNSS-ReferenceStationID-r15     OPTIONAL,
  ...
}


GNSS-RTK-AuxiliaryStationDataReq-r15 ::= SEQUENCE {
  master-referenceStationID-r15       GNSS-ReferenceStationID-r15     OPTIONAL,
  ...
}


GNSS-SSR-CorrectionPointsReq-r16 ::=    SEQUENCE {
  correctionPointSetID-Req-r16            INTEGER (0..16383)          OPTIONAL,
  ...
}


GNSS-Integrity-ServiceParametersReq-r17 ::= SEQUENCE {
  ...
}


GNSS-Integrity-ServiceAlertReq-r17 ::=  SEQUENCE {
  ...
}


GNSS-SSR-IOD-UpdateReq-r18 ::=  SEQUENCE {
  ...
}


GNSS-TimeModelListReq ::= SEQUENCE (SIZE(1..15)) OF GNSS-TimeModelElementReq

GNSS-TimeModelElementReq ::= SEQUENCE {
  gnss-TO-IDsReq  INTEGER (1..15),
  deltaTreq       BOOLEAN,
  ...
}


GNSS-DifferentialCorrectionsReq ::= SEQUENCE {
  dgnss-SignalsReq            GNSS-SignalIDs,
  dgnss-ValidityTimeReq       BOOLEAN,
  ...
}


GNSS-NavigationModelReq ::= CHOICE {
  storedNavList       StoredNavListInfo,
  reqNavList          ReqNavListInfo,
  ...
}

StoredNavListInfo ::= SEQUENCE {
  gnss-WeekOrDay          INTEGER (0..4095),
  gnss-Toe                INTEGER (0..255),
  t-toeLimit              INTEGER (0..15),
  satListRelatedDataList  SatListRelatedDataList  OPTIONAL,
  ...
}

SatListRelatedDataList ::= SEQUENCE (SIZE (1..64)) OF SatListRelatedDataElement

SatListRelatedDataElement ::= SEQUENCE {
  svID                SV-ID,
  iod             BIT STRING (SIZE(11)),
  clockModelID        INTEGER (1..8)          OPTIONAL,
orbitModelID        INTEGER (1..8)          OPTIONAL,
  ...
}

ReqNavListInfo ::=  SEQUENCE {
  svReqList               BIT STRING (SIZE (64)),
  clockModelID-PrefList   SEQUENCE (SIZE (1..8)) OF   INTEGER (1..8)      OPTIONAL,
  orbitModelID-PrefList   SEQUENCE (SIZE (1..8)) OF   INTEGER (1..8)      OPTIONAL,
  addNavparamReq          BOOLEAN             OPTIONAL,   -- Cond orbitModelID-2
  ...
}


GNSS-RealTimeIntegrityReq ::=   SEQUENCE {
  ...
}


GNSS-DataBitAssistanceReq ::=   SEQUENCE {
  gnss-TOD-Req        INTEGER (0..3599),
  gnss-TOD-FracReq    INTEGER (0..999)        OPTIONAL,
  dataBitInterval     INTEGER (0..15),
  gnss-SignalType     GNSS-SignalIDs,
  gnss-DataBitsReq    GNSS-DataBitsReqSatList OPTIONAL,
  ...
}

GNSS-DataBitsReqSatList ::= SEQUENCE (SIZE(1..64)) OF GNSS-DataBitsReqSatElement

GNSS-DataBitsReqSatElement ::= SEQUENCE {
  svID                SV-ID,
  ...
}


GNSS-AcquisitionAssistanceReq ::=   SEQUENCE {
  gnss-SignalID-Req       GNSS-SignalID,
  ...
}


GNSS-AlmanacReq ::= SEQUENCE {
  modelID             INTEGER(1..8)   OPTIONAL,
  ...
}


GNSS-UTC-ModelReq ::=   SEQUENCE {
  modelID             INTEGER(1..8)   OPTIONAL,
  ...
}


GNSS-AuxiliaryInformationReq ::=    SEQUENCE {
  ...
}


BDS-DifferentialCorrectionsReq-r12 ::=  SEQUENCE {
  dgnss-SignalsReq            GNSS-SignalIDs,
  ...
}


BDS-GridModelReq-r12 ::=    SEQUENCE {
  ...
}


GNSS-RTK-ObservationsReq-r15::=     SEQUENCE {
  gnss-RTK-SignalsReq-r15             GNSS-SignalIDs,
  gnss-RTK-Integer-ms-Req-r15         BOOLEAN,
  gnss-RTK-PhaseRangeRateReq-r15      BOOLEAN,
  gnss-RTK-CNR-Req-r15                BOOLEAN,
  stationID-r15                       GNSS-ReferenceStationID-r15     OPTIONAL,
  ...
}


GLO-RTK-BiasInformationReq-r15 ::=  SEQUENCE {
  stationID-r15                       GNSS-ReferenceStationID-r15     OPTIONAL,
  ...
}


GNSS-RTK-MAC-CorrectionDifferencesReq-r15 ::=   SEQUENCE {
  master-ReferenceStationID-r15       GNSS-ReferenceStationID-r15             OPTIONAL,
  aux-ReferenceStationList-r15        AUX-ReferenceStationList-r15            OPTIONAL,
  linkCombinations-PrefList-r15       GNSS-Link-CombinationsList-r15          OPTIONAL,
  ...
}

AUX-ReferenceStationList-r15 ::= SEQUENCE (SIZE (1..32)) OF AUX-ReferenceStationID-Element-r15

AUX-ReferenceStationID-Element-r15 ::= SEQUENCE {
  aux-stationID-r15       GNSS-ReferenceStationID-r15,
  ...
}


GNSS-RTK-ResidualsReq-r15 ::=   SEQUENCE {
  stationID-r15                       GNSS-ReferenceStationID-r15     OPTIONAL,
  linkCombinations-PrefList-r15       GNSS-Link-CombinationsList-r15  OPTIONAL,
  ...
}


GNSS-RTK-FKP-GradientsReq-r15 ::=   SEQUENCE {
  stationID-r15                       GNSS-ReferenceStationID-r15     OPTIONAL,
  linkCombinations-PrefList-r15       GNSS-Link-CombinationsList-r15  OPTIONAL,
  ...
}


GNSS-SSR-OrbitCorrectionsReq-r15 ::= SEQUENCE {
  storedNavList-r15               GNSS-NavListInfo-r15                OPTIONAL,
  ...,
  [[
  orbit-IntegrityReq-r17  BIT STRING {    correlationTimeReq      (0)
                                      } (SIZE(1..8))                  OPTIONAL
  ]]
}


GNSS-SSR-ClockCorrectionsReq-r15 ::= SEQUENCE {
  storedNavList-r15               GNSS-NavListInfo-r15                OPTIONAL,
  ...,
  [[
      clock-IntegrityParametersReq-r17    ENUMERATED { true }         OPTIONAL,
      ssr-IntegrityClockBoundsReq-r17     ENUMERATED { true }         OPTIONAL
  ]]
}


GNSS-SSR-CodeBiasReq-r15 ::= SEQUENCE {
  signal-and-tracking-mode-ID-Map-r15     GNSS-SignalIDs,
  storedNavList-r15                       GNSS-NavListInfo-r15                OPTIONAL,
  ...,
  [[
  ssr-IntegrityCodeBiasBoundsReq-r17      ENUMERATED { requested }            OPTIONAL
  ]]
}


GNSS-SSR-URA-Req-r16 ::= SEQUENCE {
  ...
}


GNSS-SSR-PhaseBiasReq-r16 ::= SEQUENCE {
  signal-and-tracking-mode-ID-Map-r16     GNSS-SignalIDs,
  storedNavList-r16                       GNSS-NavListInfo-r15                OPTIONAL,
  ...,
  [[
  ssr-IntegrityPhaseBiasBoundsReq-r17     ENUMERATED { requested }            OPTIONAL
  ]]
}


GNSS-SSR-STEC-CorrectionReq-r16 ::= SEQUENCE {
  ...,
  [[
  stec-IntegrityReq-r17   BIT STRING {    correlationTimeReq      (0)
                                      } (SIZE(1..8))                                  OPTIONAL
  ]]
}


GNSS-SSR-GriddedCorrectionReq-r16 ::= SEQUENCE {
  ...,
  [[
  griddedCorrectionIntegrityReq-r17       ENUMERATED { requested }                    OPTIONAL
  ]]
}


NavIC-DifferentialCorrectionsReq-r16 ::=    SEQUENCE {
  dgnss-SignalsReq-r16            GNSS-SignalIDs,
  ...
}


NavIC-GridModelReq-r16 ::=  SEQUENCE {
  ...
}


GNSS-SSR-OrbitCorrectionsSet2Req-r17 ::= SEQUENCE {
  refEphReq-r17                   ENUMERATED { b1c,...},
  gnss-SSR-OrbitCorrectionsSet2Req-r17
                                  GNSS-SSR-OrbitCorrectionsReq-r15    OPTIONAL,   -- Cond OC2-Req
  ...
}


GNSS-SSR-ClockCorrectionsSet2Req-r17 ::= SEQUENCE {
  refEphReq-r17                   ENUMERATED { b1c,...},
  gnss-SSR-ClockCorrectionsSet2Req-r17
                                  GNSS-SSR-ClockCorrectionsReq-r15    OPTIONAL,   -- Cond CC2-Req
  ...
}


GNSS-SSR-URA-Set2Req-r17 ::= SEQUENCE {
  refEphReq-r17                   ENUMERATED { b1c,...},
  ...
}


GNSS-LOS-NLOS-GriddedIndicationsReq-r18 ::= SEQUENCE {
  gridPointsSetID-Req-r18         INTEGER (0..16383)              OPTIONAL,
  relativeLocationInfo-r18        CHOICE {
      inside-r18      ENUMERATED {upper-left, upper-right, lower-left, lower-right, ...},
      outside-r18     ENUMERATED {north, west, south, east, above, below, ...}
  }                                                               OPTIONAL, -- Cond Relative
  verticalGridType-r18            ENUMERATED {ground-level, threeD},
  referenceAltitudeFine-r18       INTEGER (0..9)                  OPTIONAL,
  referenceAltitudeCoarse-r18     INTEGER (-50..900)              OPTIONAL,
  ...
}


GNSS-SSR-SatellitePCVResidualsReq-r18 ::= SEQUENCE {
  ...
}


A-GNSS-ProvideLocationInformation ::= SEQUENCE {
  gnss-SignalMeasurementInformation   GNSS-SignalMeasurementInformation       OPTIONAL,
  gnss-LocationInformation            GNSS-LocationInformation                OPTIONAL,
  gnss-Error                          A-GNSS-Error                            OPTIONAL,
  ...
}


GNSS-SignalMeasurementInformation ::= SEQUENCE {
  measurementReferenceTime        MeasurementReferenceTime,
  gnss-MeasurementList            GNSS-MeasurementList,
  ...
}


MeasurementReferenceTime ::= SEQUENCE {
  gnss-TOD-msec       INTEGER (0..3599999),
  gnss-TOD-frac       INTEGER (0..3999)           OPTIONAL,
  gnss-TOD-unc        INTEGER (0..127)            OPTIONAL,
  gnss-TimeID         GNSS-ID,
  networkTime         CHOICE {
      eUTRA   SEQUENCE {
              physCellId          INTEGER (0..503),
              cellGlobalId        CellGlobalIdEUTRA-AndUTRA       OPTIONAL,
              systemFrameNumber   BIT STRING (SIZE (10)),
              ...
              },
      uTRA    SEQUENCE {
              mode                    CHOICE {
                                      fdd         SEQUENCE {
                                                  primary-CPICH-Info  INTEGER (0..511),
                                                  ...
                                                  },
                                      tdd         SEQUENCE {
                                                  cellParameters      INTEGER (0..127),
                                                  ...
                                                  }
                                      },
              cellGlobalId            CellGlobalIdEUTRA-AndUTRA       OPTIONAL,
              referenceSystemFrameNumber
                                      INTEGER (0..4095),
              ...
              },
      gSM     SEQUENCE {
              bcchCarrier         INTEGER (0..1023),
              bsic                INTEGER (0..63),
              cellGlobalId        CellGlobalIdGERAN                   OPTIONAL,
              referenceFrame      SEQUENCE {
                                  referenceFN     INTEGER (0..65535),
                                  referenceFNMSB      INTEGER (0..63)     OPTIONAL,
                                  ...
                                  },
              deltaGNSS-TOD       INTEGER (0 .. 127)      OPTIONAL,
              ...
              },
      ...,
      nbIoT-r14
              SEQUENCE {
              nbPhysCellId-r14    INTEGER (0..503),
              nbCellGlobalId-r14  ECGI                        OPTIONAL,
              sfn-r14             BIT STRING (SIZE (10)),
              hyperSFN-r14        BIT STRING (SIZE (10))      OPTIONAL,
              ...
              },
      nr-r15  SEQUENCE {
              nrPhysCellId-r15    INTEGER (0..1007),
              nrCellGlobalID-r15  NCGI-r15                    OPTIONAL,
              nr-sfn-r15          BIT STRING (SIZE (10)),
              ...
              }
      }       OPTIONAL,
  ...
}


GNSS-MeasurementList ::= SEQUENCE (SIZE(1..16)) OF GNSS-MeasurementForOneGNSS

GNSS-MeasurementForOneGNSS ::= SEQUENCE {
  gnss-ID                 GNSS-ID,
  gnss-SgnMeasList        GNSS-SgnMeasList,
  ...
}

GNSS-SgnMeasList ::= SEQUENCE (SIZE(1..8)) OF GNSS-SgnMeasElement

GNSS-SgnMeasElement ::= SEQUENCE {
  gnss-SignalID           GNSS-SignalID,
  gnss-CodePhaseAmbiguity INTEGER (0..127)        OPTIONAL,
  gnss-SatMeasList        GNSS-SatMeasList,
  ...
}

GNSS-SatMeasList ::= SEQUENCE (SIZE(1..64)) OF GNSS-SatMeasElement

GNSS-SatMeasElement ::= SEQUENCE {
  svID                SV-ID,
  cNo                 INTEGER (0..63),
  mpathDet            ENUMERATED {notMeasured (0), low (1), medium (2), high (3), ...},
  carrierQualityInd   INTEGER (0..3)              OPTIONAL,
  codePhase           INTEGER (0..2097151),
  integerCodePhase    INTEGER (0..127)            OPTIONAL,
  codePhaseRMSError   INTEGER (0..63),
  doppler             INTEGER (-32768..32767) OPTIONAL,
  adr                 INTEGER (0..33554431)       OPTIONAL,
  ...,
  [[
      adrMSB-r15          INTEGER (0..15)                     OPTIONAL,
      adrSign-r15         ENUMERATED {positive, negative}     OPTIONAL,
      adrRMSerror-r15     INTEGER (0..127)                    OPTIONAL,
      delta-codePhase-r15 INTEGER (0..7)                      OPTIONAL
  ]]
}


GNSS-LocationInformation ::= SEQUENCE {
  measurementReferenceTime        MeasurementReferenceTime,
  agnss-List                      GNSS-ID-Bitmap,
  ...,
  [[
      ha-GNSS-Metrics-r17         HA-GNSS-Metrics-r17     OPTIONAL
  ]]
}


HA-GNSS-Metrics-r17 ::= SEQUENCE {
  nrOfUsedSatellites-r17  INTEGER (0..64),
  hdopi-r17                   INTEGER (1..256)                        OPTIONAL,
  pdopi-r17                   INTEGER (1..256)                        OPTIONAL,
  age-r17                     INTEGER (0..99)                         OPTIONAL,
  fixType-r17                 ENUMERATED {carrier-phase-float,
                                          carrier-phase-fix, ...}     OPTIONAL,
  ...
}


A-GNSS-RequestLocationInformation ::= SEQUENCE {
  gnss-PositioningInstructions        GNSS-PositioningInstructions,
  ...
}


GNSS-PositioningInstructions ::= SEQUENCE {
  gnss-Methods                GNSS-ID-Bitmap,
  fineTimeAssistanceMeasReq   BOOLEAN,
  adrMeasReq                  BOOLEAN,
  multiFreqMeasReq            BOOLEAN,
  assistanceAvailability      BOOLEAN,
  ...,
  [[
      ha-GNSS-Req-r15         ENUMERATED { true }     OPTIONAL    -- Cond UEB
  ]],
  [[
      ha-GNSS-MetricsReq-r17  ENUMERATED { true }     OPTIONAL    -- Cond UEB
  ]]
}


A-GNSS-ProvideCapabilities ::= SEQUENCE {
  gnss-SupportList            GNSS-SupportList                OPTIONAL,
  assistanceDataSupportList   AssistanceDataSupportList       OPTIONAL,
  locationCoordinateTypes     LocationCoordinateTypes         OPTIONAL,
  velocityTypes               VelocityTypes                   OPTIONAL,
  ...,
  [[ periodicalReportingNotSupported-r14
                              PositioningModes                OPTIONAL,
      idleStateForMeasurements-r14
                              ENUMERATED { required }         OPTIONAL
  ]],
  [[ periodicAssistanceData-r15
                              BIT STRING { solicited   (0),
                                           unsolicited (1)    } (SIZE (1..8))     OPTIONAL
  ]],
  [[ scheduledLocationRequestSupported-r17
                              ScheduledLocationTimeSupportPerMode-r17             OPTIONAL
  ]],
  [[ periodicReportingIntervalMsSupport-r18
                              PeriodicReportingIntervalMsSupportPerMode-r18       OPTIONAL
  ]]
}

GNSS-SupportList ::= SEQUENCE (SIZE(1..16)) OF GNSS-SupportElement

GNSS-SupportElement ::= SEQUENCE {
  gnss-ID                         GNSS-ID,
  sbas-IDs                        SBAS-IDs                    OPTIONAL,   -- Cond GNSS-ID-SBAS
  agnss-Modes                     PositioningModes,
  gnss-Signals                    GNSS-SignalIDs,
  fta-MeasSupport                 SEQUENCE {
                                      cellTime    AccessTypes,
                                      mode        PositioningModes,
                                      ...
                                  }                           OPTIONAL,   -- Cond fta
  adr-Support                     BOOLEAN,
  velocityMeasurementSupport      BOOLEAN,
  ...,
  [[
      adrEnhancementsSupport-r15  ENUMERATED { true }         OPTIONAL,
      ha-gnss-Modes-r15           PositioningModes            OPTIONAL
  ]],
  [[
      ha-gnss-MetricsSupport-r17  ENUMERATED { true }         OPTIONAL
  ]]
}

AssistanceDataSupportList ::= SEQUENCE {
  gnss-CommonAssistanceDataSupport    GNSS-CommonAssistanceDataSupport,
  gnss-GenericAssistanceDataSupport   GNSS-GenericAssistanceDataSupport,
  ...
}


GNSS-CommonAssistanceDataSupport ::= SEQUENCE {
  gnss-ReferenceTimeSupport               GNSS-ReferenceTimeSupport
                                                              OPTIONAL, -- Cond RefTimeSup
  gnss-ReferenceLocationSupport           GNSS-ReferenceLocationSupport
                                                              OPTIONAL, -- Cond RefLocSup
  gnss-IonosphericModelSupport            GNSS-IonosphericModelSupport
                                                              OPTIONAL, -- Cond IonoModSup
  gnss-EarthOrientationParametersSupport  GNSS-EarthOrientationParametersSupport
                                                              OPTIONAL, -- Cond EOPSup
  ...,
  [[
      gnss-RTK-ReferenceStationInfoSupport-r15
                                          GNSS-RTK-ReferenceStationInfoSupport-r15
                                                              OPTIONAL, -- Cond ARPSup
      gnss-RTK-AuxiliaryStationDataSupport-r15
                                          GNSS-RTK-AuxiliaryStationDataSupport-r15
                                                              OPTIONAL -- Cond AuxARPSup
  ]],
  [[
      gnss-Integrity-ServiceParametersSupport-r17
                          GNSS-Integrity-ServiceParametersSupport-r17
                                                              OPTIONAL,   -- Cond IntServiceSup
      gnss-Integrity-ServiceAlertSupport-r17
                          GNSS-Integrity-ServiceAlertSupport-r17
                                                              OPTIONAL    -- Cond IntAlertSup
  ]],
  [[
      gnss-SSR-IOD-UpdateSupport-r18      GNSS-SSR-IOD-UpdateSupport-r18
                                                              OPTIONAL    -- Cond IODUpdateSup
  ]]
}


GNSS-ReferenceTimeSupport ::=   SEQUENCE {
  gnss-SystemTime     GNSS-ID-Bitmap,
  fta-Support         AccessTypes                                     OPTIONAL, -- Cond fta
  ...
}


GNSS-ReferenceLocationSupport ::=   SEQUENCE {
  ...
}


GNSS-IonosphericModelSupport ::=    SEQUENCE {
  ionoModel       BIT STRING {    klobuchar   (0),
                                  neQuick     (1),
                                  klobuchar2-r16  (2) } (SIZE (1..8)),
  ...
}


GNSS-EarthOrientationParametersSupport ::=  SEQUENCE {
  ...
}


GNSS-RTK-ReferenceStationInfoSupport-r15 ::=    SEQUENCE {
  ...
}


GNSS-RTK-AuxiliaryStationDataSupport-r15 ::=    SEQUENCE {
  ...
}


GNSS-Integrity-ServiceParametersSupport-r17 ::= SEQUENCE {
  ...
}


GNSS-Integrity-ServiceAlertSupport-r17 ::=  SEQUENCE {
  ...
}


GNSS-SSR-IOD-UpdateSupport-r18 ::=  SEQUENCE {
  ...
}


GNSS-GenericAssistanceDataSupport ::=
                              SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataSupportElement

GNSS-GenericAssistDataSupportElement ::= SEQUENCE {
  gnss-ID                             GNSS-ID,
  sbas-ID                             SBAS-ID                     OPTIONAL, -- Cond GNSSIDSBAS
  gnss-TimeModelsSupport              GNSS-TimeModelListSupport
                                                                  OPTIONAL, -- Cond TimeModSup
  gnss-DifferentialCorrectionsSupport GNSS-DifferentialCorrectionsSupport
                                                                  OPTIONAL, -- Cond DGNSS-Sup
  gnss-NavigationModelSupport         GNSS-NavigationModelSupport
                                                                  OPTIONAL, -- Cond NavModSup
  gnss-RealTimeIntegritySupport       GNSS-RealTimeIntegritySupport
                                                                  OPTIONAL, -- Cond RTISup
  gnss-DataBitAssistanceSupport       GNSS-DataBitAssistanceSupport
                                                                  OPTIONAL, -- Cond DataBitsSup
  gnss-AcquisitionAssistanceSupport   GNSS-AcquisitionAssistanceSupport
                                                                  OPTIONAL, -- Cond AcquAssistSup
  gnss-AlmanacSupport                 GNSS-AlmanacSupport
                                                                  OPTIONAL, -- Cond AlmanacSup
  gnss-UTC-ModelSupport               GNSS-UTC-ModelSupport
                                                                  OPTIONAL, -- Cond UTCModSup
  gnss-AuxiliaryInformationSupport    GNSS-AuxiliaryInformationSupport
                                                                  OPTIONAL, -- Cond AuxInfoSup
  ...,
      [[
          bds-DifferentialCorrectionsSupport-r12
                                      BDS-DifferentialCorrectionsSupport-r12
                                                                  OPTIONAL, -- Cond DBDS-Sup
      bds-GridModelSupport-r12        BDS-GridModelSupport-r12
                                                                          OPTIONAL    -- Cond BDS-GridModSup
  ]],
  [[
      gnss-RTK-ObservationsSupport-r15
                                      GNSS-RTK-ObservationsSupport-r15
                                                                  OPTIONAL,   -- Cond RTK-OSR-Sup
      glo-RTK-BiasInformationSupport-r15
                                      GLO-RTK-BiasInformationSupport-r15
                                                                  OPTIONAL,   -- Cond GLO-CPB-Sup
      gnss-RTK-MAC-CorrectionDifferencesSupport-r15
                                      GNSS-RTK-MAC-CorrectionDifferencesSupport-r15
                                                                  OPTIONAL,   -- Cond MAC-Sup
      gnss-RTK-ResidualsSupport-r15   GNSS-RTK-ResidualsSupport-r15
                                                                  OPTIONAL,   -- Cond Res-Sup
      gnss-RTK-FKP-GradientsSupport-r15
                                      GNSS-RTK-FKP-GradientsSupport-r15
                                                                  OPTIONAL,   -- Cond FKP-Sup
      gnss-SSR-OrbitCorrectionsSupport-r15
                                      GNSS-SSR-OrbitCorrectionsSupport-r15
                                                                  OPTIONAL,   -- Cond OC-Sup
      gnss-SSR-ClockCorrectionsSupport-r15
                                      GNSS-SSR-ClockCorrectionsSupport-r15
                                                                  OPTIONAL,   -- Cond CC-Sup
      gnss-SSR-CodeBiasSupport-r15    GNSS-SSR-CodeBiasSupport-r15
                                                                  OPTIONAL    -- Cond CB-Sup
  ]],
      [[
      gnss-SSR-URA-Support-r16        GNSS-SSR-URA-Support-r16    OPTIONAL,   -- Cond URA-Sup
      gnss-SSR-PhaseBiasSupport-r16   GNSS-SSR-PhaseBiasSupport-r16
                                                                  OPTIONAL,   -- Cond PB-Sup
      gnss-SSR-STEC-CorrectionSupport-r16
                                      GNSS-SSR-STEC-CorrectionSupport-r16
                                                                  OPTIONAL,   -- Cond STEC-Sup
      gnss-SSR-GriddedCorrectionSupport-r16
                                      GNSS-SSR-GriddedCorrectionSupport-r16
                                                                  OPTIONAL,   -- Cond Grid-Sup
          navic-DifferentialCorrectionsSupport-r16
                                      NavIC-DifferentialCorrectionsSupport-r16
                                                              OPTIONAL,   -- Cond DNavIC-Sup
      navic-GridModelSupport-r16      NavIC-GridModelSupport-r16
                                                                      OPTIONAL    -- Cond NavIC-GridModSup
  ]],
  [[
      gnss-SSR-OrbitCorrectionsSet2Support-r17
                                          GNSS-SSR-OrbitCorrectionsSet2Support-r17
                                                                  OPTIONAL,   -- Cond OC2-Sup
      gnss-SSR-ClockCorrectionsSet2Support-r17
                                          GNSS-SSR-ClockCorrectionsSet2Support-r17
                                                                  OPTIONAL,   -- Cond CC2-Sup
      gnss-SSR-URA-Set2Support-r17        GNSS-SSR-URA-Set2Support-r17
                                                                  OPTIONAL    -- Cond URA2-Sup
  ]],
  [[
      gnss-LOS-NLOS-GriddedIndicationsSupport-r18
                                          GNSS-LOS-NLOS-GriddedIndicationsSupport-r18
                                                          OPTIONAL,   -- Cond LOS-NLOS-Grid-Sup
      gnss-SSR-SatellitePCVResidualsSupport-r18
                                          GNSS-SSR-SatellitePCVResidualsSupport-r18
                                                                  OPTIONAL    -- Cond SatPCV-Sup
  ]]
}


GNSS-TimeModelListSupport ::=   SEQUENCE {
  ...
}


GNSS-DifferentialCorrectionsSupport ::= SEQUENCE {
  gnssSignalIDs           GNSS-SignalIDs,
  dgnss-ValidityTimeSup   BOOLEAN,
  ...
}


GNSS-NavigationModelSupport ::= SEQUENCE {
  clockModel      BIT STRING {    model-1     (0),
                                  model-2     (1),
                                  model-3     (2),
                                  model-4     (3),
                                  model-5     (4),
                                  model-6     (5),
                                  model-7-r16 (6),
                                  model-8-r16 (7) } (SIZE (1..8))     OPTIONAL,
  orbitModel      BIT STRING {    model-1     (0),
                                  model-2     (1),
                                  model-3     (2),
                                  model-4     (3),
                                  model-5     (4),
                                  model-6     (5),
                                  model-7-r16 (6),
                                  model-8-r16 (7) } (SIZE (1..8))     OPTIONAL,
  ...
}


GNSS-RealTimeIntegritySupport ::=   SEQUENCE {
  ...
}


GNSS-DataBitAssistanceSupport ::=   SEQUENCE {
  ...
}


GNSS-AcquisitionAssistanceSupport ::=   SEQUENCE {
  ...,
  confidenceSupport-r10                   ENUMERATED { true }     OPTIONAL,
  dopplerUncertaintyExtSupport-r10        ENUMERATED { true }     OPTIONAL
}


GNSS-AlmanacSupport ::= SEQUENCE {
  almanacModel        BIT STRING {    model-1     (0),
                                      model-2     (1),
                                      model-3     (2),
                                      model-4     (3),
                                      model-5     (4),
                                      model-6     (5),
                                      model-7     (6) } (SIZE (1..8))     OPTIONAL,
  ...
}


GNSS-UTC-ModelSupport ::=   SEQUENCE {
  utc-Model       BIT STRING {    model-1     (0),
                                  model-2     (1),
                                  model-3     (2),
                                  model-4     (3),
                                  model-5     (4) } (SIZE (1..8))     OPTIONAL,
  ...
}


GNSS-AuxiliaryInformationSupport ::=    SEQUENCE {
  ...
}


BDS-DifferentialCorrectionsSupport-r12 ::=  SEQUENCE {
  gnssSignalIDs           GNSS-SignalIDs,
  ...
}


BDS-GridModelSupport-r12 ::=    SEQUENCE {
  ...
}


GNSS-RTK-ObservationsSupport-r15 ::=    SEQUENCE {
  gnssSignalIDs-r15           GNSS-SignalIDs,
  ...
}


GLO-RTK-BiasInformationSupport-r15 ::=  SEQUENCE {
  ...
}


GNSS-RTK-MAC-CorrectionDifferencesSupport-r15 ::=   SEQUENCE {
  link-combinations-support-r15       GNSS-Link-CombinationsList-r15,
  ...
}


GNSS-RTK-ResidualsSupport-r15 ::=   SEQUENCE {
  link-combinations-support-r15       GNSS-Link-CombinationsList-r15,
  ...
}


GNSS-RTK-FKP-GradientsSupport-r15 ::=   SEQUENCE {
  link-combinations-support-r15       GNSS-Link-CombinationsList-r15,
  ...
}


GNSS-SSR-OrbitCorrectionsSupport-r15 ::=    SEQUENCE {
  ...,
  [[
  orbit-IntegritySup-r17  BIT STRING {    correlationTimeSup      (0)
                                      } (SIZE(1..8))                                  OPTIONAL
  ]]
}


GNSS-SSR-ClockCorrectionsSupport-r15 ::=    SEQUENCE {
  ...,
  [[
  clock-IntegrityParameterSupport-r17     ENUMERATED { supported }            OPTIONAL,
  ssr-IntegrityClockBoundsSupport-r17     ENUMERATED { supported }            OPTIONAL
  ]]
}


GNSS-SSR-CodeBiasSupport-r15 ::= SEQUENCE {
  signal-and-tracking-mode-ID-Sup-r15     GNSS-SignalIDs,
  ...,
  [[
  ssr-IntegrityCodeBiasBoundsSup-r17      ENUMERATED { supported }            OPTIONAL
  ]]
}


GNSS-SSR-URA-Support-r16 ::= SEQUENCE {
  ...
}


GNSS-SSR-PhaseBiasSupport-r16 ::= SEQUENCE {
  signal-and-tracking-mode-ID-Sup-r16     GNSS-SignalIDs,
  ...,
  [[
  ssr-IntegrityPhaseBiasBoundsSup-r17     ENUMERATED { supported }            OPTIONAL
  ]]
}


GNSS-SSR-STEC-CorrectionSupport-r16 ::=     SEQUENCE {
  ...,
  [[
  stec-IntegritySup-r17   BIT STRING {    correlationTimeSup      (0)
                                      } (SIZE(1..8))                                  OPTIONAL
  ]]
}


GNSS-SSR-GriddedCorrectionSupport-r16 ::=   SEQUENCE {
  ...,
  [[
  griddedCorrectionIntegritySup-r17       ENUMERATED { supported }                    OPTIONAL
  ]]
}


NavIC-DifferentialCorrectionsSupport-r16 ::=    SEQUENCE {
  gnssSignalIDs-r16           GNSS-SignalIDs,
  ...
}


NavIC-GridModelSupport-r16 ::=  SEQUENCE {
  ...
}


GNSS-SSR-OrbitCorrectionsSet2Support-r17 ::=    SEQUENCE {
  ...
}


GNSS-SSR-ClockCorrectionsSet2Support-r17 ::=    SEQUENCE {
  ...
}


GNSS-SSR-URA-Set2Support-r17 ::= SEQUENCE {
  ...
}


GNSS-LOS-NLOS-GriddedIndicationsSupport-r18 ::= SEQUENCE {
  ...
}

GNSS-SSR-SatellitePCVResidualsSupport-r18 ::= SEQUENCE {
  ...
}


A-GNSS-RequestCapabilities ::= SEQUENCE {
  gnss-SupportListReq             BOOLEAN,
  assistanceDataSupportListReq    BOOLEAN,
  locationVelocityTypesReq        BOOLEAN,
  ...
}


A-GNSS-Error ::= CHOICE {
  locationServerErrorCauses       GNSS-LocationServerErrorCauses,
  targetDeviceErrorCauses         GNSS-TargetDeviceErrorCauses,
  ...
}


GNSS-LocationServerErrorCauses ::= SEQUENCE {
  cause       ENUMERATED  {
                  undefined,
                  undeliveredAssistanceDataIsNotSupportedByServer,
                  undeliveredAssistanceDataIsSupportedButCurrentlyNotAvailableByServer,                               undeliveredAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailableByServer,
                  ...,
              unconfirmedPeriodicAssistanceDataIsNotSupported-v1510,
              unconfirmedPeriodicAssistanceDataIsSupportedButCurrentlyNotAvailable-v1510,
              unconfirmedPeriodicAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailable-v1510,
              undeliveredPeriodicAssistanceDataIsCurrentlyNotAvailable-v1510
                  },
  ...
}


GNSS-TargetDeviceErrorCauses ::= SEQUENCE {
  cause       ENUMERATED {    undefined,
                              thereWereNotEnoughSatellitesReceived,
                              assistanceDataMissing,
                              notAllRequestedMeasurementsPossible,
                              ...
                          },
  fineTimeAssistanceMeasurementsNotPossible       NULL        OPTIONAL,
  adrMeasurementsNotPossible                      NULL        OPTIONAL,
  multiFrequencyMeasurementsNotPossible           NULL        OPTIONAL,
  ...,
  [[
  remoteUE-Indication-r18             ENUMERATED {true}       OPTIONAL    -- Cond NR
  ]]
}


GNSS-FrequencyID-r15    ::= SEQUENCE {
  gnss-FrequencyID-r15        INTEGER (0 .. 7),
  ...
}


GNSS-ID ::= SEQUENCE {
  gnss-id             ENUMERATED{ gps, sbas, qzss, galileo, glonass, ..., bds, navic-v1610 },
  ...
}


GNSS-ID-Bitmap ::= SEQUENCE {
  gnss-ids            BIT STRING {    gps         (0),
                                      sbas        (1),
                                      qzss        (2),
                                      galileo     (3),
                                      glonass     (4),
                                      bds         (5),
                                      navic-v1610 (6) } (SIZE (1..16)),
  ...
}


GNSS-Link-CombinationsList-r15 ::= SEQUENCE (SIZE(1..8)) OF GNSS-Link-Combinations-r15

GNSS-Link-Combinations-r15 ::= SEQUENCE {
  l1-r15      GNSS-FrequencyID-r15,
  l2-r15      GNSS-FrequencyID-r15,
  ...
}


GNSS-NavListInfo-r15 ::= SEQUENCE (SIZE (1..64)) OF SatListElement-r15

SatListElement-r15 ::= SEQUENCE {
  svID-r15        SV-ID,
  iod-r15         BIT STRING (SIZE(11)),
  ...
}


GNSS-NetworkID-r15 ::= SEQUENCE {
  networkID-r15                   INTEGER (0..255),
  ...
}


GNSS-PeriodicControlParam-r15 ::= SEQUENCE {
  deliveryAmount-r15          INTEGER (1..32),
  deliveryInterval-r15        INTEGER (1..64),
  ...
}


GNSS-ReferenceStationID-r15 ::= SEQUENCE {
  referenceStationID-r15          INTEGER (0..65535),
  providerName-r15                VisibleString (SIZE (1..32))        OPTIONAL, -- Need ON
  ...
}


GNSS-SignalID   ::= SEQUENCE {
  gnss-SignalID       INTEGER (0 .. 7),
  ...,
  [[
      gnss-SignalID-Ext-r15   INTEGER (8..23)         OPTIONAL    -- Need ON
  ]]
}


GNSS-SignalIDs  ::= SEQUENCE {
  gnss-SignalIDs      BIT STRING (SIZE(8)),
  ...,
  [[
      gnss-SignalIDs-Ext-r15  BIT STRING (SIZE(16))           OPTIONAL    -- Need ON
  ]]
}


GNSS-SubNetworkID-r15 ::= SEQUENCE {
  subNetworkID-r15                INTEGER (0..15),
  ...
}


SBAS-ID ::= SEQUENCE {
  sbas-id             ENUMERATED { waas, egnos, msas, gagan, ...},
  ...
}


SBAS-IDs ::= SEQUENCE {
  sbas-IDs        BIT STRING {    waas        (0),
                                  egnos       (1),
                                  msas        (2),
                                  gagan       (3) } (SIZE (1..8)),
  ...
}


SV-ID ::= SEQUENCE {
  satellite-id        INTEGER(0..63),
  ...
}


ECID-ProvideLocationInformation ::= SEQUENCE {
  ecid-SignalMeasurementInformation   ECID-SignalMeasurementInformation       OPTIONAL,
  ecid-Error                          ECID-Error                              OPTIONAL,
  ...
}


ECID-SignalMeasurementInformation ::= SEQUENCE {
  primaryCellMeasuredResults  MeasuredResultsElement  OPTIONAL,
  measuredResultsList         MeasuredResultsList,
  ...
}

MeasuredResultsList ::= SEQUENCE (SIZE(1..32)) OF MeasuredResultsElement

MeasuredResultsElement ::= SEQUENCE {
  physCellId                      INTEGER (0..503),
  cellGlobalId                    CellGlobalIdEUTRA-AndUTRA   OPTIONAL,
  arfcnEUTRA                      ARFCN-ValueEUTRA,
  systemFrameNumber               BIT STRING (SIZE (10))      OPTIONAL,
  rsrp-Result                     INTEGER (0..97)             OPTIONAL,
  rsrq-Result                     INTEGER (0..34)             OPTIONAL,
  ue-RxTxTimeDiff                 INTEGER (0..4095)           OPTIONAL,
  ...,
  [[  arfcnEUTRA-v9a0             ARFCN-ValueEUTRA-v9a0       OPTIONAL        -- Cond EARFCN-max
  ]],
  [[  nrsrp-Result-r14            INTEGER (0..113)            OPTIONAL,
      nrsrq-Result-r14            INTEGER (0..74)             OPTIONAL,
      carrierFreqOffsetNB-r14     CarrierFreqOffsetNB-r14     OPTIONAL,       -- Cond NB-IoT
                                                                                                      hyperSFN-r14                BIT STRING (SIZE (10))      OPTIONAL
  ]],
  [[
      rsrp-Result-v1470           INTEGER (-17..-1)           OPTIONAL,
      rsrq-Result-v1470           INTEGER (-30..46)           OPTIONAL
  ]]
}


ECID-RequestLocationInformation ::= SEQUENCE {
  requestedMeasurements       BIT STRING {    rsrpReq     (0),
                                              rsrqReq     (1),
                                              ueRxTxReq   (2),
                                              nrsrpReq-r14    (3),
                                              nrsrqReq-r14    (4)} (SIZE(1..8)),
  ...
}


ECID-ProvideCapabilities ::= SEQUENCE {
  ecid-MeasSupported  BIT STRING {    rsrpSup     (0),
                                      rsrqSup     (1),
                                      ueRxTxSup   (2),
                                      nrsrpSup-r14    (3),
                                      nrsrqSup-r14    (4)} (SIZE(1..8)),
  ...,
  [[  ueRxTxSupTDD-r13                    ENUMERATED { true }             OPTIONAL
  ]],
  [[  periodicalReporting-r14             ENUMERATED { supported }        OPTIONAL,
      triggeredReporting-r14              ENUMERATED { supported }        OPTIONAL,
      idleStateForMeasurements-r14        ENUMERATED { required }         OPTIONAL
  ]],
  [[  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupport-r17    OPTIONAL
  ]],
  [[ periodicReportingIntervalMsSupport-r18   PeriodicReportingIntervalMsSupport-r18      OPTIONAL
  ]]
}


ECID-RequestCapabilities ::= SEQUENCE {
  ...
}


ECID-Error ::= CHOICE {
  locationServerErrorCauses       ECID-LocationServerErrorCauses,
  targetDeviceErrorCauses         ECID-TargetDeviceErrorCauses,
  ...
}


ECID-LocationServerErrorCauses ::= SEQUENCE {
  cause       ENUMERATED  {   undefined,
                              ...
                          },
  ...
}


ECID-TargetDeviceErrorCauses ::= SEQUENCE {
  cause       ENUMERATED {    undefined,
                              requestedMeasurementNotAvailable,
                              notAllrequestedMeasurementsPossible,
                              ...
                          },
  rsrpMeasurementNotPossible              NULL        OPTIONAL,
  rsrqMeasurementNotPossible              NULL        OPTIONAL,
  ueRxTxMeasurementNotPossible            NULL        OPTIONAL,
  ...,
  [[
  nrsrpMeasurementNotPossible-r14     NULL        OPTIONAL,
  nrsrqMeasurementNotPossible-r14     NULL        OPTIONAL
  ]]
}


TBS-ProvideLocationInformation-r13 ::= SEQUENCE {
  tbs-MeasurementInformation-r13          TBS-MeasurementInformation-r13      OPTIONAL,
  tbs-Error-r13                           TBS-Error-r13                       OPTIONAL,
  ...
}


TBS-MeasurementInformation-r13 ::= SEQUENCE {
  measurementReferenceTime-r13    UTCTime                     OPTIONAL,
  mbs-SgnMeasList-r13             MBS-BeaconMeasList-r13      OPTIONAL,   -- Cond MBS
  ...
}


MBS-BeaconMeasList-r13 ::= SEQUENCE (SIZE(1..64)) OF MBS-BeaconMeasElement-r13

MBS-BeaconMeasElement-r13 ::= SEQUENCE {
  transmitterID-r13               INTEGER (0..32767),
  codePhase-r13                   INTEGER (0..2097151),
  codePhaseRMSError-r13           INTEGER (0..63),
  ...,
  [[ rssi-r14                     INTEGER (-130..-30)     OPTIONAL
  ]]
}


TBS-RequestLocationInformation-r13 ::= SEQUENCE {
  mbsSgnMeasListReq-r13               BOOLEAN,
  ...,
  [[  mbsAssistanceAvailability-r14   BOOLEAN                         OPTIONAL,   -- Need ON
      mbsRequestedMeasurements-r14    BIT STRING {
                                      rssi        (0)} (SIZE(1..8))   OPTIONAL    -- Need ON
  ]]
}


TBS-ProvideCapabilities-r13 ::= SEQUENCE {
  tbs-Modes-r13           BIT STRING {    standalone      (0),
                                          ue-assisted     (1),
                                          ue-based        (2)} (SIZE (1..8)),
  ...,
  [[  mbs-AssistanceDataSupportList-r14   MBS-AssistanceDataSupportList-r14       OPTIONAL,
      periodicalReportingSupported-r14    PositioningModes                        OPTIONAL,
      mbs-ConfigSupport-r14   BIT STRING {    tb1     (0),
                                              tb2     (1),
                                              tb3     (2),
                                              tb4     (3)} (SIZE (1..8))          OPTIONAL,
      mbs-IdleStateForMeasurements-r14        ENUMERATED { required }             OPTIONAL
  ]],
  [[  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
  ]],
  [[ periodicReportingIntervalMsSupport-r18   PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                      OPTIONAL
  ]]
}


MBS-AssistanceDataSupportList-r14 ::= SEQUENCE {
  mbs-AcquisitionAssistanceDataSupport-r14    BOOLEAN,
  mbs-AlmanacAssistanceDataSupport-r14        BOOLEAN,
  ...
}


TBS-RequestCapabilities-r13 ::= SEQUENCE {
  ...
}


TBS-Error-r13 ::= CHOICE {
  locationServerErrorCauses-r13       TBS-LocationServerErrorCauses-r13,
  targetDeviceErrorCauses-r13         TBS-TargetDeviceErrorCauses-r13,
  ...
}


TBS-LocationServerErrorCauses-r13 ::= SEQUENCE {
  cause-r13       ENUMERATED  {   undefined,
                                  ...,
                                  assistanceDataNotSupportedByServer-v1420,
                                  assistanceDataSupportedButCurrentlyNotAvailableByServer-v1420
                              },
  ...
}


TBS-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
  cause-r13       ENUMERATED {    undefined,
                                  thereWereNotEnoughMBSBeaconsReceived,
                                  ...,
                                  assistanceDataMissing-v1420
                              },
  ...
}


TBS-ProvideAssistanceData-r14 ::= SEQUENCE {
  tbs-AssistanceDataList-r14  TBS-AssistanceDataList-r14  OPTIONAL,   -- Need ON
  tbs-Error-r14               TBS-Error-r13               OPTIONAL,   -- Need ON
  ...
}


TBS-AssistanceDataList-r14 ::= SEQUENCE {
  mbs-AssistanceDataList-r14      MBS-AssistanceDataList-r14      OPTIONAL,   -- Need ON
  ...
}

MBS-AssistanceDataList-r14 ::= SEQUENCE (SIZE (1..maxMBS-r14)) OF MBS-AssistanceDataElement-r14

MBS-AssistanceDataElement-r14 ::= SEQUENCE {
  mbs-AlmanacAssistance-r14       MBS-AlmanacAssistance-r14           OPTIONAL,   -- Need ON
  mbs-AcquisitionAssistance-r14   MBS-AcquisitionAssistance-r14       OPTIONAL,   -- Need ON
  ...
}


MBS-AlmanacAssistance-r14 ::= SEQUENCE {
  transmitterID-r14           INTEGER (0..32767),
  transmitterLatitude-r14     BIT STRING (SIZE (26)),
  transmitterLongitude-r14    BIT STRING (SIZE (27)),
  transmitterAltitude-r14     BIT STRING (SIZE (15)),
  timeCorrection-r14          INTEGER (0..25)     OPTIONAL,   -- Need ON
  ...
}


MBS-AcquisitionAssistance-r14 ::= SEQUENCE {
  transmitterID-r14               INTEGER (0..32767)                      OPTIONAL,   -- Need ON
                                                                                                  mbsConfiguration-r14            ENUMERATED {tb1, tb2, tb3, tb4, ...}    OPTIONAL,   -- Need ON
                                                                                                  pnCodeIndex-r14                 INTEGER (1..128)                        OPTIONAL,   -- Need ON
                                                                                                  freq-r14                        INTEGER (919750000..927250000)          OPTIONAL,   -- Need ON
                                                                                                  ...
}


TBS-RequestAssistanceData-r14 ::= SEQUENCE {
  mbs-AlmanacAssistanceDataReq-r14        BOOLEAN,
  mbs-AcquisitionAssistanceDataReq-r14    BOOLEAN,
  ...
}


Sensor-ProvideLocationInformation-r13 ::= SEQUENCE {
  sensor-MeasurementInformation-r13       Sensor-MeasurementInformation-r13       OPTIONAL,
  sensor-Error-r13                        Sensor-Error-r13                        OPTIONAL,
  ...,
  [[
  sensor-MotionInformation-r15            Sensor-MotionInformation-r15            OPTIONAL
  ]]
}


Sensor-MeasurementInformation-r13 ::= SEQUENCE {
  measurementReferenceTime-r13        UTCTime                     OPTIONAL,
  uncompensatedBarometricPressure-r13 INTEGER (30000..115000)     OPTIONAL, -- Cond Barometer
  ...,
  [[
  uncertainty-r14                 SEQUENCE {
                                  range-r14       INTEGER (0..1000),
                                  confidence-r14  INTEGER (1..100)
                                  }                                   OPTIONAL
  ]],
  [[  adjustment-r16              INTEGER (-5000..5000)               OPTIONAL
  ]]
}


Sensor-MotionInformation-r15 ::= SEQUENCE {
  refTime-r15                 DisplacementTimeStamp-r15,
  displacementInfoList-r15    DisplacementInfoList-r15,
  ...
}

DisplacementInfoList-r15 ::= SEQUENCE (SIZE (1..128)) OF DisplacementInfoListElement-r15

DisplacementInfoListElement-r15 ::= SEQUENCE {
  deltaTimeStamp-r15          DeltaTime-r15,
  displacement-r15            Displacement-r15            OPTIONAL,
  ...
}

DisplacementTimeStamp-r15 ::= CHOICE {
  utcTime-r15                 UTC-Time-r15,
  gnssTime-r15                MeasurementReferenceTime,
  systemFrameNumber-r15       SFN-r15,
  measurementSFN-r15          INTEGER(-8192..9214),
  ...
}

DeltaTime-r15 ::= CHOICE {
  deltaTimeSec-r15            INTEGER (1..16384),
  deltaTimeSFN-r15            INTEGER (1..4096),
  ...
}

SFN-r15 ::= SEQUENCE {
  sfn-r15                     BIT STRING (SIZE (10)),
  hyperSFN-r15                BIT STRING (SIZE (10))      OPTIONAL,
  ...
}

Displacement-r15 ::= SEQUENCE {
  bearing-r15                 INTEGER (0..3599),
  bearingUncConfidence-r15    INTEGER (0..100)                OPTIONAL,
  bearingRef-r15              ENUMERATED { geographicNorth, magneticNorth, local },
  horizontalDistance-r15      INTEGER (0..8191),
  horizontalDistanceUnc-r15   INTEGER (0..255)                OPTIONAL,
  horizontalUncConfidence-r15 INTEGER (0..100)                OPTIONAL,
                                                                                                  verticalDirection-r15       ENUMERATED{upward, downward}    OPTIONAL,
                                                                                                  verticalDistance-r15        INTEGER(0..8191)                OPTIONAL,
  verticalDistanceUnc-r15     INTEGER (0..255)                OPTIONAL,
  verticalUncConfidence-r15   INTEGER (0..100)                OPTIONAL,
  ...
}

UTC-Time-r15 ::= SEQUENCE {
  utcTime-r15                 UTCTime,
  utcTime-ms-r15              INTEGER (0..999),
  ...
}


Sensor-RequestLocationInformation-r13 ::= SEQUENCE {
  uncompensatedBarometricPressureReq-r13      BOOLEAN,
  ...,
  [[  assistanceAvailability-r14              BOOLEAN     OPTIONAL    -- Need ON
  ]],
  [[  sensor-MotionInformationReq-r15         BOOLEAN     OPTIONAL    -- Need ON
  ]],
  [[  adjustmentReq-r16                       BOOLEAN     OPTIONAL    -- Need ON
  ]]
}


Sensor-ProvideCapabilities-r13 ::= SEQUENCE {
  sensor-Modes-r13            BIT STRING {    standalone  (0),
                                              ue-assisted (1),
                                              ue-based    (2)} (SIZE (1..8)),
  ...,
  [[  sensor-AssistanceDataSupportList-r14    Sensor-AssistanceDataSupportList-r14    OPTIONAL,
      periodicalReportingSupported-r14        PositioningModes                        OPTIONAL,
      idleStateForMeasurements-r14            ENUMERATED { required }                 OPTIONAL
  ]],
  [[  sensor-MotionInformationSup-r15         ENUMERATED { true }                     OPTIONAL
  ]],
  [[  adjustmentSupported-r16                 ENUMERATED  { true }                    OPTIONAL
  ]],
  [[  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
  ]],
  [[ periodicReportingIntervalMsSupport-r18   PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                      OPTIONAL
  ]]
}

Sensor-AssistanceDataSupportList-r14 ::= SEQUENCE {
  ...,
  [[  validityPeriodSupported-v1520           ENUMERATED { true }     OPTIONAL,
      validityAreaSupported-v1520             ENUMERATED { true }     OPTIONAL
  ]]
}


Sensor-RequestCapabilities-r13 ::= SEQUENCE {
  ...
}


Sensor-Error-r13 ::= CHOICE {
  locationServerErrorCauses-r13       Sensor-LocationServerErrorCauses-r13,
  targetDeviceErrorCauses-r13         Sensor-TargetDeviceErrorCauses-r13,
  ...
}


Sensor-LocationServerErrorCauses-r13 ::= SEQUENCE {
  cause-r13       ENUMERATED  {   undefined,
                                  ...,
                                  assistanceDataNotSupportedByServer-v1420,
                                  assistanceDataSupportedButCurrentlyNotAvailableByServer-v1420
                                  },
  ...
}


Sensor-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
  cause-r13           ENUMERATED      {   undefined,
                                          ...,
                                          assistanceDataMissing-v1420
                                      },
  ...
}


Sensor-ProvideAssistanceData-r14 ::= SEQUENCE {
  sensor-AssistanceDataList-r14       Sensor-AssistanceDataList-r14       OPTIONAL,   -- Need ON
  sensor-Error-r14                    Sensor-Error-r13                    OPTIONAL,   -- Need ON
  ...
}


Sensor-AssistanceDataList-r14::= SEQUENCE {
  refPressure-r14     INTEGER (-20000..10000),
  refPosition-r14     EllipsoidPointWithAltitudeAndUncertaintyEllipsoid   OPTIONAL,   -- Need ON
  refTemperature-r14  INTEGER (-64..63)                                   OPTIONAL,   -- Need ON
  ...,
  [[
  period-v1520        SEQUENCE {
      pressureValidityPeriod-v1520    PressureValidityPeriod-v1520,
      referencePressureRate-v1520     INTEGER (-128..127)                 OPTIONAL,   -- Need ON
      ...
  }                                                                       OPTIONAL,   -- Need ON
  area-v1520          SEQUENCE {
      pressureValidityArea-v1520      PressureValidityArea-v1520,
      gN-pressure-v1520               INTEGER (-1024..1023)               OPTIONAL,   -- Need ON
      gE-pressure-v1520               INTEGER (-1024..1023)               OPTIONAL,   -- Need ON
      ...
  }                                                                       OPTIONAL    -- Need ON
  ]]
}

PressureValidityArea-v1520 ::= SEQUENCE {
  centerPoint-v1520               Ellipsoid-Point,
  validityAreaWidth-v1520         INTEGER (1..128),
  validityAreaHeight-v1520        INTEGER (1..128),
  ...
}

PressureValidityPeriod-v1520 ::= SEQUENCE {
  beginTime-v1520                 GNSS-SystemTime,
  beginTimeAlt-v1520              INTEGER (0..2881)                       OPTIONAL,   -- Need ON
  duration-v1520                  INTEGER (1..2881),
  ...
}


Sensor-RequestAssistanceData-r14 ::= SEQUENCE {
  ...
}


WLAN-ProvideLocationInformation-r13 ::= SEQUENCE {
  wlan-MeasurementInformation-r13     WLAN-MeasurementInformation-r13     OPTIONAL,
  wlan-Error-r13                      WLAN-Error-r13                      OPTIONAL,
  ...
}


WLAN-MeasurementInformation-r13 ::= SEQUENCE {
  measurementReferenceTime-r13        UTCTime                     OPTIONAL,
  wlan-MeasurementList-r13            WLAN-MeasurementList-r13    OPTIONAL,
  ...
}

WLAN-MeasurementList-r13 ::= SEQUENCE (SIZE(1..maxWLAN-AP-r13)) OF WLAN-MeasurementElement-r13

WLAN-MeasurementElement-r13 ::= SEQUENCE {
  wlan-AP-Identifier-r13      WLAN-AP-Identifier-r13,
  rssi-r13                    INTEGER (-127..128)                 OPTIONAL,
  rtt-r13                     WLAN-RTT-r13                        OPTIONAL,
  apChannelFrequency-r13      INTEGER (0..256)                    OPTIONAL,
  servingFlag-r13             BOOLEAN                             OPTIONAL,
  ...
}

WLAN-AP-Identifier-r13 ::= SEQUENCE {
  bssid-r13                   OCTET STRING (SIZE (6)),
  ssid-r13                    OCTET STRING (SIZE (1..32))         OPTIONAL,
  ...
}

WLAN-RTT-r13 ::= SEQUENCE {
  rttValue-r13    INTEGER (0..16777215),
  rttUnits-r13    ENUMERATED {    microseconds,
                                  hundredsofnanoseconds,
                                  tensofnanoseconds,
                                  nanoseconds,
                                  tenthsofnanoseconds,
                                  ... },
  rttAccuracy-r13 INTEGER (0..255)                                OPTIONAL,
  ...
}


WLAN-RequestLocationInformation-r13 ::= SEQUENCE {
  requestedMeasurements-r13   BIT STRING {
                                          rssi        (0),
                                          rtt         (1)} (SIZE(1..8)),
  ...,
  [[  assistanceAvailability-r14  BOOLEAN         OPTIONAL    -- Need ON
  ]]
}


WLAN-ProvideCapabilities-r13 ::= SEQUENCE {
  wlan-Modes-r13          BIT STRING  {   standalone      (0),
                                          ue-assisted     (1),
                                          ue-based        (2)}    (SIZE (1..8)),
  wlan-MeasSupported-r13  BIT STRING  {
                                          rssi-r13        (0),
                                          rtt-r13         (1)}    (SIZE(1..8)),
  ... ,
  [[  wlan-AP-AD-Supported-r14
                          BIT STRING {    ap-identifier   (0),
                                          ap-location     (1)}    (SIZE (1..8))
                                                                                  OPTIONAL,
      periodicalReportingSupported-r14    PositioningModes                        OPTIONAL,
      idleStateForMeasurements-r14
                          ENUMERATED {    required    }                           OPTIONAL
  ]],
  [[  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
  ]],
  [[ periodicReportingIntervalMsSupport-r18   PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                      OPTIONAL
  ]]
}


WLAN-RequestCapabilities-r13 ::= SEQUENCE {
  ...
}


WLAN-Error-r13 ::= CHOICE {
  locationServerErrorCauses-r13       WLAN-LocationServerErrorCauses-r13,
  targetDeviceErrorCauses-r13         WLAN-TargetDeviceErrorCauses-r13,
  ...
}


WLAN-LocationServerErrorCauses-r13 ::= SEQUENCE {
  cause-r13                               ENUMERATED  {undefined,
                                                      ...,
                                                      requestedADNotAvailable-v1420,
                                                      notAllrequestedADAvailable-v1420
                                                      },
  ...,
  [[  apLocationDataUnavailable-r14       NULL    OPTIONAL        -- Need ON
  ]]
}


WLAN-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
  cause-r13                               ENUMERATED {undefined,
                                                      requestedMeasurementsNotAvailable,
                                                      notAllrequestedMeasurementsPossible,
                                                      ...
                                                      },
  wlan-AP-RSSI-MeasurementNotPossible-r13             NULL        OPTIONAL,
  wlan-AP-RTT-MeasurementNotPossible-r13              NULL        OPTIONAL,
  ...
}


WLAN-ProvideAssistanceData-r14 ::= SEQUENCE {
  wlan-DataSet-r14    SEQUENCE (SIZE (1..maxWLAN-DataSets-r14)) OF WLAN-DataSet-r14
                                                                          OPTIONAL,   -- Need ON
  wlan-Error-r14      WLAN-Error-r13                                      OPTIONAL,   -- Need ON
  ...
}


WLAN-DataSet-r14 ::= SEQUENCE {
  wlan-AP-List-r14                SEQUENCE (SIZE (1..maxWLAN-AP-r14)) OF WLAN-AP-Data-r14,
  supportedChannels-11a-r14       SupportedChannels-11a-r14       OPTIONAL,   -- Need ON
  supportedChannels-11bg-r14      SupportedChannels-11bg-r14      OPTIONAL,   -- Need ON
  ...
}

SupportedChannels-11a-r14 ::= SEQUENCE {
  ch34-r14        BOOLEAN,
  ch36-r14        BOOLEAN,
  ch38-r14        BOOLEAN,
  ch40-r14        BOOLEAN,
  ch42-r14        BOOLEAN,
  ch44-r14        BOOLEAN,
  ch46-r14        BOOLEAN,
  ch48-r14        BOOLEAN,
  ch52-r14        BOOLEAN,
  ch56-r14        BOOLEAN,
  ch60-r14        BOOLEAN,
  ch64-r14        BOOLEAN,
  ch149-r14       BOOLEAN,
  ch153-r14       BOOLEAN,
  ch157-r14       BOOLEAN,
  ch161-r14       BOOLEAN
}

SupportedChannels-11bg-r14 ::= SEQUENCE {
  ch1-r14         BOOLEAN,
  ch2-r14         BOOLEAN,
  ch3-r14         BOOLEAN,
  ch4-r14         BOOLEAN,
  ch5-r14         BOOLEAN,
  ch6-r14         BOOLEAN,
  ch7-r14         BOOLEAN,
  ch8-r14         BOOLEAN,
  ch9-r14         BOOLEAN,
  ch10-r14        BOOLEAN,
  ch11-r14        BOOLEAN,
  ch12-r14        BOOLEAN,
  ch13-r14        BOOLEAN,
  ch14-r14        BOOLEAN
}


WLAN-AP-Data-r14 ::= SEQUENCE {
  wlan-AP-Identifier-r14              WLAN-AP-Identifier-r13,
  wlan-AP-Location-r14                WLAN-AP-Location-r14        OPTIONAL,   -- Need ON
  ...
}

WLAN-AP-Location-r14 ::= SEQUENCE {
  locationDataLCI-r14                 LocationDataLCI-r14,
  ...
}

LocationDataLCI-r14 ::= SEQUENCE {
  latitudeUncertainty-r14             BIT STRING (SIZE (6)),
  latitude-r14                        BIT STRING (SIZE (34)),
  longitudeUncertainty-r14            BIT STRING (SIZE (6)),
  longitude-r14                       BIT STRING (SIZE (34)),
  altitudeUncertainty-r14             BIT STRING (SIZE (6))       OPTIONAL,   -- Need ON
  altitude-r14                        BIT STRING (SIZE (30))      OPTIONAL,   -- Need ON
  datum-r14                           BIT STRING (SIZE (8)),
  ...
}


WLAN-RequestAssistanceData-r14 ::= SEQUENCE {
  requestedAD-r14         BIT STRING {    ap-identifier       (0),
                                          ap-location         (1)}    (SIZE (1..8)),
  visibleAPs-r14          SEQUENCE (SIZE (1..maxVisibleAPs-r14)) OF WLAN-AP-Identifier-r13    OPTIONAL,
  wlan-AP-StoredData-r14  SEQUENCE (SIZE (1..maxKnownAPs-r14)) OF WLAN-AP-Identifier-r13  OPTIONAL,
  ...
}


BT-ProvideLocationInformation-r13 ::= SEQUENCE {
  bt-MeasurementInformation-r13       BT-MeasurementInformation-r13   OPTIONAL,
  bt-Error-r13                        BT-Error-r13                    OPTIONAL,
  ...,
  [[
  bt-AoA-Config-r18                   BT-AoA-Config-r18               OPTIONAL
  ]]
}

BT-AoA-Config-r18 ::= SEQUENCE {
  bt-Addr-r18             BIT STRING (SIZE (48)),
  cte-Status-r18          ENUMERATED { enabled }          OPTIONAL,
  primaryAdvInterval-r18  INTEGER (32..16777)             OPTIONAL,
  secondAdvInterval-r18   INTEGER (6..65535)              OPTIONAL,
  tx-Power-r18            INTEGER (-127..20)              OPTIONAL,
  cte-Length-r18          INTEGER (2..20)                 OPTIONAL,
  cte-Count-r18           INTEGER (1..16)                 OPTIONAL,
  tx-PHY-M2-r18           ENUMERATED { m2 }               OPTIONAL,
  ...
}


BT-MeasurementInformation-r13 ::= SEQUENCE {
  measurementReferenceTime-r13        UTCTime                     OPTIONAL,
  bt-MeasurementList-r13              BT-MeasurementList-r13      OPTIONAL,
  ...,
  [[
  bt-MeasurementList-r18              BT-MeasurementList-r18      OPTIONAL
  ]]
}

BT-MeasurementList-r13 ::= SEQUENCE (SIZE(1..maxBT-Beacon-r13)) OF BT-MeasurementElement-r13

BT-MeasurementElement-r13 ::= SEQUENCE {
  btAddr-r13                      BIT STRING (SIZE (48)),
  rssi-r13                        INTEGER (-128..127)             OPTIONAL,
  ...
}

BT-MeasurementList-r18 ::= SEQUENCE (SIZE(1..maxBT-Beacon-r13)) OF BT-MeasurementElement-r18

BT-MeasurementElement-r18 ::= SEQUENCE {
  btAddr-r18                      BIT STRING (SIZE (48)),
  bt-azimuth-r18                  INTEGER (0..359),
  bt-elevation-r18                INTEGER (0..180)                OPTIONAL,
  rssi-r18                        INTEGER (-128..127)             OPTIONAL,
  ...
}


BT-RequestLocationInformation-r13 ::= SEQUENCE {
  requestedMeasurements-r13   BIT STRING {
                                          rssi        (0),
                                          aod-v1800   (1)} (SIZE(1..8)),
  ...,
  [[
  bt-requestedAoA-Config-r18      BIT STRING {
                                          aoa-advConfig (0),
                                          aoa-cteConfig (1)} (SIZE(1..8)) OPTIONAL,   -- Need ON
  bt-suggestedAoA-Config-r18      BT-SuggestedAoA-Config-r18              OPTIONAL    -- Need ON
  ]]
}

BT-SuggestedAoA-Config-r18 ::= SEQUENCE {
  cte-Status-r18                  ENUMERATED {enabled, disabled}  OPTIONAL,   -- Need ON
  primaryAdvInterval-r18          INTEGER (32..16777)             OPTIONAL,   -- Need ON
  secondAdvInterval-r18           INTEGER (6..65535)              OPTIONAL,   -- Need ON
  tx-Power-r18                    INTEGER (-127..20)              OPTIONAL,   -- Need ON
  cte-Length-r18                  INTEGER (2..20)                 OPTIONAL,   -- Need ON
  cte-Count-r18                   INTEGER (1..16)                 OPTIONAL,   -- Need ON
  tx-PHY-M2-r18                   ENUMERATED { m2 }               OPTIONAL,   -- Need OP
  ...
}


BT-ProvideCapabilities-r13 ::= SEQUENCE {
  bt-Modes-r13            BIT STRING {    standalone      (0),
                                          ue-assisted     (1),
                                          ue-based-v1810  (2)}    (SIZE (1..8)),
  bt-MeasSupported-r13    BIT STRING {    rssi-r13        (0),
                                          aod-v1800       (1)}    (SIZE (1..8)),
  ...,
  [[
  idleStateForMeasurements-r14
                          ENUMERATED {    required    }                           OPTIONAL,
  periodicalReportingSupported-r14
                          PositioningModes                                        OPTIONAL
  ]],
  [[  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17     OPTIONAL
  ]],
  [[  bt-AoA-r18                              ENUMERATED { request-only, suggestion } OPTIONAL,
      periodicReportingIntervalMsSupport-r18  PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                          OPTIONAL
  ]]
}


BT-RequestCapabilities-r13 ::= SEQUENCE {
  ...
}


BT-Error-r13 ::= CHOICE {
  locationServerErrorCauses-r13       BT-LocationServerErrorCauses-r13,
  targetDeviceErrorCauses-r13         BT-TargetDeviceErrorCauses-r13,
  ...
}


BT-LocationServerErrorCauses-r13 ::= SEQUENCE {
  cause-r13       ENUMERATED  {undefined, ...,
                              assistanceDataNotSupportedByServer-v1810,
                              assistanceDataSupportedButCurrentlyNotAvailableByServer-v1810,
                              notAllrequestedAssistanceDataAvailableByServer-v1810
                              },
  ...
}


BT-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
  cause-r13                               ENUMERATED {undefined,
                                                      requestedMeasurementsNotAvailable,
                                                      notAllrequestedMeasurementsPossible,
                                                      ...,
                                                      assistanceDataMissing-v1810
                                                      },
  bt-Beacon-rssiMeasurementNotPossible-r13    NULL        OPTIONAL,
  ...
}


BT-ProvideAssistanceData-r18 ::= SEQUENCE {
  bt-BeaconInfo-r18                   BT-BeaconInfo-r18,
  bt-Error-r18                        BT-Error-r13                    OPTIONAL,   -- Need ON
  ...
}


BT-BeaconInfo-r18 ::= SEQUENCE {
  referencePoint-r18                  ReferencePoint-r16,
  bt-BeaconInfoList-r18               SEQUENCE (SIZE (1..maxBT-BeaconAD-r18)) OF
                                                                      BT-BeaconInfoElement-r18,
  ...
}

BT-BeaconInfoElement-r18 ::= SEQUENCE {
  bt-Addr-r18                         BIT STRING (SIZE (48)),
  bt-BeaconLocation-r18               RelativeLocation-r16    OPTIONAL,   -- Need OP
  bt-LCS-GCS-TranslationParameter-r18 LCS-GCS-TranslationParameter-r16
                                                              OPTIONAL,   -- Cond NotSameAsPrev1
  bt-antArrayConfig-r18               BT-AntArrayConfig-r18   OPTIONAL,   -- Cond NotSameAsPrev2
  bt-antElementList-r18       SEQUENCE (SIZE (2..maxBT-BeaconAntElt-r18)) OF
                                      BT-AntElement-r18       OPTIONAL,   -- Cond NotSameAsPrev3
  bt-antSwitchingPattern-r18  SEQUENCE (SIZE (2..maxBT-BeaconAntElt-r18)) OF
                                      BT-AntSwitchElement-r18 OPTIONAL,   -- Cond NotSameAsPrev4
  bt-AoD-TransmConfig-r18             BT-AoD-TransmConfig-r18 OPTIONAL,   -- Cond NotSameAsPrev5
  ...
}

BT-AntArrayConfig-r18 ::= CHOICE {
  bt-UniformLinearArray-r18           BT-UniformLinearArray-r18,
  bt-UniformRectangularArray-r18      BT-UniformRectangularArray-r18,
  bt-UniformCircularArray-r18         BT-UniformCircularArray-r18,
  bt-GenericArray-r18                 BT-GenericArray-r18
}

BT-AntElement-r18 ::= SEQUENCE {
  polarization-r18                ENUMERATED {m45, zero, p45, p90, circ},
  ...
}

BT-AntSwitchElement-r18 ::= SEQUENCE {
  antElementIndexShort-r18        INTEGER (1..16),
  antElementIndexOffset-r18       ENUMERATED {o16, o32, o48, o64}     OPTIONAL,   -- Need OP
  ...
}

BT-AoD-TransmConfig-r18 ::= SEQUENCE {
  primaryAdvInterval-r18      INTEGER (32..16777),
  secondAdvInterval-r18       INTEGER (6..65535),
  cte-Length-r18              INTEGER (2..20),
  cte-Count-r18               INTEGER (1..16),
  cte-Type2us-r18             ENUMERATED { true }                 OPTIONAL,   -- Need OP
  tx-PHY-M2-r18               ENUMERATED { true }                 OPTIONAL,   -- Need OP
  ...
}


BT-UniformLinearArray-r18 ::= SEQUENCE {
  bt-NoElements-r18               INTEGER (2..maxBT-BeaconAntElt-r18),
  bt-InterElementDist-r18         INTEGER (30..130)
}


BT-UniformRectangularArray-r18 ::= SEQUENCE {
  bt-NoElementsY-r18              INTEGER (1..maxBT-BeaconAntElt-r18),
  bt-NoElementsZ-r18              INTEGER (1..maxBT-BeaconAntElt-r18),
  bt-InterElementDistY-r18        INTEGER (30..135),
  bt-InterElementDistZ-r18        INTEGER (30..135)
}


BT-UniformCircularArray-r18 ::= SEQUENCE {
  bt-NoElements-r18               INTEGER (2..maxBT-BeaconAntElt-r18),
  bt-InterElementDist-r18         INTEGER (30..130)
}


BT-GenericArray-r18 ::= SEQUENCE (SIZE (2..maxBT-BeaconAntElt-r18)) OF BT-ULA-GenericAntElement-r18

BT-ULA-GenericAntElement-r18 ::= SEQUENCE {
  deltaY-r18                      INTEGER (-135..135)         OPTIONAL,   -- Need OP
  deltaX-r18                      INTEGER (-135..135)         OPTIONAL,   -- Need OP
  deltaZ-r18                      INTEGER (-135..135)         OPTIONAL    -- Need OP
}


BT-RequestAssistanceData-r18 ::= SEQUENCE {
  requestedAD-r18         BIT STRING {
                                      beacon-location     (0),
                                      beacon-antConfig    (1),
                                      beacon-transmConfig (2) }   (SIZE (1..8)),
  ...
}


NR-UL-ProvideCapabilities-r16 ::= SEQUENCE {
  nr-UL-SRS-Capability-r16        NR-UL-SRS-Capability-r16,
  ...,
  [[
  nr-UE-TEG-Capability-r17        NR-UE-TEG-Capability-r17                    OPTIONAL
  ]]
}


NR-UL-RequestCapabilities-r16 ::= SEQUENCE {
  ...
}

NR-ECID-ProvideLocationInformation-r16 ::= SEQUENCE {
  nr-ECID-SignalMeasurementInformation-r16    NR-ECID-SignalMeasurementInformation-r16 OPTIONAL,
  nr-ECID-Error-r16                           NR-ECID-Error-r16                       OPTIONAL,
  ...
}


NR-ECID-SignalMeasurementInformation-r16 ::= SEQUENCE {
  nr-PrimaryCellMeasuredResults-r16   NR-MeasuredResultsElement-r16,
  nr-MeasuredResultsList-r16          NR-MeasuredResultsList-r16              OPTIONAL,
  ...
}

NR-MeasuredResultsList-r16 ::= SEQUENCE (SIZE(1..32)) OF NR-MeasuredResultsElement-r16

NR-MeasuredResultsElement-r16 ::= SEQUENCE {
  nr-PhysCellID-r16               NR-PhysCellID-r16,
  nr-ARFCN-r16                    CHOICE {
      ssb-ARFCN-r16                   ARFCN-ValueNR-r15,
      csi-RS-pointA-r16               ARFCN-ValueNR-r15
  },
  nr-CellGlobalID-r16             NCGI-r15                                    OPTIONAL,
  systemFrameNumber-r16           BIT STRING (SIZE (10))                      OPTIONAL,   resultsSSB-Cell-r16             MeasQuantityResults-r16                     OPTIONAL,
  resultsCSI-RS-Cell-r16          MeasQuantityResults-r16                     OPTIONAL,
  resultsSSB-Indexes-r16          ResultsPerSSB-IndexList-r16                 OPTIONAL,
  resultsCSI-RS-Indexes-r16       ResultsPerCSI-RS-IndexList-r16              OPTIONAL,
  ...
}

MeasQuantityResults-r16 ::= SEQUENCE {
  nr-RSRP-r16                     INTEGER (0..127)                            OPTIONAL,
  nr-RSRQ-r16                     INTEGER (0..127)                            OPTIONAL
}

ResultsPerSSB-IndexList-r16::= SEQUENCE (SIZE (1..64)) OF ResultsPerSSB-Index-r16

ResultsPerSSB-Index-r16 ::= SEQUENCE {
  ssb-Index-r16                   INTEGER (0..63),
  ssb-Results-r16                 MeasQuantityResults-r16
}

ResultsPerCSI-RS-IndexList-r16::= SEQUENCE (SIZE (1..64)) OF ResultsPerCSI-RS-Index-r16

ResultsPerCSI-RS-Index-r16 ::= SEQUENCE {
  csi-RS-Index-r16                INTEGER (0..95),
  csi-RS-Results-r16              MeasQuantityResults-r16
}


NR-ECID-RequestLocationInformation-r16 ::= SEQUENCE {
  requestedMeasurements-r16       BIT STRING {    ssrsrpReq       (0),
                                                  ssrsrqReq       (1),
                                                  csirsrpReq      (2),
                                                  csirsrqReq      (3)} (SIZE(1..8)),
  ...
}


NR-ECID-ProvideCapabilities-r16 ::= SEQUENCE {
  nr-ECID-MeasSupported-r16       BIT STRING {    ssrsrpSup       (0),
                                                  ssrsrqSup       (1),
                                                  csirsrpSup      (2),
                                                  csirsrqSup      (3)} (SIZE(1..8)),
  periodicalReporting-r16     ENUMERATED { supported }                            OPTIONAL,
  triggeredReporting-r16      ENUMERATED { supported }                            OPTIONAL,
  ...,
  [[
      ten-ms-unit-ResponseTime-r17        ENUMERATED { supported }                OPTIONAL,
      scheduledLocationRequestSupported-r17
                                          ScheduledLocationTimeSupport-r17        OPTIONAL
  ]],
  [[ periodicReportingIntervalMsSupport-r18   PeriodicReportingIntervalMsSupport-r18      OPTIONAL
  ]]
}


NR-ECID-RequestCapabilities-r16 ::= SEQUENCE {
  ...
}


NR-ECID-Error-r16 ::= CHOICE {
  locationServerErrorCauses-r16       NR-ECID-LocationServerErrorCauses-r16,
  targetDeviceErrorCauses-r16         NR-ECID-TargetDeviceErrorCauses-r16,
  ...
}


NR-ECID-LocationServerErrorCauses-r16 ::= SEQUENCE {
  cause-r16       ENUMERATED  {   undefined,
                                  ...
                              },
  ...
}


NR-ECID-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
  cause-r16       ENUMERATED {    undefined,
                                  requestedMeasurementNotAvailable,
                                  notAllrequestedMeasurementsPossible,
                                  ...
                              },
  ss-RSRPMeasurementNotPossible-r16               NULL        OPTIONAL,
  ss-RSRQMeasurementNotPossible-r16               NULL        OPTIONAL,
  csi-RSRPMeasurementNotPossible-r16              NULL        OPTIONAL,
  csi-RSRQMeasurementNotPossible-r16              NULL        OPTIONAL,
  ...,
  [[
  remoteUE-Indication-r18         ENUMERATED {true}           OPTIONAL    -- Cond NR
  ]]
}


NR-DL-TDOA-ProvideAssistanceData-r16 ::= SEQUENCE {
  nr-DL-PRS-AssistanceData-r16        NR-DL-PRS-AssistanceData-r16        OPTIONAL,   -- Need ON
  nr-SelectedDL-PRS-IndexList-r16     NR-SelectedDL-PRS-IndexList-r16     OPTIONAL,   -- Need ON
  nr-PositionCalculationAssistance-r16
                                      NR-PositionCalculationAssistance-r16
                                                                          OPTIONAL,   -- Cond UEB
  nr-DL-TDOA-Error-r16                NR-DL-TDOA-Error-r16                OPTIONAL,   -- Need ON
  ...,
  [[
      nr-On-Demand-DL-PRS-Configurations-r17
                                      NR-On-Demand-DL-PRS-Configurations-r17
                                                                          OPTIONAL,   -- Need ON
      nr-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
                                      NR-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17                                                                               OPTIONAL,   -- Need ON
      assistanceDataValidityArea-r17  AreaID-CellList-r17                 OPTIONAL    -- Need ON
  ]],
  [[
      nr-PeriodicAssistData-r18       NR-PeriodicAssistData-r18       OPTIONAL    -- Cond CtrTrans
  ]]
}


NR-DL-TDOA-RequestAssistanceData-r16 ::= SEQUENCE {
  nr-PhysCellID-r16               NR-PhysCellID-r16                           OPTIONAL,
  nr-AdType-r16                   BIT STRING {    dl-prs  (0),
                                                  posCalc (1) } (SIZE (1..8)),
  ...,
  [[
  nr-PosCalcAssistanceRequest-r17 BIT STRING {    trpLoc      (0),
                                                  beamInfo    (1),
                                                  rtdInfo     (2),
                                                  losNlosInfo (3),
                                                  trpTEG-Info (4),
                                                  nr-IntegrityBounds-r18 (5),
                                                  pruInfo-r18 (6)
                                              }   (SIZE (1..8))               OPTIONAL,
  nr-on-demand-DL-PRS-Request-r17 NR-On-Demand-DL-PRS-Request-r17             OPTIONAL,
  nr-DL-PRS-ExpectedAoD-or-AoA-Request-r17
                                  ENUMERATED { eAoD, eAoA }                   OPTIONAL,
  pre-configured-AssistanceDataRequest-r17
                                  ENUMERATED { true }                         OPTIONAL
  ]],
  [[
  nr-PeriodicAssistDataReq-r18            NR-PeriodicAssistDataReq-r18    OPTIONAL, -- Cond PerADReq
  nr-IntegrityAssistanceRequest-r18   BIT STRING {
                                                  serviceParameters       (0),
                                                  serviceAlert            (1),
                                                  riskParameters          (2),
                                                  integrityParaTRP-Loc    (3),
                                                  integrityParaBeamInfo   (4),
                                                  integrityParaRTD-Info   (5)
                                                  } (SIZE (1..8))             OPTIONAL
  ]]
}


NR-DL-TDOA-ProvideLocationInformation-r16 ::= SEQUENCE {
  nr-DL-TDOA-SignalMeasurementInformation-r16
                                          NR-DL-TDOA-SignalMeasurementInformation-r16
                                                                          OPTIONAL,
  nr-dl-tdoa-LocationInformation-r16      NR-DL-TDOA-LocationInformation-r16
                                                                          OPTIONAL,
  nr-DL-TDOA-Error-r16                    NR-DL-TDOA-Error-r16            OPTIONAL,
  ...,
  [[
  nr-DL-TDOA-SignalMeasurementInstances-r17
                                          SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
                                              NR-DL-TDOA-SignalMeasurementInformation-r16
                                                                  OPTIONAL,   -- Cond batchUEA
  nr-DL-TDOA-LocationInformationInstances-r17
                                          SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
                                              NR-DL-TDOA-LocationInformation-r16
                                                                  OPTIONAL    -- Cond batchUEB
  ]]
}


NR-DL-TDOA-SignalMeasurementInformation-r16 ::= SEQUENCE {
  dl-PRS-ReferenceInfo-r16        DL-PRS-ID-Info-r16,
  nr-DL-TDOA-MeasList-r16         NR-DL-TDOA-MeasList-r16,
  ...,
  [[
  nr-UE-RxTEG-TimingErrorMargin-r17   TEG-TimingErrorMargin-r17       OPTIONAL    -- Cond UERxTEG
  ]]
}

NR-DL-TDOA-MeasList-r16 ::= SEQUENCE (SIZE(1..nrMaxTRPs-r16)) OF NR-DL-TDOA-MeasElement-r16

NR-DL-TDOA-MeasElement-r16 ::= SEQUENCE {
  dl-PRS-ID-r16                   INTEGER (0..255),
  nr-PhysCellID-r16               NR-PhysCellID-r16                               OPTIONAL,
  nr-CellGlobalID-r16             NCGI-r15                                        OPTIONAL,
  nr-ARFCN-r16                    ARFCN-ValueNR-r15                               OPTIONAL,
  nr-DL-PRS-ResourceID-r16        NR-DL-PRS-ResourceID-r16                        OPTIONAL,
  nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16                     OPTIONAL,
  nr-TimeStamp-r16                NR-TimeStamp-r16,
  nr-RSTD-r16                     CHOICE {
          k0-r16                      INTEGER (0..1970049),
          k1-r16                      INTEGER (0..985025),
          k2-r16                      INTEGER (0..492513),
          k3-r16                      INTEGER (0..246257),
          k4-r16                      INTEGER (0..123129),
          k5-r16                      INTEGER (0..61565),
          ...,
          kMinus6-r18                 INTEGER (0..126083073),
          kMinus5-r18                 INTEGER (0..63041537),
          kMinus4-r18                 INTEGER (0..31520769),
          kMinus3-r18                 INTEGER (0..15760385),
          kMinus2-r18                 INTEGER (0..7880193),
          kMinus1-r18                 INTEGER (0..3940097)
  },
  nr-AdditionalPathList-r16       NR-AdditionalPathList-r16                       OPTIONAL,
  nr-TimingQuality-r16            NR-TimingQuality-r16,
  nr-DL-PRS-RSRP-Result-r16       INTEGER (0..126)                                OPTIONAL,
  nr-DL-TDOA-AdditionalMeasurements-r16
                                  NR-DL-TDOA-AdditionalMeasurements-r16           OPTIONAL,
  ...,
  [[
  nr-UE-Rx-TEG-ID-r17                 INTEGER (0..maxNumOfRxTEGs-1-r17)           OPTIONAL,
  nr-DL-PRS-FirstPathRSRP-Result-r17  INTEGER (0..126)                            OPTIONAL,
  nr-los-nlos-Indicator-r17           CHOICE {
          perTRP-r17                      LOS-NLOS-Indicator-r17,
          perResource-r17                 LOS-NLOS-Indicator-r17
  }                                                                               OPTIONAL,
  nr-AdditionalPathListExt-r17        NR-AdditionalPathListExt-r17                OPTIONAL,
  nr-DL-TDOA-AdditionalMeasurementsExt-r17
                                      NR-DL-TDOA-AdditionalMeasurementsExt-r17    OPTIONAL
  ]],
  [[
  nr-MeasBasedOnAggregatedResources-r18       ENUMERATED {true}                   OPTIONAL,
  nr-AggregatedDL-PRS-ResourceInfo-List-r18   SEQUENCE (SIZE (2.. 3)) OF
                              NR-AggregatedDL-PRS-ResourceInfo-Element-r18        OPTIONAL,
  nr-RSCPD-r18                                INTEGER (0..3599)                   OPTIONAL,
  nr-PhaseQuality-r18                         NR-PhaseQuality-r18                 OPTIONAL,
  nr-RSCPD-AddMeasurementSamples-r18      SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF
                      NR-RSCPD-AdditionalMeasurementSamplesElement-r18            OPTIONAL,
  nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                                          ENUMERATED { singleHop, multipleHop }   OPTIONAL
  ]]
}

NR-DL-TDOA-AdditionalMeasurements-r16 ::= SEQUENCE (SIZE (1..3)) OF
                                                  NR-DL-TDOA-AdditionalMeasurementElement-r16

NR-DL-TDOA-AdditionalMeasurementsExt-r17 ::= SEQUENCE (SIZE (1..maxAddMeasTDOA-r17)) OF
                                                  NR-DL-TDOA-AdditionalMeasurementElement-r16

NR-DL-TDOA-AdditionalMeasurementElement-r16 ::= SEQUENCE {
  nr-DL-PRS-ResourceID-r16        NR-DL-PRS-ResourceID-r16                        OPTIONAL,
  nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16                     OPTIONAL,
  nr-TimeStamp-r16                NR-TimeStamp-r16,
  nr-RSTD-ResultDiff-r16          CHOICE {
          k0-r16                      INTEGER (0..8191),
          k1-r16                      INTEGER (0..4095),
          k2-r16                      INTEGER (0..2047),
          k3-r16                      INTEGER (0..1023),
          k4-r16                      INTEGER (0..511),
          k5-r16                      INTEGER (0..255),
          ...,
          kMinus6-r18                 INTEGER (0..524224),
          kMinus5-r18                 INTEGER (0..262112),
          kMinus4-r18                 INTEGER (0..131056),
          kMinus3-r18                 INTEGER (0..65528),
          kMinus2-r18                 INTEGER (0..32764),
          kMinus1-r18                 INTEGER (0..16382)
  },
  nr-TimingQuality-r16            NR-TimingQuality-r16,
  nr-DL-PRS-RSRP-ResultDiff-r16   INTEGER (0..61)                                 OPTIONAL,
  nr-AdditionalPathList-r16       NR-AdditionalPathList-r16                       OPTIONAL,
  ...,
  [[
  nr-UE-Rx-TEG-ID-r17             INTEGER (0..maxNumOfRxTEGs-1-r17)               OPTIONAL,
  nr-DL-PRS-FirstPathRSRP-ResultDiff-r17
                                  INTEGER (0..61)                                 OPTIONAL,
  nr-los-nlos-IndicatorPerResource-r17
                                  LOS-NLOS-Indicator-r17                          OPTIONAL,
  nr-AdditionalPathListExt-r17    NR-AdditionalPathListExt-r17                    OPTIONAL
  ]],
  [[
  nr-MeasBasedOnAggregatedResources-r18       ENUMERATED {true}                   OPTIONAL,
  nr-AggregatedDL-PRS-ResourceInfo-List-r18   SEQUENCE (SIZE (2.. 3)) OF
                              NR-AggregatedDL-PRS-ResourceInfo-Element-r18        OPTIONAL,
  nr-RSCPD-r18                                INTEGER (0..3599)                   OPTIONAL,
  nr-PhaseQuality-r18                         NR-PhaseQuality-r18                 OPTIONAL,
  nr-RSCPD-AdditionalMeasurementsAddSamples-r18
                                              SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF
                              NR-RSCPD-AdditionalMeasurementSamplesElement-r18    OPTIONAL,
  nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                              ENUMERATED { singleHop, multipleHop }               OPTIONAL
  ]]
}

NR-RSCPD-AdditionalMeasurementSamplesElement-r18 ::= SEQUENCE {
  nr-RSCPD-r18                        INTEGER (0..3599)                           OPTIONAL,
  nr-PhaseQuality-r18                 NR-PhaseQuality-r18                         OPTIONAL,
  nr-TimeStamp-r18                    NR-TimeStamp-r16                            OPTIONAL,
  ...
}


NR-DL-TDOA-LocationInformation-r16 ::= SEQUENCE {
  measurementReferenceTime-r16    CHOICE {
          systemFrameNumber-r16           NR-TimeStamp-r16,
          utc-time-r16                    UTCTime,
          ...
          }                                                           OPTIONAL,
  ...,
  [[
  locationCoordinates-r17                 LocationCoordinates         OPTIONAL,   -- Cond batch1
  locationSource-r17                      LocationSource-r13          OPTIONAL    -- Cond batch2
  ]]
}


NR-DL-TDOA-RequestLocationInformation-r16 ::= SEQUENCE {
  nr-DL-PRS-RstdMeasurementInfoRequest-r16    ENUMERATED { true }             OPTIONAL,-- Need ON
  nr-RequestedMeasurements-r16                BIT STRING { prsrsrpReq (0),
                                                          firstPathRsrpReq-r17 (1),
                                                          dl-PRS-RSCPD-Request-r18 (2)
                                                           } (SIZE(1..8)),
  nr-AssistanceAvailability-r16               BOOLEAN,
  nr-DL-TDOA-ReportConfig-r16                 NR-DL-TDOA-ReportConfig-r16     OPTIONAL, -- Need ON
  additionalPaths-r16                         ENUMERATED { requested }        OPTIONAL, -- Need ON
  ...,
  [[
  nr-UE-RxTEG-Request-r17                     ENUMERATED { requested }        OPTIONAL, -- Need ON
  nr-los-nlos-IndicatorRequest-r17    SEQUENCE {
                                          type-r17            LOS-NLOS-IndicatorType1-r17,
                                          granularity-r17 LOS-NLOS-IndicatorGranularity1-r17,
                                          ...
                                      }                                       OPTIONAL, -- Need ON
  additionalPathsExt-r17                      ENUMERATED { requested }        OPTIONAL, -- Need ON
  additionalPathsDL-PRS-RSRP-Request-r17      ENUMERATED { requested }        OPTIONAL, -- Need ON
  multiMeasInSameReport-r17                   ENUMERATED { requested }        OPTIONAL  -- Need ON
  ]],
  [[
  nr-DL-PRS-JointMeasurementRequest-r18   SEQUENCE {
      nr-DL-PRS-JointMeasurementRequestedPFL-List-r18     SEQUENCE (SIZE (2..3)) OF
                                          INTEGER (0..nrMaxFreqLayers-1-r16)  OPTIONAL  -- Need ON
  }                                                                           OPTIONAL, -- Need ON
  nr-DL-PRS-RxHoppingRequest-r18          SEQUENCE {
      nr-DL-PRS-RxHoppingTotalBandwidth-r18       CHOICE {
          fr1                                         ENUMERATED {mhz40, mhz50, mhz80, mhz100},
          fr2                                         ENUMERATED {mhz100, mhz200, mhz400}
      }                                                                       OPTIONAL -- Need ON
  }                                                                           OPTIONAL -- Need ON
  ]]
}

NR-DL-TDOA-ReportConfig-r16 ::= SEQUENCE {
  maxDL-PRS-RSTD-MeasurementsPerTRP-Pair-r16  INTEGER (1..4)                  OPTIONAL, -- Need ON
  timingReportingGranularityFactor-r16        INTEGER (0..5)                  OPTIONAL, -- Need ON
  ...,
  [[
  measureSameDL-PRS-ResourceWithDifferentRxTEGs-r17
                                              ENUMERATED { n0, n2, n3, n4, n6, n8, ... }
                                                                              OPTIONAL, -- Need ON
  reducedDL-PRS-ProcessingSamples-r17         ENUMERATED { requested, ... }   OPTIONAL, -- Need ON
  lowerRxBeamSweepingFactor-FR2-r17           ENUMERATED { requested }        OPTIONAL  -- Need ON
  ]],
  [[
  timingReportingGranularityFactorExt-r18     INTEGER (-6..-1)                OPTIONAL, -- Need ON
  nr-DL-PRS-MeasurementTimeWindowsConfig-r18
                          NR-DL-PRS-MeasurementTimeWindowsConfig-r18          OPTIONAL  -- Need ON
  ]]
}


NR-DL-TDOA-ProvideCapabilities-r16 ::= SEQUENCE {
  nr-DL-TDOA-Mode-r16                     PositioningModes,
  nr-DL-TDOA-PRS-Capability-r16           NR-DL-PRS-ResourcesCapability-r16,
  nr-DL-TDOA-MeasurementCapability-r16    NR-DL-TDOA-MeasurementCapability-r16,
  nr-DL-PRS-QCL-ProcessingCapability-r16  NR-DL-PRS-QCL-ProcessingCapability-r16,
  nr-DL-PRS-ProcessingCapability-r16      NR-DL-PRS-ProcessingCapability-r16,
  additionalPathsReport-r16               ENUMERATED { supported }                    OPTIONAL,
  periodicalReporting-r16                 PositioningModes                            OPTIONAL,
  ...,
  [[
  ten-ms-unit-ResponseTime-r17            PositioningModes                            OPTIONAL,
  nr-PosCalcAssistanceSupport-r17         BIT STRING {    trpLocSup       (0),
                                                          beamInfoSup     (1),
                                                          rtdInfoSup      (2),
                                                          trpTEG-InfoSup  (3),
                                                          nr-IntegritySup-r18 (4),
                                                          pruInfoSup-r18  (5)
                                                      }   (SIZE (1..8))               OPTIONAL,
  nr-los-nlos-AssistanceDataSupport-r17   SEQUENCE {
                                              type-r17        LOS-NLOS-IndicatorType2-r17,
                                              granularity-r17 LOS-NLOS-IndicatorGranularity2-r17,
                                              ...
                                          }                                           OPTIONAL,
  nr-DL-PRS-ExpectedAoD-or-AoA-Sup-r17    BIT STRING {    eAoD        (0),
                                                          eAoA        (1)
                                                      }   (SIZE (1..8))               OPTIONAL,
  nr-DL-TDOA-On-Demand-DL-PRS-Support-r17 NR-On-Demand-DL-PRS-Support-r17             OPTIONAL,
  nr-los-nlos-IndicatorSupport-r17        SEQUENCE {
                                              type-r17        LOS-NLOS-IndicatorType2-r17,
                                              granularity-r17 LOS-NLOS-IndicatorGranularity2-r17,
                                              ...
                                          }                                           OPTIONAL,
  additionalPathsExtSupport-r17           ENUMERATED { n4, n6, n8 }                   OPTIONAL,
  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17     OPTIONAL,
  nr-dl-prs-AssistanceDataValidity-r17    SEQUENCE {
                          area-validity-r17   INTEGER (1..maxNrOfAreas-r17)           OPTIONAL,                               ...
                          }                                                           OPTIONAL,
  multiMeasInSameMeasReport-r17           ENUMERATED { supported }                    OPTIONAL,
  mg-ActivationRequest-r17                ENUMERATED { supported }                    OPTIONAL
  ]],
  [[
  posMeasGapSupport-r17                   ENUMERATED { supported }                    OPTIONAL
  ]],
  [[
  multiLocationEstimateInSameMeasReport-r17   ENUMERATED { supported }                OPTIONAL
  ]],
  [[
  locationCoordinateTypes-r18             LocationCoordinateTypes                     OPTIONAL,
  periodicAssistanceData-r18              BIT STRING { solicited   (0),
                                                       unsolicited (1)} (SIZE (1..8)) OPTIONAL,
  nr-IntegrityAssistanceSupport-r18       BIT STRING {
                                                  serviceParametersSup        (0),
                                                  serviceAlertSup             (1),
                                                  riskParametersSup           (2),
                                                  integrityParaTRP-LocSup     (3),
                                                  integrityParaBeamInfoSup    (4),
                                                  integrityParaRTD-InfoSup    (5)
                                                  } (SIZE (1..8))                 OPTIONAL,
  nr-DL-TDOA-OnDemandPRS-ForBWA-Support-r18
                                          ENUMERATED { supported }                    OPTIONAL,
  periodicReportingIntervalMsSupport-r18  PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                      OPTIONAL
  ]]
}


NR-DL-TDOA-MeasurementCapability-r16 ::= SEQUENCE {
  dl-RSTD-MeasurementPerPairOfTRP-FR1-r16         INTEGER (1..4),
  dl-RSTD-MeasurementPerPairOfTRP-FR2-r16         INTEGER (1..4),
  supportOfDL-PRS-RSRP-MeasFR1-r16                ENUMERATED { supported} OPTIONAL,
  supportOfDL-PRS-RSRP-MeasFR2-r16                ENUMERATED { supported} OPTIONAL,
  ...,
  [[
  nr-UE-TEG-Capability-r17                        NR-UE-TEG-Capability-r17            OPTIONAL,
  dl-tdoa-MeasCapabilityBandList-r17              SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                  DL-TDOA-MeasCapabilityPerBand-r17   OPTIONAL
  ]]
}

DL-TDOA-MeasCapabilityPerBand-r17 ::= SEQUENCE {
  freqBandIndicatorNR-r17             FreqBandIndicatorNR-r16,
  supportOfDL-PRS-FirstPathRSRP-r17   ENUMERATED { supported }            OPTIONAL,
  dl-PRS-MeasRRC-Inactive-r17         ENUMERATED { supported }            OPTIONAL,
  ...,
  [[
  supportOfDL-PRS-BWA-RRC-Connected-r18           ENUMERATED { supported }        OPTIONAL,
  supportOfDL-PRS-BWA-RRC-Inactive-r18            ENUMERATED { supported }        OPTIONAL,
  supportOfDL-PRS-BWA-RRC-Idle-r18                ENUMERATED { supported }        OPTIONAL,
  nr-DL-PRS-RSCPD-ReportingRRC-Connected-r18      ENUMERATED { supported }        OPTIONAL,
  assocSingleRSTD-WithUpToNsampleRSCPD-r18        ENUMERATED { supported }        OPTIONAL,
  nr-DL-PRS-RSCPD-MeasurementRRC-Idle-r18         ENUMERATED { supported }        OPTIONAL,
  supportOfUE-basedCarrierPhasePositioning-r18    ENUMERATED { supported }        OPTIONAL,
  supportOfSymbolTimeStampForRSCPD-r18            ENUMERATED { supported }        OPTIONAL,
  supportOfFinerTimingReportGranularityForPRS-Meas-r18    ENUMERATED { minus1, minus2,
                                                                  minus3, minus4, minus5, minus6}
                                                                                      OPTIONAL,
  supportOfMeasurementsInTimeWindow-r18           BIT STRING {    rstd    (0),
                                                                  rsrp    (1),
                                                                          rsrpp   (2),
                                                                          rscpd   (3)
                                                              }   (SIZE (1..8))   OPTIONAL,
  supportOfPRS-MeasurementRRC-Idle-r18            ENUMERATED { supported }        OPTIONAL
  ]]
}


NR-DL-TDOA-RequestCapabilities-r16 ::= SEQUENCE {
  ...
}


NR-DL-TDOA-Error-r16 ::= CHOICE {
  locationServerErrorCauses-r16       NR-DL-TDOA-LocationServerErrorCauses-r16,
  targetDeviceErrorCauses-r16         NR-DL-TDOA-TargetDeviceErrorCauses-r16,
  ...
}


NR-DL-TDOA-LocationServerErrorCauses-r16 ::= SEQUENCE {
  cause-r16       ENUMERATED  {   undefined,
                                  assistanceDataNotSupportedByServer,
                                  assistanceDataSupportedButCurrentlyNotAvailableByServer,
                                  notProvidedAssistanceDataNotSupportedByServer,
                                  ...,
                                  on-demand-dl-prs-NotSupportedByServer-v1700,
                                  on-demand-dl-prs-SupportedButCurrentlyNotAvailableByServer-v1700
                              },
  ...
}


NR-DL-TDOA-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
  cause-r16       ENUMERATED {    undefined,
                                  assistance-data-missing,
                                  unableToMeasureAnyTRP,
                                  attemptedButUnableToMeasureSomeNeighbourTRPs,
                                  thereWereNotEnoughSignalsReceivedForUeBasedDL-TDOA,
                                  locationCalculationAssistanceDataMissing,
                                  ...
                              },
  ...,
  [[
  remoteUE-Indication-r18         ENUMERATED {true}       OPTIONAL        -- Cond NR
  ]]
}


NR-DL-AoD-ProvideAssistanceData-r16 ::= SEQUENCE {
  nr-DL-PRS-AssistanceData-r16        NR-DL-PRS-AssistanceData-r16        OPTIONAL,   -- Need ON
  nr-SelectedDL-PRS-IndexList-r16     NR-SelectedDL-PRS-IndexList-r16     OPTIONAL,   -- Need ON
  nr-PositionCalculationAssistance-r16
                                      NR-PositionCalculationAssistance-r16
                                                                          OPTIONAL,   -- Cond UEB
  nr-DL-AoD-Error-r16                 NR-DL-AoD-Error-r16                 OPTIONAL,   -- Need ON
  ...,
  [[
  nr-DL-PRS-BeamInfo-r17              NR-DL-PRS-BeamInfo-r16              OPTIONAL,   -- Cond UEA
  nr-On-Demand-DL-PRS-Configurations-r17
                                      NR-On-Demand-DL-PRS-Configurations-r17
                                                                          OPTIONAL,   -- Need ON
  nr-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
                                      NR-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
                                                                          OPTIONAL,   -- Need ON
  assistanceDataValidityArea-r17      AreaID-CellList-r17                 OPTIONAL    -- Need ON
  ]]
}


NR-DL-AoD-RequestAssistanceData-r16 ::= SEQUENCE {
  nr-PhysCellID-r16               NR-PhysCellID-r16                       OPTIONAL,
  nr-AdType-r16                   BIT STRING {    dl-prs  (0),
                                                  posCalc (1) } (SIZE (1..8)),
  ...,
  [[
  nr-PosCalcAssistanceRequest-r17             BIT STRING {    trpLoc      (0),
                                                              beamInfo    (1),
                                                              rtdInfo     (2),
                                                              beamAntInfo (3),
                                                              losNlosInfo (4),
                                                              nr-IntegrityBounds-r18 (5)
                                                          }   (SIZE (1..8))   OPTIONAL,
  nr-DL-PRS-ExpectedAoD-or-AoA-Request-r17    ENUMERATED { eAoD, eAoA }       OPTIONAL,
  nr-DL-PRS-BeamInfoRequest-r17               ENUMERATED { requested }        OPTIONAL,
  nr-on-demand-DL-PRS-Request-r17             NR-On-Demand-DL-PRS-Request-r17 OPTIONAL,
  pre-configured-AssistanceDataRequest-r17    ENUMERATED { true }             OPTIONAL,
  nr-IntegrityAssistanceRequest-r18           BIT STRING {
                                                  serviceParameters       (0),
                                                  serviceAlert            (1),
                                                  riskParameters          (2),
                                                  integrityParaTRP-Loc    (3),
                                                  integrityParaBeamInfo   (4),
                                                  integrityParaRTD-Info   (5),
                                                  integrityBeamAntInfo    (6)
                                                  } (SIZE (1..8))         OPTIONAL
  ]]
}


NR-DL-AoD-ProvideLocationInformation-r16 ::= SEQUENCE {
  nr-DL-AoD-SignalMeasurementInformation-r16
                                          NR-DL-AoD-SignalMeasurementInformation-r16
                                                                          OPTIONAL,
  nr-dl-AoD-LocationInformation-r16       NR-DL-AoD-LocationInformation-r16
                                                                          OPTIONAL,
  nr-DL-AoD-Error-r16                     NR-DL-AoD-Error-r16             OPTIONAL,
  ...,
  [[
  nr-DL-AoD-SignalMeasurementInstances-r17    SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
                  NR-DL-AoD-SignalMeasurementInformation-r16  OPTIONAL,   -- Cond batchUEA
  nr-DL-AoD-LocationInformationInstances-r17  SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
                  NR-DL-AoD-LocationInformation-r16           OPTIONAL    -- Cond batchUEB
  ]]
}


NR-DL-AoD-SignalMeasurementInformation-r16 ::= SEQUENCE {
  nr-DL-AoD-MeasList-r16          NR-DL-AoD-MeasList-r16,
  ...
}

NR-DL-AoD-MeasList-r16 ::= SEQUENCE (SIZE(1..nrMaxTRPs-r16)) OF NR-DL-AoD-MeasElement-r16

NR-DL-AoD-MeasElement-r16 ::= SEQUENCE {
  dl-PRS-ID-r16                   INTEGER (0..255),
  nr-PhysCellID-r16               NR-PhysCellID-r16                       OPTIONAL,
  nr-CellGlobalID-r16             NCGI-r15                                OPTIONAL,
  nr-ARFCN-r16                    ARFCN-ValueNR-r15                       OPTIONAL,
  nr-DL-PRS-ResourceID-r16        NR-DL-PRS-ResourceID-r16                OPTIONAL,
  nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16             OPTIONAL,
  nr-TimeStamp-r16                NR-TimeStamp-r16,
  nr-DL-PRS-RSRP-Result-r16       INTEGER (0..126),
  nr-DL-PRS-RxBeamIndex-r16       INTEGER (1..8)                          OPTIONAL,
  nr-DL-AoD-AdditionalMeasurements-r16
                                  NR-DL-AoD-AdditionalMeasurements-r16    OPTIONAL,
  ...,
  [[
  nr-DL-PRS-FirstPathRSRP-Result-r17
                                  INTEGER (0..126)                        OPTIONAL,
  nr-los-nlos-Indicator-r17       CHOICE {
          perTRP-r17                  LOS-NLOS-Indicator-r17,
          perResource-r17             LOS-NLOS-Indicator-r17
  }                                                                       OPTIONAL,
  nr-DL-AoD-AdditionalMeasurementsExt-r17
                                  NR-DL-AoD-AdditionalMeasurementsExt-r17 OPTIONAL
  ]],
  [[
  nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                                          ENUMERATED { singleHop, multipleHop }   OPTIONAL
  ]]

}

NR-DL-AoD-AdditionalMeasurements-r16 ::= SEQUENCE (SIZE (1..7)) OF
                                                  NR-DL-AoD-AdditionalMeasurementElement-r16

NR-DL-AoD-AdditionalMeasurementsExt-r17 ::= SEQUENCE (SIZE (1..maxAddMeasAoD-r17)) OF
                                                  NR-DL-AoD-AdditionalMeasurementElement-r17

NR-DL-AoD-AdditionalMeasurementElement-r16 ::= SEQUENCE {
  nr-DL-PRS-ResourceID-r16        NR-DL-PRS-ResourceID-r16                OPTIONAL,
  nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16             OPTIONAL,
  nr-TimeStamp-r16                NR-TimeStamp-r16,
  nr-DL-PRS-RSRP-ResultDiff-r16   INTEGER (0..30),
  nr-DL-PRS-RxBeamIndex-r16       INTEGER (1..8)                          OPTIONAL,
  ...
}

NR-DL-AoD-AdditionalMeasurementElement-r17 ::= SEQUENCE {
  nr-DL-PRS-ResourceID-r17                NR-DL-PRS-ResourceID-r16        OPTIONAL,
  nr-DL-PRS-ResourceSetID-r17             NR-DL-PRS-ResourceSetID-r16     OPTIONAL,
  nr-TimeStamp-r17                        NR-TimeStamp-r16,
  nr-DL-PRS-RSRP-ResultDiff-r17           INTEGER (0..30)                 OPTIONAL, -- Cond rsrp
  nr-DL-PRS-RxBeamIndex-r17               INTEGER (1..8)                  OPTIONAL,
  nr-DL-PRS-FirstPathRSRP-ResultDiff-r17  INTEGER (0..61)                 OPTIONAL, -- Cond rsrpp
  nr-los-nlos-IndicatorPerResource-r17    LOS-NLOS-Indicator-r17          OPTIONAL,
  ...,
  [[
  nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                              ENUMERATED { singleHop, multipleHop }               OPTIONAL
  ]]
}


NR-DL-AoD-LocationInformation-r16 ::= SEQUENCE {
  measurementReferenceTime-r16        CHOICE {
          sfn-time-r16                    NR-TimeStamp-r16,
          utc-time-r16                    UTCTime,
          ...
          }                                                           OPTIONAL,
  ...,
  [[
  locationCoordinates-r17             LocationCoordinates             OPTIONAL,   -- Cond batch1
  locationSource-r17                  LocationSource-r13              OPTIONAL    -- Cond batch2
  ]]
}


NR-DL-AoD-RequestLocationInformation-r16 ::= SEQUENCE {
  nr-AssistanceAvailability-r16               BOOLEAN,
  nr-DL-AoD-ReportConfig-r16                  NR-DL-AoD-ReportConfig-r16,
  ...,
  [[
  multiMeasInSameReport-r17                   ENUMERATED { requested }    OPTIONAL  -- Need ON
  ]],
  [[
  nr-DL-PRS-RxHoppingRequest-r18          SEQUENCE {
      nr-DL-PRS-RxHoppingTotalBandwidth-r18       CHOICE {
          fr1                                         ENUMERATED {mhz40, mhz50, mhz80, mhz100},
          fr2                                         ENUMERATED {mhz100, mhz200, mhz400}
      }                                                                       OPTIONAL -- Need ON
  }                                                                           OPTIONAL -- Need ON
  ]]
}

NR-DL-AoD-ReportConfig-r16 ::= SEQUENCE {
  maxDL-PRS-RSRP-MeasurementsPerTRP-r16       INTEGER (1..8)              OPTIONAL, -- Need ON
  ...,
  [[
  maxDL-PRS-RSRP-MeasurementsPerTRP-r17       INTEGER (9..24)             OPTIONAL, -- Need ON
  maxDL-PRS-RSRPP-MeasurementsPerTRP-r17      INTEGER (1..24)             OPTIONAL, -- Need ON
  nr-los-nlos-IndicatorRequest-r17            SEQUENCE {
                                                  type-r17    LOS-NLOS-IndicatorType1-r17,
                                                  granularity-r17
                                                              LOS-NLOS-IndicatorGranularity1-r17,
                                                  ...
                                              }                           OPTIONAL, -- Need ON
  reducedDL-PRS-ProcessingSamples-r17         ENUMERATED { requested, ... }
                                                                          OPTIONAL, -- Need ON
  lowerRxBeamSweepingFactor-FR2-r17           ENUMERATED { requested }    OPTIONAL  -- Need ON
  ]],
  [[
  nr-DL-PRS-MeasurementTimeWindowsConfig-r18
                              NR-DL-PRS-MeasurementTimeWindowsConfig-r18  OPTIONAL  -- Need ON
  ]]
}


NR-DL-AoD-ProvideCapabilities-r16 ::= SEQUENCE {
  nr-DL-AoD-Mode-r16                      PositioningModes,
  nr-DL-AoD-PRS-Capability-r16            NR-DL-PRS-ResourcesCapability-r16,
  nr-DL-AoD-MeasurementCapability-r16     NR-DL-AoD-MeasurementCapability-r16,
  nr-DL-PRS-QCL-ProcessingCapability-r16  NR-DL-PRS-QCL-ProcessingCapability-r16,
  nr-DL-PRS-ProcessingCapability-r16      NR-DL-PRS-ProcessingCapability-r16,
  periodicalReporting-r16                 PositioningModes                            OPTIONAL,
  ...,
  [[
  ten-ms-unit-ResponseTime-r17            PositioningModes                            OPTIONAL,
  nr-PosCalcAssistanceSupport-r17         BIT STRING {    trpLocSup       (0),
                                                          beamInfoSup     (1),
                                                          rtdInfoSup      (2),
                                                          beamAntInfoSup  (3),
                                                          nr-IntegrityBoundsSup-r18   (4)
                                                      }   (SIZE (1..8))               OPTIONAL,
  nr-los-nlos-AssistanceDataSupport-r17   SEQUENCE {
                                              type-r17        LOS-NLOS-IndicatorType2-r17,
                                              granularity-r17 LOS-NLOS-IndicatorGranularity2-r17,
                                              ...
                                          }                                           OPTIONAL,
  nr-DL-PRS-ExpectedAoD-or-AoA-Sup-r17    BIT STRING {    eAoD        (0),
                                                          eAoA        (1)
                                                      }   (SIZE (1..8))               OPTIONAL,
  dl-PRS-ResourcePrioritySubset-Sup-r17   ENUMERATED { sameSet, differentSet, sameOrDifferentSet }
                                                                                      OPTIONAL,
  nr-DL-PRS-BeamInfoSup-r17               ENUMERATED { supported }                    OPTIONAL,
  nr-DL-AoD-On-Demand-DL-PRS-Support-r17  NR-On-Demand-DL-PRS-Support-r17             OPTIONAL,
  nr-los-nlos-IndicatorSupport-r17        SEQUENCE {
                                              type-r17        LOS-NLOS-IndicatorType2-r17,
                                              granularity-r17 LOS-NLOS-IndicatorGranularity2-r17,
                                              ...
                                          }                                           OPTIONAL,
  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17
                                                                                      OPTIONAL,
  nr-dl-prs-AssistanceDataValidity-r17    SEQUENCE {
                          area-validity-r17   INTEGER (1..maxNrOfAreas-r17)           OPTIONAL,
                          ...
                          }                                                           OPTIONAL,
  multiMeasInSameMeasReport-r17           ENUMERATED { supported }                    OPTIONAL,
  mg-ActivationRequest-r17                ENUMERATED { supported }                    OPTIONAL
  ]],
  [[
  posMeasGapSupport-r17                   ENUMERATED { supported }                    OPTIONAL
  ]],
  [[
  multiLocationEstimateInSameMeasReport-r17   ENUMERATED { supported }                OPTIONAL
  ]],
  [[
  locationCoordinateTypes-r18             LocationCoordinateTypes                     OPTIONAL,
  nr-IntegrityAssistanceSupport-r18       BIT STRING {
                                                  serviceParametersSup        (0),
                                                  serviceAlertSup             (1),
                                                  riskParametersSup           (2),
                                                  integrityParaTRP-LocSup     (3),
                                                  integrityParaBeamInfoSup    (4),
                                                  integrityParaRTD-InfoSup    (5),
                                                  integrityBeamAntInfoSup     (6)
                                                  } (SIZE (1..8))                 OPTIONAL,
  periodicReportingIntervalMsSupport-r18  PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                      OPTIONAL
  ]]
}


NR-DL-AoD-MeasurementCapability-r16 ::= SEQUENCE {
  maxDL-PRS-RSRP-MeasurementFR1-r16       INTEGER (1..8),
  maxDL-PRS-RSRP-MeasurementFR2-r16       INTEGER (1..8),
  dl-AoD-MeasCapabilityBandList-r16       SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                  DL-AoD-MeasCapabilityPerBand-r16,
  ...,
  [[
  maxDL-PRS-RSRP-MeasurementFR1-v1730     ENUMERATED { n16, n24 }                 OPTIONAL,
  maxDL-PRS-RSRP-MeasurementFR2-v1730     ENUMERATED { n16, n24 }                 OPTIONAL
  ]]
}

DL-AoD-MeasCapabilityPerBand-r16 ::= SEQUENCE {
  freqBandIndicatorNR-r16                 FreqBandIndicatorNR-r16,
  simul-NR-DL-AoD-DL-TDOA-r16             ENUMERATED { supported}                 OPTIONAL,
  simul-NR-DL-AoD-Multi-RTT-r16           ENUMERATED { supported}                 OPTIONAL,
  ...,
  [[
  maxDL-PRS-FirstPathRSRP-MeasPerTRP-r17  ENUMERATED { n1, n2, n4, n8, n16, n24 } OPTIONAL,
  dl-PRS-MeasRRC-Inactive-r17             ENUMERATED { supported }                OPTIONAL
  ]],
  [[
  supportOfMeasurementsInTimeWindow-r18   BIT STRING {
                                                                          rsrp        (0),
                                                                          rsrpp       (1)
                                                              }   (SIZE (1..8))       OPTIONAL,
  supportOfPRS-MeasurementRRC-Idle-r18    ENUMERATED { supported }                OPTIONAL
  ]]
}


NR-DL-AoD-RequestCapabilities-r16 ::= SEQUENCE {
  ...
}


NR-DL-AoD-Error-r16 ::= CHOICE {
  locationServerErrorCauses-r16       NR-DL-AoD-LocationServerErrorCauses-r16,
  targetDeviceErrorCauses-r16         NR-DL-AoD-TargetDeviceErrorCauses-r16,
  ...
}


NR-DL-AoD-LocationServerErrorCauses-r16 ::= SEQUENCE {
  cause-r16       ENUMERATED  {   undefined,
                                  assistanceDataNotSupportedByServer,
                                  assistanceDataSupportedButCurrentlyNotAvailableByServer,
                                  notProvidedAssistanceDataNotSupportedByServer,
                                  ...,
                                  on-demand-dl-prs-NotSupportedByServer-v1700,
                                  on-demand-dl-prs-SupportedButCurrentlyNotAvailableByServer-v1700
                              },
  ...
}


NR-DL-AoD-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
  cause-r16       ENUMERATED {    undefined,
                                  assistance-data-missing,
                                  unableToMeasureAnyTRP,
                                  attemptedButUnableToMeasureSomeNeighbourTRPs,
                                  thereWereNotEnoughSignalsReceivedForUeBasedDL-AoD,
                                  locationCalculationAssistanceDataMissing,
                                  ...
                              },
  ...,
  [[
  remoteUE-Indication-r18     ENUMERATED {true}       OPTIONAL        -- Cond NR
  ]]
}


NR-Multi-RTT-ProvideAssistanceData-r16 ::= SEQUENCE {
  nr-DL-PRS-AssistanceData-r16        NR-DL-PRS-AssistanceData-r16        OPTIONAL,   -- Need ON
  nr-SelectedDL-PRS-IndexList-r16     NR-SelectedDL-PRS-IndexList-r16     OPTIONAL,   -- Need ON
  nr-Multi-RTT-Error-r16              NR-Multi-RTT-Error-r16              OPTIONAL,   -- Need ON
  ...,
  [[
  nr-On-Demand-DL-PRS-Configurations-r17  NR-On-Demand-DL-PRS-Configurations-r17
                                                                          OPTIONAL,   -- Need ON
  nr-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
                                      NR-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
                                                                          OPTIONAL,   -- Need ON
  assistanceDataValidityArea-r17  AreaID-CellList-r17                     OPTIONAL    -- Need ON
  ]]
}


NR-Multi-RTT-RequestAssistanceData-r16 ::= SEQUENCE {
  nr-PhysCellID-r16               NR-PhysCellID-r16                       OPTIONAL,
  nr-AdType-r16                   BIT STRING {    dl-prs (0),
                                                  ul-srs (1) } (SIZE (1..8)),
  ...,
  [[
  nr-on-demand-DL-PRS-Request-r17             NR-On-Demand-DL-PRS-Request-r17         OPTIONAL,
  nr-DL-PRS-ExpectedAoD-or-AoA-Request-r17    ENUMERATED { eAoD, eAoA }               OPTIONAL,
  pre-configured-AssistanceDataRequest-r17    ENUMERATED { true }                     OPTIONAL
  ]]
}


NR-Multi-RTT-ProvideLocationInformation-r16 ::= SEQUENCE {
  nr-Multi-RTT-SignalMeasurementInformation-r16
                                          NR-Multi-RTT-SignalMeasurementInformation-r16
                                                                                  OPTIONAL,
  nr-Multi-RTT-Error-r16                  NR-Multi-RTT-Error-r16                  OPTIONAL,
  ...,
  [[
  nr-Multi-RTT-SignalMeasurementInstances-r17
                                          SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
                                              NR-Multi-RTT-SignalMeasurementInformation-r16
                                                                  OPTIONAL    --Cond batchUEA
  ]]
}


NR-Multi-RTT-SignalMeasurementInformation-r16 ::= SEQUENCE {
  nr-Multi-RTT-MeasList-r16       NR-Multi-RTT-MeasList-r16,
  nr-NTA-Offset-r16               ENUMERATED { nTA1, nTA2, nTA3, nTA4, ... }      OPTIONAL,
  ...,
  [[
  nr-SRS-TxTEG-Set-r17            SEQUENCE (SIZE(1..maxTxTEG-Sets-r17)) OF
                                      NR-SRS-TxTEG-Element-r17                    OPTIONAL
                                                                           -- Cond Case2-3
  ]],
  [[
  nr-UE-RxTEG-TimingErrorMargin-r17   TEG-TimingErrorMargin-r17       OPTIONAL,-- Cond TEGCase3
  nr-UE-TxTEG-TimingErrorMargin-r17   TEG-TimingErrorMargin-r17       OPTIONAL,-- Cond TEGCase2-3
  nr-UE-RxTxTEG-TimingErrorMargin-r17 RxTxTEG-TimingErrorMargin-r17   OPTIONAL -- Cond TEGCase1-2
  ]]
}

NR-Multi-RTT-MeasList-r16 ::= SEQUENCE (SIZE(1..nrMaxTRPs-r16)) OF NR-Multi-RTT-MeasElement-r16

NR-Multi-RTT-MeasElement-r16 ::= SEQUENCE {
  dl-PRS-ID-r16                   INTEGER (0..255),
  nr-PhysCellID-r16               NR-PhysCellID-r16                               OPTIONAL,
  nr-CellGlobalID-r16             NCGI-r15                                        OPTIONAL,
  nr-ARFCN-r16                    ARFCN-ValueNR-r15                               OPTIONAL,
  nr-DL-PRS-ResourceID-r16        NR-DL-PRS-ResourceID-r16                        OPTIONAL,
  nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16                     OPTIONAL,
  nr-UE-RxTxTimeDiff-r16          CHOICE {
          k0-r16                      INTEGER (0..1970049),
          k1-r16                      INTEGER (0..985025),
          k2-r16                      INTEGER (0..492513),
          k3-r16                      INTEGER (0..246257),
          k4-r16                      INTEGER (0..123129),
          k5-r16                      INTEGER (0..61565),
          ...,
          kMinus6-r18                 INTEGER (0..126083073),
          kMinus5-r18                 INTEGER (0..63041537),
          kMinus4-r18                 INTEGER (0..31520769),
          kMinus3-r18                 INTEGER (0..15760385),
          kMinus2-r18                 INTEGER (0..7880193),
          kMinus1-r18                 INTEGER (0..3940097)
  },
  nr-AdditionalPathList-r16       NR-AdditionalPathList-r16                       OPTIONAL,
  nr-TimeStamp-r16                NR-TimeStamp-r16,
  nr-TimingQuality-r16            NR-TimingQuality-r16,
  nr-DL-PRS-RSRP-Result-r16       INTEGER (0..126)                                OPTIONAL,
  nr-Multi-RTT-AdditionalMeasurements-r16
                                  NR-Multi-RTT-AdditionalMeasurements-r16         OPTIONAL,
  ...,
  [[
  nr-UE-RxTx-TEG-Info-r17             NR-UE-RxTx-TEG-Info-r17                     OPTIONAL,
  nr-DL-PRS-FirstPathRSRP-Result-r17  INTEGER (0..126)                            OPTIONAL,
  nr-los-nlos-Indicator-r17           CHOICE {
              perTRP-r17                  LOS-NLOS-Indicator-r17,
              perResource-r17             LOS-NLOS-Indicator-r17
  }                                                                               OPTIONAL,
  nr-AdditionalPathListExt-r17        NR-AdditionalPathListExt-r17                OPTIONAL,
  nr-Multi-RTT-AdditionalMeasurementsExt-r17
                                      NR-Multi-RTT-AdditionalMeasurementsExt-r17  OPTIONAL
  ]],
  [[
  nr-MeasBasedOnAggregatedResources-r18       ENUMERATED {true}                   OPTIONAL,
  nr-AggregatedDL-PRS-ResourceInfo-List-r18   SEQUENCE (SIZE (2..3)) OF
                              NR-AggregatedDL-PRS-ResourceInfo-Element-r18        OPTIONAL,
  nr-RSCP-r18                                         INTEGER (0..3599)           OPTIONAL,
  nr-PhaseQuality-r18                                 NR-PhaseQuality-r18         OPTIONAL,
  nr-RSCP-AddSampleMeasurements-r18
              SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF NR-RSCP-AdditionalMeasurements-r18
                                                                                          OPTIONAL,
          nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                                              ENUMERATED { singleHop, multipleHop }       OPTIONAL,
  nr-NTN-UE-RxTxMeasurements-r18      NR-NTN-UE-RxTxMeasurements-r18              OPTIONAL
  ]]
}

NR-Multi-RTT-AdditionalMeasurements-r16 ::= SEQUENCE (SIZE (1..3)) OF
                                  NR-Multi-RTT-AdditionalMeasurementElement-r16

NR-Multi-RTT-AdditionalMeasurementsExt-r17 ::= SEQUENCE (SIZE (1..maxAddMeasRTT-r17)) OF
                                  NR-Multi-RTT-AdditionalMeasurementElement-r16

NR-Multi-RTT-AdditionalMeasurementElement-r16 ::= SEQUENCE {
  nr-DL-PRS-ResourceID-r16            NR-DL-PRS-ResourceID-r16                    OPTIONAL,
  nr-DL-PRS-ResourceSetID-r16         NR-DL-PRS-ResourceSetID-r16                 OPTIONAL,
  nr-DL-PRS-RSRP-ResultDiff-r16       INTEGER (0..61)                             OPTIONAL,
  nr-UE-RxTxTimeDiffAdditional-r16    CHOICE {
          k0-r16                          INTEGER (0..8191),
          k1-r16                          INTEGER (0..4095),
          k2-r16                          INTEGER (0..2047),
          k3-r16                          INTEGER (0..1023),
          k4-r16                          INTEGER (0..511),
          k5-r16                          INTEGER (0..255),
          ...,
          kMinus6-r18                     INTEGER (0..524224),
          kMinus5-r18                     INTEGER (0..262112),
          kMinus4-r18                     INTEGER (0..131056),
          kMinus3-r18                     INTEGER (0..65528),
          kMinus2-r18                     INTEGER (0..32764),
          kMinus1-r18                     INTEGER (0..16382)
  },
  nr-TimingQuality-r16                NR-TimingQuality-r16,
  nr-AdditionalPathList-r16           NR-AdditionalPathList-r16                   OPTIONAL,
  nr-TimeStamp-r16                    NR-TimeStamp-r16,
  ...,
  [[
  nr-UE-RxTx-TEG-Info-r17                 NR-UE-RxTx-TEG-Info-r17         OPTIONAL,
  nr-DL-PRS-FirstPathRSRP-ResultDiff-r17  INTEGER (0..61)                 OPTIONAL,
  nr-los-nlos-IndicatorPerResource-r17    LOS-NLOS-Indicator-r17          OPTIONAL,
  nr-AdditionalPathListExt-r17            NR-AdditionalPathListExt-r17    OPTIONAL
  ]],
  [[
  nr-MeasBasedOnAggregatedResources-r18       ENUMERATED {true}                   OPTIONAL,
  nr-AggregatedDL-PRS-ResourceInfo-List-r18   SEQUENCE (SIZE (2..3)) OF
                              NR-AggregatedDL-PRS-ResourceInfo-Element-r18        OPTIONAL,
  nr-RSCP-r18                                         INTEGER (0..3599)           OPTIONAL,
  nr-PhaseQuality-r18                                 NR-PhaseQuality-r18         OPTIONAL,
  nr-RSCP-AdditionalMeasurementsAddSample-r18
              SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF NR-RSCP-AdditionalMeasurements-r18
                                                                                  OPTIONAL,
  nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                                      ENUMERATED { singleHop, multipleHop }       OPTIONAL,
  nr-NTN-UE-RxTxMeasurements-r18      NR-NTN-UE-RxTxMeasurements-r18              OPTIONAL
  ]]
}

NR-SRS-TxTEG-Element-r17 ::= SEQUENCE {
  nr-TimeStamp-r17            NR-TimeStamp-r16                            OPTIONAL,   -- Need OP
  nr-UE-Tx-TEG-ID-r17         INTEGER (0..maxNumOfTxTEGs-1-r17),
  carrierFreq-r17             SEQUENCE {
                                      absoluteFrequencyPointA-r17     ARFCN-ValueNR-r15,
                                      offsetToPointA-r17              INTEGER (0..2199)
                              }                                           OPTIONAL,
  srs-PosResourceList-r17     SEQUENCE (SIZE (1..maxNumOfSRS-PosResources-r17)) OF
                                          INTEGER (0..maxNumOfSRS-PosResources-1-r17),
  ...
}

NR-UE-RxTx-TEG-Info-r17 ::= CHOICE {
  case1-r17               SEQUENCE {
                                  nr-UE-RxTx-TEG-ID-r17   INTEGER (0..maxNumOfRxTxTEGs-1-r17)
                                  },
  case2-r17               SEQUENCE {
                                  nr-UE-RxTx-TEG-ID-r17   INTEGER (0..maxNumOfRxTxTEGs-1-r17),
                                  nr-UE-Tx-TEG-Index-r17  INTEGER (1..maxTxTEG-Sets-r17)
                                  },
  case3-r17               SEQUENCE {
                                  nr-UE-Rx-TEG-ID-r17     INTEGER (0..maxNumOfRxTEGs-1-r17),
                                  nr-UE-Tx-TEG-Index-r17  INTEGER (1..maxTxTEG-Sets-r17)
                                  },
  ...
}

NR-RSCP-AdditionalMeasurements-r18 ::= SEQUENCE {
  nr-RSCP-r18                             INTEGER (0..3599)               OPTIONAL,
  nr-PhaseQuality-r18                     NR-PhaseQuality-r18             OPTIONAL,
  nr-TimeStamp-r18                        NR-TimeStamp-r16                OPTIONAL,
  ...
}

NR-NTN-UE-RxTxMeasurements-r18 ::= SEQUENCE {
  nr-NTN-UE-RxTxTimeDiffSubframeOffset-r18    INTEGER (0..542),
  nr-NTN-DL-TimingDrift-r18                   INTEGER (-265..265)
}


NR-Multi-RTT-RequestLocationInformation-r16 ::= SEQUENCE {
  nr-UE-RxTxTimeDiffMeasurementInfoRequest-r16
                                      ENUMERATED { true }                 OPTIONAL, -- Need ON
  nr-RequestedMeasurements-r16        BIT STRING { prsrsrpReq (0),
                                                  firstPathRsrpReq-r17 (1),
                                                  dl-PRS-RSCP-Request-r18 (2)}
                                                   (SIZE(1..8)),
  nr-AssistanceAvailability-r16       BOOLEAN,
  nr-Multi-RTT-ReportConfig-r16       NR-Multi-RTT-ReportConfig-r16,
  additionalPaths-r16                 ENUMERATED { requested }            OPTIONAL, -- Need ON
  ...,
  [[
  nr-UE-RxTxTEG-Request-r17           ENUMERATED { case1, case2, case3, ... }
                                                                          OPTIONAL, -- Need ON
  measureSameDL-PRS-ResourceWithDifferentRxTxTEGs-r17
                                      ENUMERATED { n0, n2, n3, n4, n6, n8, ... }
                                                                          OPTIONAL, -- Need ON
  measureSameDL-PRS-ResourceWithDifferentRxTEGs-r17
                                      ENUMERATED { n0, n2, n3, n4, n6, n8, ... }
                                                                          OPTIONAL, -- Need ON
  reducedDL-PRS-ProcessingSamples-r17
                                      ENUMERATED { requested, ... }       OPTIONAL, -- Need ON
  nr-los-nlos-IndicatorRequest-r17    SEQUENCE {
                                          type-r17        LOS-NLOS-IndicatorType1-r17,
                                          granularity-r17 LOS-NLOS-IndicatorGranularity1-r17,
                                          ...
                                      }                                   OPTIONAL, -- Need ON
  additionalPathsExt-r17              ENUMERATED { requested }            OPTIONAL, -- Need ON
  additionalPathsDL-PRS-RSRP-Request-r17
                                      ENUMERATED { requested }            OPTIONAL, -- Need ON
  multiMeasInSameReport-r17           ENUMERATED { requested }            OPTIONAL, -- Need ON
  lowerRxBeamSweepingFactor-FR2-r17   ENUMERATED { requested }            OPTIONAL  -- Need ON
  ]],
  [[
  nr-DL-PRS-RxHoppingRequest-r18      SEQUENCE {
      nr-DL-PRS-RxHoppingTotalBandwidth-r18       CHOICE {
          fr1             ENUMERATED {mhz40, mhz50, mhz80, mhz100},
          fr2             ENUMERATED {mhz100, mhz200, mhz400}
      }                                                                   OPTIONAL    -- Need ON
  }                                                                       OPTIONAL,   -- Need ON
  timingReportingGranularityFactorExt-r18             INTEGER (-6..-1)    OPTIONAL,   -- Need ON
  nr-DL-PRS-JointMeasurementRequest-r18       SEQUENCE {
      nr-DL-PRS-JointMeasurementRequestedPFL-List-r18     SEQUENCE (SIZE (2..3)) OF
                                      INTEGER (0..nrMaxFreqLayers-1-r16)  OPTIONAL    -- Need ON
  }                                                                       OPTIONAL,   -- Need ON
  nr-DL-PRS-MeasurementTimeWindowsConfig-r18
                              NR-DL-PRS-MeasurementTimeWindowsConfig-r18  OPTIONAL    -- Need ON
  ]],
  [[
  nr-NTN-UE-RxTxMeasurementsRequest-r18   ENUMERATED { requested }        OPTIONAL    -- Need ON
  ]]
}

NR-Multi-RTT-ReportConfig-r16 ::= SEQUENCE {
  maxDL-PRS-RxTxTimeDiffMeasPerTRP-r16    INTEGER (1..4)                  OPTIONAL, -- Need ON
  timingReportingGranularityFactor-r16    INTEGER (0..5)                  OPTIONAL  -- Need ON
}


NR-Multi-RTT-ProvideCapabilities-r16 ::= SEQUENCE {
  nr-Multi-RTT-PRS-Capability-r16         NR-DL-PRS-ResourcesCapability-r16,
  nr-Multi-RTT-MeasurementCapability-r16  NR-Multi-RTT-MeasurementCapability-r16,
  nr-DL-PRS-QCL-ProcessingCapability-r16  NR-DL-PRS-QCL-ProcessingCapability-r16,
  nr-DL-PRS-ProcessingCapability-r16      NR-DL-PRS-ProcessingCapability-r16,
  nr-UL-SRS-Capability-r16                NR-UL-SRS-Capability-r16,
  additionalPathsReport-r16               ENUMERATED { supported }                    OPTIONAL,
  periodicalReporting-r16                 ENUMERATED { supported }                    OPTIONAL,
  ...,
  [[
  ten-ms-unit-ResponseTime-r17            ENUMERATED { supported }                    OPTIONAL,
  nr-DL-PRS-ExpectedAoD-or-AoA-Sup-r17    BIT STRING {    eAoD        (0),
                                                          eAoA        (1)
                                                      }   (SIZE (1..8))               OPTIONAL,   nr-Multi-RTT-On-Demand-DL-PRS-Support-r17
                                          NR-On-Demand-DL-PRS-Support-r17             OPTIONAL,
  nr-UE-RxTx-TEG-ID-ReportingSupport-r17  BIT STRING {    case1   (0),
                                                          case2   (1),
                                                          case3   (2)
                                                      }   (SIZE (1..8))               OPTIONAL,
  nr-los-nlos-IndicatorSupport-r17    SEQUENCE {
                                          type-r17            LOS-NLOS-IndicatorType2-r17,
                                          granularity-r17     LOS-NLOS-IndicatorGranularity2-r17,
                                          ...
                                      }                                               OPTIONAL,
  additionalPathsExtSupport-r17           ENUMERATED { n4, n6, n8 }                   OPTIONAL,
  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupport-r17            OPTIONAL,
  nr-dl-prs-AssistanceDataValidity-r17    SEQUENCE {
                              area-validity-r17   INTEGER (1..maxNrOfAreas-r17)       OPTIONAL,
                              ...
                          }                                                           OPTIONAL,
  multiMeasInSameMeasReport-r17           ENUMERATED { supported }                    OPTIONAL,
  mg-ActivationRequest-r17                ENUMERATED { supported }                    OPTIONAL
  ]],
  [[
  posMeasGapSupport-r17                   ENUMERATED { supported }                    OPTIONAL
  ]],
  [[
  nr-MultiRTT-OnDemandPRS-ForBWA-Support-r18  ENUMERATED { supported }                OPTIONAL,
  periodicReportingIntervalMsSupport-r18  PeriodicReportingIntervalMsSupport-r18      OPTIONAL
  ]]
}


NR-Multi-RTT-MeasurementCapability-r16 ::= SEQUENCE {
  maxNrOfRx-TX-MeasFR1-r16                    INTEGER (1..4)                      OPTIONAL,
  maxNrOfRx-TX-MeasFR2-r16                    INTEGER (1..4)                      OPTIONAL,
  supportOfRSRP-MeasFR1-r16                   ENUMERATED { supported }            OPTIONAL,
  supportOfRSRP-MeasFR2-r16                   ENUMERATED { supported }            OPTIONAL,
  srs-AssocPRS-MultiLayersFR1-r16             ENUMERATED { supported }            OPTIONAL,
  srs-AssocPRS-MultiLayersFR2-r16             ENUMERATED { supported }            OPTIONAL,
  ...,
  [[
  nr-UE-TEG-Capability-r17                    NR-UE-TEG-Capability-r17            OPTIONAL,
  multi-RTT-MeasCapabilityBandList-r17        SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                  Multi-RTT-MeasCapabilityPerBand-r17
                                                                                  OPTIONAL
  ]]
}

Multi-RTT-MeasCapabilityPerBand-r17 ::= SEQUENCE {
  freqBandIndicatorNR-r17                 FreqBandIndicatorNR-r16,
  supportOfDL-PRS-FirstPathRSRP-r17       ENUMERATED { supported }            OPTIONAL,
  dl-PRS-MeasRRC-Inactive-r17             ENUMERATED { supported }            OPTIONAL,
  ...,
  [[
  supportOfDL-PRS-BWA-RRC-Connected-r18       ENUMERATED { supported }                OPTIONAL,
  supportOfDL-PRS-BWA-RRC-Inactive-r18        ENUMERATED { supported }                OPTIONAL,
  nr-NTN-MeasAndReport-r18                    ENUMERATED { supported }                OPTIONAL,
  nr-DL-PRS-RSCP-ReportingRRC-Connected-r18   ENUMERATED { supported }                OPTIONAL,
  nr-DL-PRS-RSCP-ReportingRRC-Inactive-r18    ENUMERATED { supported }                OPTIONAL,
  assocSingleRx-Tx-WithUpToNsampleRSCP-r18    ENUMERATED { supported }                OPTIONAL,
  supportOfSymbolTimeStampForRSCP-r18         ENUMERATED { supported }                OPTIONAL,
  supportOfFinerTimingReportGranularityForPRS-Meas-r18    ENUMERATED { minus1, minus2,
                                                  minus3, minus4, minus5, minus6}     OPTIONAL,
  supportOfMeasurementsInTimeWindow-r18       BIT STRING {    rx-tx   (0),
                                                                                  rsrp    (1),
                                                                                  rsrpp   (2),
                                                                                          rscp    (3)
                                                              }   (SIZE (1..8))       OPTIONAL
  ]]
}


NR-Multi-RTT-RequestCapabilities-r16 ::= SEQUENCE {
  ...
}


NR-Multi-RTT-Error-r16 ::= CHOICE {
  locationServerErrorCauses-r16       NR-Multi-RTT-LocationServerErrorCauses-r16,
  targetDeviceErrorCauses-r16         NR-Multi-RTT-TargetDeviceErrorCauses-r16,
  ...
}


NR-Multi-RTT-LocationServerErrorCauses-r16 ::= SEQUENCE {
  cause-r16       ENUMERATED  {   undefined,
                                  assistanceDataNotSupportedByServer,
                                  assistanceDataSupportedButCurrentlyNotAvailableByServer,
                                  ...,
                                  on-demand-dl-prs-NotSupportedByServer-v1700,
                                  on-demand-dl-prs-SupportedButCurrentlyNotAvailableByServer-v1700
                              },
  ...
}


NR-Multi-RTT-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
  cause-r16       ENUMERATED {    undefined,
                                  dl-assistance-data-missing,
                                  unableToMeasureAnyTRP,
                                  attemptedButUnableToMeasureSomeNeighbourTRPs,
                                  ul-srs-configuration-missing,
                                  unableToTransmit-ul-srs,
                                  ...
                              },
  ...,
  [[
  remoteUE-Indication-r18     ENUMERATED {true}       OPTIONAL        -- Cond NR
  ]]
}


maxEARFCN                   INTEGER ::= 65535   -- Maximum value of EUTRA carrier frequency
maxEARFCN-Plus1             INTEGER ::= 65536   -- Lowest value extended EARFCN range
maxEARFCN2                  INTEGER ::= 262143  -- Highest value extended EARFCN range

maxMBS-r14                  INTEGER ::= 64
maxWLAN-AP-r13              INTEGER ::= 64
maxKnownAPs-r14             INTEGER ::= 2048
maxVisibleAPs-r14           INTEGER ::= 32
maxWLAN-AP-r14              INTEGER ::= 128
maxWLAN-DataSets-r14        INTEGER ::= 8

maxBT-Beacon-r13            INTEGER ::= 32
maxBT-BeaconAntElt-r18      INTEGER ::= 74
maxBT-BeaconAD-r18          INTEGER ::= 64

nrMaxBands-r16                          INTEGER ::= 1024    -- Maximum number of supported bands in
                                                          -- UE capability.
      nrMaxFreqLayers-r16                     INTEGER ::= 4       -- Max freq layers
nrMaxFreqLayers-1-r16                   INTEGER ::= 3
nrMaxNumDL-PRS-ResourcesPerSet-1-r16    INTEGER ::= 63
nrMaxNumDL-PRS-ResourceSetsPerTRP-1-r16 INTEGER ::= 7
nrMaxResourceIDs-r16                    INTEGER ::= 64      -- Max Resource IDs
nrMaxResourceOffsetValue-1-r16          INTEGER ::= 511
nrMaxResourcesPerSet-r16                INTEGER ::= 64      -- Maximum resources for one set
nrMaxSetsPerTrpPerFreqLayer-r16         INTEGER ::= 2       -- Maximum resource sets for one TRP
      nrMaxSetsPerTrpPerFreqLayer-1-r16       INTEGER ::= 1
nrMaxTRPs-r16                           INTEGER ::= 256     -- Max TRPs per UE
nrMaxTRPsPerFreq-r16                    INTEGER ::= 64      -- Max TRPs per freq layers
nrMaxTRPsPerFreq-1-r16                  INTEGER ::= 63
maxSimultaneousBands-r16                INTEGER ::= 4       -- Maximum number of simultaneously
                                                          -- measured bands
maxBandComb-r16                         INTEGER ::= 1024
nrMaxConfiguredBands-r16                INTEGER ::= 16

maxNumOfRxTEGs-r17                      INTEGER ::= 32
maxNumOfRxTEGs-1-r17                    INTEGER ::= 31
maxNumOfTxTEGs-1-r17                    INTEGER ::= 7
maxTxTEG-Sets-r17                       INTEGER ::= 256     -- Maximum applicable number is 64
maxNumOfRxTxTEGs-1-r17                  INTEGER ::= 255
maxNumOfTRP-TxTEGs-1-r17                INTEGER ::= 7
maxNumOfSRS-PosResources-r17            INTEGER ::= 64
maxNumOfSRS-PosResources-1-r17          INTEGER ::= 63

maxNumResourcesPerAngle-r17             INTEGER ::= 24
maxNumPrioResources-r17                 INTEGER ::= 24

maxAddMeasTDOA-r17                      INTEGER ::= 31
maxAddMeasAoD-r17                       INTEGER ::= 23
maxAddMeasRTT-r17                       INTEGER ::= 31

maxOD-DL-PRS-Configs-r17                INTEGER ::= 8

maxCellIDsPerArea-r17                   INTEGER ::= 256
maxNrOfAreas-r17                        INTEGER ::= 16
maxMeasInstances-r17                    INTEGER ::= 32

nrMaxNumPRS-BandWidthAggregation-r18    INTEGER ::= 256     -- Max number of DL-PRS bandwidth
                                                          -- aggregation configurations that a
                                                          -- location server can provide to a UE
nrNumOfSamples-r18                      INTEGER ::= 4       -- NSample of RSCP/RSCPD
nrNumOfSamples-1-r18                    INTEGER ::= 3


END


LPP-Broadcast-Definitions

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
  OTDOA-ReferenceCellInfo,
  OTDOA-NeighbourCellInfoList,
  NR-TRP-LocationInfo-r16,
  NR-DL-PRS-BeamInfo-r16,
  NR-RTD-Info-r16,
  NR-IntegrityParametersTRP-LocationInfo-r18,
  NR-IntegrityParametersDL-PRS-BeamInfo-r18,
  NR-IntegrityParametersRTD-Info-r18,
  NR-IntegrityParametersTRP-BeamAntennaInfo-r18

FROM LPP-PDU-Definitions;


AssistanceDataSIBelement-r15 ::= SEQUENCE {
  valueTag-r15                        INTEGER (0..63)                 OPTIONAL, -- Need OP
  expirationTime-r15                  UTCTime                         OPTIONAL, -- Need OP
  cipheringKeyData-r15                CipheringKeyData-r15            OPTIONAL, -- Need OP
  segmentationInfo-r15                SegmentationInfo-r15            OPTIONAL, -- Need OP
  assistanceDataElement-r15           OCTET STRING,
  ...
}

CipheringKeyData-r15 ::= SEQUENCE {
  cipherSetID-r15                     INTEGER (0..65535),
  d0-r15                              BIT STRING (SIZE (1..128)),
  ...
}

SegmentationInfo-r15 ::= SEQUENCE {
  segmentationOption-r15              ENUMERATED {pseudo-seg, octet-string-seg},
  assistanceDataSegmentType-r15       ENUMERATED {notLastSegment, lastSegment},
  assistanceDataSegmentNumber-r15     INTEGER (0..63),
  ...
}


OTDOA-UE-Assisted-r15 ::= SEQUENCE {
  otdoa-ReferenceCellInfo-r15         OTDOA-ReferenceCellInfo,
  otdoa-NeighbourCellInfo-r15         OTDOA-NeighbourCellInfoList,
  ...
}


NR-UEB-TRP-LocationData-r16 ::= SEQUENCE {
  nr-trp-LocationInfo-r16             NR-TRP-LocationInfo-r16,
  nr-dl-prs-BeamInfo-r16              NR-DL-PRS-BeamInfo-r16          OPTIONAL,   -- Need ON
  ...
}


NR-UEB-TRP-RTD-Info-r16 ::= SEQUENCE {
  nr-rtd-Info-r16                     NR-RTD-Info-r16,
  ...
}


NR-IntegrityParameters-r18 ::= SEQUENCE {
  nr-IntegrityParametersTRP-LocationInfo-r18
                  NR-IntegrityParametersTRP-LocationInfo-r18      OPTIONAL,   -- Need OR
  nr-IntegrityParametersDL-PRS-BeamInfo-r18
                  NR-IntegrityParametersDL-PRS-BeamInfo-r18       OPTIONAL,   -- Need OR
  nr-IntegrityParametersRTD-Info-r18
                  NR-IntegrityParametersRTD-Info-r18              OPTIONAL,   -- Need OR
  nr-IntegrityParametersTRP-BeamAntennaInfo-r18
                  NR-IntegrityParametersTRP-BeamAntennaInfo-r18   OPTIONAL,   -- Need OR
  ...
}


END