{ Imports for Java packages/classes: java.io.IIOException, java.io.IOException, java.io.Serializable, java.lang.AbstractStringBuilder, java.lang.Appendable, java.lang.Boolean, java.lang.Byte, java.lang.CharSequence, java.lang.Character, java.lang.Class, java.lang.Cloneable, java.lang.Comparable, java.lang.Double, java.lang.Enum, java.lang.Error, java.lang.Exception, java.lang.Float, java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.IndexOutOfBoundsException, java.lang.Integer, java.lang.Iterable, java.lang.LinkageError, java.lang.Long, java.lang.Math, java.lang.NoSuchMethodException, java.lang.Number, java.lang.Object, java.lang.Readable, java.lang.Runtime, java.lang.RuntimeException, java.lang.Short, java.lang.String, java.lang.StringBuffer, java.lang.StringBuilder, java.lang.System, java.lang.ThreadLocal, java.lang.Throwable, java.lang.UnsupportedOperationException, java.lang.reflect.AccessibleObject, java.lang.reflect.AnnotatedElement, java.lang.reflect.Array, java.lang.reflect.Field, java.lang.reflect.GenericDeclaration, java.lang.reflect.InvocationTargetException, java.lang.reflect.Member, java.lang.reflect.Method, java.lang.reflect.Type, java.lang.AssertionError, java.math.BigInteger, java.nio.Buffer, java.nio.ByteBuffer, java.nio.CharBuffer, java.nio.charset., java.text.Collator, java.util.AbstractCollection, java.util.AbstractMap, java.util.AbstractSet, java.util.Arrays, java.util.BitSet, java.util.Calendar, java.util.Collection, java.util.Comparator, java.util.EnumSet, java.util.HashMap, java.util.Iterator, java.util.Map, java.util.Set }
type
  JLNoSuchMethodException = class;
  Arr1JLNoSuchMethodException = array of JLNoSuchMethodException;
  Arr2JLNoSuchMethodException = array of Arr1JLNoSuchMethodException;
  Arr3JLNoSuchMethodException = array of Arr2JLNoSuchMethodException;

  JLObject = class;
  Arr1JLObject = array of JLObject;
  Arr2JLObject = array of Arr1JLObject;
  Arr3JLObject = array of Arr2JLObject;

  JLStringBuilder = class;
  Arr1JLStringBuilder = array of JLStringBuilder;
  Arr2JLStringBuilder = array of Arr1JLStringBuilder;
  Arr3JLStringBuilder = array of Arr2JLStringBuilder;

  JLAbstractStringBuilder = class;
  Arr1JLAbstractStringBuilder = array of JLAbstractStringBuilder;
  Arr2JLAbstractStringBuilder = array of Arr1JLAbstractStringBuilder;
  Arr3JLAbstractStringBuilder = array of Arr2JLAbstractStringBuilder;

  JLRInvocationTargetException = class;
  Arr1JLRInvocationTargetException = array of JLRInvocationTargetException;
  Arr2JLRInvocationTargetException = array of Arr1JLRInvocationTargetException;
  Arr3JLRInvocationTargetException = array of Arr2JLRInvocationTargetException;

  JLError = class;
  Arr1JLError = array of JLError;
  Arr2JLError = array of Arr1JLError;
  Arr3JLError = array of Arr2JLError;

  JLRField = class;
  Arr1JLRField = array of JLRField;
  Arr2JLRField = array of Arr1JLRField;
  Arr3JLRField = array of Arr2JLRField;

  JNBuffer = class;
  Arr1JNBuffer = array of JNBuffer;
  Arr2JNBuffer = array of Arr1JNBuffer;
  Arr3JNBuffer = array of Arr2JNBuffer;

  JUArrays = class;
  Arr1JUArrays = array of JUArrays;
  Arr2JUArrays = array of Arr1JUArrays;
  Arr3JUArrays = array of Arr2JUArrays;

  JLRuntime = class;
  Arr1JLRuntime = array of JLRuntime;
  Arr2JLRuntime = array of Arr1JLRuntime;
  Arr3JLRuntime = array of Arr2JLRuntime;

  JLLong = class;
  Arr1JLLong = array of JLLong;
  Arr2JLLong = array of Arr1JLLong;
  Arr3JLLong = array of Arr2JLLong;

  JLMath = class;
  Arr1JLMath = array of JLMath;
  Arr2JLMath = array of Arr1JLMath;
  Arr3JLMath = array of Arr2JLMath;

  JNCharBuffer = class;
  Arr1JNCharBuffer = array of JNCharBuffer;
  Arr2JNCharBuffer = array of Arr1JNCharBuffer;
  Arr3JNCharBuffer = array of Arr2JNCharBuffer;

  JLLinkageError = class;
  Arr1JLLinkageError = array of JLLinkageError;
  Arr2JLLinkageError = array of Arr1JLLinkageError;
  Arr3JLLinkageError = array of Arr2JLLinkageError;

  JNCCharsetEncoder = class;
  Arr1JNCCharsetEncoder = array of JNCCharsetEncoder;
  Arr2JNCCharsetEncoder = array of Arr1JNCCharsetEncoder;
  Arr3JNCCharsetEncoder = array of Arr2JNCCharsetEncoder;

  JUAbstractCollection = class;
  Arr1JUAbstractCollection = array of JUAbstractCollection;
  Arr2JUAbstractCollection = array of Arr1JUAbstractCollection;
  Arr3JUAbstractCollection = array of Arr2JUAbstractCollection;

  JNCCoderResult = class;
  Arr1JNCCoderResult = array of JNCCoderResult;
  Arr2JNCCoderResult = array of Arr1JNCCoderResult;
  Arr3JNCCoderResult = array of Arr2JNCCoderResult;

  JLThreadLocal = class;
  Arr1JLThreadLocal = array of JLThreadLocal;
  Arr2JLThreadLocal = array of Arr1JLThreadLocal;
  Arr3JLThreadLocal = array of Arr2JLThreadLocal;

  JUAbstractMap = class;
  Arr1JUAbstractMap = array of JUAbstractMap;
  Arr2JUAbstractMap = array of Arr1JUAbstractMap;
  Arr3JUAbstractMap = array of Arr2JUAbstractMap;

  JNCCoderMalfunctionError = class;
  Arr1JNCCoderMalfunctionError = array of JNCCoderMalfunctionError;
  Arr2JNCCoderMalfunctionError = array of Arr1JNCCoderMalfunctionError;
  Arr3JNCCoderMalfunctionError = array of Arr2JNCCoderMalfunctionError;

  JUEnumSet = class;
  Arr1JUEnumSet = array of JUEnumSet;
  Arr2JUEnumSet = array of Arr1JUEnumSet;
  Arr3JUEnumSet = array of Arr2JUEnumSet;

  JNCCharacterCodingException = class;
  Arr1JNCCharacterCodingException = array of JNCCharacterCodingException;
  Arr2JNCCharacterCodingException = array of Arr1JNCCharacterCodingException;
  Arr3JNCCharacterCodingException = array of Arr2JNCCharacterCodingException;

  JLIndexOutOfBoundsException = class;
  Arr1JLIndexOutOfBoundsException = array of JLIndexOutOfBoundsException;
  Arr2JLIndexOutOfBoundsException = array of Arr1JLIndexOutOfBoundsException;
  Arr3JLIndexOutOfBoundsException = array of Arr2JLIndexOutOfBoundsException;

  JUHashMap = class;
  Arr1JUHashMap = array of JUHashMap;
  Arr2JUHashMap = array of Arr1JUHashMap;
  Arr3JUHashMap = array of Arr2JUHashMap;

  JUCalendar = class;
  Arr1JUCalendar = array of JUCalendar;
  Arr2JUCalendar = array of Arr1JUCalendar;
  Arr3JUCalendar = array of Arr2JUCalendar;

  JLDouble = class;
  Arr1JLDouble = array of JLDouble;
  Arr2JLDouble = array of Arr1JLDouble;
  Arr3JLDouble = array of Arr2JLDouble;

  JUBitSet = class;
  Arr1JUBitSet = array of JUBitSet;
  Arr2JUBitSet = array of Arr1JUBitSet;
  Arr3JUBitSet = array of Arr2JUBitSet;

  JLString = class;
  Arr1JLString = array of JLString;
  Arr2JLString = array of Arr1JLString;
  Arr3JLString = array of Arr2JLString;

  JUAbstractSet = class;
  Arr1JUAbstractSet = array of JUAbstractSet;
  Arr2JUAbstractSet = array of Arr1JUAbstractSet;
  Arr3JUAbstractSet = array of Arr2JUAbstractSet;

  JLFloat = class;
  Arr1JLFloat = array of JLFloat;
  Arr2JLFloat = array of Arr1JLFloat;
  Arr3JLFloat = array of Arr2JLFloat;

  JLRuntimeException = class;
  Arr1JLRuntimeException = array of JLRuntimeException;
  Arr2JLRuntimeException = array of Arr1JLRuntimeException;
  Arr3JLRuntimeException = array of Arr2JLRuntimeException;

  JLIllegalStateException = class;
  Arr1JLIllegalStateException = array of JLIllegalStateException;
  Arr2JLIllegalStateException = array of Arr1JLIllegalStateException;
  Arr3JLIllegalStateException = array of Arr2JLIllegalStateException;

  JLRAccessibleObject = class;
  Arr1JLRAccessibleObject = array of JLRAccessibleObject;
  Arr2JLRAccessibleObject = array of Arr1JLRAccessibleObject;
  Arr3JLRAccessibleObject = array of Arr2JLRAccessibleObject;

  JLStringBuffer = class;
  Arr1JLStringBuffer = array of JLStringBuffer;
  Arr2JLStringBuffer = array of Arr1JLStringBuffer;
  Arr3JLStringBuffer = array of Arr2JLStringBuffer;

  JNByteBuffer = class;
  Arr1JNByteBuffer = array of JNByteBuffer;
  Arr2JNByteBuffer = array of Arr1JNByteBuffer;
  Arr3JNByteBuffer = array of Arr2JNByteBuffer;

  JLEnum = class;
  Arr1JLEnum = array of JLEnum;
  Arr2JLEnum = array of Arr1JLEnum;
  Arr3JLEnum = array of Arr2JLEnum;

  JNCSCharsetProvider = class;
  Arr1JNCSCharsetProvider = array of JNCSCharsetProvider;
  Arr2JNCSCharsetProvider = array of Arr1JNCSCharsetProvider;
  Arr3JNCSCharsetProvider = array of Arr2JNCSCharsetProvider;

  JLNumber = class;
  Arr1JLNumber = array of JLNumber;
  Arr2JLNumber = array of Arr1JLNumber;
  Arr3JLNumber = array of Arr2JLNumber;

  JIIOException = class;
  Arr1JIIOException = array of JIIOException;
  Arr2JIIOException = array of Arr1JIIOException;
  Arr3JIIOException = array of Arr2JIIOException;

  JLRMethod = class;
  Arr1JLRMethod = array of JLRMethod;
  Arr2JLRMethod = array of Arr1JLRMethod;
  Arr3JLRMethod = array of Arr2JLRMethod;

  JLCharacter = class;
  Arr1JLCharacter = array of JLCharacter;
  Arr2JLCharacter = array of Arr1JLCharacter;
  Arr3JLCharacter = array of Arr2JLCharacter;

  JNCCodingErrorAction = class;
  Arr1JNCCodingErrorAction = array of JNCCodingErrorAction;
  Arr2JNCCodingErrorAction = array of Arr1JNCCodingErrorAction;
  Arr3JNCCodingErrorAction = array of Arr2JNCCodingErrorAction;

  JMBigInteger = class;
  Arr1JMBigInteger = array of JMBigInteger;
  Arr2JMBigInteger = array of Arr1JMBigInteger;
  Arr3JMBigInteger = array of Arr2JMBigInteger;

  JNCCharsetDecoder = class;
  Arr1JNCCharsetDecoder = array of JNCCharsetDecoder;
  Arr2JNCCharsetDecoder = array of Arr1JNCCharsetDecoder;
  Arr3JNCCharsetDecoder = array of Arr2JNCCharsetDecoder;

  JLBoolean = class;
  Arr1JLBoolean = array of JLBoolean;
  Arr2JLBoolean = array of Arr1JLBoolean;
  Arr3JLBoolean = array of Arr2JLBoolean;

  JNCCharset = class;
  Arr1JNCCharset = array of JNCCharset;
  Arr2JNCCharset = array of Arr1JNCCharset;
  Arr3JNCCharset = array of Arr2JNCCharset;

  JLShort = class;
  Arr1JLShort = array of JLShort;
  Arr2JLShort = array of Arr1JLShort;
  Arr3JLShort = array of Arr2JLShort;

  JLThrowable = class;
  Arr1JLThrowable = array of JLThrowable;
  Arr2JLThrowable = array of Arr1JLThrowable;
  Arr3JLThrowable = array of Arr2JLThrowable;

  JLInteger = class;
  Arr1JLInteger = array of JLInteger;
  Arr2JLInteger = array of Arr1JLInteger;
  Arr3JLInteger = array of Arr2JLInteger;

  JNCUnmappableCharacterException = class;
  Arr1JNCUnmappableCharacterException = array of JNCUnmappableCharacterException;
  Arr2JNCUnmappableCharacterException = array of Arr1JNCUnmappableCharacterException;
  Arr3JNCUnmappableCharacterException = array of Arr2JNCUnmappableCharacterException;

  JNCMalformedInputException = class;
  Arr1JNCMalformedInputException = array of JNCMalformedInputException;
  Arr2JNCMalformedInputException = array of Arr1JNCMalformedInputException;
  Arr3JNCMalformedInputException = array of Arr2JNCMalformedInputException;

  JNCIllegalCharsetNameException = class;
  Arr1JNCIllegalCharsetNameException = array of JNCIllegalCharsetNameException;
  Arr2JNCIllegalCharsetNameException = array of Arr1JNCIllegalCharsetNameException;
  Arr3JNCIllegalCharsetNameException = array of Arr2JNCIllegalCharsetNameException;

  JLByte = class;
  Arr1JLByte = array of JLByte;
  Arr2JLByte = array of Arr1JLByte;
  Arr3JLByte = array of Arr2JLByte;

  JNCUnsupportedCharsetException = class;
  Arr1JNCUnsupportedCharsetException = array of JNCUnsupportedCharsetException;
  Arr2JNCUnsupportedCharsetException = array of Arr1JNCUnsupportedCharsetException;
  Arr3JNCUnsupportedCharsetException = array of Arr2JNCUnsupportedCharsetException;

  JLRArray = class;
  Arr1JLRArray = array of JLRArray;
  Arr2JLRArray = array of Arr1JLRArray;
  Arr3JLRArray = array of Arr2JLRArray;

  JLUnsupportedOperationException = class;
  Arr1JLUnsupportedOperationException = array of JLUnsupportedOperationException;
  Arr2JLUnsupportedOperationException = array of Arr1JLUnsupportedOperationException;
  Arr3JLUnsupportedOperationException = array of Arr2JLUnsupportedOperationException;

  JLException = class;
  Arr1JLException = array of JLException;
  Arr2JLException = array of Arr1JLException;
  Arr3JLException = array of Arr2JLException;

  JTCollator = class;
  Arr1JTCollator = array of JTCollator;
  Arr2JTCollator = array of Arr1JTCollator;
  Arr3JTCollator = array of Arr2JTCollator;

  JLClass = class;
  Arr1JLClass = array of JLClass;
  Arr2JLClass = array of Arr1JLClass;
  Arr3JLClass = array of Arr2JLClass;

  JLIllegalArgumentException = class;
  Arr1JLIllegalArgumentException = array of JLIllegalArgumentException;
  Arr2JLIllegalArgumentException = array of Arr1JLIllegalArgumentException;
  Arr3JLIllegalArgumentException = array of Arr2JLIllegalArgumentException;

  JLSystem = class;
  Arr1JLSystem = array of JLSystem;
  Arr2JLSystem = array of Arr1JLSystem;
  Arr3JLSystem = array of Arr2JLSystem;

  JLIterable = interface;
  Arr1JLIterable = array of JLIterable;
  Arr2JLIterable = array of Arr1JLIterable;
  Arr3JLIterable = array of Arr2JLIterable;

  JUIterator = interface;
  Arr1JUIterator = array of JUIterator;
  Arr2JUIterator = array of Arr1JUIterator;
  Arr3JUIterator = array of Arr2JUIterator;

  JLCloneable = interface;
  Arr1JLCloneable = array of JLCloneable;
  Arr2JLCloneable = array of Arr1JLCloneable;
  Arr3JLCloneable = array of Arr2JLCloneable;

  JLAppendable = interface;
  Arr1JLAppendable = array of JLAppendable;
  Arr2JLAppendable = array of Arr1JLAppendable;
  Arr3JLAppendable = array of Arr2JLAppendable;

  JUCollection = interface;
  Arr1JUCollection = array of JUCollection;
  Arr2JUCollection = array of Arr1JUCollection;
  Arr3JUCollection = array of Arr2JUCollection;

  JUMap = interface;
  Arr1JUMap = array of JUMap;
  Arr2JUMap = array of Arr1JUMap;
  Arr3JUMap = array of Arr2JUMap;

  JUSet = interface;
  Arr1JUSet = array of JUSet;
  Arr2JUSet = array of Arr1JUSet;
  Arr3JUSet = array of Arr2JUSet;

  JLRType = interface;
  Arr1JLRType = array of JLRType;
  Arr2JLRType = array of Arr1JLRType;
  Arr3JLRType = array of Arr2JLRType;

  JLComparable = interface;
  Arr1JLComparable = array of JLComparable;
  Arr2JLComparable = array of Arr1JLComparable;
  Arr3JLComparable = array of Arr2JLComparable;

  JLRMember = interface;
  Arr1JLRMember = array of JLRMember;
  Arr2JLRMember = array of Arr1JLRMember;
  Arr3JLRMember = array of Arr2JLRMember;

  JLCharSequence = interface;
  Arr1JLCharSequence = array of JLCharSequence;
  Arr2JLCharSequence = array of Arr1JLCharSequence;
  Arr3JLCharSequence = array of Arr2JLCharSequence;

  JLRGenericDeclaration = interface;
  Arr1JLRGenericDeclaration = array of JLRGenericDeclaration;
  Arr2JLRGenericDeclaration = array of Arr1JLRGenericDeclaration;
  Arr3JLRGenericDeclaration = array of Arr2JLRGenericDeclaration;

  JLRAnnotatedElement = interface;
  Arr1JLRAnnotatedElement = array of JLRAnnotatedElement;
  Arr2JLRAnnotatedElement = array of Arr1JLRAnnotatedElement;
  Arr3JLRAnnotatedElement = array of Arr2JLRAnnotatedElement;

  JUComparator = interface;
  Arr1JUComparator = array of JUComparator;
  Arr2JUComparator = array of Arr1JUComparator;
  Arr3JUComparator = array of Arr2JUComparator;

  JISerializable = interface;
  Arr1JISerializable = array of JISerializable;
  Arr2JISerializable = array of Arr1JISerializable;
  Arr3JISerializable = array of Arr2JISerializable;

  JLReadable = interface;
  Arr1JLReadable = array of JLReadable;
  Arr2JLReadable = array of Arr1JLReadable;
  Arr3JLReadable = array of Arr2JLReadable;

  JUWeakHashMap = class;
  Arr1JUWeakHashMap = array of JUWeakHashMap;
  Arr2JUWeakHashMap = array of Arr1JUWeakHashMap;
  Arr3JUWeakHashMap = array of Arr2JUWeakHashMap;

  JLThread = class external 'java.lang' name 'Thread';
  Arr1JLThread = array of JLThread;
  Arr2JLThread = array of Arr1JLThread;
  Arr3JLThread = array of Arr2JLThread;

  JUDate = class external 'java.util' name 'Date';
  Arr1JUDate = array of JUDate;
  Arr2JUDate = array of Arr1JUDate;
  Arr3JUDate = array of Arr2JUDate;

  JLClassLoader = class external 'java.lang' name 'ClassLoader';
  Arr1JLClassLoader = array of JLClassLoader;
  Arr2JLClassLoader = array of Arr1JLClassLoader;
  Arr3JLClassLoader = array of Arr2JLClassLoader;

  JNIntBuffer = class external 'java.nio' name 'IntBuffer';
  Arr1JNIntBuffer = array of JNIntBuffer;
  Arr2JNIntBuffer = array of Arr1JNIntBuffer;
  Arr3JNIntBuffer = array of Arr2JNIntBuffer;

  JNByteOrder = class external 'java.nio' name 'ByteOrder';
  Arr1JNByteOrder = array of JNByteOrder;
  Arr2JNByteOrder = array of Arr1JNByteOrder;
  Arr3JNByteOrder = array of Arr2JNByteOrder;

  JIInputStream = class external 'java.io' name 'InputStream';
  Arr1JIInputStream = array of JIInputStream;
  Arr2JIInputStream = array of Arr1JIInputStream;
  Arr3JIInputStream = array of Arr2JIInputStream;

  JNLongBuffer = class external 'java.nio' name 'LongBuffer';
  Arr1JNLongBuffer = array of JNLongBuffer;
  Arr2JNLongBuffer = array of Arr1JNLongBuffer;
  Arr3JNLongBuffer = array of Arr2JNLongBuffer;

  JLSecurityManager = class external 'java.lang' name 'SecurityManager';
  Arr1JLSecurityManager = array of JLSecurityManager;
  Arr2JLSecurityManager = array of Arr1JLSecurityManager;
  Arr3JLSecurityManager = array of Arr2JLSecurityManager;

  JIPrintWriter = class external 'java.io' name 'PrintWriter';
  Arr1JIPrintWriter = array of JIPrintWriter;
  Arr2JIPrintWriter = array of Arr1JIPrintWriter;
  Arr3JIPrintWriter = array of Arr2JIPrintWriter;

  JNDoubleBuffer = class external 'java.nio' name 'DoubleBuffer';
  Arr1JNDoubleBuffer = array of JNDoubleBuffer;
  Arr2JNDoubleBuffer = array of Arr1JNDoubleBuffer;
  Arr3JNDoubleBuffer = array of Arr2JNDoubleBuffer;

  JLPackage = class external 'java.lang' name 'Package';
  Arr1JLPackage = array of JLPackage;
  Arr2JLPackage = array of Arr1JLPackage;
  Arr3JLPackage = array of Arr2JLPackage;

  JURandom = class external 'java.util' name 'Random';
  Arr1JURandom = array of JURandom;
  Arr2JURandom = array of Arr1JURandom;
  Arr3JURandom = array of Arr2JURandom;

  JIOutputStream = class external 'java.io' name 'OutputStream';
  Arr1JIOutputStream = array of JIOutputStream;
  Arr2JIOutputStream = array of Arr1JIOutputStream;
  Arr3JIOutputStream = array of Arr2JIOutputStream;

  JLStackTraceElement = class external 'java.lang' name 'StackTraceElement';
  Arr1JLStackTraceElement = array of JLStackTraceElement;
  Arr2JLStackTraceElement = array of Arr1JLStackTraceElement;
  Arr3JLStackTraceElement = array of Arr2JLStackTraceElement;

  JIFile = class external 'java.io' name 'File';
  Arr1JIFile = array of JIFile;
  Arr2JIFile = array of Arr1JIFile;
  Arr3JIFile = array of Arr2JIFile;

  JUProperties = class external 'java.util' name 'Properties';
  Arr1JUProperties = array of JUProperties;
  Arr2JUProperties = array of Arr1JUProperties;
  Arr3JUProperties = array of Arr2JUProperties;

  JNFloatBuffer = class external 'java.nio' name 'FloatBuffer';
  Arr1JNFloatBuffer = array of JNFloatBuffer;
  Arr2JNFloatBuffer = array of Arr1JNFloatBuffer;
  Arr3JNFloatBuffer = array of Arr2JNFloatBuffer;

  JNShortBuffer = class external 'java.nio' name 'ShortBuffer';
  Arr1JNShortBuffer = array of JNShortBuffer;
  Arr2JNShortBuffer = array of Arr1JNShortBuffer;
  Arr3JNShortBuffer = array of Arr2JNShortBuffer;

  JSProtectionDomain = class external 'java.security' name 'ProtectionDomain';
  Arr1JSProtectionDomain = array of JSProtectionDomain;
  Arr2JSProtectionDomain = array of Arr1JSProtectionDomain;
  Arr3JSProtectionDomain = array of Arr2JSProtectionDomain;

  JIPrintStream = class external 'java.io' name 'PrintStream';
  Arr1JIPrintStream = array of JIPrintStream;
  Arr2JIPrintStream = array of Arr1JIPrintStream;
  Arr3JIPrintStream = array of Arr2JIPrintStream;

  JTCollationKey = class external 'java.text' name 'CollationKey';
  Arr1JTCollationKey = array of JTCollationKey;
  Arr2JTCollationKey = array of Arr1JTCollationKey;
  Arr3JTCollationKey = array of Arr2JTCollationKey;

  JLRConstructor = class external 'java.lang.reflect' name 'Constructor';
  Arr1JLRConstructor = array of JLRConstructor;
  Arr2JLRConstructor = array of Arr1JLRConstructor;
  Arr3JLRConstructor = array of Arr2JLRConstructor;

  JNURL = class external 'java.net' name 'URL';
  Arr1JNURL = array of JNURL;
  Arr2JNURL = array of Arr1JNURL;
  Arr3JNURL = array of Arr2JNURL;

  JIConsole = class external 'java.io' name 'Console';
  Arr1JIConsole = array of JIConsole;
  Arr2JIConsole = array of Arr1JIConsole;
  Arr3JIConsole = array of Arr2JIConsole;

  JLProcess = class external 'java.lang' name 'Process';
  Arr1JLProcess = array of JLProcess;
  Arr2JLProcess = array of Arr1JLProcess;
  Arr3JLProcess = array of Arr2JLProcess;

  JULocale = class external 'java.util' name 'Locale';
  Arr1JULocale = array of JULocale;
  Arr2JULocale = array of Arr1JULocale;
  Arr3JULocale = array of Arr2JULocale;

  JUTimeZone = class external 'java.util' name 'TimeZone';
  Arr1JUTimeZone = array of JUTimeZone;
  Arr2JUTimeZone = array of Arr1JUTimeZone;
  Arr3JUTimeZone = array of Arr2JUTimeZone;

  JUList = interface external 'java.util' name 'List';
  Arr1JUList = array of JUList;
  Arr2JUList = array of Arr1JUList;
  Arr3JUList = array of Arr2JUList;

  JLAAnnotation = interface external 'java.lang.annotation' name 'Annotation';
  Arr1JLAAnnotation = array of JLAAnnotation;
  Arr2JLAAnnotation = array of Arr1JLAAnnotation;
  Arr3JLAAnnotation = array of Arr2JLAAnnotation;

  JNCChannel = interface external 'java.nio.channels' name 'Channel';
  Arr1JNCChannel = array of JNCChannel;
  Arr2JNCChannel = array of Arr1JNCChannel;
  Arr3JNCChannel = array of Arr2JNCChannel;

  JLRTypeVariable = interface external 'java.lang.reflect' name 'TypeVariable';
  Arr1JLRTypeVariable = array of JLRTypeVariable;
  Arr2JLRTypeVariable = array of Arr1JLRTypeVariable;
  Arr3JLRTypeVariable = array of Arr2JLRTypeVariable;

  JUSortedMap = interface external 'java.util' name 'SortedMap';
  Arr1JUSortedMap = array of JUSortedMap;
  Arr2JUSortedMap = array of Arr1JUSortedMap;
  Arr3JUSortedMap = array of Arr2JUSortedMap;

  JLAssertionError = class;
  Arr1JLAssertionError = array of JLAssertionError;
  Arr2JLAssertionError = array of Arr1JLAssertionError;
  Arr3JLAssertionError = array of Arr2JLAssertionError;

