SeqOf DEFINITIONS IMPLICIT TAGS ::= BEGIN Seq1 ::= SEQUENCE { bool1 BOOLEAN, int1 INTEGER, seq1 SEQUENCE OF SeqIn DEFAULT {} } Seq2 ::= SEQUENCE { seq2 SEQUENCE OF SeqIn DEFAULT {}, bool2 BOOLEAN, int2 INTEGER } Seq3 ::= SEQUENCE { bool3 BOOLEAN, seq3 SEQUENCE OF SeqIn DEFAULT {}, int3 INTEGER } Seq4 ::= SEQUENCE { seq41 [41] SEQUENCE OF SeqIn DEFAULT {}, seq42 [42] SEQUENCE OF SeqIn DEFAULT {}, seq43 [43] SEQUENCE OF SeqIn DEFAULT {} } Seq5 ::= SEQUENCE { b BOOLEAN, s SEQUENCE SIZE (0..3) OF OCTET STRING (SIZE (0..3)), -- If 's' is empty, 'magic' should not be aligned. magic INTEGER (0..127) } Seq6 ::= SEQUENCE { a SEQUENCE OF INTEGER (0..7), b SEQUENCE (SIZE (0..7)) OF INTEGER (0..7), -- 'magic' should never be aligned. magic INTEGER (0..127) } Seq7 ::= SEQUENCE { a SEQUENCE OF INTEGER (1..512), b SEQUENCE (SIZE (0..255)) OF INTEGER (1..512), i INTEGER } Seq8 ::= SEQUENCE { sof SEQUENCE (SIZE (0..3)) OF OCTET STRING (SIZE (3)), -- Not aligned here if the size of 'sof' is zero. i INTEGER (0..127) } Seq9 ::= SEQUENCE { b BOOLEAN, s SEQUENCE SIZE (0..3) OF OCTET STRING (SIZE (0..3)), magic INTEGER (0..127) } Seq10 ::= SEQUENCE { b BOOLEAN, s SEQUENCE SIZE (1..3) OF OCTET STRING (SIZE (0..3)), magic INTEGER (0..127) } SeqIn ::= SEQUENCE { boolIn BOOLEAN, intIn INTEGER } SeqOs ::= SEQUENCE OF OCTET STRING SeqOsImp ::= [23] SEQUENCE OF OCTET STRING SeqOsExp ::= [24] EXPLICIT SEQUENCE OF OCTET STRING SeqCho ::= SEQUENCE OF CHOICE {bool BOOLEAN, int INTEGER, last NULL} SeqOfInt ::= SEQUENCE OF INTEGER SeqEmp ::= SEQUENCE { seq1 SEQUENCE OF Empty DEFAULT {} } Empty ::= SEQUENCE { } SeqExt ::= SEQUENCE { b1 BOOLEAN, s1 SEQUENCE SIZE (1..3, ...) OF SeqIn, b2 BOOLEAN, s2 SEQUENCE SIZE (0..1024, ...) OF SeqIn, magic INTEGER } END