RUA ASN.1 Rewrite to avoid information object classes

If we avoid using Information Object Classes in the IE definitions
(which are only used for Extension Containers), then we can compile the
ASN.1 source using Lev Walkin's asn1c.
diff --git a/asn1/rua/RUA-IEs.asn b/asn1/rua/RUA-IEs.asn
index ca594b8..1e43580 100644
--- a/asn1/rua/RUA-IEs.asn
+++ b/asn1/rua/RUA-IEs.asn
@@ -16,16 +16,17 @@
 	maxNrOfErrors
 FROM RUA-Constants
 
+	maxProtocolExtensions,
 	Criticality,
 	ProcedureCode,
 	ProtocolIE-ID,
 	TriggeringMessage
 FROM RUA-CommonDataTypes
 
-	ProtocolExtensionContainer{},
-	RUA-PROTOCOL-EXTENSION
-FROM RUA-Containers;
+	IE
+FROM RUA-PDU;
 
+IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE
 
 CN-DomainIndicator ::= ENUMERATED { 
 	cs-domain, 
@@ -160,7 +161,7 @@
 	triggeringMessage		TriggeringMessage	OPTIONAL,
 	procedureCriticality		Criticality	OPTIONAL,
 	iEsCriticalityDiagnostics	CriticalityDiagnostics-IE-List	OPTIONAL,
-	iE-Extensions			ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } 	OPTIONAL,
+	iE-Extensions			IE-Extensions	OPTIONAL,
 	...
 }
 
@@ -169,19 +170,10 @@
 		iECriticality			Criticality,
 		iE-ID				ProtocolIE-ID,
 		typeOfError			TypeOfError,
-		iE-Extensions			ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} }	OPTIONAL,
+		iE-Extensions			IE-Extensions	OPTIONAL,
 		...
 	}
 
-CriticalityDiagnostics-IE-List-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
-	...
-}
-
-CriticalityDiagnostics-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
-	...
-}
-
-
 TypeOfError ::= ENUMERATED {
 	not-understood,
 	missing,
diff --git a/asn1/rua/RUA-PDU.asn b/asn1/rua/RUA-PDU.asn
new file mode 100644
index 0000000..5f88c0d
--- /dev/null
+++ b/asn1/rua/RUA-PDU.asn
@@ -0,0 +1,51 @@
+RUA-PDU {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
+umts-Access (20) modules (3) rua(5) version1 (1) rUA-PDU (255) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+    Criticality,
+    ProcedureCode,
+    ProtocolIE-ID
+
+FROM RUA-CommonDataTypes
+
+    maxProtocolIEs
+
+FROM RUAP-Constants;
+
+RUA-PDU ::= CHOICE {
+    initiatingMessage       InitiatingMessage,
+    successfulOutcome       SuccessfulOutcome,
+    unsuccessfulOutcome     UnsuccessfulOutcome,
+    ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+    procedureCode   ProcedureCode,
+    criticality     Criticality,
+    value           ANY
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+    procedureCode   ProcedureCode,
+    criticality     Criticality,
+    value           ANY
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+    procedureCode   ProcedureCode,
+    criticality     Criticality,
+    value           ANY
+}
+
+IE ::= SEQUENCE {
+    id ProtocolIE-ID,
+    criticality Criticality,
+    value ANY
+}
+
+END
diff --git a/asn1/rua/asn1c/Makefile b/asn1/rua/asn1c/Makefile
new file mode 100644
index 0000000..3a7689b
--- /dev/null
+++ b/asn1/rua/asn1c/Makefile
@@ -0,0 +1,6 @@
+MOD=RUA
+
+ASNS=../$(MOD)-CommonDataTypes.asn ../$(MOD)-Constants.asn ../$(MOD)-IEs.asn ../$(MOD)-PDU.asn
+
+all: $(ASNS)
+	asn1c -gen-PER -fnative-types -fskeletons-copy $^