<?xml version="1.0" ?><namespace name="System" platform="Win32">
  <type name="Boolean" type="Boolean" file="System.pas" line="12"/>
  <type name="AnsiChar" type="Char" file="System.pas" line="12"/>
  <type name="Char" type="WideChar" file="System.pas" line="12"/>
  <type name="WideChar" type="WideChar" file="System.pas" line="12"/>
  <type name="ShortInt" type="shortint" loBound="-128" hiBound="127" file="System.pas" line="12"/>
  <type name="SmallInt" type="shortint" loBound="-32768" hiBound="32767" file="System.pas" line="12"/>
  <type name="Integer" type="integer" loBound="-2147483648" hiBound="2147483647" file="System.pas" line="12"/>
  <type name="Byte" type="byte" loBound="0" hiBound="255" file="System.pas" line="12"/>
  <type name="Word" type="word" loBound="0" hiBound="65535" file="System.pas" line="12"/>
  <type name="Cardinal" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <pointer name="Pointer" type="Pointer" indircnt="1" file="System.pas" line="12"/>
  <type name="LongInt" type="integer" loBound="-2147483648" hiBound="2147483647" file="System.pas" line="12"/>
  <type name="LongWord" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <type name="Int64" type="Int64" file="System.pas" line="12"/>
  <type name="UInt64" type="Int64" file="System.pas" line="12"/>
  <type name="NativeInt" type="integer" loBound="-2147483648" hiBound="2147483647" file="System.pas" line="12"/>
  <type name="NativeUInt" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <type name="Single" type="Float" file="System.pas" line="12"/>
  <type name="Real48" type="Real48" file="System.pas" line="12"/>
  <type name="Extended80" type="Extended" file="System.pas" line="12"/>
  <type name="Extended" type="Extended" file="System.pas" line="12"/>
  <type name="Double" type="Double" file="System.pas" line="12"/>
  <type name="Real" type="Double" file="System.pas" line="12"/>
  <type name="Comp" type="Comp" file="System.pas" line="12"/>
  <type name="Currency" type="Currency" file="System.pas" line="12"/>
  <type name="ShortString" type="ShortString"/>
  <type name="Openstring" type="ShortString"/>
  <pointer name="PAnsiChar" type="AnsiChar" indircnt="1" file="System.pas" line="12"/>
  <pointer name="PWideChar" type="Char" indircnt="1" file="System.pas" line="12"/>
  <pointer name="PChar" alias="System.PWideChar" type="Char" indircnt="1" file="System.pas" line="12"/>
  <type name="ByteBool" type="ByteBool" file="System.pas" line="12"/>
  <type name="WordBool" type="WordBool" file="System.pas" line="12"/>
  <type name="LongBool" type="LongBool" file="System.pas" line="12"/>
  <type name="string" type="UnicodeString" file="System.pas" line="12"/>
  <type name="UnicodeString" type="UnicodeString" file="System.pas" line="12"/>
  <type name="WideString" type="WideString" file="System.pas" line="12"/>
  <type name="AnsiString" type="AnsiString" file="System.pas" line="12"/>
  <type name="Variant" type="Variant"/>
  <type name="OleVariant" type="OLEVariant"/>
  <const name="False" type="Boolean" file="System.pas" line="12">
    <value>
      False
    </value>
  </const>
  <const name="True" type="Boolean" file="System.pas" line="12">
    <value>
      True
    </value>
  </const>
  <const name="MaxInt" type="Integer" file="System.pas" line="12">
    <value>
      $7FFFFFFF
    </value>
  </const>
  <const name="MaxLongInt" type="Integer" file="System.pas" line="12">
    <value>
      $7FFFFFFF
    </value>
  </const>
  <const name="CompilerVersion" type="Extended" file="System.pas" line="12">
    <value>
      35
    </value>
  </const>
  <function name="Abs" stdprocHint="X: &lt;Real Int64 or Integer&gt;" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Real"/>
      <retval type="Real"/>
    </parameters>
  </function>
  <function name="Abs" stdprocHint="X: &lt;Real Int64 or Integer&gt;" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Int64"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="Abs" stdprocHint="X: &lt;Real Int64 or Integer&gt;" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Addr" stdprocHint="var X" visibility="public">
    <parameters>
      <parameter name="X" paramflags="var"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="Append" stdprocHint="var F: Text" visibility="public">
    <parameters>
      <parameter name="F" type="Text" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Assign" stdprocHint="var F: File; FileName: String; [CodePage: Word]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="FileName" type="string"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Assign" stdprocHint="var F: File; FileName: String; [CodePage: Word]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="Text" paramflags="var"/>
      <parameter name="FileName" type="string"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Assign" stdprocHint="var F: File; FileName: String; [CodePage: Word]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="Text" paramflags="var"/>
      <parameter name="FileName" type="string"/>
      <parameter name="CodePage" type="Word"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Assigned" stdprocHint="var P" visibility="public">
    <parameters>
      <parameter name="P" paramflags="var"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="BlockRead" stdprocHint="var F: File; var Buf; Count: Integer; [var Result: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="Buf" paramflags="var"/>
      <parameter name="Count" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="BlockRead" stdprocHint="var F: File; var Buf; Count: Integer; [var Result: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="Buf" paramflags="var"/>
      <parameter name="Count" type="Integer"/>
      <parameter name="Result" type="Integer" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="BlockWrite" stdprocHint="var F: File; const Buf; Count: Integer; [var Result: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="Buf" paramflags="const"/>
      <parameter name="Count" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="BlockWrite" stdprocHint="var F: File; const Buf; Count: Integer; [var Result: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="Buf" paramflags="const"/>
      <parameter name="Count" type="Integer"/>
      <parameter name="Result" type="Integer" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="Break" visibility="public" file="System.pas" line="12">
  </procedure>
  <function name="Chr" stdprocHint="X: Byte" visibility="public">
    <parameters>
      <parameter name="X" type="Byte"/>
      <retval type="Char"/>
    </parameters>
  </function>
  <function name="Close" stdprocHint="var F: File" visibility="public">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Concat" stdprocHint="S1: &lt;string or dynamic array&gt;; S2: &lt;string or dynamic array&gt;; [ ..., SN: &lt;string or dynamic array&gt;]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="S1" type="string"/>
      <parameter name="S2" type="string"/>
      <retval type="string"/>
    </parameters>
  </function>
  <procedure name="Continue" visibility="public" file="System.pas" line="12">
  </procedure>
  <function name="Dec" stdprocHint="var X: Ordinal; [ N: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Integer" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Dec" stdprocHint="var X: Ordinal; [ N: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Integer" paramflags="var"/>
      <parameter name="N" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="Dispose" stdprocHint="var P: Pointer" visibility="public">
    <parameters>
      <parameter name="P" type="Pointer" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="Eof" stdprocHint="[var F: File]" visibility="public" procflags="overload">
    <parameters>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="Eof" stdprocHint="[var F: File]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="Eoln" stdprocHint="[var F: Text]" visibility="public" procflags="overload">
    <parameters>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="Eoln" stdprocHint="[var F: Text]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="Text" paramflags="var"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <procedure name="Erase" stdprocHint="var F: File" visibility="public">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="Exclude" stdprocHint="var S: Set; I: Ordinal" visibility="public">
    <parameters>
      <parameter name="S" paramflags="var"/>
      <parameter name="I" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="Exit" visibility="public" file="System.pas" line="12">
  </procedure>
  <procedure name="Fail" visibility="public" file="System.pas" line="12">
  </procedure>
  <function name="FilePos" stdprocHint="var F: File" visibility="public">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="FileSize" stdprocHint="var F: File" visibility="public">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="FillChar" stdprocHint="var X; Count: Integer; Value: Ordinal" visibility="public">
    <parameters>
      <parameter name="X" paramflags="var"/>
      <parameter name="Count" type="NativeInt"/>
      <parameter name="Value" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="FreeMem" stdprocHint="var P: Pointer; [ Size: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="P" type="Pointer" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="FreeMem" stdprocHint="var P: Pointer; [ Size: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="P" type="Pointer" paramflags="var"/>
      <parameter name="Size" type="NativeInt"/>
    </parameters>
  </procedure>
  <procedure name="GetMem" stdprocHint="var P: Pointer; Size: Integer" visibility="public">
    <parameters>
      <parameter name="P" type="Pointer" paramflags="var"/>
      <parameter name="Size" type="NativeInt"/>
    </parameters>
  </procedure>
  <procedure name="Halt" stdprocHint="[ExitCode: Integer]" visibility="public" procflags="overload">
  </procedure>
  <procedure name="Halt" stdprocHint="[ExitCode: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="ExitCode" type="Integer"/>
    </parameters>
  </procedure>
  <function name="Hi" stdprocHint="X: Integer" visibility="public">
    <parameters>
      <parameter name="X" type="Integer"/>
      <retval type="Byte"/>
    </parameters>
  </function>
  <function name="High" stdprocHint="var X" visibility="public">
    <parameters>
      <parameter name="X" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="Inc" stdprocHint="var X: Ordinal; [ N: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Integer" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="Inc" stdprocHint="var X: Ordinal; [ N: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Integer" paramflags="var"/>
      <parameter name="N" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="Include" stdprocHint="var S: Set; I: Ordinal" visibility="public">
    <parameters>
      <parameter name="S" paramflags="var"/>
      <parameter name="I" type="Integer"/>
    </parameters>
  </procedure>
  <function name="Length" stdprocHint="S: &lt;string or dynamic array&gt;" visibility="public">
    <parameters>
      <parameter name="S" type="string"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Lo" stdprocHint="X: Integer" visibility="public">
    <parameters>
      <parameter name="X" type="Integer"/>
      <retval type="Byte"/>
    </parameters>
  </function>
  <function name="Low" stdprocHint="var X" visibility="public">
    <parameters>
      <parameter name="X" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="New" stdprocHint="var X: Pointer" visibility="public">
    <parameters>
      <parameter name="X" type="Pointer" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="Odd" stdprocHint="X: Integer" visibility="public">
    <parameters>
      <parameter name="X" type="Integer"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="Ord" stdprocHint="X: Ordinal" visibility="public">
    <parameters>
      <parameter name="X" type="Char"/>
      <retval type="Byte"/>
    </parameters>
  </function>
  <function name="Pi" visibility="public" file="System.pas" line="12">
    <parameters>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="Pred" stdprocHint="X: Ordinal" visibility="public">
    <parameters>
      <parameter name="X" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Ptr" stdprocHint="Address: Integer" visibility="public">
    <parameters>
      <parameter name="Address" type="Integer"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <procedure name="Read" stdprocHint="var F: File; V1; [ ..., VN]" visibility="public">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="V1" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="Readln" stdprocHint="var F: File; [ ..., VN]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="Readln" stdprocHint="var F: File; [ ..., VN]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="V1" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="Rename" stdprocHint="var F: File; Newname: String" visibility="public">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="Newname" type="string"/>
    </parameters>
  </procedure>
  <procedure name="Reset" stdprocHint="var F: File; [ RecSize: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="Reset" stdprocHint="var F: File; [ RecSize: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="RecSize" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="Rewrite" stdprocHint="var F: File; [ RecSize: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="Rewrite" stdprocHint="var F: File; [ RecSize: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="RecSize" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="RunError" stdprocHint="[ErrorCode: Byte]" visibility="public" procflags="overload">
  </procedure>
  <procedure name="RunError" stdprocHint="[ErrorCode: Byte]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="ErrorCode" type="Byte"/>
    </parameters>
  </procedure>
  <procedure name="Seek" stdprocHint="var F: File; N: Integer" visibility="public">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="N" type="Integer"/>
    </parameters>
  </procedure>
  <function name="SeekEof" stdprocHint="[var F: Text]" visibility="public" procflags="overload">
    <parameters>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="SeekEof" stdprocHint="[var F: Text]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="Text" paramflags="var"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="SeekEoln" stdprocHint="[var F: Text]" visibility="public" procflags="overload">
    <parameters>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="SeekEoln" stdprocHint="[var F: Text]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="Text" paramflags="var"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <procedure name="SetTextBuf" stdprocHint="var F: Text; var Buf; [ Size: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="Text" paramflags="var"/>
      <parameter name="Buf" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="SetTextBuf" stdprocHint="var F: Text; var Buf; [ Size: Integer]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="Text" paramflags="var"/>
      <parameter name="Buf" paramflags="var"/>
      <parameter name="Size" type="Integer"/>
    </parameters>
  </procedure>
  <function name="SizeOf" stdprocHint="var X" visibility="public">
    <parameters>
      <parameter name="X" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Sqr" stdprocHint="X: &lt;Real Int64 or Integer&gt; " visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Real"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="Sqr" stdprocHint="X: &lt;Real Int64 or Integer&gt; " visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Int64"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="Sqr" stdprocHint="X: &lt;Real Int64 or Integer&gt; " visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Succ" stdprocHint="X: Ordinal" visibility="public">
    <parameters>
      <parameter name="X" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="Str" stdprocHint="const X [: Width [:Decimals]]; var S: String" visibility="public">
    <parameters>
      <parameter name="X" paramflags="const"/>
      <parameter name="S" type="string" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="Swap" stdprocHint="X: Integer" visibility="public">
    <parameters>
      <parameter name="X" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="Truncate" stdprocHint="var F: File" visibility="public">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="TypeHandle" stdprocHint="T: TypeIdentifier" visibility="public">
    <parameters>
      <parameter name="T" paramflags="const"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="TypeInfo" stdprocHint="T: TypeIdentifier" visibility="public">
    <parameters>
      <parameter name="T" paramflags="const"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="TypeOf" stdprocHint="X: object" visibility="public">
    <parameters>
      <parameter name="T" paramflags="const"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <procedure name="Val" stdprocHint="S: String; var V; var Code: Integer" visibility="public">
    <parameters>
      <parameter name="S" type="string"/>
      <parameter name="V" paramflags="var"/>
      <parameter name="Code" type="Integer" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="Write" stdprocHint="[var F: File]; P1; [ ..., PN]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="P1" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="Write" stdprocHint="[var F: File]; P1; [ ..., PN]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="P1" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="Writeln" stdprocHint="[var F: File]; [ P1; [ ..., PN] ]" visibility="public" procflags="overload">
  </procedure>
  <procedure name="Writeln" stdprocHint="[var F: File]; [ P1; [ ..., PN] ]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="Writeln" stdprocHint="[var F: File]; [ P1; [ ..., PN] ]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="P1" type="Pointer"/>
    </parameters>
  </procedure>
  <function name="Round" stdprocHint="X: Real" visibility="public">
    <parameters>
      <parameter name="X" type="Real"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="Trunc" stdprocHint="X: Real" visibility="public">
    <parameters>
      <parameter name="X" type="Real"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="Copy" stdprocHint="S: &lt;string or dynamic array&gt;; Index: Integer; Count: Integer" visibility="public">
    <parameters>
      <parameter name="S" type="string"/>
      <parameter name="Index" type="Integer"/>
      <parameter name="Count" type="Integer"/>
      <retval type="string"/>
    </parameters>
  </function>
  <procedure name="Delete" stdprocHint="var S: &lt;string or dynamic array&gt;; Index: Integer; Count: Integer" visibility="public">
    <parameters>
      <parameter name="S" type="string" paramflags="var"/>
      <parameter name="Index" type="Integer"/>
      <parameter name="Count" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="Insert" stdprocHint="Source: &lt;string or dynamic array&gt;; var Dest: &lt;string or dynamic array&gt;; Index: Integer" visibility="public">
    <parameters>
      <parameter name="Substr" type="string"/>
      <parameter name="Dest" type="string" paramflags="var"/>
      <parameter name="Index" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="SetLength" stdprocHint="var S: &lt;string or dynamic array&gt;; NewLength: Integer" visibility="public">
    <parameters>
      <parameter name="S" type="string" paramflags="var"/>
      <parameter name="NewLength" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="Initialize" stdprocHint="var V; [ Count: NativeUInt]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="V" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="Initialize" stdprocHint="var V; [ Count: NativeUInt]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="V" paramflags="var"/>
      <parameter name="Count" type="NativeUInt"/>
    </parameters>
  </procedure>
  <procedure name="Finalize" stdprocHint="var V; [ Count: NativeUInt]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="V" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="Finalize" stdprocHint="var V; [ Count: NativeUInt]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="V" paramflags="var"/>
      <parameter name="Count" type="NativeUInt"/>
    </parameters>
  </procedure>
  <procedure name="ReallocMem" stdprocHint="var P: Pointer; Size: Integer" visibility="public">
    <parameters>
      <parameter name="P" type="Pointer" paramflags="var"/>
      <parameter name="Size" type="NativeInt"/>
    </parameters>
  </procedure>
  <procedure name="SetString" stdprocHint="var S: String; Buffer: PChar; Length: Integer" visibility="public">
    <parameters>
      <parameter name="S" type="string" paramflags="var"/>
      <parameter name="Buffer" type="PWideChar"/>
      <parameter name="Length" type="Integer"/>
    </parameters>
  </procedure>
  <function name="AssignFile" stdprocHint="var F: File; FileName: String; [CodePage: Word]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
      <parameter name="FileName" type="string"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="AssignFile" stdprocHint="var F: File; FileName: String; [CodePage: Word]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="Text" paramflags="var"/>
      <parameter name="FileName" type="string"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="AssignFile" stdprocHint="var F: File; FileName: String; [CodePage: Word]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="F" type="Text" paramflags="var"/>
      <parameter name="FileName" type="string"/>
      <parameter name="CodePage" type="Word"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="CloseFile" stdprocHint="var F: File" visibility="public">
    <parameters>
      <parameter name="F" type="file" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="GetDir" stdprocHint="Drive: Byte; var S: String" visibility="public">
    <parameters>
      <parameter name="Drive" type="Byte"/>
      <parameter name="S" type="string" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="Slice" stdprocHint="var A: array; Count: Integer" visibility="public">
    <parameters>
      <parameter name="A" paramflags="var"/>
      <parameter name="Count" type="Integer"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <procedure name="Assert" stdprocHint="Condition: Boolean; [ Message: String ]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Condition" type="Boolean"/>
    </parameters>
  </procedure>
  <procedure name="Assert" stdprocHint="Condition: Boolean; [ Message: String ]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Condition" type="Boolean"/>
      <parameter name="Message" type="string"/>
    </parameters>
  </procedure>
  <procedure name="VarClear" stdprocHint="var V: Variant" visibility="public">
    <parameters>
      <parameter name="V" type="Variant" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="VarCopy" stdprocHint="var Dest: Variant; Source: Variant" visibility="public">
    <parameters>
      <parameter name="Dest" type="Variant" paramflags="var"/>
      <parameter name="Source" type="Variant"/>
    </parameters>
  </procedure>
  <procedure name="VarCast" stdprocHint="var Dest: Variant; Source: Variant; VarType: Integer" visibility="public">
    <parameters>
      <parameter name="Dest" type="Variant" paramflags="var"/>
      <parameter name="Source" type="Variant"/>
      <parameter name="VarType" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="VarArrayRedim" stdprocHint="var A: Variant; HighBound: Integer" visibility="public">
    <parameters>
      <parameter name="A" type="Variant" paramflags="var"/>
      <parameter name="HighBound" type="Integer"/>
    </parameters>
  </procedure>
  <function name="AtomicCmpExchange" stdprocHint="var Target; NewValue: &lt;Integer or NativeInt or Pointer&gt;; Comparand: &lt;Integer or NativeInt or Pointer&gt;; [out Succeeded: Boolean]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Integer" paramflags="var"/>
      <parameter name="NewValue" type="Integer"/>
      <parameter name="Comparand" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="AtomicCmpExchange" stdprocHint="var Target; NewValue: &lt;Integer or NativeInt or Pointer&gt;; Comparand: &lt;Integer or NativeInt or Pointer&gt;; [out Succeeded: Boolean]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Int64" paramflags="var"/>
      <parameter name="NewValue" type="Int64"/>
      <parameter name="Comparand" type="Int64"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="AtomicCmpExchange" stdprocHint="var Target; NewValue: &lt;Integer or NativeInt or Pointer&gt;; Comparand: &lt;Integer or NativeInt or Pointer&gt;; [out Succeeded: Boolean]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Pointer" paramflags="var"/>
      <parameter name="NewValue" type="Pointer"/>
      <parameter name="Comparand" type="Pointer"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="AtomicCmpExchange" stdprocHint="var Target; NewValue: &lt;Integer or NativeInt or Pointer&gt;; Comparand: &lt;Integer or NativeInt or Pointer&gt;; [out Succeeded: Boolean]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="NativeInt" paramflags="var"/>
      <parameter name="NewValue" type="NativeInt"/>
      <parameter name="Comparand" type="NativeInt"/>
      <retval type="NativeInt"/>
    </parameters>
  </function>
  <function name="AtomicCmpExchange" stdprocHint="var Target; NewValue: &lt;Integer or NativeInt or Pointer&gt;; Comparand: &lt;Integer or NativeInt or Pointer&gt;; [out Succeeded: Boolean]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Integer" paramflags="var"/>
      <parameter name="NewValue" type="Integer"/>
      <parameter name="Comparand" type="Integer"/>
      <parameter name="Succeeded" type="Boolean" paramflags="out"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="AtomicCmpExchange" stdprocHint="var Target; NewValue: &lt;Integer or NativeInt or Pointer&gt;; Comparand: &lt;Integer or NativeInt or Pointer&gt;; [out Succeeded: Boolean]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Int64" paramflags="var"/>
      <parameter name="NewValue" type="Int64"/>
      <parameter name="Comparand" type="Int64"/>
      <parameter name="Succeeded" type="Boolean" paramflags="out"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="AtomicCmpExchange" stdprocHint="var Target; NewValue: &lt;Integer or NativeInt or Pointer&gt;; Comparand: &lt;Integer or NativeInt or Pointer&gt;; [out Succeeded: Boolean]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Pointer" paramflags="var"/>
      <parameter name="NewValue" type="Pointer"/>
      <parameter name="Comparand" type="Pointer"/>
      <parameter name="Succeeded" type="Boolean" paramflags="out"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="AtomicCmpExchange" stdprocHint="var Target; NewValue: &lt;Integer or NativeInt or Pointer&gt;; Comparand: &lt;Integer or NativeInt or Pointer&gt;; [out Succeeded: Boolean]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="NativeInt" paramflags="var"/>
      <parameter name="NewValue" type="NativeInt"/>
      <parameter name="Comparand" type="NativeInt"/>
      <parameter name="Succeeded" type="Boolean" paramflags="out"/>
      <retval type="NativeInt"/>
    </parameters>
  </function>
  <function name="AtomicExchange" stdprocHint="var Target; Value: &lt;Integer or NativeInt or Pointer&gt;" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Integer" paramflags="var"/>
      <parameter name="Value" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="AtomicExchange" stdprocHint="var Target; Value: &lt;Integer or NativeInt or Pointer&gt;" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Int64" paramflags="var"/>
      <parameter name="Value" type="Int64"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="AtomicExchange" stdprocHint="var Target; Value: &lt;Integer or NativeInt or Pointer&gt;" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Pointer" paramflags="var"/>
      <parameter name="Value" type="Pointer"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="AtomicExchange" stdprocHint="var Target; Value: &lt;Integer or NativeInt or Pointer&gt;" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="NativeInt" paramflags="var"/>
      <parameter name="Value" type="NativeInt"/>
      <retval type="NativeInt"/>
    </parameters>
  </function>
  <function name="AtomicIncrement" stdprocHint="var Target; [Increment]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Integer" paramflags="var"/>
      <parameter name="Increment" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="AtomicIncrement" stdprocHint="var Target; [Increment]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Int64" paramflags="var"/>
      <parameter name="Increment" type="Int64"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="AtomicDecrement" stdprocHint="var Target; [Decrement]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Integer" paramflags="var"/>
      <parameter name="Decrement" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="AtomicDecrement" stdprocHint="var Target; [Decrement]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Target" type="Int64" paramflags="var"/>
      <parameter name="Decrement" type="Int64"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="MulDivInt64" stdprocHint="AValue, AMul, ADiv: Int64; [out Remainder: Int64]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="AValue" type="Int64"/>
      <parameter name="AMul" type="Int64"/>
      <parameter name="ADiv" type="Int64"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="MulDivInt64" stdprocHint="AValue, AMul, ADiv: Int64; [out Remainder: Int64]" visibility="public" procflags="overload">
    <parameters>
      <parameter name="AValue" type="Int64"/>
      <parameter name="AMul" type="Int64"/>
      <parameter name="ADiv" type="Int64"/>
      <parameter name="Remainder" type="Int64" paramflags="out"/>
      <retval type="Int64"/>
    </parameters>
  </function>
  <function name="BuiltInArcTan" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Extended"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="BuiltInArcTan" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Double"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <function name="BuiltInArcTan" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Single"/>
      <retval type="Single"/>
    </parameters>
  </function>
  <function name="BuiltInArcTan2" stdprocHint="Y, X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Y" type="Extended"/>
      <parameter name="X" type="Extended"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="BuiltInArcTan2" stdprocHint="Y, X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Y" type="Double"/>
      <parameter name="X" type="Double"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <function name="BuiltInArcTan2" stdprocHint="Y, X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="Y" type="Single"/>
      <parameter name="X" type="Single"/>
      <retval type="Single"/>
    </parameters>
  </function>
  <function name="BuiltInCos" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Extended"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="BuiltInCos" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Double"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <function name="BuiltInCos" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Single"/>
      <retval type="Single"/>
    </parameters>
  </function>
  <function name="BuiltInLn" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Extended"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="BuiltInLn" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Double"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <function name="BuiltInLn" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Single"/>
      <retval type="Single"/>
    </parameters>
  </function>
  <function name="BuiltInLnXPlus1" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Extended"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="BuiltInLnXPlus1" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Double"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <function name="BuiltInLnXPlus1" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Single"/>
      <retval type="Single"/>
    </parameters>
  </function>
  <function name="BuiltInLog10" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Extended"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="BuiltInLog10" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Double"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <function name="BuiltInLog10" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Single"/>
      <retval type="Single"/>
    </parameters>
  </function>
  <function name="BuiltInLog2" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Extended"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="BuiltInLog2" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Double"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <function name="BuiltInLog2" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Single"/>
      <retval type="Single"/>
    </parameters>
  </function>
  <function name="BuiltInSin" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Extended"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="BuiltInSin" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Double"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <function name="BuiltInSin" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Single"/>
      <retval type="Single"/>
    </parameters>
  </function>
  <function name="BuiltInSqrt" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Extended"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="BuiltInSqrt" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Double"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <function name="BuiltInSqrt" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Single"/>
      <retval type="Single"/>
    </parameters>
  </function>
  <function name="BuiltInTan" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Extended"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="BuiltInTan" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Double"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <function name="BuiltInTan" stdprocHint="X: Real" visibility="public" procflags="overload">
    <parameters>
      <parameter name="X" type="Single"/>
      <retval type="Single"/>
    </parameters>
  </function>
  <const name="RTLVersion" type="Comp" file="System.pas" line="185">
    <devnotes>
      EXTERNALLINKER
      PC_MAPPED_EXCEPTIONS
      ARITH_PUREPASCAL
      ASSEMBLER
      ARITH_PUREPASCAL
    </devnotes>
    <value>
      35
    </value>
  </const>
  <const name="RTLVersion111" type="Boolean" file="System.pas" line="186">
    <value>
      True
    </value>
  </const>
  <const name="RTLVersion112" type="Boolean" file="System.pas" line="187">
    <value>
      True
    </value>
  </const>
  <type name="CppLongInt" type="integer" loBound="-2147483648" hiBound="2147483647" file="System.pas" line="352"/>
  <type name="CppULongInt" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="353"/>
  <type name="FixedInt" type="integer" loBound="-2147483648" hiBound="2147483647" file="System.pas" line="12"/>
  <type name="FixedUInt" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <pointer name="PFixedInt" type="Integer" indircnt="1" file="System.pas" line="362"/>
  <pointer name="PFixedUInt" type="Cardinal" indircnt="1" file="System.pas" line="363"/>
  <type name="Int8" type="shortint" loBound="-128" hiBound="127" file="System.pas" line="12"/>
  <type name="Int16" type="shortint" loBound="-32768" hiBound="32767" file="System.pas" line="12"/>
  <type name="Int32" type="integer" loBound="-2147483648" hiBound="2147483647" file="System.pas" line="12"/>
  <type name="IntPtr" type="integer" loBound="-2147483648" hiBound="2147483647" file="System.pas" line="12"/>
  <type name="UInt8" type="byte" loBound="0" hiBound="255" file="System.pas" line="12"/>
  <type name="UInt16" type="word" loBound="0" hiBound="65535" file="System.pas" line="12"/>
  <type name="UInt32" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <type name="UIntPtr" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <type name="Float32" type="Float" file="System.pas" line="12"/>
  <type name="Float64" type="Double" file="System.pas" line="12"/>
  <type name="UTF8Char" type="Char" file="System.pas" line="12"/>
  <pointer name="PUTF8Char" alias="System.PAnsiChar" type="AnsiChar" indircnt="1" file="System.pas" line="12"/>
  <pointer name="MarshaledString" alias="System.PWideChar" type="Char" indircnt="1" file="System.pas" line="12"/>
  <pointer name="MarshaledAString" alias="System.PAnsiChar" type="AnsiChar" indircnt="1" file="System.pas" line="12"/>
  <const name="varEmpty" type="Integer" file="System.pas" line="427">
    <value>
      $0
    </value>
  </const>
  <const name="varNull" type="Integer" file="System.pas" line="428">
    <value>
      $1
    </value>
  </const>
  <const name="varSmallint" type="Integer" file="System.pas" line="429">
    <value>
      $2
    </value>
  </const>
  <const name="varInteger" type="Integer" file="System.pas" line="430">
    <value>
      $3
    </value>
  </const>
  <const name="varSingle" type="Integer" file="System.pas" line="431">
    <value>
      $4
    </value>
  </const>
  <const name="varDouble" type="Integer" file="System.pas" line="432">
    <value>
      $5
    </value>
  </const>
  <const name="varCurrency" type="Integer" file="System.pas" line="433">
    <value>
      $6
    </value>
  </const>
  <const name="varDate" type="Integer" file="System.pas" line="434">
    <value>
      $7
    </value>
  </const>
  <const name="varOleStr" type="Integer" file="System.pas" line="435">
    <value>
      $8
    </value>
  </const>
  <const name="varDispatch" type="Integer" file="System.pas" line="436">
    <value>
      $9
    </value>
  </const>
  <const name="varError" type="Integer" file="System.pas" line="437">
    <value>
      $A
    </value>
  </const>
  <const name="varBoolean" type="Integer" file="System.pas" line="438">
    <value>
      $B
    </value>
  </const>
  <const name="varVariant" type="Integer" file="System.pas" line="439">
    <value>
      $C
    </value>
  </const>
  <const name="varUnknown" type="Integer" file="System.pas" line="440">
    <value>
      $D
    </value>
  </const>
  <const name="varShortInt" type="Integer" file="System.pas" line="443">
    <value>
      $10
    </value>
  </const>
  <const name="varByte" type="Integer" file="System.pas" line="444">
    <value>
      $11
    </value>
  </const>
  <const name="varWord" type="Integer" file="System.pas" line="445">
    <value>
      $12
    </value>
  </const>
  <const name="varLongWord" type="Integer" file="System.pas" line="446">
    <value>
      $13
    </value>
  </const>
  <const name="varUInt32" type="Integer" file="System.pas" line="447">
    <value>
      $13
    </value>
  </const>
  <const name="varInt64" type="Integer" file="System.pas" line="448">
    <value>
      $14
    </value>
  </const>
  <const name="varUInt64" type="Integer" file="System.pas" line="449">
    <value>
      $15
    </value>
  </const>
  <const name="varRecord" type="Integer" file="System.pas" line="450">
    <value>
      $24
    </value>
  </const>
  <const name="varStrArg" type="Integer" file="System.pas" line="453">
    <value>
      $48
    </value>
  </const>
  <const name="varObject" type="Integer" file="System.pas" line="454">
    <value>
      $49
    </value>
  </const>
  <const name="varUStrArg" type="Integer" file="System.pas" line="455">
    <value>
      $4A
    </value>
  </const>
  <const name="varString" type="Integer" file="System.pas" line="456">
    <value>
      $100
    </value>
  </const>
  <const name="varAny" type="Integer" file="System.pas" line="457">
    <value>
      $101
    </value>
  </const>
  <const name="varUString" type="Integer" file="System.pas" line="458">
    <value>
      $102
    </value>
  </const>
  <const name="varTypeMask" type="Integer" file="System.pas" line="461">
    <value>
      $FFF
    </value>
  </const>
  <const name="varArray" type="Integer" file="System.pas" line="462">
    <value>
      $2000
    </value>
  </const>
  <const name="varByRef" type="Integer" file="System.pas" line="463">
    <value>
      $4000
    </value>
  </const>
  <const name="vtInteger" type="Integer" file="System.pas" line="467">
    <value>
      $0
    </value>
  </const>
  <const name="vtBoolean" type="Integer" file="System.pas" line="468">
    <value>
      $1
    </value>
  </const>
  <const name="vtChar" type="Integer" file="System.pas" line="469">
    <value>
      $2
    </value>
  </const>
  <const name="vtExtended" type="Integer" file="System.pas" line="470">
    <value>
      $3
    </value>
  </const>
  <const name="vtString" type="Integer" file="System.pas" line="471">
    <value>
      $4
    </value>
  </const>
  <const name="vtPointer" type="Integer" file="System.pas" line="472">
    <value>
      $5
    </value>
  </const>
  <const name="vtPChar" type="Integer" file="System.pas" line="473">
    <value>
      $6
    </value>
  </const>
  <const name="vtObject" type="Integer" file="System.pas" line="474">
    <value>
      $7
    </value>
  </const>
  <const name="vtClass" type="Integer" file="System.pas" line="475">
    <value>
      $8
    </value>
  </const>
  <const name="vtWideChar" type="Integer" file="System.pas" line="476">
    <value>
      $9
    </value>
  </const>
  <const name="vtPWideChar" type="Integer" file="System.pas" line="477">
    <value>
      $A
    </value>
  </const>
  <const name="vtAnsiString" type="Integer" file="System.pas" line="478">
    <value>
      $B
    </value>
  </const>
  <const name="vtCurrency" type="Integer" file="System.pas" line="479">
    <value>
      $C
    </value>
  </const>
  <const name="vtVariant" type="Integer" file="System.pas" line="480">
    <value>
      $D
    </value>
  </const>
  <const name="vtInterface" type="Integer" file="System.pas" line="481">
    <value>
      $E
    </value>
  </const>
  <const name="vtWideString" type="Integer" file="System.pas" line="482">
    <value>
      $F
    </value>
  </const>
  <const name="vtInt64" type="Integer" file="System.pas" line="483">
    <value>
      $10
    </value>
  </const>
  <const name="vtUnicodeString" type="Integer" file="System.pas" line="484">
    <value>
      $11
    </value>
  </const>
  <const name="vmtArcOffset" type="Integer" file="System.pas" line="489">
    <value>
      $0
    </value>
  </const>
  <const name="CPP_ABI_ADJUST" type="Integer" file="System.pas" line="495">
    <devnotes>
      CPP_ABI_SUPPORT
    </devnotes>
    <value>
      $0
    </value>
  </const>
  <const name="vmtSelfPtr" type="ShortInt" file="System.pas" line="531">
    <devnotes>
      CPP_ABI_SUPPORT
      CPU64BITS
    </devnotes>
    <value>
      $FFFFFFA8
    </value>
  </const>
  <const name="vmtIntfTable" type="ShortInt" file="System.pas" line="532">
    <value>
      $FFFFFFAC
    </value>
  </const>
  <const name="vmtAutoTable" type="ShortInt" file="System.pas" line="533">
    <value>
      $FFFFFFB0
    </value>
  </const>
  <const name="vmtInitTable" type="ShortInt" file="System.pas" line="534">
    <value>
      $FFFFFFB4
    </value>
  </const>
  <const name="vmtTypeInfo" type="ShortInt" file="System.pas" line="535">
    <value>
      $FFFFFFB8
    </value>
  </const>
  <const name="vmtFieldTable" type="ShortInt" file="System.pas" line="536">
    <value>
      $FFFFFFBC
    </value>
  </const>
  <const name="vmtMethodTable" type="ShortInt" file="System.pas" line="537">
    <value>
      $FFFFFFC0
    </value>
  </const>
  <const name="vmtDynamicTable" type="ShortInt" file="System.pas" line="538">
    <value>
      $FFFFFFC4
    </value>
  </const>
  <const name="vmtClassName" type="ShortInt" file="System.pas" line="539">
    <value>
      $FFFFFFC8
    </value>
  </const>
  <const name="vmtInstanceSize" type="ShortInt" file="System.pas" line="540">
    <value>
      $FFFFFFCC
    </value>
  </const>
  <const name="vmtParent" type="ShortInt" file="System.pas" line="541">
    <value>
      $FFFFFFD0
    </value>
  </const>
  <const name="vmtEquals" type="ShortInt" file="System.pas" line="546" symflags="deprecated">
    <value>
      $FFFFFFD4
    </value>
  </const>
  <const name="vmtGetHashCode" type="ShortInt" file="System.pas" line="547" symflags="deprecated">
    <value>
      $FFFFFFD8
    </value>
  </const>
  <const name="vmtToString" type="ShortInt" file="System.pas" line="548" symflags="deprecated">
    <value>
      $FFFFFFDC
    </value>
  </const>
  <const name="vmtSafeCallException" type="ShortInt" file="System.pas" line="549" symflags="deprecated">
    <value>
      $FFFFFFE0
    </value>
  </const>
  <const name="vmtAfterConstruction" type="ShortInt" file="System.pas" line="550" symflags="deprecated">
    <value>
      $FFFFFFE4
    </value>
  </const>
  <const name="vmtBeforeDestruction" type="ShortInt" file="System.pas" line="551" symflags="deprecated">
    <value>
      $FFFFFFE8
    </value>
  </const>
  <const name="vmtDispatch" type="ShortInt" file="System.pas" line="552" symflags="deprecated">
    <value>
      $FFFFFFEC
    </value>
  </const>
  <const name="vmtDefaultHandler" type="ShortInt" file="System.pas" line="553" symflags="deprecated">
    <value>
      $FFFFFFF0
    </value>
  </const>
  <const name="vmtNewInstance" type="ShortInt" file="System.pas" line="554" symflags="deprecated">
    <value>
      $FFFFFFF4
    </value>
  </const>
  <const name="vmtFreeInstance" type="ShortInt" file="System.pas" line="555" symflags="deprecated">
    <value>
      $FFFFFFF8
    </value>
  </const>
  <const name="vmtDestroy" type="ShortInt" file="System.pas" line="556" symflags="deprecated">
    <value>
      $FFFFFFFC
    </value>
  </const>
  <const name="vmtQueryInterface" type="Integer" file="System.pas" line="558" symflags="deprecated">
    <value>
      $0
    </value>
  </const>
  <const name="vmtAddRef" type="Integer" file="System.pas" line="559" symflags="deprecated">
    <value>
      $4
    </value>
  </const>
  <const name="vmtRelease" type="Integer" file="System.pas" line="560" symflags="deprecated">
    <value>
      $8
    </value>
  </const>
  <const name="vmtCreateObject" type="Integer" file="System.pas" line="561" symflags="deprecated">
    <value>
      $C
    </value>
  </const>
  <const name="hfFieldSize" type="Integer" file="System.pas" line="565">
    <devnotes>
      CPU64BITS
    </devnotes>
    <value>
      $4
    </value>
  </const>
  <const name="hfMonitorOffset" type="Integer" file="System.pas" line="566">
    <value>
      $0
    </value>
  </const>
  <const name="vcPrivate" type=":1" file="System.pas" line="570">
    <value>
      vcPrivate
    </value>
  </const>
  <const name="vcProtected" type=":1" file="System.pas" line="570">
    <value>
      vcProtected
    </value>
  </const>
  <const name="vcPublic" type=":1" file="System.pas" line="570">
    <value>
      vcPublic
    </value>
  </const>
  <const name="vcPublished" type=":1" file="System.pas" line="570">
    <value>
      vcPublished
    </value>
  </const>
  <set name="TVisibilityClasses" file="System.pas" line="570">
    <element name="vcPrivate"/>
    <element name="vcProtected"/>
    <element name="vcPublic"/>
    <element name="vcPublished"/>
  </set>
  <const name="DefaultMethodRttiVisibility" type="Set" file="System.pas" line="575">
    <value>
      [vcPublic..vcPublished]
    </value>
  </const>
  <const name="DefaultFieldRttiVisibility" type="Set" file="System.pas" line="576">
    <value>
      [vcPrivate..vcPublished]
    </value>
  </const>
  <const name="DefaultPropertyRttiVisibility" type="Set" file="System.pas" line="577">
    <value>
      [vcPublic..vcPublished]
    </value>
  </const>
  <array name="TArray`1" file="System.pas" line="589">
    <element type="T"/>
  </array>
  <classref name="TClass" ref="TObject" file="System.pas" line="598"/>
  <type name="HRESULT" type="integer" loBound="-2147483648" hiBound="2147483647" file="System.pas" line="610"/>
  <pointer name="PGUID" type="TGUID" indircnt="1" file="System.pas" line="614"/>
  <struct name="TGUID" size="16" file="System.pas" line="615">
    <field name="D1" type="Cardinal" visibility="public" size="4" offset="0" file="System.pas" line="616"/>
    <field name="D2" type="Word" visibility="public" size="2" offset="4" file="System.pas" line="617"/>
    <field name="D3" type="Word" visibility="public" size="2" offset="6" file="System.pas" line="618"/>
    <field name="D4" visibility="public" size="8" offset="8" file="System.pas" line="619">
      <array name="D4" visibility="public" low="0" high="7" file="System.pas" line="619">
        <element type="Byte"/>
      </array>
    </field>
    <function name="operator Equality" visibility="public" procflags="class noself operator overload" file="System.pas" line="620" generated="true">
      <parameters>
        <parameter name="Left" type="TGUID" paramflags="const"/>
        <parameter name="Right" type="TGUID" paramflags="const"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="operator Inequality" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="621" generated="true">
      <parameters>
        <parameter name="Left" type="TGUID" paramflags="const"/>
        <parameter name="Right" type="TGUID" paramflags="const"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="Empty" visibility="public" procflags="static" file="System.pas" line="622">
      <parameters>
        <retval type="TGUID"/>
      </parameters>
    </function>
    <function name="Create" visibility="public" procflags="static overload" file="System.pas" line="623">
      <devnotes>
        CPU64BITS
      </devnotes>
      <parameters>
        <parameter name="Data" paramflags="const"/>
        <parameter name="BigEndian" type="Boolean">
          <value>
            False
          </value>
        </parameter>
        <retval type="TGUID"/>
      </parameters>
    </function>
    <function name="Create" visibility="public" procflags="static overload" file="System.pas" line="624">
      <parameters>
        <parameter name="Data" paramflags="const">
          <array name="Data" file="System.pas" line="8627">
            <element type="Byte"/>
          </array>
        </parameter>
        <parameter name="AStartIndex" type="Cardinal"/>
        <parameter name="BigEndian" type="Boolean">
          <value>
            False
          </value>
        </parameter>
        <retval type="TGUID"/>
      </parameters>
    </function>
    <function name="IsEmpty" visibility="public" file="System.pas" line="625">
      <parameters>
        <retval type="Boolean"/>
      </parameters>
    </function>
  </struct>
  <pointer name="PInterfaceEntry" type="TInterfaceEntry" indircnt="1" file="System.pas" line="632"/>
  <struct name="TInterfaceEntry" size="28" packed="true" file="System.pas" line="633">
    <field name="IID" type="TGUID" visibility="public" size="16" offset="0" file="System.pas" line="634"/>
    <field name="VTable" type="Pointer" visibility="public" size="4" offset="16" file="System.pas" line="635"/>
    <field name="IOffset" type="Integer" visibility="public" size="4" offset="20" file="System.pas" line="636"/>
    <field name="ImplGetter" type="NativeUInt" visibility="public" size="4" offset="24" file="System.pas" line="640"/>
  </struct>
  <pointer name="PInterfaceTable" type="TInterfaceTable" indircnt="1" file="System.pas" line="643"/>
  <struct name="TInterfaceTable" size="280004" packed="true" file="System.pas" line="644">
    <field name="EntryCount" type="Integer" visibility="public" size="4" offset="0" file="System.pas" line="645"/>
    <field name="Entries" visibility="public" size="280000" offset="4" file="System.pas" line="649">
      <array name="Entries" visibility="public" low="0" high="9999" file="System.pas" line="649">
        <element type="TInterfaceEntry"/>
      </array>
    </field>
  </struct>
  <pointer name="PMethod" type="TMethod" indircnt="1" file="System.pas" line="653"/>
  <struct name="TMethod" size="8" file="System.pas" line="654">
    <field name="Code" type="Pointer" visibility="public" size="4" offset="0" file="System.pas" line="655"/>
    <field name="Data" type="Pointer" visibility="public" size="4" offset="4" file="System.pas" line="655"/>
    <function name="operator Equality" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="657" generated="true">
      <parameters>
        <parameter name="Left" type="TMethod" paramflags="const"/>
        <parameter name="Right" type="TMethod" paramflags="const"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="operator Inequality" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="658" generated="true">
      <parameters>
        <parameter name="Left" type="TMethod" paramflags="const"/>
        <parameter name="Right" type="TMethod" paramflags="const"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="operator GreaterThan" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="659" generated="true">
      <parameters>
        <parameter name="Left" type="TMethod" paramflags="const"/>
        <parameter name="Right" type="TMethod" paramflags="const"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="operator GreaterThanOrEqual" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="660" generated="true">
      <parameters>
        <parameter name="Left" type="TMethod" paramflags="const"/>
        <parameter name="Right" type="TMethod" paramflags="const"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="operator LessThan" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="661" generated="true">
      <parameters>
        <parameter name="Left" type="TMethod" paramflags="const"/>
        <parameter name="Right" type="TMethod" paramflags="const"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="operator LessThanOrEqual" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="662" generated="true">
      <parameters>
        <parameter name="Left" type="TMethod" paramflags="const"/>
        <parameter name="Right" type="TMethod" paramflags="const"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
  </struct>
  <struct name="TDispatchMessage" size="2" file="System.pas" line="670">
    <field name="MsgID" type="Word" visibility="public" size="2" offset="0" file="System.pas" line="671"/>
  </struct>
  <class name="TObject" file="System.pas" line="674">
    <members>
      <constructor name="Create" visibility="public" file="System.pas" line="676">
        <parameters>
        </parameters>
      <devnotes><summary>
Constructs an object and initializes its data before the object is first used.
Create constructs an object. The purpose, size, and behavior of objects differ greatly. The Create constructor defined by TObject allocates memory but does not initialize data. 
Descendant objects usually define a constructor that creates the particular kind of object and initializes its data.

Note: If an exception escapes from a constructor, the object's destructor is called to clean up the failed instance.</summary></devnotes></constructor>
      <procedure name="Free" visibility="public" file="System.pas" line="677">
      <devnotes><summary>
Destroys an object and frees its associated memory, if necessary.
Use Free to destroy an object. Free automatically calls the destructor if the object reference is not nil. Any object instantiated at run time that does not have an owner should be destroyed by a call to Free, so that it can be properly disposed of and its memory released. Unlike Destroy, Free is successful even if the object is nil; if the object was never initialized, Free would not result in an error. 
When you call Free for a component, it calls Free for all components that it owns�that is, all components in its component list. Since a form owns all the controls and other components that are created on it in design mode, those components are automatically freed when the form is freed. By default, all forms are owned by the Application object; when the application terminates, it frees the Application object, which frees all forms. For objects that are not components, or for components created with a nil owner, be sure to call Free after you are finished with them; otherwise the allocated memory will not be usable until after the application terminates. 

Warning:  Never explicitly free a component within one of its own event handlers or the event handler of a component it owns or contains. For example, do not free a button or the form that owns the button in its OnClick event handler. 
To free a form, call its Release method, which destroys the form and releases the memory allocated for it after all its event handlers and those of the components it contains are through executing. 

Note:  In C++ code, do not use Free to destroy an object. Use the delete keyword. </summary></devnotes></procedure>
      <procedure name="DisposeOf" visibility="public" procflags="inline" file="System.pas" line="678">
      <devnotes><summary>
DisposeOf forces the execution of the destructor code in an object. 
It was an artifact from previous versions when the Delphi Mobile compilers supported Automatic Reference Counting. In current versions of Delphi, DisposeOf is used as a wrapper that invokes TObject.Free. 

type
  TMySimpleClass = class
  private
    stringMember: String;
    constructor Create(const Text: String);
    destructor Destroy;
  end;

constructor TMySimpleClass.Create(const Text: String);
begin
  stringMember := Text;
end;

destructor TMySimpleClass.Destroy;
begin
  // this will be executed on calling the DisposeOf method.
end;

var
  myObject: TMySimpleClass;
begin
  myObject := TMySimpleClass.Create('This is a code snippet indicating the usage of the DisposeOf method');
  try
    // Use 'myObject' here
  finally
    myObject.DisposeOf;
  end;
end.
</summary></devnotes></procedure>
      <function name="InitInstance" visibility="public" procflags="class" file="System.pas" line="679">
        <parameters>
          <parameter name="Instance" type="Pointer"/>
          <retval type="TObject"/>
        </parameters>
      <devnotes><summary>
Initializes a newly allocated object instance to all zeros and initializes the instance's virtual method table pointer.
You should not call InitInstance directly. InitInstance is called by NewInstance when an object is created. When overriding NewInstance, be sure to call InitInstance as the last statement. 
InitInstance is not virtual, so you cannot override it. Instead, initialize any data for an object in the constructor. 
</summary></devnotes></function>
      <procedure name="CleanupInstance" visibility="public" file="System.pas" line="680">
        <devnotes><summary>
Performs finalization on long strings, variants, and interface variables within a class.
Do not call CleanupInstance directly. CleanupInstance is called automatically when the object instance is destroyed. 
CleanupInstance releases all long strings and variants. It sets long strings to empty and variants to Unassigned.
</summary></devnotes>
      </procedure>
      <function name="ClassType" visibility="public" procflags="inline" file="System.pas" line="681">
        <parameters>
          <retval type="TClass"/>
        </parameters>
      <devnotes><summary>
Returns the class reference for the object's class.

Note: ClassType dynamically determines the type of an object and returns its class reference, or metaclass.
Avoid using ClassType in application code. 

Note: In Delphi code, use the is or as operators instead of ClassType.
Note: In C++ code, use a dynamic cast or the InheritsFrom method instead of ClassType.</summary></devnotes></function>
      <function name="ClassName" visibility="public" procflags="class" file="System.pas" line="682">
        <parameters>
          <retval type="string"/>
        </parameters>
      <devnotes><summary>
Returns a string indicating the type of the object instance (as opposed to the type of the variable passed as an argument).
Use ClassName to obtain the class name from an object instance or class reference. This is useful for differentiating object instances that are assigned to a variable that has the type of an ancestor class. 

Note: In C++ code, call ClassName as a method to obtain an object's class name. Use the global static function to obtain the class name from a metaclass object.</summary></devnotes></function>
      <function name="ClassNameIs" visibility="public" procflags="class" file="System.pas" line="683">
        <parameters>
          <parameter name="Name" type="string" paramflags="const"/>
          <retval type="Boolean"/>
        </parameters>
      <devnotes><summary>
Determines whether an object is of a specific type.
ClassNameIs determines whether an object instance or class reference has a class name that matches a specified string. This is useful to query objects across modules or shared libraries. 

Note: In C++ code, call ClassNameIs as a method to compare an object's class name. Use the global static function to compare the class name from a metaclass object.</summary></devnotes></function>
      <function name="ClassParent" visibility="public" procflags="class inline" file="System.pas" line="684">
        <parameters>
          <retval type="TClass"/>
        </parameters>
      <devnotes><summary>
Returns the type of the immediate ancestor of a class.
ClassParent returns the name of the parent class for an object instance or class reference. For TObject, ClassParent returns nil (Delphi) or NULL (C++). 
Avoid using ClassParent in application code. 

Note: In Delphi code, use the is or as operators instead of ClassParent.
Note: In C++ code, use a dynamic cast or the InheritsFrom method instead of ClassParent.</summary></devnotes></function>
      <function name="ClassInfo" visibility="public" procflags="class inline" file="System.pas" line="685">
        <parameters>
          <retval type="Pointer"/>
        </parameters>
      <devnotes><summary>
Returns a pointer to the run-time type information (RTTI) table for the object type.
ClassInfo provides access to the RTTI table for a given object type.
Some classes do not provide run-time type information. For these classes, ClassInfo returns nil (Delphi) or NULL (C++). All classes descended from TPersistent do provide run-time type information. 
</summary></devnotes></function>
      <function name="InstanceSize" visibility="public" procflags="class inline" file="System.pas" line="686">
        <parameters>
          <retval type="Integer"/>
        </parameters>
      <devnotes><summary>
Returns the size in bytes of each instance of the object type.
InstanceSize indicates how many bytes of memory are required for a class's instance data. InstanceSize is called from methods that allocate and deallocate memory. InstanceSize is not a virtual method, so it cannot be overridden. InstanceSize should be called only when implementing a custom version of NewInstance. 
</summary></devnotes></function>
      <function name="InheritsFrom" visibility="public" procflags="class" file="System.pas" line="687">
        <devnotes><summary>
Determines the relationship of two object types.
Use InheritsFrom to determine whether a particular class type or object is an instance of a class or one of its descendants. InheritsFrom returns True if the object type specified in the aClass parameter is an ancestor of the object type or the type of the object itself. Otherwise, it returns False. 

Note: InheritsFrom is similar to the Delphi is operator, but applies to class references.
Note: In C++ code, a nonstatic version of InheritsFrom is provided. This call is useful in determining whether a descendant class method or property can be used, given a variable of a base class. For example, use InheritsFrom to determine whether the Sender parameter in an event handler is of a particular class type or one of its descendants.</summary></devnotes>
        <parameters>
          <parameter name="AClass" type="TClass"/>
          <retval type="Boolean"/>
        </parameters>
      </function>
      <function name="MethodAddress" visibility="public" procflags="class overload" file="System.pas" line="688">
        <devnotes><summary>
Returns the address of a class method by name.

Note: You can use MethodAddress for published methods only.
There are situations when it is useful to invoke an object method without hard coding the method name in advance. Call MethodAddress to dynamically retrieve the address of such a method by specifying the method Name as a string.
An easy way to invoke the method is to define a procedure or function data type, such as:

type TProc = procedure of object;

Assign the object name and the MethodAddress method to a TMethod variable, such as: 

MethodVar.Data�:= Pointer(ObjectInstanceName);
MethodVar.Code�:= ObjectInstanceName.MethodAddress('MethodNameString');

Pass this in a call to a variable of the procedure or function type:

Proc�:= TProc(MethodVar);
Proc;
</summary></devnotes>
        <parameters>
          <parameter name="Name" type="ShortString" paramflags="const"/>
          <retval type="Pointer"/>
        </parameters>
      </function>
      <function name="MethodAddress" visibility="public" procflags="class overload" file="System.pas" line="689">
        <parameters>
          <parameter name="Name" type="string" paramflags="const"/>
          <retval type="Pointer"/>
        </parameters>
      <devnotes><summary>
Returns the address of a class method by name.

Note: You can use MethodAddress for published methods only.
There are situations when it is useful to invoke an object method without hard coding the method name in advance. Call MethodAddress to dynamically retrieve the address of such a method by specifying the method Name as a string.
An easy way to invoke the method is to define a procedure or function data type, such as:

type TProc = procedure of object;

Assign the object name and the MethodAddress method to a TMethod variable, such as: 

MethodVar.Data�:= Pointer(ObjectInstanceName);
MethodVar.Code�:= ObjectInstanceName.MethodAddress('MethodNameString');

Pass this in a call to a variable of the procedure or function type:

Proc�:= TProc(MethodVar);
Proc;
</summary></devnotes></function>
      <function name="MethodName" visibility="public" procflags="class" file="System.pas" line="690">
        <parameters>
          <parameter name="Address" type="Pointer"/>
          <retval type="string"/>
        </parameters>
      <devnotes><summary>
Returns the name of a class method by address.
There are situations when it is useful to invoke an object method without hard coding the method name in advance. Call MethodAddress to dynamically retrieve the address of such a method by specifying the method name as a string. 
MethodName is the opposite of this process--by supplying an Address method, the name of the method is returned as a string.


</summary></devnotes></function>
      <function name="QualifiedClassName" visibility="public" procflags="class" file="System.pas" line="691">
        <parameters>
          <retval type="string"/>
        </parameters>
      <devnotes><summary>
Returns the qualified name of the class.
QualifiedClassName returns the class's unit scope concatenated with the class name. Example:

uses
  SysUtils, SyncObjs;

begin
  Writeln(TEvent.QualifiedClassName); // displays System.SyncObjs.TEvent
</summary></devnotes></function>
      <function name="FieldAddress" visibility="public" procflags="overload" file="System.pas" line="692">
        <devnotes><summary>
Returns the address of a published object field.
FieldAddress is used internally by the component streaming system to access a specified published field of an object. FieldAddress returns a pointer to the field, if it exists. If the object has no published field by that name, FieldAddress returns nil (Delphi) or NULL (C++). 
Programs should access and manipulate fields by using properties instead of FieldAddress.


</summary></devnotes>
        <parameters>
          <parameter name="Name" type="ShortString" paramflags="const"/>
          <retval type="Pointer"/>
        </parameters>
      </function>
      <function name="FieldAddress" visibility="public" procflags="overload" file="System.pas" line="693">
        <parameters>
          <parameter name="Name" type="string" paramflags="const"/>
          <retval type="Pointer"/>
        </parameters>
      <devnotes><summary>
Returns the address of a published object field.
FieldAddress is used internally by the component streaming system to access a specified published field of an object. FieldAddress returns a pointer to the field, if it exists. If the object has no published field by that name, FieldAddress returns nil (Delphi) or NULL (C++). 
Programs should access and manipulate fields by using properties instead of FieldAddress.


</summary></devnotes></function>
      <function name="GetInterface" visibility="public" file="System.pas" line="694">
        <devnotes><summary>
Retrieves a specified interface.
GetInterface retrieves the interface designated by a GUID or type name. The basic implementation of GetInterface uses the GUID specified in the IID parameter. If the specified interface is supported by the class, it is returned in the Obj parameter, and GetInterface has a return value of True. Otherwise, Obj contains nil (Delphi) or NULL (C++), and GetInterface returns False. 

Note:  In Delphi code, IID can be an interface name. The compiler automatically translates this name into the corresponding GUID. 
Note:  In C++ code, use the templated version of GetInterface to obtain an interface from a DelphiInterface object. 
GetInterface is equivalent to the as operator (Delphi) and dynamic casts (C++), except that GetInterface does not raise an exception if the interface is not supported. 
</summary></devnotes>
        <parameters>
          <parameter name="IID" type="TGUID" paramflags="const"/>
          <parameter name="Obj" paramflags="out"/>
          <retval type="Boolean"/>
        </parameters>
      </function>
      <function name="GetInterfaceEntry" visibility="public" procflags="class" file="System.pas" line="695">
        <parameters>
          <parameter name="IID" type="TGUID" paramflags="const"/>
          <retval type="PInterfaceEntry"/>
        </parameters>
      <devnotes><summary>
Returns the entry for a specific interface implemented in a class.
GetInterfaceEntry returns the class entry for the interface specified by the IID parameter. 

Note:  In Delphi Code, IID can be an interface name. The compiler replaces this name with the actual GUID. 
Note:  COM objects can use GetInterfaceEntry to automate dispatch calls to a dual-IDispatch interface. 

</summary></devnotes></function>
      <function name="GetInterfaceTable" visibility="public" procflags="class inline" file="System.pas" line="696">
        <parameters>
          <retval type="PInterfaceTable"/>
        </parameters>
      <devnotes><summary>
Returns a pointer to a structure containing all of the interfaces implemented by a given class.
GetInterfaceTable returns the interface entries for the class. This list contains only interfaces implemented by this class, not its ancestors. To find the ancestor list, iteratively call ClassParent and then call GetInterfaceTable on the value it returns. To find the entry for a specific interface, use the GetInterfaceEntry method instead. 
</summary></devnotes></function>
      <function name="UnitName" visibility="public" procflags="class" file="System.pas" line="697">
        <parameters>
          <retval type="string"/>
        </parameters>
      <devnotes><summary>
Returns the name of the unit where the class is defined.
UnitName can be used to obtain the unit where a specific class is defined. For example, calling UnitName on TButton returns the Vcl.StdCtrls string. 
</summary></devnotes></function>
      <function name="UnitScope" visibility="public" procflags="class" file="System.pas" line="698">
        <parameters>
          <retval type="string"/>
        </parameters>
      <devnotes><summary>
Returns the class's unit scope.
The class's unit scope is currently equivalent with the class's unit name.

uses
  SysUtils, SyncObjs;

begin
  Writeln(TEvent.UnitScope); // displays System.SyncObjs
  // ...
</summary></devnotes></function>
      <function name="Equals" visibility="public" procflags="virtual" file="System.pas" line="703">
        <parameters>
          <parameter name="Obj" type="TObject"/>
          <retval type="Boolean"/>
        </parameters>
      <devnotes><summary>
Checks whether the current instance and the Obj parameter are equal.
The function has one Obj parameter of the TObject type.
By default, the Equals method shows whether the addresses corresponding to the current object and the Obj object are identical. The method returns a boolean value that represents the equality between the two addresses. 


Note: Equals is supposed to be overridden in user-derived classes, to provide consumer objects with an equality determining function. 
For example, in the FMX.Types.TBounds class, Equals also returns True if the Rect properties of the current object and of the Obj object are equal. In the FMX.StdActns.TBaseValueRange class, Equals also returns True if all the properties of the current object and of the Obj object are equal. 

</summary></devnotes></function>
      <function name="GetHashCode" visibility="public" procflags="virtual" file="System.pas" line="704">
        <parameters>
          <retval type="Integer"/>
        </parameters>
      <devnotes><summary>
Returns an integer containing the hash code.
By default, calling GetHashCode on an object returns an integer representing the virtual address at which the object is stored. 

Notes:
GetHashCode is supposed to be overridden in user-derived classes, to provide consumer objects with an integer hash code representation.
The sign of the hash code depends on the address of the particular object instance. Negative hash code can appear for object instances that reside at higher memory locations.</summary></devnotes></function>
      <function name="ToString" visibility="public" procflags="virtual" file="System.pas" line="705">
        <parameters>
          <retval type="string"/>
        </parameters>
      <devnotes><summary>
Returns a string containing the class name.
By default, the ToString returns a string containing the class name of the instance that is being called. 
For example, calling ToString on a TButton instance returns a string containing &quot;TButton&quot;. 

Note: ToString is intended to be overridden in user-derived classes, to provide consumer objects with a string representation. </summary></devnotes></function>
      <function name="SafeCallException" visibility="public" procflags="virtual" file="System.pas" line="706">
        <parameters>
          <parameter name="ExceptObject" type="TObject"/>
          <parameter name="ExceptAddr" type="Pointer"/>
          <retval type="HRESULT"/>
        </parameters>
      <devnotes><summary>
Handles exceptions in methods declared using the safecall calling convention.
SafeCallException handles exceptions in methods that use the safecall calling convention. Some classes that implement interfaces override this method to handle possible errors. 
As implemented in TObject, SafeCallException simply returns E_UNEXPECTED. This is the appropriate response for classes that do no support interfaces.


</summary></devnotes></function>
      <procedure name="AfterConstruction" visibility="public" procflags="virtual" file="System.pas" line="708">
      <devnotes><summary>
Responds after the last constructor has executed.
AfterConstruction is called automatically after the object's last constructor has executed. Do not call it explicitly in your applications. 
The AfterConstruction method implemented in TObject does nothing. Override this method when creating a class that performs an action after the object is created. For example, TCustomForm overrides AfterConstruction to generate an OnCreate event. 
</summary></devnotes></procedure>
      <procedure name="BeforeDestruction" visibility="public" procflags="virtual" file="System.pas" line="709">
      <devnotes><summary>
Responds before the first destructor executes.
BeforeDestruction is called automatically before the object's first destructor executes. Do not call it explicitly in your applications. 
The BeforeDestruction method implemented in TObject does nothing. Override this method when creating a class that performs an action before the object is destroyed. For example, TCustomForm overrides BeforeDestruction to generate an OnDestroy event. 

Note: BeforeDestruction is not called when the object is destroyed before it is fully constructed. That is, if the object's constructor raises an exception, the destructor is called to dispose of the object, but BeforeDestruction is not called. </summary></devnotes></procedure>
      <procedure name="Dispatch" visibility="public" procflags="virtual" file="System.pas" line="710">
        <parameters>
          <parameter name="Message" paramflags="var"/>
        </parameters>
      <devnotes><summary>
Calls message-handling methods for the object, based on the contents of the Message parameter.
Call Dispatch to automatically pass messages to the appropriate message handler. 
Dispatch determines whether a message is in the list of message handlers declared for the object. If the object does not handle the message, Dispatch then examines the message-handler list of the ancestor class, and continues checking ancestors until it either finds a specific handler or runs out of ancestors, in which case it calls DefaultHandler. 
The only assumption Dispatch makes about the data in Message is that the first two bytes contain a message ID�that is, an integer that determines which message handler Dispatch calls. Although any kind of data can be passed to Dispatch, most TObject descendants expect a message record such as TMessage or a specific data structure type. 
</summary></devnotes></procedure>
      <procedure name="DefaultHandler" visibility="public" procflags="virtual" file="System.pas" line="711">
        <parameters>
          <parameter name="Message" paramflags="var"/>
        </parameters>
      <devnotes><summary>
Provides the interface for a method that processes message records.
DefaultHandler is called by Dispatch when it cannot find a method for a particular message. DefaultHandler provides message handling for all messages for which an object does not have specific handlers. Descendant classes that process messages override DefaultHandler according to the types of messages they handle. 

Note:  In a Delphi message-handling method, calling inherited results in a call to the ancestor's DefaultHandler method only if that ancestor does not specify a message method for the particular message being handled. Otherwise, calling inherited results in a call to the specific handler for that type of message. </summary></devnotes></procedure>
      <function name="NewInstance" visibility="public" procflags="class virtual" file="System.pas" line="712">
        <parameters>
          <retval type="TObject"/>
        </parameters>
      <devnotes><summary>
Allocates memory for an instance of an object type and returns a pointer to that new instance.
All constructors call NewInstance automatically. NewInstance calls InstanceSize to determine how much memory containing a particular instance to allocate from the heap. Do not call NewInstance directly. 
Override NewInstance only for special memory allocation requirements. For example, when allocating a large number of identical objects that all need to be in memory at the same time, you can allocate a single block of memory for the entire group, then override NewInstance to use part of that larger block for each instance. 
If you override NewInstance to allocate memory, you may need to override FreeInstance to deallocate the memory. 

Note:  By default, NewInstance calls InitInstance. </summary></devnotes></function>
      <procedure name="FreeInstance" visibility="public" procflags="virtual" file="System.pas" line="713">
      <devnotes><summary>
Deallocates memory allocated by a previous call to the NewInstance method.
All destructors call FreeInstance automatically to deallocate memory that was allocated by overriding NewInstance. 
Do not call FreeInstance directly. FreeInstance should be overridden if NewInstance was overridden to change the way the object's instance data was allocated. 
Like NewInstance, FreeInstance uses the value returned from InstanceSize to deallocate the object's memory. 
</summary></devnotes></procedure>
      <destructor name="Destroy" visibility="public" file="System.pas" line="717">
        <parameters>
        </parameters>
      <devnotes><summary>
Disposes of an object instance.
Do not call Destroy directly. Call Free instead. Free verifies that the object reference is not nil before calling Destroy. 
The Destroy method defined by TObject deallocates memory. Descendent objects usually define a destructor that is customized for that particular kind of object. 
When declaring a Destroy method in a descendant, always add the override directive to the declaration and call the inherited Destroy as the last statement in the overriding method. Because Destroy is a virtual method, overriding it ensures that the proper inherited behavior occurs. 

Note:  If an exception escapes from the constructor, the destructor is called to destroy the partially constructed object instance that failed to initialize completely. Therefore, destructors should check that allocated resources such as handles were actually allocated before trying to release them, since their value might be zero. 
Destroy should be implemented so that it calls Free on all subobjects created within the object's constructor (that is, allocated by the constructor). Unlike Destroy, Free provides a safeguard when destroying objects that are nil. 
</summary></devnotes></destructor>
      <function name="GetDisposed" visibility="protected" procflags="inline" file="System.pas" line="726">
        <devnotes><summary>
Getter for the Disposed property.
</summary></devnotes>
        <parameters>
          <retval type="Boolean"/>
        </parameters>
      </function>
      <procedure name="CheckDisposed" visibility="protected" procflags="inline" file="System.pas" line="727">
      <devnotes><summary>
Embarcadero Technologies does not currently have any additional information.


</summary></devnotes></procedure>
      <property name="Disposed" visibility="protected" read="GetDisposed" type="Boolean" file="System.pas" line="741"><devnotes><summary>
Disposed is a read-only property that shows the current state of this object.
The Disposed property returns True if the object has been disposed using the DisposeOf method. Otherwise, it returns False. 

type
  TMySimpleClass = class
  private
    //
    stringMember: String;
    constructor Create(Text: String);
    destructor Destroy;
  end;

constructor TMySimpleClass.Create(Text: String);
begin
  stringMember := Text;
end;

destructor TMySimpleClass.Destroy;
begin
  // this will be executed on calling the DisposeOf method.
end;

var
  myObject: TMySimpleClass;
begin
  myObject := TMySimpleClass.Create
    ('This is a code snippet illustrating the functionality for the DisposeOf method and Disposed property');
  if not myObject.Disposed then
    myObject.DisposeOf;
  //Starting here, the object has entered the Disposed state.
end.

Note: The System.TObject.DisposeOf method is supported by the Delphi mobile compilers. The Disposed state only takes effect under compilers that use Automatic Reference Counting, such as DCCIOSARM.EXE, DCCIOSARM64.EXE, and DCCIOS32.EXE.</summary></devnotes></property>
    </members>
  <devnotes><summary>
TObject is the ultimate ancestor of all objects and components.
TObject encapsulates fundamental behavior common to objects by introducing methods that:

Create, maintain, and destroy instances of the object by allocating, initializing, and freeing required memory.
Respond when object instances are created or destroyed.
Return class-type and instance information on an object and runtime type information (RTTI) about its published properties.
Support message handling.
Support interfaces implemented by the object.
Use TObject as an immediate base class when declaring simple objects that do not need to persist (are not saved and reloaded) and that do not need to be assigned to other objects. 
Much of the capability of objects is established by methods that TObject introduces. Many of these methods are used internally by IDEs and are not intended for users to call directly. Others are overridden in descendant objects that have more complex behavior. 
Although TObject is the based object of a component framework, not all objects are components. All component classes descend from TComponent. 

Note: TObject is never directly instantiated. Although it does not use programming language features that prevent instantiation, TObject is an abstract class.</summary></devnotes></class>
  <class name="TCustomAttribute" file="System.pas" line="747">
    <ancestor name="TObject" namespace="System">
      <methodref name="Create" visibility="public" procflags="constructor"/>
      <methodref name="Free" visibility="public"/>
      <methodref name="DisposeOf" visibility="public" procflags="inline"/>
      <methodref name="InitInstance" visibility="public" procflags="class"/>
      <methodref name="CleanupInstance" visibility="public">
      </methodref>
      <methodref name="ClassType" visibility="public" procflags="inline"/>
      <methodref name="ClassName" visibility="public" procflags="class"/>
      <methodref name="ClassNameIs" visibility="public" procflags="class"/>
      <methodref name="ClassParent" visibility="public" procflags="class inline"/>
      <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
      <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
      <methodref name="InheritsFrom" visibility="public" procflags="class">
      </methodref>
      <methodref name="MethodAddress" visibility="public" procflags="class overload">
      </methodref>
      <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
      <methodref name="MethodName" visibility="public" procflags="class"/>
      <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
      <methodref name="FieldAddress" visibility="public" procflags="overload">
      </methodref>
      <methodref name="FieldAddress" visibility="public" procflags="overload"/>
      <methodref name="GetInterface" visibility="public">
      </methodref>
      <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
      <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
      <methodref name="UnitName" visibility="public" procflags="class"/>
      <methodref name="UnitScope" visibility="public" procflags="class"/>
      <methodref name="Equals" visibility="public" procflags="virtual"/>
      <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
      <methodref name="ToString" visibility="public" procflags="virtual"/>
      <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
      <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
      <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
      <methodref name="Dispatch" visibility="public" procflags="virtual"/>
      <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
      <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
      <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
      <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
      <methodref name="GetDisposed" visibility="protected" procflags="inline">
      </methodref>
      <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
      <propertyref name="Disposed" visibility="protected"/>
    </ancestor>
  </class>
  <classref name="TCustomAttributeClass" ref="TCustomAttribute" file="System.pas" line="749"/>
  <class name="WeakAttribute" file="System.pas" line="750">
    <ancestor name="TCustomAttribute" namespace="System">
      <ancestor name="TObject" namespace="System">
        <methodref name="Create" visibility="public" procflags="constructor"/>
        <methodref name="Free" visibility="public"/>
        <methodref name="DisposeOf" visibility="public" procflags="inline"/>
        <methodref name="InitInstance" visibility="public" procflags="class"/>
        <methodref name="CleanupInstance" visibility="public">
        </methodref>
        <methodref name="ClassType" visibility="public" procflags="inline"/>
        <methodref name="ClassName" visibility="public" procflags="class"/>
        <methodref name="ClassNameIs" visibility="public" procflags="class"/>
        <methodref name="ClassParent" visibility="public" procflags="class inline"/>
        <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
        <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
        <methodref name="InheritsFrom" visibility="public" procflags="class">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
        <methodref name="MethodName" visibility="public" procflags="class"/>
        <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
        <methodref name="FieldAddress" visibility="public" procflags="overload">
        </methodref>
        <methodref name="FieldAddress" visibility="public" procflags="overload"/>
        <methodref name="GetInterface" visibility="public">
        </methodref>
        <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
        <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
        <methodref name="UnitName" visibility="public" procflags="class"/>
        <methodref name="UnitScope" visibility="public" procflags="class"/>
        <methodref name="Equals" visibility="public" procflags="virtual"/>
        <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
        <methodref name="ToString" visibility="public" procflags="virtual"/>
        <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
        <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
        <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
        <methodref name="Dispatch" visibility="public" procflags="virtual"/>
        <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
        <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
        <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
        <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
        <methodref name="GetDisposed" visibility="protected" procflags="inline">
        </methodref>
        <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
        <propertyref name="Disposed" visibility="protected"/>
      </ancestor>
    </ancestor>
  </class>
  <class name="UnsafeAttribute" file="System.pas" line="751">
    <ancestor name="TCustomAttribute" namespace="System">
      <ancestor name="TObject" namespace="System">
        <methodref name="Create" visibility="public" procflags="constructor"/>
        <methodref name="Free" visibility="public"/>
        <methodref name="DisposeOf" visibility="public" procflags="inline"/>
        <methodref name="InitInstance" visibility="public" procflags="class"/>
        <methodref name="CleanupInstance" visibility="public">
        </methodref>
        <methodref name="ClassType" visibility="public" procflags="inline"/>
        <methodref name="ClassName" visibility="public" procflags="class"/>
        <methodref name="ClassNameIs" visibility="public" procflags="class"/>
        <methodref name="ClassParent" visibility="public" procflags="class inline"/>
        <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
        <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
        <methodref name="InheritsFrom" visibility="public" procflags="class">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
        <methodref name="MethodName" visibility="public" procflags="class"/>
        <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
        <methodref name="FieldAddress" visibility="public" procflags="overload">
        </methodref>
        <methodref name="FieldAddress" visibility="public" procflags="overload"/>
        <methodref name="GetInterface" visibility="public">
        </methodref>
        <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
        <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
        <methodref name="UnitName" visibility="public" procflags="class"/>
        <methodref name="UnitScope" visibility="public" procflags="class"/>
        <methodref name="Equals" visibility="public" procflags="virtual"/>
        <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
        <methodref name="ToString" visibility="public" procflags="virtual"/>
        <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
        <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
        <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
        <methodref name="Dispatch" visibility="public" procflags="virtual"/>
        <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
        <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
        <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
        <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
        <methodref name="GetDisposed" visibility="protected" procflags="inline">
        </methodref>
        <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
        <propertyref name="Disposed" visibility="protected"/>
      </ancestor>
    </ancestor>
  </class>
  <class name="RefAttribute" file="System.pas" line="752">
    <ancestor name="TCustomAttribute" namespace="System">
      <ancestor name="TObject" namespace="System">
        <methodref name="Create" visibility="public" procflags="constructor"/>
        <methodref name="Free" visibility="public"/>
        <methodref name="DisposeOf" visibility="public" procflags="inline"/>
        <methodref name="InitInstance" visibility="public" procflags="class"/>
        <methodref name="CleanupInstance" visibility="public">
        </methodref>
        <methodref name="ClassType" visibility="public" procflags="inline"/>
        <methodref name="ClassName" visibility="public" procflags="class"/>
        <methodref name="ClassNameIs" visibility="public" procflags="class"/>
        <methodref name="ClassParent" visibility="public" procflags="class inline"/>
        <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
        <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
        <methodref name="InheritsFrom" visibility="public" procflags="class">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
        <methodref name="MethodName" visibility="public" procflags="class"/>
        <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
        <methodref name="FieldAddress" visibility="public" procflags="overload">
        </methodref>
        <methodref name="FieldAddress" visibility="public" procflags="overload"/>
        <methodref name="GetInterface" visibility="public">
        </methodref>
        <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
        <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
        <methodref name="UnitName" visibility="public" procflags="class"/>
        <methodref name="UnitScope" visibility="public" procflags="class"/>
        <methodref name="Equals" visibility="public" procflags="virtual"/>
        <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
        <methodref name="ToString" visibility="public" procflags="virtual"/>
        <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
        <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
        <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
        <methodref name="Dispatch" visibility="public" procflags="virtual"/>
        <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
        <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
        <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
        <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
        <methodref name="GetDisposed" visibility="protected" procflags="inline">
        </methodref>
        <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
        <propertyref name="Disposed" visibility="protected"/>
      </ancestor>
    </ancestor>
  </class>
  <class name="VolatileAttribute" file="System.pas" line="753">
    <ancestor name="TCustomAttribute" namespace="System">
      <ancestor name="TObject" namespace="System">
        <methodref name="Create" visibility="public" procflags="constructor"/>
        <methodref name="Free" visibility="public"/>
        <methodref name="DisposeOf" visibility="public" procflags="inline"/>
        <methodref name="InitInstance" visibility="public" procflags="class"/>
        <methodref name="CleanupInstance" visibility="public">
        </methodref>
        <methodref name="ClassType" visibility="public" procflags="inline"/>
        <methodref name="ClassName" visibility="public" procflags="class"/>
        <methodref name="ClassNameIs" visibility="public" procflags="class"/>
        <methodref name="ClassParent" visibility="public" procflags="class inline"/>
        <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
        <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
        <methodref name="InheritsFrom" visibility="public" procflags="class">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
        <methodref name="MethodName" visibility="public" procflags="class"/>
        <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
        <methodref name="FieldAddress" visibility="public" procflags="overload">
        </methodref>
        <methodref name="FieldAddress" visibility="public" procflags="overload"/>
        <methodref name="GetInterface" visibility="public">
        </methodref>
        <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
        <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
        <methodref name="UnitName" visibility="public" procflags="class"/>
        <methodref name="UnitScope" visibility="public" procflags="class"/>
        <methodref name="Equals" visibility="public" procflags="virtual"/>
        <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
        <methodref name="ToString" visibility="public" procflags="virtual"/>
        <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
        <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
        <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
        <methodref name="Dispatch" visibility="public" procflags="virtual"/>
        <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
        <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
        <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
        <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
        <methodref name="GetDisposed" visibility="protected" procflags="inline">
        </methodref>
        <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
        <propertyref name="Disposed" visibility="protected"/>
      </ancestor>
    </ancestor>
  </class>
  <class name="StoredAttribute" file="System.pas" line="754">
    <ancestor name="TCustomAttribute" namespace="System">
      <ancestor name="TObject" namespace="System">
        <methodref name="Create" visibility="public" procflags="constructor"/>
        <methodref name="Free" visibility="public"/>
        <methodref name="DisposeOf" visibility="public" procflags="inline"/>
        <methodref name="InitInstance" visibility="public" procflags="class"/>
        <methodref name="CleanupInstance" visibility="public">
        </methodref>
        <methodref name="ClassType" visibility="public" procflags="inline"/>
        <methodref name="ClassName" visibility="public" procflags="class"/>
        <methodref name="ClassNameIs" visibility="public" procflags="class"/>
        <methodref name="ClassParent" visibility="public" procflags="class inline"/>
        <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
        <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
        <methodref name="InheritsFrom" visibility="public" procflags="class">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
        <methodref name="MethodName" visibility="public" procflags="class"/>
        <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
        <methodref name="FieldAddress" visibility="public" procflags="overload">
        </methodref>
        <methodref name="FieldAddress" visibility="public" procflags="overload"/>
        <methodref name="GetInterface" visibility="public">
        </methodref>
        <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
        <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
        <methodref name="UnitName" visibility="public" procflags="class"/>
        <methodref name="UnitScope" visibility="public" procflags="class"/>
        <methodref name="Equals" visibility="public" procflags="virtual"/>
        <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
        <methodref name="ToString" visibility="public" procflags="virtual"/>
        <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
        <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
        <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
        <methodref name="Dispatch" visibility="public" procflags="virtual"/>
        <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
        <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
        <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
        <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
        <methodref name="GetDisposed" visibility="protected" procflags="inline">
        </methodref>
        <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
        <propertyref name="Disposed" visibility="protected"/>
      </ancestor>
    </ancestor>
    <members>
      <field name="FFlag" type="Boolean" visibility="class protected" size="1" offset="4" file="System.pas" line="756"/>
      <field name="_FName" type="string" visibility="class protected" size="4" offset="8" file="System.pas" line="757"/>
      <constructor name="Create" visibility="public" file="System.pas" line="759">
        <devnotes>
          CPU64BITS
        </devnotes>
        <parameters>
        </parameters>
      </constructor>
      <constructor name="Create" visibility="public" file="System.pas" line="760">
        <parameters>
          <parameter name="StorageHandlerFlag" type="Boolean" paramflags="const"/>
        </parameters>
      </constructor>
      <constructor name="Create" visibility="public" file="System.pas" line="761">
        <parameters>
          <parameter name="StorageHandlerName" type="string" paramflags="const"/>
        </parameters>
      </constructor>
      <property name="Flag" visibility="public" read="FFlag" type="Boolean" file="System.pas" line="762"/>
      <property name="Name" visibility="public" read="_FName" type="string" default="0" file="System.pas" line="763"/>
    </members>
  </class>
  <class name="HPPGENAttribute" file="System.pas" line="765">
    <ancestor name="TCustomAttribute" namespace="System">
      <ancestor name="TObject" namespace="System">
        <methodref name="Create" visibility="public" procflags="constructor"/>
        <methodref name="Free" visibility="public"/>
        <methodref name="DisposeOf" visibility="public" procflags="inline"/>
        <methodref name="InitInstance" visibility="public" procflags="class"/>
        <methodref name="CleanupInstance" visibility="public">
        </methodref>
        <methodref name="ClassType" visibility="public" procflags="inline"/>
        <methodref name="ClassName" visibility="public" procflags="class"/>
        <methodref name="ClassNameIs" visibility="public" procflags="class"/>
        <methodref name="ClassParent" visibility="public" procflags="class inline"/>
        <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
        <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
        <methodref name="InheritsFrom" visibility="public" procflags="class">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
        <methodref name="MethodName" visibility="public" procflags="class"/>
        <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
        <methodref name="FieldAddress" visibility="public" procflags="overload">
        </methodref>
        <methodref name="FieldAddress" visibility="public" procflags="overload"/>
        <methodref name="GetInterface" visibility="public">
        </methodref>
        <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
        <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
        <methodref name="UnitName" visibility="public" procflags="class"/>
        <methodref name="UnitScope" visibility="public" procflags="class"/>
        <methodref name="Equals" visibility="public" procflags="virtual"/>
        <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
        <methodref name="ToString" visibility="public" procflags="virtual"/>
        <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
        <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
        <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
        <methodref name="Dispatch" visibility="public" procflags="virtual"/>
        <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
        <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
        <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
        <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
        <methodref name="GetDisposed" visibility="protected" procflags="inline">
        </methodref>
        <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
        <propertyref name="Disposed" visibility="protected"/>
      </ancestor>
    </ancestor>
    <members>
      <const name="mkNoDefine" visibility="public" type="Integer" file="System.pas" line="767">
        <value>
          $1
        </value>
      </const>
      <const name="mkAccessible" visibility="public" type="Integer" file="System.pas" line="768">
        <value>
          $2
        </value>
      </const>
      <const name="mkFriend" visibility="public" type="Integer" file="System.pas" line="769">
        <value>
          $4
        </value>
      </const>
      <const name="mkNonPackage" visibility="public" type="Integer" file="System.pas" line="770">
        <value>
          $8
        </value>
      </const>
      <const name="mkNoOperator" visibility="public" type="Integer" file="System.pas" line="771">
        <value>
          $10
        </value>
      </const>
      <constructor name="Create" visibility="public" file="System.pas" line="773">
        <parameters>
          <parameter name="AData" type="string" paramflags="const"/>
        </parameters>
      </constructor>
      <constructor name="Create" visibility="public" file="System.pas" line="774">
        <parameters>
          <parameter name="AFlag" type="Integer" paramflags="const"/>
          <parameter name="AData" type="string" paramflags="const">
            <value>
              
            </value>
          </parameter>
        </parameters>
      </constructor>
    </members>
  </class>
  <class name="HFAAttribute" file="System.pas" line="777">
    <devnotes>
       <summary>For internal use only.</summary>
    </devnotes>
    <ancestor name="TCustomAttribute" namespace="System">
      <ancestor name="TObject" namespace="System">
        <methodref name="Create" visibility="public" procflags="constructor"/>
        <methodref name="Free" visibility="public"/>
        <methodref name="DisposeOf" visibility="public" procflags="inline"/>
        <methodref name="InitInstance" visibility="public" procflags="class"/>
        <methodref name="CleanupInstance" visibility="public">
        </methodref>
        <methodref name="ClassType" visibility="public" procflags="inline"/>
        <methodref name="ClassName" visibility="public" procflags="class"/>
        <methodref name="ClassNameIs" visibility="public" procflags="class"/>
        <methodref name="ClassParent" visibility="public" procflags="class inline"/>
        <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
        <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
        <methodref name="InheritsFrom" visibility="public" procflags="class">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
        <methodref name="MethodName" visibility="public" procflags="class"/>
        <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
        <methodref name="FieldAddress" visibility="public" procflags="overload">
        </methodref>
        <methodref name="FieldAddress" visibility="public" procflags="overload"/>
        <methodref name="GetInterface" visibility="public">
        </methodref>
        <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
        <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
        <methodref name="UnitName" visibility="public" procflags="class"/>
        <methodref name="UnitScope" visibility="public" procflags="class"/>
        <methodref name="Equals" visibility="public" procflags="virtual"/>
        <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
        <methodref name="ToString" visibility="public" procflags="virtual"/>
        <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
        <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
        <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
        <methodref name="Dispatch" visibility="public" procflags="virtual"/>
        <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
        <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
        <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
        <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
        <methodref name="GetDisposed" visibility="protected" procflags="inline">
        </methodref>
        <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
        <propertyref name="Disposed" visibility="protected"/>
      </ancestor>
    </ancestor>
    <members>
      <field name="FElementType" type="Pointer" visibility="class protected" size="4" offset="4" file="System.pas" line="780">
        <devnotes>
           <summary>Internal use only</summary>
        </devnotes>
      </field>
      <field name="FElementCount" type="Integer" visibility="class protected" size="4" offset="8" file="System.pas" line="782">
        <devnotes>
           <summary>Internal use only</summary>
        </devnotes>
      </field>
      <constructor name="Create" visibility="public" file="System.pas" line="784">
        <parameters>
          <parameter name="ElementType" type="Pointer" paramflags="const"/>
          <parameter name="ElementCount" type="Integer" paramflags="const"/>
        </parameters>
      </constructor>
      <property name="ElementType" visibility="public" read="FElementType" type="Pointer" file="System.pas" line="786">
        <devnotes>
           <summary>TypeInfo of element type</summary>
        </devnotes>
      </property>
      <property name="ElementCount" visibility="public" read="FElementCount" type="Integer" file="System.pas" line="788">
        <devnotes>
           <summary>Number of element type </summary>
        </devnotes>
      </property>
    </members>
  </class>
  <class name="AlignAttribute" file="System.pas" line="791">
    <devnotes>
       <summary>Internal use only.</summary>
    </devnotes>
    <ancestor name="TCustomAttribute" namespace="System">
      <ancestor name="TObject" namespace="System">
        <methodref name="Create" visibility="public" procflags="constructor"/>
        <methodref name="Free" visibility="public"/>
        <methodref name="DisposeOf" visibility="public" procflags="inline"/>
        <methodref name="InitInstance" visibility="public" procflags="class"/>
        <methodref name="CleanupInstance" visibility="public">
        </methodref>
        <methodref name="ClassType" visibility="public" procflags="inline"/>
        <methodref name="ClassName" visibility="public" procflags="class"/>
        <methodref name="ClassNameIs" visibility="public" procflags="class"/>
        <methodref name="ClassParent" visibility="public" procflags="class inline"/>
        <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
        <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
        <methodref name="InheritsFrom" visibility="public" procflags="class">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
        <methodref name="MethodName" visibility="public" procflags="class"/>
        <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
        <methodref name="FieldAddress" visibility="public" procflags="overload">
        </methodref>
        <methodref name="FieldAddress" visibility="public" procflags="overload"/>
        <methodref name="GetInterface" visibility="public">
        </methodref>
        <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
        <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
        <methodref name="UnitName" visibility="public" procflags="class"/>
        <methodref name="UnitScope" visibility="public" procflags="class"/>
        <methodref name="Equals" visibility="public" procflags="virtual"/>
        <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
        <methodref name="ToString" visibility="public" procflags="virtual"/>
        <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
        <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
        <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
        <methodref name="Dispatch" visibility="public" procflags="virtual"/>
        <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
        <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
        <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
        <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
        <methodref name="GetDisposed" visibility="protected" procflags="inline">
        </methodref>
        <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
        <propertyref name="Disposed" visibility="protected"/>
      </ancestor>
    </ancestor>
    <members>
      <field name="FAlign" type="Integer" visibility="class protected" size="4" offset="4" file="System.pas" line="794">
        <devnotes>
           <summary>Internal use only</summary>
        </devnotes>
      </field>
      <constructor name="Create" visibility="public" file="System.pas" line="796">
        <parameters>
          <parameter name="Align" type="Integer"/>
        </parameters>
      </constructor>
      <property name="Align" visibility="public" read="FAlign" type="Integer" file="System.pas" line="798">
        <devnotes>
           <summary>Alignment in bytes</summary>
        </devnotes>
      </property>
    </members>
  </class>
  <type name="TThreadID" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <pointer name="PPMonitor" type="PMonitor" indircnt="1" file="System.pas" line="835"/>
  <pointer name="PMonitor" type="TMonitor" indircnt="1" file="System.pas" line="836"/>
  <struct name="TMonitor" size="28" file="System.pas" line="837">
    <pointer name="PWaitingThread" alias="System.PWaitingThread" type="TWaitingThread" indircnt="1" file="System.pas" line="840"/>
    <struct name="TWaitingThread" visibility="class private" alias="System.TWaitingThread" size="12" file="System.pas" line="841">
      <field name="Next" type="TMonitor.PWaitingThread" visibility="public" size="4" offset="0" file="System.pas" line="842"/>
      <field name="Thread" type="Cardinal" visibility="public" size="4" offset="4" file="System.pas" line="843"/>
      <field name="WaitEvent" type="Pointer" visibility="public" size="4" offset="8" file="System.pas" line="844"/>
    </struct>
    <struct name="TSpinWait" visibility="class private" alias="System.TSpinWait" size="4" file="System.pas" line="852">
      <const name="YieldThreshold" visibility="private" type="Integer" file="System.pas" line="854">
        <value>
          $A
        </value>
      </const>
      <const name="Sleep1Threshold" visibility="private" type="Integer" file="System.pas" line="855">
        <value>
          $14
        </value>
      </const>
      <const name="Sleep0Threshold" visibility="private" type="Integer" file="System.pas" line="856">
        <value>
          $5
        </value>
      </const>
      <field name="FCount" type="Integer" visibility="private" size="4" offset="0" file="System.pas" line="858"/>
      <procedure name="Reset" visibility="public" procflags="inline" file="System.pas" line="860">
      </procedure>
      <procedure name="SpinCycle" visibility="public" file="System.pas" line="861">
      </procedure>
    </struct>
    <struct name="TSpinLock" visibility="class private" alias="System.TSpinLock" size="4" file="System.pas" line="868">
      <field name="FLock" type="Integer" visibility="private" size="4" offset="0" file="System.pas" line="870"/>
      <procedure name="Enter" visibility="public" file="System.pas" line="872">
      </procedure>
      <procedure name="Exit" visibility="public" file="System.pas" line="873">
      </procedure>
    </struct>
    <field name="FLockCount" type="Integer" visibility="class private" size="4" offset="0" file="System.pas" line="876">
      <attributes>
        <attribute name="TObject"/>
      </attributes>
    </field>
    <field name="FRecursionCount" type="Integer" visibility="class private" size="4" offset="4" file="System.pas" line="877"/>
    <field name="FOwningThread" type="Cardinal" visibility="class private" size="4" offset="8" file="System.pas" line="878"/>
    <field name="FLockEvent" type="Pointer" visibility="class private" size="4" offset="12" file="System.pas" line="879"/>
    <field name="FSpinCount" type="Integer" visibility="class private" size="4" offset="16" file="System.pas" line="880"/>
    <field name="FWaitQueue" type="TMonitor.PWaitingThread" visibility="class private" size="4" offset="20" file="System.pas" line="881"/>
    <field name="FQueueLock" type="TMonitor.TSpinLock" visibility="class private" size="4" offset="24" file="System.pas" line="882"/>
    <field name="CacheLineSize" type="Integer" visibility="class private" varflags="class" file="System.pas" line="883"/>
    <field name="FDefaultSpinCount" type="Integer" visibility="class private" varflags="class" file="System.pas" line="884"/>
    <procedure name="Spin" visibility="class private" procflags="static" file="System.pas" line="885">
      <parameters>
        <parameter name="Iterations" type="Integer"/>
      </parameters>
    </procedure>
    <function name="GetCacheLineSize" visibility="class private" procflags="static" file="System.pas" line="886">
      <parameters>
        <retval type="Integer"/>
      </parameters>
    </function>
    <procedure name="QueueWaiter" visibility="class private" file="System.pas" line="887">
      <parameters>
        <parameter name="WaitingThread" type="TMonitor.TWaitingThread" paramflags="var"/>
      </parameters>
    </procedure>
    <procedure name="RemoveWaiter" visibility="class private" file="System.pas" line="888">
      <parameters>
        <parameter name="WaitingThread" type="TMonitor.TWaitingThread" paramflags="var"/>
      </parameters>
    </procedure>
    <function name="DequeueWaiter" visibility="class private" file="System.pas" line="889">
      <parameters>
        <retval type="TMonitor.PWaitingThread"/>
      </parameters>
    </function>
    <function name="GetEvent" visibility="class private" file="System.pas" line="890">
      <parameters>
        <retval type="Pointer"/>
      </parameters>
    </function>
    <function name="CheckOwningThread" visibility="class private" file="System.pas" line="891">
      <parameters>
        <retval type="Cardinal"/>
      </parameters>
    </function>
    <procedure name="CheckMonitorSupport" visibility="class private" procflags="static inline" file="System.pas" line="892">
    </procedure>
    <function name="Create" visibility="private" procflags="static" file="System.pas" line="894">
      <parameters>
        <retval type="PMonitor"/>
      </parameters>
    </function>
    <procedure name="Destroy" visibility="private" procflags="static overload" file="System.pas" line="899">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="Destroy" visibility="private" procflags="overload" file="System.pas" line="900">
    </procedure>
    <function name="GetFieldAddress" visibility="class private" procflags="static inline" file="System.pas" line="902">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
        <retval type="PPMonitor"/>
      </parameters>
    </function>
    <function name="GetMonitor" visibility="class private" procflags="static" file="System.pas" line="903">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
        <retval type="PMonitor"/>
      </parameters>
    </function>
    <procedure name="SetDefaultSpinCount" visibility="class private" procflags="static" file="System.pas" line="904">
      <parameters>
        <parameter name="AValue" type="Integer"/>
      </parameters>
    </procedure>
    <function name="TryEnter" visibility="class private" procflags="overload" file="System.pas" line="905">
      <parameters>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="Wait" visibility="class private" procflags="overload" file="System.pas" line="906">
      <parameters>
        <parameter name="ALock" type="PMonitor"/>
        <parameter name="Timeout" type="Cardinal"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <procedure name="Pulse" visibility="class private" procflags="overload" file="System.pas" line="907">
    </procedure>
    <procedure name="PulseAll" visibility="class private" procflags="overload" file="System.pas" line="908">
    </procedure>
    <function name="Enter" visibility="private" procflags="overload" file="System.pas" line="910">
      <parameters>
        <parameter name="Timeout" type="Cardinal"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <procedure name="Exit" visibility="private" procflags="overload" file="System.pas" line="911">
    </procedure>
    <procedure name="SetSpinCount" visibility="public" procflags="static" file="System.pas" line="917">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
        <parameter name="ASpinCount" type="Integer"/>
      </parameters>
    </procedure>
    <procedure name="Enter" visibility="public" procflags="static overload inline" file="System.pas" line="929">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="Enter" visibility="public" procflags="static overload" file="System.pas" line="930">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
        <parameter name="Timeout" type="Cardinal"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <procedure name="Exit" visibility="public" procflags="static overload" file="System.pas" line="931">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="TryEnter" visibility="public" procflags="static overload" file="System.pas" line="932">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="Wait" visibility="public" procflags="static overload" file="System.pas" line="945">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
        <parameter name="Timeout" type="Cardinal"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="Wait" visibility="public" procflags="static overload" file="System.pas" line="946">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
        <parameter name="ALock" type="TObject" paramflags="const"/>
        <parameter name="Timeout" type="Cardinal"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <procedure name="Pulse" visibility="public" procflags="static overload" file="System.pas" line="947">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="PulseAll" visibility="public" procflags="static overload" file="System.pas" line="948">
      <parameters>
        <parameter name="AObject" type="TObject" paramflags="const"/>
      </parameters>
    </procedure>
    <property name="DefaultSpinCount" visibility="public" read="FDefaultSpinCount" write="SetDefaultSpinCount" type="Integer" file="System.pas" line="949"/>
  </struct>
  <const name="INFINITE" type="Cardinal" file="System.pas" line="953">
    <value>
      $FFFFFFFF
    </value>
  </const>
  <const name="S_OK" type="Integer" file="System.pas" line="968">
    <value>
      $0
    </value>
  </const>
  <const name="S_FALSE" type="Integer" file="System.pas" line="970">
    <value>
      $1
    </value>
  </const>
  <const name="E_NOINTERFACE" type="HRESULT" file="System.pas" line="972">
    <value>
      $80004002
    </value>
  </const>
  <const name="E_UNEXPECTED" type="HRESULT" file="System.pas" line="976">
    <value>
      $8000FFFF
    </value>
  </const>
  <const name="E_NOTIMPL" type="HRESULT" file="System.pas" line="980">
    <value>
      $80004001
    </value>
  </const>
  <const name="tkUnknown" type="TTypeKind" file="System.pas" line="1455">
    <value>
      tkUnknown
    </value>
  </const>
  <const name="tkInteger" type="TTypeKind" file="System.pas" line="1455">
    <value>
      tkInteger
    </value>
  </const>
  <const name="tkChar" type="TTypeKind" file="System.pas" line="1455">
    <value>
      tkChar
    </value>
  </const>
  <const name="tkEnumeration" type="TTypeKind" file="System.pas" line="1455">
    <value>
      tkEnumeration
    </value>
  </const>
  <const name="tkFloat" type="TTypeKind" file="System.pas" line="1455">
    <value>
      tkFloat
    </value>
  </const>
  <const name="tkString" type="TTypeKind" file="System.pas" line="1456">
    <value>
      tkString
    </value>
  </const>
  <const name="tkSet" type="TTypeKind" file="System.pas" line="1456">
    <value>
      tkSet
    </value>
  </const>
  <const name="tkClass" type="TTypeKind" file="System.pas" line="1456">
    <value>
      tkClass
    </value>
  </const>
  <const name="tkMethod" type="TTypeKind" file="System.pas" line="1456">
    <value>
      tkMethod
    </value>
  </const>
  <const name="tkWChar" type="TTypeKind" file="System.pas" line="1456">
    <value>
      tkWChar
    </value>
  </const>
  <const name="tkLString" type="TTypeKind" file="System.pas" line="1456">
    <value>
      tkLString
    </value>
  </const>
  <const name="tkWString" type="TTypeKind" file="System.pas" line="1456">
    <value>
      tkWString
    </value>
  </const>
  <const name="tkVariant" type="TTypeKind" file="System.pas" line="1457">
    <value>
      tkVariant
    </value>
  </const>
  <const name="tkArray" type="TTypeKind" file="System.pas" line="1457">
    <value>
      tkArray
    </value>
  </const>
  <const name="tkRecord" type="TTypeKind" file="System.pas" line="1457">
    <value>
      tkRecord
    </value>
  </const>
  <const name="tkInterface" type="TTypeKind" file="System.pas" line="1457">
    <value>
      tkInterface
    </value>
  </const>
  <const name="tkInt64" type="TTypeKind" file="System.pas" line="1457">
    <value>
      tkInt64
    </value>
  </const>
  <const name="tkDynArray" type="TTypeKind" file="System.pas" line="1457">
    <value>
      tkDynArray
    </value>
  </const>
  <const name="tkUString" type="TTypeKind" file="System.pas" line="1457">
    <value>
      tkUString
    </value>
  </const>
  <const name="tkClassRef" type="TTypeKind" file="System.pas" line="1458">
    <value>
      tkClassRef
    </value>
  </const>
  <const name="tkPointer" type="TTypeKind" file="System.pas" line="1458">
    <value>
      tkPointer
    </value>
  </const>
  <const name="tkProcedure" type="TTypeKind" file="System.pas" line="1458">
    <value>
      tkProcedure
    </value>
  </const>
  <const name="tkMRecord" type="TTypeKind" file="System.pas" line="1458">
    <value>
      tkMRecord
    </value>
  </const>
  <interface name="IInterface" GUID="{00000000-0000-0000-C000-000000000046}" file="System.pas" line="986">
    <function name="QueryInterface" visibility="public" procflags="abstract virtual" callconv="stdcall" file="System.pas" line="988">
      <parameters>
        <parameter name="IID" type="TGUID" paramflags="const"/>
        <parameter name="Obj" paramflags="out"/>
        <retval type="HRESULT"/>
      </parameters>
    </function>
    <function name="_AddRef" visibility="public" procflags="abstract virtual" callconv="stdcall" file="System.pas" line="989">
      <parameters>
        <retval type="Integer"/>
      </parameters>
    </function>
    <function name="_Release" visibility="public" procflags="abstract virtual" callconv="stdcall" file="System.pas" line="990">
      <parameters>
        <retval type="Integer"/>
      </parameters>
    </function>
  </interface>
  <interface name="IUnknown" alias="System.IInterface" GUID="{00000000-0000-0000-C000-000000000046}" file="System.pas" line="986">
    <function name="QueryInterface" visibility="public" procflags="abstract virtual" callconv="stdcall" file="System.pas" line="988">
      <parameters>
        <parameter name="IID" type="TGUID" paramflags="const"/>
        <parameter name="Obj" paramflags="out"/>
        <retval type="HRESULT"/>
      </parameters>
    </function>
    <function name="_AddRef" visibility="public" procflags="abstract virtual" callconv="stdcall" file="System.pas" line="989">
      <parameters>
        <retval type="Integer"/>
      </parameters>
    </function>
    <function name="_Release" visibility="public" procflags="abstract virtual" callconv="stdcall" file="System.pas" line="990">
      <parameters>
        <retval type="Integer"/>
      </parameters>
    </function>
  </interface>
  <interface name="IInvokable" ancestor="IInterface" file="System.pas" line="999">
  </interface>
  <interface name="IEnumerator" ancestor="IInterface" file="System.pas" line="1004">
    <function name="GetCurrent" visibility="public" procflags="abstract virtual" file="System.pas" line="1005">
      <parameters>
        <retval type="TObject"/>
      </parameters>
    </function>
    <function name="MoveNext" visibility="public" procflags="abstract virtual" file="System.pas" line="1006">
      <parameters>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <procedure name="Reset" visibility="public" procflags="abstract virtual" file="System.pas" line="1007">
    </procedure>
    <property name="Current" visibility="public" read="GetCurrent" type="TObject" file="System.pas" line="1008"/>
  </interface>
  <interface name="IEnumerable" ancestor="IInterface" file="System.pas" line="1011">
    <function name="GetEnumerator" visibility="public" procflags="abstract virtual" file="System.pas" line="1012">
      <parameters>
        <retval type="IEnumerator"/>
      </parameters>
    </function>
  </interface>
  <interface name="IEnumerator`1" ancestor="IEnumerator" file="System.pas" line="1015">
    <function name="GetCurrent" visibility="public" procflags="abstract virtual" file="System.pas" line="1017">
      <attributes>
        <attribute name="HPPGENAttribute"/>
      </attributes>
      <parameters>
        <retval type="T"/>
      </parameters>
    </function>
    <property name="Current" visibility="public" read="GetCurrent" type="T" file="System.pas" line="1019">
      <attributes>
        <attribute name="HPPGENAttribute"/>
      </attributes>
    </property>
  </interface>
  <interface name="IEnumerable`1" ancestor="IEnumerable" file="System.pas" line="1022">
    <function name="GetEnumerator" visibility="public" procflags="abstract virtual" file="System.pas" line="1024">
      <attributes>
        <attribute name="HPPGENAttribute"/>
      </attributes>
      <parameters>
        <retval>
        </retval>
      </parameters>
    </function>
  </interface>
  <interface name="IComparable" ancestor="IInterface" file="System.pas" line="1027">
    <function name="CompareTo" visibility="public" procflags="abstract virtual" file="System.pas" line="1028">
      <parameters>
        <parameter name="Obj" type="TObject"/>
        <retval type="Integer"/>
      </parameters>
    </function>
  </interface>
  <interface name="IComparable`1" ancestor="IComparable" file="System.pas" line="1031">
    <function name="CompareTo" visibility="public" procflags="abstract virtual" file="System.pas" line="1032">
      <parameters>
        <parameter name="Value" type="T"/>
        <retval type="Integer"/>
      </parameters>
    </function>
  </interface>
  <interface name="IEquatable`1" ancestor="IInterface" file="System.pas" line="1035">
    <function name="Equals" visibility="public" procflags="abstract virtual" file="System.pas" line="1036">
      <parameters>
        <parameter name="Value" type="T"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
  </interface>
  <interface name="IDispatch" GUID="{00020400-0000-0000-C000-000000000046}" ancestor="IInterface" file="System.pas" line="1039">
    <function name="GetTypeInfoCount" visibility="public" procflags="abstract virtual" callconv="stdcall" file="System.pas" line="1041">
      <parameters>
        <parameter name="Count" type="Integer" paramflags="out"/>
        <retval type="HRESULT"/>
      </parameters>
    </function>
    <function name="GetTypeInfo" visibility="public" procflags="abstract virtual" callconv="stdcall" file="System.pas" line="1042">
      <parameters>
        <parameter name="Index" type="Integer"/>
        <parameter name="LocaleID" type="Integer"/>
        <parameter name="TypeInfo" paramflags="out"/>
        <retval type="HRESULT"/>
      </parameters>
    </function>
    <function name="GetIDsOfNames" visibility="public" procflags="abstract virtual" callconv="stdcall" file="System.pas" line="1043">
      <parameters>
        <parameter name="IID" type="TGUID" paramflags="const"/>
        <parameter name="Names" type="Pointer"/>
        <parameter name="NameCount" type="Integer"/>
        <parameter name="LocaleID" type="Integer"/>
        <parameter name="DispIDs" type="Pointer"/>
        <retval type="HRESULT"/>
      </parameters>
    </function>
    <function name="Invoke" visibility="public" procflags="abstract virtual" callconv="stdcall" file="System.pas" line="1045">
      <parameters>
        <parameter name="DispID" type="Integer"/>
        <parameter name="IID" type="TGUID" paramflags="const"/>
        <parameter name="LocaleID" type="Integer"/>
        <parameter name="Flags" type="Word"/>
        <parameter name="Params" paramflags="var"/>
        <parameter name="VarResult" type="Pointer"/>
        <parameter name="ExcepInfo" type="Pointer"/>
        <parameter name="ArgErr" type="Pointer"/>
        <retval type="HRESULT"/>
      </parameters>
    </function>
  </interface>
  <class name="TInterfacedObject" file="System.pas" line="1056">
    <ancestor name="TObject" namespace="System">
      <methodref name="Create" visibility="public" procflags="constructor"/>
      <methodref name="Free" visibility="public"/>
      <methodref name="DisposeOf" visibility="public" procflags="inline"/>
      <methodref name="InitInstance" visibility="public" procflags="class"/>
      <methodref name="CleanupInstance" visibility="public">
      </methodref>
      <methodref name="ClassType" visibility="public" procflags="inline"/>
      <methodref name="ClassName" visibility="public" procflags="class"/>
      <methodref name="ClassNameIs" visibility="public" procflags="class"/>
      <methodref name="ClassParent" visibility="public" procflags="class inline"/>
      <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
      <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
      <methodref name="InheritsFrom" visibility="public" procflags="class">
      </methodref>
      <methodref name="MethodAddress" visibility="public" procflags="class overload">
      </methodref>
      <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
      <methodref name="MethodName" visibility="public" procflags="class"/>
      <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
      <methodref name="FieldAddress" visibility="public" procflags="overload">
      </methodref>
      <methodref name="FieldAddress" visibility="public" procflags="overload"/>
      <methodref name="GetInterface" visibility="public">
      </methodref>
      <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
      <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
      <methodref name="UnitName" visibility="public" procflags="class"/>
      <methodref name="UnitScope" visibility="public" procflags="class"/>
      <methodref name="Equals" visibility="public" procflags="virtual"/>
      <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
      <methodref name="ToString" visibility="public" procflags="virtual"/>
      <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
      <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
      <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
      <methodref name="Dispatch" visibility="public" procflags="virtual"/>
      <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
      <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
      <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
      <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
      <methodref name="GetDisposed" visibility="protected" procflags="inline">
      </methodref>
      <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
      <propertyref name="Disposed" visibility="protected"/>
    </ancestor>
    <interfaces>
      <implements name="IInterface"/>
    </interfaces>
    <members>
      <const name="objDestroyingFlag" visibility="private" type="Integer" file="System.pas" line="1056">
        <value>
          $80000000
        </value>
      </const>
      <function name="GetRefCount" visibility="private" procflags="inline" file="System.pas" line="1060">
        <parameters>
          <retval type="Integer"/>
        </parameters>
      </function>
      <field name="FRefCount" type="Integer" visibility="protected" size="4" offset="4" file="System.pas" line="1064">
        <attributes>
          <attribute name="TObject"/>
        </attributes>
      </field>
      <procedure name="__MarkDestroying" visibility="protected" procflags="static inline" file="System.pas" line="1065">
        <parameters>
          <parameter name="Obj" paramflags="const"/>
        </parameters>
      </procedure>
      <function name="QueryInterface" visibility="protected" callconv="stdcall" file="System.pas" line="1067">
        <parameters>
          <parameter name="IID" type="TGUID" paramflags="const"/>
          <parameter name="Obj" paramflags="out"/>
          <retval type="HRESULT"/>
        </parameters>
      </function>
      <function name="_AddRef" visibility="protected" callconv="stdcall" file="System.pas" line="1068">
        <parameters>
          <retval type="Integer"/>
        </parameters>
      </function>
      <function name="_Release" visibility="protected" callconv="stdcall" file="System.pas" line="1069">
        <parameters>
          <retval type="Integer"/>
        </parameters>
      </function>
      <procedure name="AfterConstruction" visibility="public" procflags="override" file="System.pas" line="1072">
      </procedure>
      <procedure name="BeforeDestruction" visibility="public" procflags="override" file="System.pas" line="1073">
      </procedure>
      <function name="NewInstance" visibility="public" procflags="class override" file="System.pas" line="1074">
        <parameters>
          <retval type="TObject"/>
        </parameters>
      </function>
      <property name="RefCount" visibility="public" read="GetRefCount" type="Integer" file="System.pas" line="1075"/>
    </members>
  </class>
  <classref name="TInterfacedClass" ref="TInterfacedObject" file="System.pas" line="1082"/>
  <class name="TAggregatedObject" file="System.pas" line="1112">
    <ancestor name="TObject" namespace="System">
      <methodref name="Create" visibility="public" procflags="constructor"/>
      <methodref name="Free" visibility="public"/>
      <methodref name="DisposeOf" visibility="public" procflags="inline"/>
      <methodref name="InitInstance" visibility="public" procflags="class"/>
      <methodref name="CleanupInstance" visibility="public">
      </methodref>
      <methodref name="ClassType" visibility="public" procflags="inline"/>
      <methodref name="ClassName" visibility="public" procflags="class"/>
      <methodref name="ClassNameIs" visibility="public" procflags="class"/>
      <methodref name="ClassParent" visibility="public" procflags="class inline"/>
      <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
      <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
      <methodref name="InheritsFrom" visibility="public" procflags="class">
      </methodref>
      <methodref name="MethodAddress" visibility="public" procflags="class overload">
      </methodref>
      <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
      <methodref name="MethodName" visibility="public" procflags="class"/>
      <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
      <methodref name="FieldAddress" visibility="public" procflags="overload">
      </methodref>
      <methodref name="FieldAddress" visibility="public" procflags="overload"/>
      <methodref name="GetInterface" visibility="public">
      </methodref>
      <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
      <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
      <methodref name="UnitName" visibility="public" procflags="class"/>
      <methodref name="UnitScope" visibility="public" procflags="class"/>
      <methodref name="Equals" visibility="public" procflags="virtual"/>
      <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
      <methodref name="ToString" visibility="public" procflags="virtual"/>
      <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
      <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
      <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
      <methodref name="Dispatch" visibility="public" procflags="virtual"/>
      <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
      <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
      <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
      <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
      <methodref name="GetDisposed" visibility="protected" procflags="inline">
      </methodref>
      <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
      <propertyref name="Disposed" visibility="protected"/>
    </ancestor>
    <members>
      <field name="FController" type="IInterface" visibility="private" size="4" offset="4" file="System.pas" line="1114">
        <attributes>
          <attribute name="TObject"/>
        </attributes>
      </field>
      <function name="QueryInterface" visibility="protected" callconv="stdcall" file="System.pas" line="1117">
        <parameters>
          <parameter name="IID" type="TGUID" paramflags="const"/>
          <parameter name="Obj" paramflags="out"/>
          <retval type="HRESULT"/>
        </parameters>
      </function>
      <function name="_AddRef" visibility="protected" callconv="stdcall" file="System.pas" line="1118">
        <parameters>
          <retval type="Integer"/>
        </parameters>
      </function>
      <function name="_Release" visibility="protected" callconv="stdcall" file="System.pas" line="1119">
        <parameters>
          <retval type="Integer"/>
        </parameters>
      </function>
      <constructor name="Create" visibility="public" file="System.pas" line="1121">
        <parameters>
          <parameter name="Controller" type="IInterface" paramflags="const"/>
        </parameters>
      </constructor>
      <property name="Controller" visibility="public" read="FController" type="IInterface" file="System.pas" line="1122"/>
    </members>
  </class>
  <class name="TContainedObject" file="System.pas" line="1141">
    <ancestor name="TAggregatedObject" namespace="System">
      <methodref name="QueryInterface" visibility="protected"/>
      <methodref name="_AddRef" visibility="protected"/>
      <methodref name="_Release" visibility="protected"/>
      <methodref name="Create" visibility="public" procflags="constructor"/>
      <propertyref name="Controller" visibility="public"/>
      <ancestor name="TObject" namespace="System">
        <methodref name="Create" visibility="public" procflags="constructor"/>
        <methodref name="Free" visibility="public"/>
        <methodref name="DisposeOf" visibility="public" procflags="inline"/>
        <methodref name="InitInstance" visibility="public" procflags="class"/>
        <methodref name="CleanupInstance" visibility="public">
        </methodref>
        <methodref name="ClassType" visibility="public" procflags="inline"/>
        <methodref name="ClassName" visibility="public" procflags="class"/>
        <methodref name="ClassNameIs" visibility="public" procflags="class"/>
        <methodref name="ClassParent" visibility="public" procflags="class inline"/>
        <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
        <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
        <methodref name="InheritsFrom" visibility="public" procflags="class">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
        <methodref name="MethodName" visibility="public" procflags="class"/>
        <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
        <methodref name="FieldAddress" visibility="public" procflags="overload">
        </methodref>
        <methodref name="FieldAddress" visibility="public" procflags="overload"/>
        <methodref name="GetInterface" visibility="public">
        </methodref>
        <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
        <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
        <methodref name="UnitName" visibility="public" procflags="class"/>
        <methodref name="UnitScope" visibility="public" procflags="class"/>
        <methodref name="Equals" visibility="public" procflags="virtual"/>
        <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
        <methodref name="ToString" visibility="public" procflags="virtual"/>
        <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
        <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
        <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
        <methodref name="Dispatch" visibility="public" procflags="virtual"/>
        <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
        <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
        <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
        <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
        <methodref name="GetDisposed" visibility="protected" procflags="inline">
        </methodref>
        <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
        <propertyref name="Disposed" visibility="protected"/>
      </ancestor>
    </ancestor>
    <interfaces>
      <implements name="IInterface"/>
    </interfaces>
    <members>
      <function name="QueryInterface" visibility="protected" procflags="virtual" callconv="stdcall" file="System.pas" line="1144">
        <parameters>
          <parameter name="IID" type="TGUID" paramflags="const"/>
          <parameter name="Obj" paramflags="out"/>
          <retval type="HRESULT"/>
        </parameters>
      </function>
    </members>
  </class>
  <class name="TClassHelperBase" file="System.pas" line="1150">
    <ancestor name="TInterfacedObject" namespace="System">
      <interfaces>
        <implements name="IInterface"/>
      </interfaces>
      <methodref name="GetRefCount" visibility="private" procflags="inline"/>
      <methodref name="__MarkDestroying" visibility="protected" procflags="static inline"/>
      <methodref name="QueryInterface" visibility="protected"/>
      <methodref name="_AddRef" visibility="protected"/>
      <methodref name="_Release" visibility="protected"/>
      <methodref name="AfterConstruction" visibility="public" procflags="override"/>
      <methodref name="BeforeDestruction" visibility="public" procflags="override"/>
      <methodref name="NewInstance" visibility="public" procflags="class override"/>
      <propertyref name="RefCount" visibility="public"/>
      <ancestor name="TObject" namespace="System">
        <methodref name="Create" visibility="public" procflags="constructor"/>
        <methodref name="Free" visibility="public"/>
        <methodref name="DisposeOf" visibility="public" procflags="inline"/>
        <methodref name="InitInstance" visibility="public" procflags="class"/>
        <methodref name="CleanupInstance" visibility="public">
        </methodref>
        <methodref name="ClassType" visibility="public" procflags="inline"/>
        <methodref name="ClassName" visibility="public" procflags="class"/>
        <methodref name="ClassNameIs" visibility="public" procflags="class"/>
        <methodref name="ClassParent" visibility="public" procflags="class inline"/>
        <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
        <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
        <methodref name="InheritsFrom" visibility="public" procflags="class">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload">
        </methodref>
        <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
        <methodref name="MethodName" visibility="public" procflags="class"/>
        <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
        <methodref name="FieldAddress" visibility="public" procflags="overload">
        </methodref>
        <methodref name="FieldAddress" visibility="public" procflags="overload"/>
        <methodref name="GetInterface" visibility="public">
        </methodref>
        <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
        <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
        <methodref name="UnitName" visibility="public" procflags="class"/>
        <methodref name="UnitScope" visibility="public" procflags="class"/>
        <methodref name="Equals" visibility="public" procflags="virtual"/>
        <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
        <methodref name="ToString" visibility="public" procflags="virtual"/>
        <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
        <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
        <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
        <methodref name="Dispatch" visibility="public" procflags="virtual"/>
        <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
        <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
        <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
        <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
        <methodref name="GetDisposed" visibility="protected" procflags="inline">
        </methodref>
        <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
        <propertyref name="Disposed" visibility="protected"/>
      </ancestor>
    </ancestor>
    <interfaces>
      <implements name="IInterface"/>
    </interfaces>
    <members>
      <field name="FInstance" type="TObject" visibility="protected" size="4" offset="12" file="System.pas" line="1152"/>
      <constructor name="_Create" visibility="protected" file="System.pas" line="1153">
        <parameters>
          <parameter name="Instance" type="TObject"/>
        </parameters>
      </constructor>
    </members>
  </class>
  <classref name="TClassHelperBaseClass" ref="TClassHelperBase" file="System.pas" line="1156"/>
  <class name="TNoRefCountObject" file="System.pas" line="1161">
    <ancestor name="TObject" namespace="System">
      <methodref name="Create" visibility="public" procflags="constructor"/>
      <methodref name="Free" visibility="public"/>
      <methodref name="DisposeOf" visibility="public" procflags="inline"/>
      <methodref name="InitInstance" visibility="public" procflags="class"/>
      <methodref name="CleanupInstance" visibility="public">
      </methodref>
      <methodref name="ClassType" visibility="public" procflags="inline"/>
      <methodref name="ClassName" visibility="public" procflags="class"/>
      <methodref name="ClassNameIs" visibility="public" procflags="class"/>
      <methodref name="ClassParent" visibility="public" procflags="class inline"/>
      <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
      <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
      <methodref name="InheritsFrom" visibility="public" procflags="class">
      </methodref>
      <methodref name="MethodAddress" visibility="public" procflags="class overload">
      </methodref>
      <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
      <methodref name="MethodName" visibility="public" procflags="class"/>
      <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
      <methodref name="FieldAddress" visibility="public" procflags="overload">
      </methodref>
      <methodref name="FieldAddress" visibility="public" procflags="overload"/>
      <methodref name="GetInterface" visibility="public">
      </methodref>
      <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
      <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
      <methodref name="UnitName" visibility="public" procflags="class"/>
      <methodref name="UnitScope" visibility="public" procflags="class"/>
      <methodref name="Equals" visibility="public" procflags="virtual"/>
      <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
      <methodref name="ToString" visibility="public" procflags="virtual"/>
      <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
      <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
      <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
      <methodref name="Dispatch" visibility="public" procflags="virtual"/>
      <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
      <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
      <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
      <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
      <methodref name="GetDisposed" visibility="protected" procflags="inline">
      </methodref>
      <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
      <propertyref name="Disposed" visibility="protected"/>
    </ancestor>
    <interfaces>
      <implements name="IInterface"/>
    </interfaces>
    <members>
      <function name="QueryInterface" visibility="protected" callconv="stdcall" file="System.pas" line="1163">
        <parameters>
          <parameter name="IID" type="TGUID" paramflags="const"/>
          <parameter name="Obj" paramflags="out"/>
          <retval type="HRESULT"/>
        </parameters>
      </function>
      <function name="_AddRef" visibility="protected" callconv="stdcall" file="System.pas" line="1164">
        <parameters>
          <retval type="Integer"/>
        </parameters>
      </function>
      <function name="_Release" visibility="protected" callconv="stdcall" file="System.pas" line="1165">
        <parameters>
          <retval type="Integer"/>
        </parameters>
      </function>
    </members>
  </class>
  <pointer name="PShortString" type="ShortString" indircnt="1" file="System.pas" line="1189"/>
  <pointer name="PAnsiString" type="AnsiString" indircnt="1" file="System.pas" line="1190"/>
  <pointer name="PWideString" type="WideString" indircnt="1" file="System.pas" line="1191"/>
  <pointer name="PUnicodeString" type="string" indircnt="1" file="System.pas" line="1192"/>
  <pointer name="PString" alias="System.PUnicodeString" type="string" indircnt="1" file="System.pas" line="1192"/>
  <type name="UCS2Char" type="WideChar" file="System.pas" line="12"/>
  <pointer name="PUCS2Char" alias="System.PWideChar" type="Char" indircnt="1" file="System.pas" line="12"/>
  <type name="UCS4Char" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <pointer name="PUCS4Char" type="Cardinal" indircnt="1" file="System.pas" line="1211"/>
  <array name="TUCS4CharArray" low="0" high="251658239" file="System.pas" line="1214">
    <element type="Cardinal"/>
  </array>
  <pointer name="PUCS4CharArray" type="TUCS4CharArray" indircnt="1" file="System.pas" line="1215"/>
  <array name="UCS4String" file="System.pas" line="1222">
    <element type="Cardinal"/>
  </array>
  <type name="UTF8String" type="AnsiString" file="System.pas" line="1229"/>
  <type name="RawByteString" type="AnsiString" file="System.pas" line="1230"/>
  <pointer name="PUTF8String" type="UTF8String" indircnt="1" file="System.pas" line="1232"/>
  <pointer name="PRawByteString" type="RawByteString" indircnt="1" file="System.pas" line="1233"/>
  <array name="IntegerArray" low="0" high="251658239" file="System.pas" line="1249">
    <element type="Integer"/>
  </array>
  <pointer name="PIntegerArray" type="IntegerArray" indircnt="1" file="System.pas" line="1250"/>
  <array name="Int64Array" low="0" high="268435454" file="System.pas" line="1257">
    <element type="Int64"/>
  </array>
  <pointer name="PInt64Array" type="Int64Array" indircnt="1" file="System.pas" line="1258"/>
  <array name="PointerArray" low="0" high="536870910" file="System.pas" line="1268">
    <devnotes>
      CPU64BITS
    </devnotes>
    <element type="Pointer">
      <devnotes>
        CPU64BITS
      </devnotes>
    </element>
  </array>
  <pointer name="PPointerArray" type="PointerArray" indircnt="1" file="System.pas" line="1270">
    <devnotes>
      CPU64BITS
    </devnotes>
  </pointer>
  <array name="TBoundArray" file="System.pas" line="1277">
    <element type="NativeInt"/>
  </array>
  <array name="TPCharArray" low="0" high="536870910" file="System.pas" line="1279">
    <element type="PWideChar"/>
  </array>
  <pointer name="PPCharArray" type="TPCharArray" indircnt="1" file="System.pas" line="1281"/>
  <pointer name="PLongInt" type="Integer" indircnt="1" file="System.pas" line="1288"/>
  <pointer name="PInteger" type="Integer" indircnt="1" file="System.pas" line="1300"/>
  <pointer name="PCardinal" type="Cardinal" indircnt="1" file="System.pas" line="1301"/>
  <pointer name="PWord" type="Word" indircnt="1" file="System.pas" line="1302"/>
  <pointer name="PSmallInt" type="SmallInt" indircnt="1" file="System.pas" line="1303"/>
  <pointer name="PByte" type="Byte" indircnt="1" file="System.pas" line="1305"/>
  <pointer name="PShortInt" type="ShortInt" indircnt="1" file="System.pas" line="1307"/>
  <pointer name="PUint32" type="Cardinal" indircnt="1" file="System.pas" line="1308"/>
  <pointer name="PInt64" type="Int64" indircnt="1" file="System.pas" line="1309"/>
  <pointer name="PUInt64" type="UInt64" indircnt="1" file="System.pas" line="1310"/>
  <pointer name="PLongWord" type="Cardinal" indircnt="1" file="System.pas" line="1311"/>
  <pointer name="PSingle" type="Single" indircnt="1" file="System.pas" line="1312"/>
  <pointer name="PDouble" type="Double" indircnt="1" file="System.pas" line="1313"/>
  <pointer name="PDate" type="Double" indircnt="1" file="System.pas" line="1314"/>
  <pointer name="PDispatch" type="IDispatch" indircnt="1" file="System.pas" line="1315"/>
  <pointer name="PPDispatch" type="PDispatch" indircnt="1" file="System.pas" line="1316"/>
  <pointer name="PError" type="Cardinal" indircnt="1" file="System.pas" line="1319"/>
  <pointer name="PWordBool" type="WordBool" indircnt="1" file="System.pas" line="1320"/>
  <pointer name="PUnknown" type="IInterface" indircnt="1" file="System.pas" line="1321"/>
  <pointer name="PPUnknown" type="PUnknown" indircnt="1" file="System.pas" line="1322"/>
  <pointer name="PPWideChar" type="PWideChar" indircnt="1" file="System.pas" line="1323"/>
  <pointer name="PPAnsiChar" type="PAnsiChar" indircnt="1" file="System.pas" line="1329"/>
  <pointer name="PPChar" alias="System.PPWideChar" type="PWideChar" indircnt="1" file="System.pas" line="1323"/>
  <pointer name="PExtended" type="Extended" indircnt="1" file="System.pas" line="1334"/>
  <pointer name="PComp" type="Comp" indircnt="1" file="System.pas" line="1335"/>
  <pointer name="PCurrency" type="Currency" indircnt="1" file="System.pas" line="1336"/>
  <pointer name="PVariant" type="Variant" indircnt="1" file="System.pas" line="1337"/>
  <pointer name="POleVariant" type="OleVariant" indircnt="1" file="System.pas" line="1338"/>
  <pointer name="PPointer" type="Pointer" indircnt="1" file="System.pas" line="1339"/>
  <pointer name="PBoolean" type="Boolean" indircnt="1" file="System.pas" line="1340"/>
  <pointer name="PNativeInt" type="NativeInt" indircnt="1" file="System.pas" line="1341"/>
  <pointer name="PNativeUInt" type="NativeUInt" indircnt="1" file="System.pas" line="1342"/>
  <pointer name="PMarshaledString" alias="System.PPWideChar" type="PWideChar" indircnt="1" file="System.pas" line="1323"/>
  <pointer name="PMarshaledAString" alias="System.PPAnsiChar" type="PAnsiChar" indircnt="1" file="System.pas" line="1329"/>
  <type name="TDateTime" type="TDateTime" file="System.pas" line="1346"/>
  <pointer name="PDateTime" type="TDateTime" indircnt="1" file="System.pas" line="1347"/>
  <type name="TDate" type="Double" file="System.pas" line="1351"/>
  <type name="TTime" type="Double" file="System.pas" line="1352"/>
  <type name="THandle" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <pointer name="PVarArrayBound" type="TVarArrayBound" indircnt="1" file="System.pas" line="1377"/>
  <struct name="TVarArrayBound" size="8" file="System.pas" line="1378">
    <field name="ElementCount" type="Integer" visibility="public" size="4" offset="0" file="System.pas" line="1379"/>
    <field name="LowBound" type="Integer" visibility="public" size="4" offset="4" file="System.pas" line="1380"/>
  </struct>
  <array name="TVarArrayBoundArray" low="0" high="0" file="System.pas" line="1382">
    <element type="TVarArrayBound"/>
  </array>
  <pointer name="PVarArrayBoundArray" type="TVarArrayBoundArray" indircnt="1" file="System.pas" line="1383"/>
  <array name="TVarArrayCoorArray" low="0" high="0" file="System.pas" line="1384">
    <element type="Integer"/>
  </array>
  <pointer name="PVarArrayCoorArray" type="TVarArrayCoorArray" indircnt="1" file="System.pas" line="1385"/>
  <pointer name="PVarArray" type="TVarArray" indircnt="1" file="System.pas" line="1387"/>
  <struct name="TVarArray" size="24" file="System.pas" line="1388">
    <field name="DimCount" type="Word" visibility="public" size="2" offset="0" file="System.pas" line="1389"/>
    <field name="Flags" type="Word" visibility="public" size="2" offset="2" file="System.pas" line="1390"/>
    <field name="ElementSize" type="Integer" visibility="public" size="4" offset="4" file="System.pas" line="1391"/>
    <field name="LockCount" type="Integer" visibility="public" size="4" offset="8" file="System.pas" line="1392"/>
    <field name="Data" type="Pointer" visibility="public" size="4" offset="12" file="System.pas" line="1393"/>
    <field name="Bounds" type="TVarArrayBoundArray" visibility="public" size="8" offset="16" file="System.pas" line="1394"/>
  </struct>
  <pointer name="PVarRecord" type="TVarRecord" indircnt="1" file="System.pas" line="1397"/>
  <struct name="TVarRecord" size="8" file="System.pas" line="1398">
    <field name="PRecord" type="Pointer" visibility="public" size="4" offset="0" file="System.pas" line="1399"/>
    <field name="RecInfo" type="Pointer" visibility="public" size="4" offset="4" file="System.pas" line="1400"/>
  </struct>
  <struct name="TLargestVarData" size="8" file="System.pas" line="1403">
    <field name="_Reserved1" type="Pointer" visibility="public" size="4" offset="0" file="System.pas" line="1404"/>
    <field name="_Reserved2" type="Pointer" visibility="public" size="4" offset="4" file="System.pas" line="1405"/>
  </struct>
  <type name="TVarType" type="word" loBound="0" hiBound="65535" file="System.pas" line="12"/>
  <pointer name="PVarData" type="TVarData" indircnt="1" file="System.pas" line="1409"/>
  <struct name="TVarData" size="16" packed="true" file="System.pas" line="1410">
    <field name="VType" type="Word" visibility="public" variant="true" size="2" offset="0" file="System.pas" line="1412"/>
    <field name="Reserved1" type="Word" visibility="public" variant="true" size="2" offset="2" file="System.pas" line="1414"/>
    <field name="Reserved2" type="Word" visibility="public" variant="true" size="2" offset="4" file="System.pas" line="1416"/>
    <field name="Reserved3" type="Word" visibility="public" variant="true" size="2" offset="6" file="System.pas" line="1416"/>
    <field name="VSmallInt" type="SmallInt" visibility="public" variant="true" size="2" offset="8" file="System.pas" line="1418"/>
    <field name="VInteger" type="Integer" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1419"/>
    <field name="VSingle" type="Single" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1420"/>
    <field name="VDouble" type="Double" visibility="public" variant="true" size="8" offset="8" file="System.pas" line="1421"/>
    <field name="VCurrency" type="Currency" visibility="public" variant="true" size="8" offset="8" file="System.pas" line="1422"/>
    <field name="VDate" type="TDateTime" visibility="public" variant="true" size="8" offset="8" file="System.pas" line="1423"/>
    <field name="VOleStr" type="PWideChar" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1424"/>
    <field name="VDispatch" type="Pointer" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1425"/>
    <field name="VError" type="HRESULT" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1426"/>
    <field name="VBoolean" type="WordBool" visibility="public" variant="true" size="2" offset="8" file="System.pas" line="1427"/>
    <field name="VUnknown" type="Pointer" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1428"/>
    <field name="VShortInt" type="ShortInt" visibility="public" variant="true" size="1" offset="8" file="System.pas" line="1429"/>
    <field name="VByte" type="Byte" visibility="public" variant="true" size="1" offset="8" file="System.pas" line="1430"/>
    <field name="VWord" type="Word" visibility="public" variant="true" size="2" offset="8" file="System.pas" line="1431"/>
    <field name="VLongWord" type="Cardinal" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1432"/>
    <field name="VUInt32" type="Cardinal" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1433"/>
    <field name="VInt64" type="Int64" visibility="public" variant="true" size="8" offset="8" file="System.pas" line="1434"/>
    <field name="VUInt64" type="UInt64" visibility="public" variant="true" size="8" offset="8" file="System.pas" line="1435"/>
    <field name="VString" type="Pointer" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1436"/>
    <field name="VAny" type="Pointer" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1437"/>
    <field name="VArray" type="PVarArray" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1438"/>
    <field name="VPointer" type="Pointer" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1439"/>
    <field name="VUString" type="Pointer" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="1440"/>
    <field name="VRecord" type="TVarRecord" visibility="public" variant="true" size="8" offset="8" file="System.pas" line="1441"/>
    <field name="VLongs" visibility="public" variant="true" size="12" offset="4" file="System.pas" line="1444">
      <array name="VLongs" visibility="public" low="0" high="2" file="System.pas" line="1444">
        <element type="Integer"/>
      </array>
    </field>
    <field name="VWords" visibility="public" variant="true" size="14" offset="2" file="System.pas" line="1446">
      <array name="VWords" visibility="public" low="0" high="6" file="System.pas" line="1446">
        <element type="Word"/>
      </array>
    </field>
    <field name="VBytes" visibility="public" variant="true" size="14" offset="2" file="System.pas" line="1447">
      <array name="VBytes" visibility="public" low="0" high="13" file="System.pas" line="1447">
        <element type="Byte"/>
      </array>
    </field>
    <field name="RawData" visibility="public" variant="true" size="16" offset="0" file="System.pas" line="1449">
      <array name="RawData" visibility="public" low="0" high="3" file="System.pas" line="1449">
        <element type="Integer"/>
      </array>
    </field>
  </struct>
  <enum name="TTypeKind" file="System.pas" line="1455">
    <element value="0" name="tkUnknown" file="System.pas" line="1455"/>
    <element value="1" name="tkInteger" file="System.pas" line="1455"/>
    <element value="2" name="tkChar" file="System.pas" line="1455"/>
    <element value="3" name="tkEnumeration" file="System.pas" line="1455"/>
    <element value="4" name="tkFloat" file="System.pas" line="1455"/>
    <element value="5" name="tkString" file="System.pas" line="1456"/>
    <element value="6" name="tkSet" file="System.pas" line="1456"/>
    <element value="7" name="tkClass" file="System.pas" line="1456"/>
    <element value="8" name="tkMethod" file="System.pas" line="1456"/>
    <element value="9" name="tkWChar" file="System.pas" line="1456"/>
    <element value="10" name="tkLString" file="System.pas" line="1456"/>
    <element value="11" name="tkWString" file="System.pas" line="1456"/>
    <element value="12" name="tkVariant" file="System.pas" line="1457"/>
    <element value="13" name="tkArray" file="System.pas" line="1457"/>
    <element value="14" name="tkRecord" file="System.pas" line="1457"/>
    <element value="15" name="tkInterface" file="System.pas" line="1457"/>
    <element value="16" name="tkInt64" file="System.pas" line="1457"/>
    <element value="17" name="tkDynArray" file="System.pas" line="1457"/>
    <element value="18" name="tkUString" file="System.pas" line="1457"/>
    <element value="19" name="tkClassRef" file="System.pas" line="1458"/>
    <element value="20" name="tkPointer" file="System.pas" line="1458"/>
    <element value="21" name="tkProcedure" file="System.pas" line="1458"/>
    <element value="22" name="tkMRecord" file="System.pas" line="1458"/>
  </enum>
  <type name="TVarOp" type="integer" loBound="-2147483648" hiBound="2147483647" file="System.pas" line="12"/>
  <const name="opAdd" type="Integer" file="System.pas" line="1464">
    <value>
      $0
    </value>
  </const>
  <const name="opSubtract" type="Integer" file="System.pas" line="1465">
    <value>
      $1
    </value>
  </const>
  <const name="opMultiply" type="Integer" file="System.pas" line="1466">
    <value>
      $2
    </value>
  </const>
  <const name="opDivide" type="Integer" file="System.pas" line="1467">
    <value>
      $3
    </value>
  </const>
  <const name="opIntDivide" type="Integer" file="System.pas" line="1468">
    <value>
      $4
    </value>
  </const>
  <const name="opModulus" type="Integer" file="System.pas" line="1469">
    <value>
      $5
    </value>
  </const>
  <const name="opShiftLeft" type="Integer" file="System.pas" line="1470">
    <value>
      $6
    </value>
  </const>
  <const name="opShiftRight" type="Integer" file="System.pas" line="1471">
    <value>
      $7
    </value>
  </const>
  <const name="opAnd" type="Integer" file="System.pas" line="1472">
    <value>
      $8
    </value>
  </const>
  <const name="opOr" type="Integer" file="System.pas" line="1473">
    <value>
      $9
    </value>
  </const>
  <const name="opXor" type="Integer" file="System.pas" line="1474">
    <value>
      $A
    </value>
  </const>
  <const name="opCompare" type="Integer" file="System.pas" line="1475">
    <value>
      $B
    </value>
  </const>
  <const name="opNegate" type="Integer" file="System.pas" line="1476">
    <value>
      $C
    </value>
  </const>
  <const name="opNot" type="Integer" file="System.pas" line="1477">
    <value>
      $D
    </value>
  </const>
  <const name="opCmpEQ" type="Integer" file="System.pas" line="1479">
    <value>
      $E
    </value>
  </const>
  <const name="opCmpNE" type="Integer" file="System.pas" line="1480">
    <value>
      $F
    </value>
  </const>
  <const name="opCmpLT" type="Integer" file="System.pas" line="1481">
    <value>
      $10
    </value>
  </const>
  <const name="opCmpLE" type="Integer" file="System.pas" line="1482">
    <value>
      $11
    </value>
  </const>
  <const name="opCmpGT" type="Integer" file="System.pas" line="1483">
    <value>
      $12
    </value>
  </const>
  <const name="opCmpGE" type="Integer" file="System.pas" line="1484">
    <value>
      $13
    </value>
  </const>
  <const name="tkAnsiChar" type="TTypeKind" file="System.pas" line="1486">
    <value>
      tkChar
    </value>
  </const>
  <const name="tkWideChar" type="TTypeKind" file="System.pas" line="1487">
    <value>
      tkWChar
    </value>
  </const>
  <const name="tkUnicodeString" type="TTypeKind" file="System.pas" line="1488">
    <value>
      tkUString
    </value>
  </const>
  <const name="tkAnsiString" type="TTypeKind" file="System.pas" line="1489">
    <value>
      tkLString
    </value>
  </const>
  <const name="tkWideString" type="TTypeKind" file="System.pas" line="1490">
    <value>
      tkWString
    </value>
  </const>
  <const name="tkShortString" type="TTypeKind" file="System.pas" line="1491">
    <value>
      tkString
    </value>
  </const>
  <const name="NumSmallBlockTypes" type="Integer" file="System.pas" line="1495">
    <value>
      $37
    </value>
  </const>
  <const name="csUnallocated" type="TChunkStatus" file="System.pas" line="1859">
    <value>
      csUnallocated
    </value>
  </const>
  <const name="csAllocated" type="TChunkStatus" file="System.pas" line="1859">
    <value>
      csAllocated
    </value>
  </const>
  <const name="csReserved" type="TChunkStatus" file="System.pas" line="1859">
    <value>
      csReserved
    </value>
  </const>
  <const name="csSysAllocated" type="TChunkStatus" file="System.pas" line="1860">
    <value>
      csSysAllocated
    </value>
  </const>
  <const name="csSysReserved" type="TChunkStatus" file="System.pas" line="1860">
    <value>
      csSysReserved
    </value>
  </const>
  <const name="mba8Byte" type="TMinimumBlockAlignment" file="System.pas" line="1864">
    <value>
      mba8Byte
    </value>
  </const>
  <const name="mba16Byte" type="TMinimumBlockAlignment" file="System.pas" line="1864">
    <value>
      mba16Byte
    </value>
  </const>
  <pointer name="PCallDesc" type="TCallDesc" indircnt="1" file="System.pas" line="1502"/>
  <struct name="TCallDesc" size="259" packed="true" file="System.pas" line="1503">
    <field name="CallType" type="Byte" visibility="public" size="1" offset="0" file="System.pas" line="1504"/>
    <field name="ArgCount" type="Byte" visibility="public" size="1" offset="1" file="System.pas" line="1505"/>
    <field name="NamedArgCount" type="Byte" visibility="public" size="1" offset="2" file="System.pas" line="1506"/>
    <field name="ArgTypes" visibility="public" size="256" offset="3" file="System.pas" line="1507">
      <array name="ArgTypes" visibility="public" low="0" high="255" file="System.pas" line="1507">
        <element type="Byte"/>
      </array>
    </field>
  </struct>
  <pointer name="PDispDesc" type="TDispDesc" indircnt="1" file="System.pas" line="1510"/>
  <struct name="TDispDesc" size="264" packed="true" file="System.pas" line="1511">
    <field name="DispID" type="Integer" visibility="public" size="4" offset="0" file="System.pas" line="1512"/>
    <field name="ResType" type="Byte" visibility="public" size="1" offset="4" file="System.pas" line="1513"/>
    <field name="CallDesc" type="TCallDesc" visibility="public" size="259" offset="5" file="System.pas" line="1514"/>
  </struct>
  <pointer name="PVariantManager" type="TVariantManager" indircnt="1" file="System.pas" line="1517"/>
  <struct name="TVariantManager" size="176" file="System.pas" line="1518" symflags="deprecated">
    <field name="VarClear" visibility="public" size="4" offset="0" file="System.pas" line="1519">
    </field>
    <field name="VarCopy" visibility="public" size="4" offset="4" file="System.pas" line="1520">
    </field>
    <field name="VarCopyNoInd" visibility="public" size="4" offset="8" file="System.pas" line="1521">
    </field>
    <field name="VarCast" visibility="public" size="4" offset="12" file="System.pas" line="1522">
    </field>
    <field name="VarCastOle" visibility="public" size="4" offset="16" file="System.pas" line="1523">
    </field>
    <field name="VarToInt" visibility="public" size="4" offset="20" file="System.pas" line="1525">
    </field>
    <field name="VarToInt64" visibility="public" size="4" offset="24" file="System.pas" line="1526">
    </field>
    <field name="VarToBool" visibility="public" size="4" offset="28" file="System.pas" line="1527">
    </field>
    <field name="VarToReal" visibility="public" size="4" offset="32" file="System.pas" line="1528">
    </field>
    <field name="VarToCurr" visibility="public" size="4" offset="36" file="System.pas" line="1529">
    </field>
    <field name="VarToPStr" visibility="public" size="4" offset="40" file="System.pas" line="1530">
    </field>
    <field name="VarToLStr" visibility="public" size="4" offset="44" file="System.pas" line="1531">
    </field>
    <field name="VarToWStr" visibility="public" size="4" offset="48" file="System.pas" line="1532">
    </field>
    <field name="VarToIntf" visibility="public" size="4" offset="52" file="System.pas" line="1533">
    </field>
    <field name="VarToDisp" visibility="public" size="4" offset="56" file="System.pas" line="1534">
    </field>
    <field name="VarToDynArray" visibility="public" size="4" offset="60" file="System.pas" line="1535">
    </field>
    <field name="VarFromInt" visibility="public" size="4" offset="64" file="System.pas" line="1537">
    </field>
    <field name="VarFromInt64" visibility="public" size="4" offset="68" file="System.pas" line="1538">
    </field>
    <field name="VarFromBool" visibility="public" size="4" offset="72" file="System.pas" line="1539">
    </field>
    <field name="VarFromReal" visibility="public" size="4" offset="76" file="System.pas" line="1540">
    </field>
    <field name="VarFromTDateTime" visibility="public" size="4" offset="80" file="System.pas" line="1541">
    </field>
    <field name="VarFromCurr" visibility="public" size="4" offset="84" file="System.pas" line="1542">
    </field>
    <field name="VarFromPStr" visibility="public" size="4" offset="88" file="System.pas" line="1543">
    </field>
    <field name="VarFromLStr" visibility="public" size="4" offset="92" file="System.pas" line="1544">
    </field>
    <field name="VarFromWStr" visibility="public" size="4" offset="96" file="System.pas" line="1545">
    </field>
    <field name="VarFromIntf" visibility="public" size="4" offset="100" file="System.pas" line="1546">
    </field>
    <field name="VarFromDisp" visibility="public" size="4" offset="104" file="System.pas" line="1547">
    </field>
    <field name="VarFromDynArray" visibility="public" size="4" offset="108" file="System.pas" line="1548">
    </field>
    <field name="OleVarFromPStr" visibility="public" size="4" offset="112" file="System.pas" line="1549">
    </field>
    <field name="OleVarFromLStr" visibility="public" size="4" offset="116" file="System.pas" line="1550">
    </field>
    <field name="OleVarFromVar" visibility="public" size="4" offset="120" file="System.pas" line="1551">
    </field>
    <field name="OleVarFromInt" visibility="public" size="4" offset="124" file="System.pas" line="1552">
    </field>
    <field name="OleVarFromInt64" visibility="public" size="4" offset="128" file="System.pas" line="1553">
    </field>
    <field name="VarOp" visibility="public" size="4" offset="132" file="System.pas" line="1555">
    </field>
    <field name="VarCmp" visibility="public" size="4" offset="136" file="System.pas" line="1556">
    </field>
    <field name="VarNeg" visibility="public" size="4" offset="140" file="System.pas" line="1557">
    </field>
    <field name="VarNot" visibility="public" size="4" offset="144" file="System.pas" line="1558">
    </field>
    <field name="DispInvoke" visibility="public" size="4" offset="148" file="System.pas" line="1560">
    </field>
    <field name="VarAddRef" visibility="public" size="4" offset="152" file="System.pas" line="1562">
    </field>
    <field name="VarArrayRedim" visibility="public" size="4" offset="156" file="System.pas" line="1564">
    </field>
    <field name="VarArrayGet" visibility="public" size="4" offset="160" file="System.pas" line="1565">
    </field>
    <field name="VarArrayPut" visibility="public" size="4" offset="164" file="System.pas" line="1567">
    </field>
    <field name="WriteVariant" visibility="public" size="4" offset="168" file="System.pas" line="1570">
    </field>
    <field name="Write0Variant" visibility="public" size="4" offset="172" file="System.pas" line="1571">
    </field>
  </struct>
  <pointer name="PDynArrayTypeInfo" type="TDynArrayTypeInfo" indircnt="1" file="System.pas" line="1575"/>
  <struct name="TDynArrayTypeInfo" size="14" packed="true" file="System.pas" line="1577">
    <field name="kind" type="TTypeKind" visibility="public" size="1" offset="0" file="System.pas" line="1578"/>
    <field name="name" type="Byte" visibility="public" size="1" offset="1" file="System.pas" line="1579"/>
    <field name="elSize" type="Integer" visibility="public" size="4" offset="2" file="System.pas" line="1580"/>
    <field name="elType" visibility="public" size="4" offset="6" file="System.pas" line="1581">
      <pointer name="elType" type="PDynArrayTypeInfo" indircnt="1"/>
    </field>
    <field name="varType" type="Integer" visibility="public" size="4" offset="10" file="System.pas" line="1582"/>
  </struct>
  <pointer name="PVarRec" type="TVarRec" indircnt="1" file="System.pas" line="1586"/>
  <struct name="TVarRec" size="8" file="System.pas" line="1587">
    <field name="VInteger" type="Integer" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1590"/>
    <field name="VBoolean" type="Boolean" visibility="public" variant="true" size="1" offset="0" file="System.pas" line="1591"/>
    <field name="VChar" type="AnsiChar" visibility="public" variant="true" size="1" offset="0" file="System.pas" line="1592"/>
    <field name="VExtended" type="PExtended" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1593"/>
    <field name="VString" type="PShortString" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1595"/>
    <field name="VPointer" type="Pointer" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1597">
      <devnotes>
        NEXTGEN
      </devnotes>
    </field>
    <field name="VPChar" type="PAnsiChar" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1598"/>
    <field name="VObject" type="TObject" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1602"/>
    <field name="VClass" type="TClass" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1604"/>
    <field name="VWideChar" type="Char" visibility="public" variant="true" size="2" offset="0" file="System.pas" line="1605"/>
    <field name="VPWideChar" type="PWideChar" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1606"/>
    <field name="VAnsiString" type="Pointer" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1607"/>
    <field name="VCurrency" type="PCurrency" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1608"/>
    <field name="VVariant" type="PVariant" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1609"/>
    <field name="VInterface" type="Pointer" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1610"/>
    <field name="VWideString" type="Pointer" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1611"/>
    <field name="VInt64" type="PInt64" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1612"/>
    <field name="VUnicodeString" type="Pointer" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1613"/>
    <field name="_Reserved1" type="NativeInt" visibility="public" variant="true" size="4" offset="0" file="System.pas" line="1615"/>
    <field name="VType" type="Byte" visibility="public" variant="true" size="1" offset="4" file="System.pas" line="1616"/>
  </struct>
  <pointer name="PMemoryManager" type="TMemoryManager" indircnt="1" file="System.pas" line="1663"/>
  <struct name="TMemoryManager" size="12" file="System.pas" line="1664" symflags="deprecated">
    <field name="GetMem" visibility="public" size="4" offset="0" file="System.pas" line="1665">
    </field>
    <field name="FreeMem" visibility="public" size="4" offset="4" file="System.pas" line="1666">
    </field>
    <field name="ReallocMem" visibility="public" size="4" offset="8" file="System.pas" line="1667">
    </field>
  </struct>
  <pointer name="PMemoryManagerEx" type="TMemoryManagerEx" indircnt="1" file="System.pas" line="1671"/>
  <struct name="TMemoryManagerEx" size="24" file="System.pas" line="1672">
    <field name="GetMem" visibility="public" size="4" offset="0" file="System.pas" line="1674">
    </field>
    <field name="FreeMem" visibility="public" size="4" offset="4" file="System.pas" line="1675">
    </field>
    <field name="ReallocMem" visibility="public" size="4" offset="8" file="System.pas" line="1676">
    </field>
    <field name="AllocMem" visibility="public" size="4" offset="12" file="System.pas" line="1678">
    </field>
    <field name="RegisterExpectedMemoryLeak" visibility="public" size="4" offset="16" file="System.pas" line="1679">
    </field>
    <field name="UnregisterExpectedMemoryLeak" visibility="public" size="4" offset="20" file="System.pas" line="1680">
    </field>
  </struct>
  <struct name="THeapStatus" size="40" file="System.pas" line="1683" symflags="deprecated">
    <field name="TotalAddrSpace" type="NativeUInt" visibility="public" size="4" offset="0" file="System.pas" line="1684"/>
    <field name="TotalUncommitted" type="NativeUInt" visibility="public" size="4" offset="4" file="System.pas" line="1685"/>
    <field name="TotalCommitted" type="NativeUInt" visibility="public" size="4" offset="8" file="System.pas" line="1686"/>
    <field name="TotalAllocated" type="NativeUInt" visibility="public" size="4" offset="12" file="System.pas" line="1687"/>
    <field name="TotalFree" type="NativeUInt" visibility="public" size="4" offset="16" file="System.pas" line="1688"/>
    <field name="FreeSmall" type="NativeUInt" visibility="public" size="4" offset="20" file="System.pas" line="1689"/>
    <field name="FreeBig" type="NativeUInt" visibility="public" size="4" offset="24" file="System.pas" line="1690"/>
    <field name="Unused" type="NativeUInt" visibility="public" size="4" offset="28" file="System.pas" line="1691"/>
    <field name="Overhead" type="NativeUInt" visibility="public" size="4" offset="32" file="System.pas" line="1692"/>
    <field name="HeapErrorCode" type="Cardinal" visibility="public" size="4" offset="36" file="System.pas" line="1693"/>
  </struct>
  <struct name="TSmallBlockTypeState" size="16" packed="true" file="System.pas" line="1696">
    <field name="InternalBlockSize" type="Cardinal" visibility="public" size="4" offset="0" file="System.pas" line="1698"/>
    <field name="UseableBlockSize" type="Cardinal" visibility="public" size="4" offset="4" file="System.pas" line="1700"/>
    <field name="AllocatedBlockCount" type="NativeUInt" visibility="public" size="4" offset="8" file="System.pas" line="1702"/>
    <field name="ReservedAddressSpace" type="NativeUInt" visibility="public" size="4" offset="12" file="System.pas" line="1705"/>
  </struct>
  <array name="TSmallBlockTypeStates" low="0" high="54" file="System.pas" line="1707">
    <element type="TSmallBlockTypeState"/>
  </array>
  <struct name="TMemoryManagerState" size="904" packed="true" file="System.pas" line="1709">
    <field name="SmallBlockTypeStates" type="TSmallBlockTypeStates" visibility="public" size="880" offset="0" file="System.pas" line="1711"/>
    <field name="AllocatedMediumBlockCount" type="Cardinal" visibility="public" size="4" offset="880" file="System.pas" line="1713"/>
    <field name="TotalAllocatedMediumBlockSize" type="NativeUInt" visibility="public" size="4" offset="884" file="System.pas" line="1714"/>
    <field name="ReservedMediumBlockAddressSpace" type="NativeUInt" visibility="public" size="4" offset="888" file="System.pas" line="1715"/>
    <field name="AllocatedLargeBlockCount" type="Cardinal" visibility="public" size="4" offset="892" file="System.pas" line="1717"/>
    <field name="TotalAllocatedLargeBlockSize" type="NativeUInt" visibility="public" size="4" offset="896" file="System.pas" line="1718"/>
    <field name="ReservedLargeBlockAddressSpace" type="NativeUInt" visibility="public" size="4" offset="900" file="System.pas" line="1719"/>
  </struct>
  <pointer name="PMonitorSupport" type="TMonitorSupport" indircnt="1" file="System.pas" line="1722"/>
  <struct name="TMonitorSupport" size="20" file="System.pas" line="1723">
    <field name="NewSyncObject" visibility="public" size="4" offset="0" file="System.pas" line="1725">
    </field>
    <field name="FreeSyncObject" visibility="public" size="4" offset="4" file="System.pas" line="1727">
    </field>
    <field name="NewWaitObject" visibility="public" size="4" offset="8" file="System.pas" line="1729">
    </field>
    <field name="FreeWaitObject" visibility="public" size="4" offset="12" file="System.pas" line="1731">
    </field>
    <field name="WaitOrSignalObject" visibility="public" size="4" offset="16" file="System.pas" line="1735">
    </field>
  </struct>
  <struct name="TPtrWrapper" size="4" file="System.pas" line="1739">
    <field name="Value" type="PByte" visibility="private" size="4" offset="0" file="System.pas" line="1741"/>
    <function name="GetNilValue" visibility="private" procflags="static inline" file="System.pas" line="1742">
      <parameters>
        <retval type="TPtrWrapper"/>
      </parameters>
    </function>
    <constructor name="Create" visibility="public" file="System.pas" line="1744">
      <parameters>
        <parameter name="AValue" type="NativeInt"/>
      </parameters>
    </constructor>
    <constructor name="Create" visibility="public" file="System.pas" line="1745">
      <parameters>
        <parameter name="AValue" type="Pointer"/>
      </parameters>
    </constructor>
    <function name="ToPointer" visibility="public" procflags="inline" file="System.pas" line="1747">
      <parameters>
        <retval type="Pointer"/>
      </parameters>
    </function>
    <function name="ToInteger" visibility="public" procflags="inline" file="System.pas" line="1748">
      <parameters>
        <retval type="NativeInt"/>
      </parameters>
    </function>
    <property name="NilValue" visibility="public" read="GetNilValue" type="TPtrWrapper" file="System.pas" line="1750"/>
    <function name="operator Equality" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="1752" generated="true">
      <parameters>
        <parameter name="Left" type="TPtrWrapper"/>
        <parameter name="Right" type="TPtrWrapper"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <function name="operator Inequality" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="1753" generated="true">
      <parameters>
        <parameter name="Left" type="TPtrWrapper"/>
        <parameter name="Right" type="TPtrWrapper"/>
        <retval type="Boolean"/>
      </parameters>
    </function>
  </struct>
  <class name="TMarshal" file="System.pas" line="1757">
    <ancestor name="TObject" namespace="System">
      <methodref name="Create" visibility="public" procflags="constructor"/>
      <methodref name="Free" visibility="public"/>
      <methodref name="DisposeOf" visibility="public" procflags="inline"/>
      <methodref name="InitInstance" visibility="public" procflags="class"/>
      <methodref name="CleanupInstance" visibility="public">
      </methodref>
      <methodref name="ClassType" visibility="public" procflags="inline"/>
      <methodref name="ClassName" visibility="public" procflags="class"/>
      <methodref name="ClassNameIs" visibility="public" procflags="class"/>
      <methodref name="ClassParent" visibility="public" procflags="class inline"/>
      <methodref name="ClassInfo" visibility="public" procflags="class inline"/>
      <methodref name="InstanceSize" visibility="public" procflags="class inline"/>
      <methodref name="InheritsFrom" visibility="public" procflags="class">
      </methodref>
      <methodref name="MethodAddress" visibility="public" procflags="class overload">
      </methodref>
      <methodref name="MethodAddress" visibility="public" procflags="class overload"/>
      <methodref name="MethodName" visibility="public" procflags="class"/>
      <methodref name="QualifiedClassName" visibility="public" procflags="class"/>
      <methodref name="FieldAddress" visibility="public" procflags="overload">
      </methodref>
      <methodref name="FieldAddress" visibility="public" procflags="overload"/>
      <methodref name="GetInterface" visibility="public">
      </methodref>
      <methodref name="GetInterfaceEntry" visibility="public" procflags="class"/>
      <methodref name="GetInterfaceTable" visibility="public" procflags="class inline"/>
      <methodref name="UnitName" visibility="public" procflags="class"/>
      <methodref name="UnitScope" visibility="public" procflags="class"/>
      <methodref name="Equals" visibility="public" procflags="virtual"/>
      <methodref name="GetHashCode" visibility="public" procflags="virtual"/>
      <methodref name="ToString" visibility="public" procflags="virtual"/>
      <methodref name="SafeCallException" visibility="public" procflags="virtual"/>
      <methodref name="AfterConstruction" visibility="public" procflags="virtual"/>
      <methodref name="BeforeDestruction" visibility="public" procflags="virtual"/>
      <methodref name="Dispatch" visibility="public" procflags="virtual"/>
      <methodref name="DefaultHandler" visibility="public" procflags="virtual"/>
      <methodref name="NewInstance" visibility="public" procflags="class virtual"/>
      <methodref name="FreeInstance" visibility="public" procflags="virtual"/>
      <methodref name="Destroy" visibility="public" procflags="destructor virtual"/>
      <methodref name="GetDisposed" visibility="protected" procflags="inline">
      </methodref>
      <methodref name="CheckDisposed" visibility="protected" procflags="inline"/>
      <propertyref name="Disposed" visibility="protected"/>
    </ancestor>
    <members>
      <constructor name="Create" visibility="public" file="System.pas" line="1758">
        <parameters>
        </parameters>
      </constructor>
      <function name="InString" visibility="public" procflags="static overload inline" file="System.pas" line="1761">
        <parameters>
          <parameter name="S" type="string" paramflags="const"/>
          <retval type="PWideChar"/>
        </parameters>
      </function>
      <function name="OutString" visibility="public" procflags="static overload inline" file="System.pas" line="1762">
        <parameters>
          <parameter name="S" type="string" paramflags="const"/>
          <retval type="PWideChar"/>
        </parameters>
      </function>
      <function name="InOutString" visibility="public" procflags="static overload inline" file="System.pas" line="1763">
        <parameters>
          <parameter name="S" type="string" paramflags="const"/>
          <retval type="PWideChar"/>
        </parameters>
      </function>
      <function name="AsAnsi" visibility="public" procflags="static overload inline" file="System.pas" line="1764">
        <parameters>
          <parameter name="S" type="string" paramflags="const"/>
          <retval type="AnsiString"/>
        </parameters>
      </function>
      <function name="AsAnsi" visibility="public" procflags="static overload inline" file="System.pas" line="1765">
        <parameters>
          <parameter name="S" type="PWideChar"/>
          <retval type="AnsiString"/>
        </parameters>
      </function>
      <function name="AllocMem" visibility="public" procflags="class" file="System.pas" line="1768">
        <parameters>
          <parameter name="Size" type="NativeInt"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <function name="ReallocMem" visibility="public" procflags="class" file="System.pas" line="1769">
        <parameters>
          <parameter name="OldPtr" type="TPtrWrapper"/>
          <parameter name="NewSize" type="NativeInt"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <procedure name="FreeMem" visibility="public" procflags="class" file="System.pas" line="1770">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1773">
        <parameters>
          <parameter name="Src" type="TArray&lt;System.Byte&gt;" paramflags="const"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Dest" type="TPtrWrapper"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1774">
        <parameters>
          <parameter name="Src" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Dest" type="TArray&lt;System.Byte&gt;" paramflags="var"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1775">
        <parameters>
          <parameter name="Src" type="TArray&lt;System.Char&gt;" paramflags="const"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Dest" type="TPtrWrapper"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1776">
        <parameters>
          <parameter name="Src" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Dest" type="TArray&lt;System.Char&gt;" paramflags="var"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1777">
        <parameters>
          <parameter name="Src" type="TArray&lt;System.Word&gt;" paramflags="const"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Dest" type="TPtrWrapper"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1778">
        <parameters>
          <parameter name="Src" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Dest" type="TArray&lt;System.Word&gt;" paramflags="var"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1779">
        <parameters>
          <parameter name="Src" type="TArray&lt;System.ShortInt&gt;" paramflags="const"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Dest" type="TPtrWrapper"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1780">
        <parameters>
          <parameter name="Src" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Dest" type="TArray&lt;System.ShortInt&gt;" paramflags="var"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1781">
        <parameters>
          <parameter name="Src" type="TArray&lt;System.SmallInt&gt;" paramflags="const"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Dest" type="TPtrWrapper"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1782">
        <parameters>
          <parameter name="Src" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Dest" type="TArray&lt;System.SmallInt&gt;" paramflags="var"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1783">
        <parameters>
          <parameter name="Src" type="TArray&lt;System.Integer&gt;" paramflags="const"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Dest" type="TPtrWrapper"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1784">
        <parameters>
          <parameter name="Src" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Dest" type="TArray&lt;System.Integer&gt;" paramflags="var"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1785">
        <parameters>
          <parameter name="Src" type="TArray&lt;System.Int64&gt;" paramflags="const"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Dest" type="TPtrWrapper"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1786">
        <parameters>
          <parameter name="Src" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Dest" type="TArray&lt;System.Int64&gt;" paramflags="var"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1787">
        <parameters>
          <parameter name="Src" type="TArray&lt;System.TPtrWrapper&gt;" paramflags="const"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Dest" type="TPtrWrapper"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="Copy" visibility="public" procflags="class overload" file="System.pas" line="1788">
        <parameters>
          <parameter name="Src" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Dest" type="TArray&lt;System.TPtrWrapper&gt;"/>
          <parameter name="StartIndex" type="Integer"/>
          <parameter name="Count" type="Integer"/>
        </parameters>
      </procedure>
      <function name="ReadByte" visibility="public" procflags="class" file="System.pas" line="1791">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Ofs" type="NativeInt">
            <value>
              $0
            </value>
          </parameter>
          <retval type="Byte"/>
        </parameters>
      </function>
      <function name="ReadInt16" visibility="public" procflags="class" file="System.pas" line="1792">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Ofs" type="NativeInt">
            <value>
              $0
            </value>
          </parameter>
          <retval type="SmallInt"/>
        </parameters>
      </function>
      <function name="ReadInt32" visibility="public" procflags="class" file="System.pas" line="1793">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Ofs" type="NativeInt">
            <value>
              $0
            </value>
          </parameter>
          <retval type="Integer"/>
        </parameters>
      </function>
      <function name="ReadInt64" visibility="public" procflags="class" file="System.pas" line="1794">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Ofs" type="NativeInt">
            <value>
              $0
            </value>
          </parameter>
          <retval type="Int64"/>
        </parameters>
      </function>
      <function name="ReadPtr" visibility="public" procflags="class" file="System.pas" line="1795">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Ofs" type="NativeInt">
            <value>
              $0
            </value>
          </parameter>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <procedure name="WriteByte" visibility="public" procflags="class overload" file="System.pas" line="1797">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Ofs" type="NativeInt"/>
          <parameter name="Value" type="Byte"/>
        </parameters>
      </procedure>
      <procedure name="WriteInt16" visibility="public" procflags="class overload" file="System.pas" line="1798">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Ofs" type="NativeInt"/>
          <parameter name="Value" type="SmallInt"/>
        </parameters>
      </procedure>
      <procedure name="WriteInt32" visibility="public" procflags="class overload" file="System.pas" line="1799">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Ofs" type="NativeInt"/>
          <parameter name="Value" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="WriteInt64" visibility="public" procflags="class overload" file="System.pas" line="1800">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Ofs" type="NativeInt"/>
          <parameter name="Value" type="Int64"/>
        </parameters>
      </procedure>
      <procedure name="WritePtr" visibility="public" procflags="class overload" file="System.pas" line="1801">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Ofs" type="NativeInt"/>
          <parameter name="Value" type="TPtrWrapper" paramflags="const"/>
        </parameters>
      </procedure>
      <procedure name="WriteByte" visibility="public" procflags="class overload" file="System.pas" line="1803">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Value" type="Byte"/>
        </parameters>
      </procedure>
      <procedure name="WriteInt16" visibility="public" procflags="class overload" file="System.pas" line="1804">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Value" type="SmallInt"/>
        </parameters>
      </procedure>
      <procedure name="WriteInt32" visibility="public" procflags="class overload" file="System.pas" line="1805">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Value" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="WriteInt64" visibility="public" procflags="class overload" file="System.pas" line="1806">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Value" type="Int64"/>
        </parameters>
      </procedure>
      <procedure name="WritePtr" visibility="public" procflags="class overload" file="System.pas" line="1807">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Value" type="TPtrWrapper" paramflags="const"/>
        </parameters>
      </procedure>
      <procedure name="Move" visibility="public" procflags="class inline" file="System.pas" line="1810">
        <parameters>
          <parameter name="Src" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Dest" type="TPtrWrapper" paramflags="const"/>
          <parameter name="Count" type="NativeInt"/>
        </parameters>
      </procedure>
      <function name="FixArray" visibility="public" procflags="class overload" file="System.pas" line="1813">
        <parameters>
          <parameter name="Arr" type="TArray&lt;System.TMarshal.FixArray.T&gt;" paramflags="const"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <procedure name="UnfixArray" visibility="public" procflags="class overload" file="System.pas" line="1814">
        <parameters>
          <parameter name="ArrPtr" type="TPtrWrapper"/>
        </parameters>
      </procedure>
      <function name="FixString" visibility="public" procflags="class overload" file="System.pas" line="1817">
        <parameters>
          <parameter name="Str" type="string" paramflags="var"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <procedure name="UnfixString" visibility="public" procflags="class overload" file="System.pas" line="1818">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
        </parameters>
      </procedure>
      <function name="UnsafeFixString" visibility="public" procflags="class overload" file="System.pas" line="1820">
        <parameters>
          <parameter name="Str" type="string" paramflags="const"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <function name="UnsafeAddrOf" visibility="public" procflags="class inline" file="System.pas" line="1823">
        <parameters>
          <parameter name="Value" paramflags="var"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <function name="AllocStringAsAnsi" visibility="public" procflags="class overload" file="System.pas" line="1826">
        <parameters>
          <parameter name="Str" type="string" paramflags="const"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <function name="AllocStringAsAnsi" visibility="public" procflags="class overload" file="System.pas" line="1827">
        <parameters>
          <parameter name="Str" type="string" paramflags="const"/>
          <parameter name="CodePage" type="Word"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <function name="AllocStringAsUnicode" visibility="public" procflags="class" file="System.pas" line="1828">
        <parameters>
          <parameter name="Str" type="string" paramflags="const"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <function name="AllocStringAsAnsi" visibility="public" procflags="class overload" file="System.pas" line="1829">
        <parameters>
          <parameter name="S" type="PWideChar"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <function name="AllocStringAsAnsi" visibility="public" procflags="class overload" file="System.pas" line="1830">
        <parameters>
          <parameter name="S" type="PWideChar"/>
          <parameter name="CodePage" type="Word"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <function name="AllocStringAsUtf8" visibility="public" procflags="class overload" file="System.pas" line="1831">
        <parameters>
          <parameter name="Str" type="string" paramflags="const"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <function name="AllocStringAsUtf8" visibility="public" procflags="class overload" file="System.pas" line="1832">
        <parameters>
          <parameter name="S" type="PWideChar"/>
          <retval type="TPtrWrapper"/>
        </parameters>
      </function>
      <function name="ReadStringAsAnsi" visibility="public" procflags="class overload" file="System.pas" line="1835">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Len" type="Integer">
            <value>
              $FFFFFFFF
            </value>
          </parameter>
          <retval type="string"/>
        </parameters>
      </function>
      <function name="ReadStringAsAnsi" visibility="public" procflags="class overload" file="System.pas" line="1836">
        <parameters>
          <parameter name="CodePage" type="Word"/>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Len" type="Integer">
            <value>
              $FFFFFFFF
            </value>
          </parameter>
          <retval type="string"/>
        </parameters>
      </function>
      <function name="ReadStringAsUnicode" visibility="public" procflags="class" file="System.pas" line="1837">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Len" type="Integer">
            <value>
              $FFFFFFFF
            </value>
          </parameter>
          <retval type="string"/>
        </parameters>
      </function>
      <function name="ReadStringAsUtf8" visibility="public" procflags="class" file="System.pas" line="1838">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Len" type="Integer">
            <value>
              $FFFFFFFF
            </value>
          </parameter>
          <retval type="string"/>
        </parameters>
      </function>
      <function name="ReadStringAsAnsiUpTo" visibility="public" procflags="class" file="System.pas" line="1841">
        <parameters>
          <parameter name="CodePage" type="Word"/>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="MaxLen" type="Integer"/>
          <retval type="string"/>
        </parameters>
      </function>
      <function name="ReadStringAsUnicodeUpTo" visibility="public" procflags="class" file="System.pas" line="1842">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="MaxLen" type="Integer"/>
          <retval type="string"/>
        </parameters>
      </function>
      <function name="ReadStringAsUtf8UpTo" visibility="public" procflags="class" file="System.pas" line="1843">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="MaxLen" type="Integer"/>
          <retval type="string"/>
        </parameters>
      </function>
      <procedure name="WriteStringAsAnsi" visibility="public" procflags="class overload" file="System.pas" line="1847">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Value" type="string" paramflags="const"/>
          <parameter name="MaxCharsIncNull" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="WriteStringAsAnsi" visibility="public" procflags="class overload" file="System.pas" line="1848">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Value" type="string" paramflags="const"/>
          <parameter name="MaxCharsIncNull" type="Integer"/>
          <parameter name="CodePage" type="Word"/>
        </parameters>
      </procedure>
      <procedure name="WriteStringAsAnsi" visibility="public" procflags="class overload" file="System.pas" line="1849">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Ofs" type="NativeInt"/>
          <parameter name="Value" type="string" paramflags="const"/>
          <parameter name="MaxCharsIncNull" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="WriteStringAsAnsi" visibility="public" procflags="class overload" file="System.pas" line="1850">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Ofs" type="NativeInt"/>
          <parameter name="Value" type="string" paramflags="const"/>
          <parameter name="MaxCharsIncNull" type="Integer"/>
          <parameter name="CodePage" type="Word"/>
        </parameters>
      </procedure>
      <procedure name="WriteStringAsUnicode" visibility="public" procflags="class overload" file="System.pas" line="1851">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Value" type="string" paramflags="const"/>
          <parameter name="MaxCharsIncNull" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="WriteStringAsUnicode" visibility="public" procflags="class overload" file="System.pas" line="1852">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Ofs" type="NativeInt"/>
          <parameter name="Value" type="string" paramflags="const"/>
          <parameter name="MaxCharsIncNull" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="WriteStringAsUtf8" visibility="public" procflags="class overload" file="System.pas" line="1853">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Value" type="string" paramflags="const"/>
          <parameter name="MaxCharsIncNull" type="Integer"/>
        </parameters>
      </procedure>
      <procedure name="WriteStringAsUtf8" visibility="public" procflags="class overload" file="System.pas" line="1854">
        <parameters>
          <parameter name="Ptr" type="TPtrWrapper"/>
          <parameter name="Ofs" type="NativeInt"/>
          <parameter name="Value" type="string" paramflags="const"/>
          <parameter name="MaxCharsIncNull" type="Integer"/>
        </parameters>
      </procedure>
    </members>
  </class>
  <enum name="TChunkStatus" file="System.pas" line="1859">
    <element value="0" name="csUnallocated" file="System.pas" line="1859"/>
    <element value="1" name="csAllocated" file="System.pas" line="1859"/>
    <element value="2" name="csReserved" file="System.pas" line="1859"/>
    <element value="3" name="csSysAllocated" file="System.pas" line="1860"/>
    <element value="4" name="csSysReserved" file="System.pas" line="1860"/>
  </enum>
  <array name="TMemoryMap" low="0" high="65535" file="System.pas" line="1861">
    <element type="TChunkStatus"/>
  </array>
  <enum name="TMinimumBlockAlignment" file="System.pas" line="1864">
    <element value="0" name="mba8Byte" file="System.pas" line="1864"/>
    <element value="1" name="mba16Byte" file="System.pas" line="1864"/>
  </enum>
  <struct name="PackageUnitEntry" size="8" packed="true" file="System.pas" line="1881">
    <field name="Init" type="Pointer" visibility="public" size="4" offset="0" file="System.pas" line="1882"/>
    <field name="FInit" type="Pointer" visibility="public" size="4" offset="4" file="System.pas" line="1882"/>
  </struct>
  <array name="UnitEntryTable" low="0" high="9999999" file="System.pas" line="1887">
    <element type="PackageUnitEntry"/>
  </array>
  <pointer name="PUnitEntryTable" type="UnitEntryTable" indircnt="1" file="System.pas" line="1888"/>
  <array name="TTypeTable" low="0" high="536870910" file="System.pas" line="1892">
    <element type="Pointer"/>
  </array>
  <pointer name="PTypeTable" type="TTypeTable" indircnt="1" file="System.pas" line="1893"/>
  <pointer name="PPackageTypeInfo" type="TPackageTypeInfo" indircnt="1" file="System.pas" line="1901"/>
  <struct name="TPackageTypeInfo" size="16" file="System.pas" line="1902">
    <field name="TypeCount" type="Integer" visibility="public" size="4" offset="0" file="System.pas" line="1903"/>
    <field name="TypeTable" type="PTypeTable" visibility="public" size="4" offset="4" file="System.pas" line="1904"/>
    <field name="UnitCount" type="Integer" visibility="public" size="4" offset="8" file="System.pas" line="1905"/>
    <field name="UnitNames" type="PShortString" visibility="public" size="4" offset="12" file="System.pas" line="1906"/>
  </struct>
  <struct name="PackageInfoTable" size="24" file="System.pas" line="1909">
    <field name="UnitCount" type="Integer" visibility="public" size="4" offset="0" file="System.pas" line="1910"/>
    <field name="UnitInfo" type="PUnitEntryTable" visibility="public" size="4" offset="4" file="System.pas" line="1911"/>
    <field name="TypeInfo" type="TPackageTypeInfo" visibility="public" size="16" offset="8" file="System.pas" line="1912"/>
  </struct>
  <pointer name="PackageInfo" type="PackageInfoTable" indircnt="1" file="System.pas" line="1915"/>
  <type name="GetPackageInfoTable" file="System.pas" line="1919" procflags="">
  </type>
  <struct name="TCVModInfo" size="12" packed="true" file="System.pas" line="1994">
    <field name="ModName" type="PAnsiChar" visibility="public" size="4" offset="0" file="System.pas" line="1995"/>
    <field name="LibName" type="PAnsiChar" visibility="public" size="4" offset="4" file="System.pas" line="1996"/>
    <field name="UserData" type="Pointer" visibility="public" size="4" offset="8" file="System.pas" line="1997"/>
  </struct>
  <pointer name="PCVModInfo" type="TCVModInfo" indircnt="1" file="System.pas" line="1999"/>
  <type name="TAssertErrorProc" file="System.pas" line="2008" procflags="">
  </type>
  <type name="TSafeCallErrorProc" file="System.pas" line="2010" procflags="">
  </type>
  <type name="TRaiseExceptionProc" file="System.pas" line="2011" procflags="">
  </type>
  <variable name="DispCallByIDProc" type="Pointer" file="System.pas" line="2028"/>
  <variable name="ExceptProc" type="Pointer" file="System.pas" line="2029"/>
  <variable name="ErrorProc" type="procedure(ErrorCode: Byte; ErrorAddr: Pointer)" file="System.pas" line="2030"/>
  <variable name="ExceptClsProc" type="Pointer" file="System.pas" line="2032"/>
  <variable name="ExceptObjProc" type="Pointer" file="System.pas" line="2033"/>
  <variable name="RaiseExceptionProc" type="Pointer" file="System.pas" line="2035"/>
  <variable name="RTLUnwindProc" type="Pointer" file="System.pas" line="2039"/>
  <variable name="RaiseExceptObjProc" type="Pointer" file="System.pas" line="2041"/>
  <variable name="ExceptionAcquired" type="Pointer" file="System.pas" line="2042"/>
  <variable name="ExceptionClass" type="TClass" file="System.pas" line="2043"/>
  <variable name="SafeCallErrorProc" type="TSafeCallErrorProc" file="System.pas" line="2044"/>
  <variable name="AssertErrorProc" type="TAssertErrorProc" file="System.pas" line="2045"/>
  <variable name="ExitProcessProc" type="procedure" file="System.pas" line="2046"/>
  <variable name="AbstractErrorProc" type="procedure" file="System.pas" line="2047"/>
  <variable name="HPrevInst" type="Cardinal" file="System.pas" line="2049" symflags="deprecated">
  </variable>
  <variable name="MainInstance" type="NativeUInt" file="System.pas" line="2051"/>
  <variable name="MainThreadID" type="Cardinal" file="System.pas" line="2059"/>
  <variable name="IsLibrary" type="Boolean" file="System.pas" line="2060"/>
  <variable name="CmdShow" type="Integer" file="System.pas" line="2062" symflags="platform">
  </variable>
  <variable name="CmdLine" type="PWideChar" file="System.pas" line="2063" symflags="platform">
  </variable>
  <variable name="InitProc" type="Pointer" file="System.pas" line="2065"/>
  <variable name="ExitCode" type="Integer" visibility="public" file="System.pas" line="2066"/>
  <variable name="ExitProc" type="Pointer" file="System.pas" line="2067"/>
  <variable name="ErrorAddr" type="Pointer" visibility="public" file="System.pas" line="2068"/>
  <variable name="RandSeed" type="Integer" visibility="public" file="System.pas" line="2069"/>
  <variable name="IsConsole" type="Boolean" file="System.pas" line="2070"/>
  <variable name="IsMultiThread" type="Boolean" file="System.pas" line="2071"/>
  <variable name="FileMode" type="Byte" visibility="public" file="System.pas" line="2072"/>
  <variable name="Test8086" type="Byte" file="System.pas" line="2080"/>
  <variable name="Test8087" type="Byte" visibility="public" file="System.pas" line="2081"/>
  <variable name="TestFDIV" type="ShortInt" file="System.pas" line="2082"/>
  <variable name="TestSSE" type="Cardinal" file="System.pas" line="2083"/>
  <variable name="CPUCount" type="Integer" file="System.pas" line="2085"/>
  <variable name="Input" type="Text" file="System.pas" line="2086"/>
  <variable name="Output" type="Text" file="System.pas" line="2087"/>
  <variable name="ErrOutput" type="Text" file="System.pas" line="2088"/>
  <variable name="VarClearProc" type="procedure(v: TVarData)" visibility="public" file="System.pas" line="2090"/>
  <variable name="VarAddRefProc" type="procedure(v: TVarData)" visibility="public" file="System.pas" line="2091"/>
  <variable name="VarCopyProc" type="procedure(Dest: TVarData; Source: TVarData)" visibility="public" file="System.pas" line="2092"/>
  <variable name="VarToLStrProc" type="procedure(Dest: AnsiString; Source: TVarData; CodePage: Word)" visibility="public" file="System.pas" line="2093"/>
  <variable name="VarToWStrProc" type="procedure(Dest: WideString; Source: TVarData)" visibility="public" file="System.pas" line="2095"/>
  <variable name="VarToUStrProc" type="procedure(Dest: string; Source: TVarData)" visibility="public" file="System.pas" line="2097">
    <devnotes>
      NEXTGEN
    </devnotes>
  </variable>
  <variable name="MonitorSupport" type="PMonitorSupport" file="System.pas" line="2099"/>
  <variable name="DLLShutdownProc" type="procedure" visibility="public" file="System.pas" line="2103"/>
  <const name="CPUi386" type="Integer" file="System.pas" line="2110">
    <value>
      $2
    </value>
  </const>
  <const name="CPUi486" type="Integer" file="System.pas" line="2111">
    <value>
      $3
    </value>
  </const>
  <const name="CPUPentium" type="Integer" file="System.pas" line="2112">
    <value>
      $4
    </value>
  </const>
  <struct name="TCPUIDRec" size="16" file="System.pas" line="2115" symflags="platform">
    <field name="EAX" type="Cardinal" visibility="public" size="4" offset="0" file="System.pas" line="2116"/>
    <field name="EBX" type="Cardinal" visibility="public" size="4" offset="4" file="System.pas" line="2116"/>
    <field name="ECX" type="Cardinal" visibility="public" size="4" offset="8" file="System.pas" line="2116"/>
    <field name="EDX" type="Cardinal" visibility="public" size="4" offset="12" file="System.pas" line="2116"/>
  </struct>
  <variable name="CPUIDTable" file="System.pas" line="2120" symflags="platform">
  </variable>
  <variable name="ERMSBThreshold" type="NativeInt" visibility="public" file="System.pas" line="2128"/>
  <variable name="Default8087CW" type="Word" visibility="public" file="System.pas" line="2138" symflags="platform">
  </variable>
  <variable name="DefaultMXCSR" type="Cardinal" visibility="public" file="System.pas" line="2145" symflags="platform">
  </variable>
  <variable name="HeapAllocFlags" type="Word" visibility="public" file="System.pas" line="2156" symflags="platform">
  </variable>
  <variable name="DebugHook" type="Byte" visibility="public" file="System.pas" line="2157" symflags="platform">
  </variable>
  <variable name="JITEnable" type="Byte" visibility="public" file="System.pas" line="2159" symflags="platform">
  </variable>
  <variable name="NoErrMsg" type="Boolean" visibility="public" file="System.pas" line="2162" symflags="platform">
  </variable>
  <variable name="DefaultSystemCodePage" type="Integer" file="System.pas" line="2172"/>
  <variable name="DefaultUnicodeCodePage" type="Integer" file="System.pas" line="2173"/>
  <variable name="UTF8CompareLocale" type="Cardinal" file="System.pas" line="2175"/>
  <const name="tlbsLF" type="TTextLineBreakStyle" file="System.pas" line="2194">
    <value>
      tlbsLF
    </value>
  </const>
  <const name="tlbsCRLF" type="TTextLineBreakStyle" file="System.pas" line="2194">
    <value>
      tlbsCRLF
    </value>
  </const>
  <enum name="TTextLineBreakStyle" file="System.pas" line="2194">
    <element value="0" name="tlbsLF" file="System.pas" line="2194"/>
    <element value="1" name="tlbsCRLF" file="System.pas" line="2194"/>
  </enum>
  <variable name="DefaultTextLineBreakStyle" type="TTextLineBreakStyle" visibility="public" file="System.pas" line="2197"/>
  <const name="sLineBreak" type="AnsiString" file="System.pas" line="2200">
    <value>
      


    </value>
  </const>
  <type name="HRSRC" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <type name="TResourceHandle" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <type name="HINST" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <type name="HMODULE" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <type name="HGLOBAL" type="cardinal" loBound="0" hiBound="-1" file="System.pas" line="12"/>
  <variable name="AllocMemCount" type="Integer" file="System.pas" line="2259" symflags="deprecated">
  </variable>
  <variable name="AllocMemSize" type="Integer" file="System.pas" line="2260" symflags="deprecated">
  </variable>
  <variable name="ReportMemoryLeaksOnShutdown" type="Boolean" file="System.pas" line="2265"/>
  <variable name="NeverSleepOnMMThreadContention" type="Boolean" file="System.pas" line="2271"/>
  <type name="TThreadFunc" file="System.pas" line="2311" procflags="">
  </type>
  <type name="TSystemThreadFuncProc" file="System.pas" line="2385" procflags="">
  </type>
  <type name="TSystemThreadEndProc" file="System.pas" line="2386" procflags="">
  </type>
  <variable name="SystemThreadFuncProc" type="TSystemThreadFuncProc" visibility="public" file="System.pas" line="2399"/>
  <variable name="SystemThreadEndProc" type="TSystemThreadEndProc" visibility="public" file="System.pas" line="2400"/>
  <const name="fmClosed" type="Word" file="System.pas" line="2418">
    <value>
      $D7B0
    </value>
  </const>
  <const name="fmInput" type="Word" file="System.pas" line="2419">
    <value>
      $D7B1
    </value>
  </const>
  <const name="fmOutput" type="Word" file="System.pas" line="2420">
    <value>
      $D7B2
    </value>
  </const>
  <const name="fmInOut" type="Word" file="System.pas" line="2421">
    <value>
      $D7B3
    </value>
  </const>
  <const name="tfCRLF" type="Integer" file="System.pas" line="2424">
    <value>
      $1
    </value>
  </const>
  <struct name="TFileRec" size="592" packed="true" file="System.pas" line="2429">
    <field name="Handle" type="NativeInt" visibility="public" size="4" offset="0" file="System.pas" line="2430"/>
    <field name="Mode" type="Word" visibility="public" size="2" offset="4" file="System.pas" line="2431"/>
    <field name="Flags" type="Word" visibility="public" size="2" offset="6" file="System.pas" line="2432"/>
    <field name="RecSize" type="Cardinal" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="2434"/>
    <field name="BufSize" type="Cardinal" visibility="public" variant="true" size="4" offset="8" file="System.pas" line="2435"/>
    <field name="BufPos" type="Cardinal" visibility="public" variant="true" size="4" offset="12" file="System.pas" line="2436"/>
    <field name="BufEnd" type="Cardinal" visibility="public" variant="true" size="4" offset="16" file="System.pas" line="2437"/>
    <field name="BufPtr" type="PAnsiChar" visibility="public" variant="true" size="4" offset="20" file="System.pas" line="2438"/>
    <field name="OpenFunc" type="Pointer" visibility="public" variant="true" size="4" offset="24" file="System.pas" line="2439"/>
    <field name="InOutFunc" type="Pointer" visibility="public" variant="true" size="4" offset="28" file="System.pas" line="2440"/>
    <field name="FlushFunc" type="Pointer" visibility="public" variant="true" size="4" offset="32" file="System.pas" line="2441"/>
    <field name="CloseFunc" type="Pointer" visibility="public" variant="true" size="4" offset="36" file="System.pas" line="2442"/>
    <field name="UserData" visibility="public" variant="true" size="32" offset="40" file="System.pas" line="2443">
      <array name="UserData" visibility="public" low="1" high="32" file="System.pas" line="2443">
        <element type="Byte"/>
      </array>
    </field>
    <field name="Name" visibility="public" variant="true" size="520" offset="72" file="System.pas" line="2444">
      <array name="Name" visibility="public" low="0" high="259" file="System.pas" line="2444">
        <element type="Char"/>
      </array>
    </field>
  </struct>
  <pointer name="PTextBuf" type="TTextBuf" indircnt="1" file="System.pas" line="2449"/>
  <array name="TTextBuf" low="0" high="127" file="System.pas" line="2450">
    <element type="AnsiChar"/>
  </array>
  <struct name="TTextRec" size="730" packed="true" file="System.pas" line="2451">
    <field name="Handle" type="NativeInt" visibility="public" size="4" offset="0" file="System.pas" line="2452"/>
    <field name="Mode" type="Word" visibility="public" size="2" offset="4" file="System.pas" line="2453"/>
    <field name="Flags" type="Word" visibility="public" size="2" offset="6" file="System.pas" line="2454"/>
    <field name="BufSize" type="Cardinal" visibility="public" size="4" offset="8" file="System.pas" line="2455"/>
    <field name="BufPos" type="Cardinal" visibility="public" size="4" offset="12" file="System.pas" line="2456"/>
    <field name="BufEnd" type="Cardinal" visibility="public" size="4" offset="16" file="System.pas" line="2457"/>
    <field name="BufPtr" type="PAnsiChar" visibility="public" size="4" offset="20" file="System.pas" line="2458"/>
    <field name="OpenFunc" type="Pointer" visibility="public" size="4" offset="24" file="System.pas" line="2459"/>
    <field name="InOutFunc" type="Pointer" visibility="public" size="4" offset="28" file="System.pas" line="2460"/>
    <field name="FlushFunc" type="Pointer" visibility="public" size="4" offset="32" file="System.pas" line="2461"/>
    <field name="CloseFunc" type="Pointer" visibility="public" size="4" offset="36" file="System.pas" line="2462"/>
    <field name="UserData" visibility="public" size="32" offset="40" file="System.pas" line="2463">
      <array name="UserData" visibility="public" low="1" high="32" file="System.pas" line="2463">
        <element type="Byte"/>
      </array>
    </field>
    <field name="Name" visibility="public" size="520" offset="72" file="System.pas" line="2464">
      <array name="Name" visibility="public" low="0" high="259" file="System.pas" line="2464">
        <element type="Char"/>
      </array>
    </field>
    <field name="Buffer" type="TTextBuf" visibility="public" size="128" offset="592" file="System.pas" line="2465"/>
    <field name="CodePage" type="Word" visibility="public" size="2" offset="720" file="System.pas" line="2466"/>
    <field name="MBCSLength" type="ShortInt" visibility="public" size="1" offset="722" file="System.pas" line="2467"/>
    <field name="MBCSBufPos" type="Byte" visibility="public" size="1" offset="723" file="System.pas" line="2468"/>
    <field name="MBCSBuffer" visibility="public" variant="true" size="6" offset="724" file="System.pas" line="2470">
      <array name="MBCSBuffer" visibility="public" low="0" high="5" file="System.pas" line="2470">
        <element type="AnsiChar"/>
      </array>
    </field>
    <field name="UTF16Buffer" visibility="public" variant="true" size="6" offset="724" file="System.pas" line="2471">
      <array name="UTF16Buffer" visibility="public" low="0" high="2" file="System.pas" line="2471">
        <element type="Char"/>
      </array>
    </field>
  </struct>
  <type name="TTextIOFunc" file="System.pas" line="2474" procflags="">
  </type>
  <type name="TFileIOFunc" file="System.pas" line="2475" procflags="">
  </type>
  <type name="TRandom32Proc" file="System.pas" line="2504" procflags="">
  </type>
  <type name="TRandomizeProc" file="System.pas" line="2505" procflags="">
  </type>
  <variable name="Random32Proc" type="TRandom32Proc" visibility="public" file="System.pas" line="2511"/>
  <variable name="RandomizeProc" type="TRandomizeProc" visibility="public" file="System.pas" line="2512"/>
  <const name="feeINEXACT" type="Integer" file="System.pas" line="2521">
    <value>
      $20
    </value>
  </const>
  <const name="feeUNDERFLOW" type="Integer" file="System.pas" line="2522">
    <value>
      $10
    </value>
  </const>
  <const name="feeOVERFLOW" type="Integer" file="System.pas" line="2523">
    <value>
      $8
    </value>
  </const>
  <const name="feeDIVBYZERO" type="Integer" file="System.pas" line="2524">
    <value>
      $4
    </value>
  </const>
  <const name="feeINVALID" type="Integer" file="System.pas" line="2525">
    <value>
      $1
    </value>
  </const>
  <const name="feeALLEXCEPT" type="Integer" file="System.pas" line="2526">
    <value>
      $3F
    </value>
  </const>
  <const name="feeDENORMALOPERAND" type="Integer" file="System.pas" line="2527" symflags="platform">
    <value>
      $2
    </value>
  </const>
  <const name="femINEXACT" type="Integer" file="System.pas" line="2529">
    <value>
      $20
    </value>
  </const>
  <const name="femUNDERFLOW" type="Integer" file="System.pas" line="2530">
    <value>
      $10
    </value>
  </const>
  <const name="femOVERFLOW" type="Integer" file="System.pas" line="2531">
    <value>
      $8
    </value>
  </const>
  <const name="femDIVBYZERO" type="Integer" file="System.pas" line="2532">
    <value>
      $4
    </value>
  </const>
  <const name="femINVALID" type="Integer" file="System.pas" line="2533">
    <value>
      $1
    </value>
  </const>
  <const name="femALLEXCEPT" type="Integer" file="System.pas" line="2534">
    <value>
      $3F
    </value>
  </const>
  <const name="femDENORMALOPERAND" type="Integer" file="System.pas" line="2535" symflags="platform">
    <value>
      $2
    </value>
  </const>
  <const name="ferTONEAREST" type="Integer" file="System.pas" line="2537">
    <value>
      $0
    </value>
  </const>
  <const name="ferUPWARD" type="Integer" file="System.pas" line="2538">
    <value>
      $800
    </value>
  </const>
  <const name="ferDOWNWARD" type="Integer" file="System.pas" line="2539">
    <value>
      $400
    </value>
  </const>
  <const name="ferTOWARDZERO" type="Integer" file="System.pas" line="2540">
    <value>
      $C00
    </value>
  </const>
  <const name="ferALLROUND" type="Integer" file="System.pas" line="2541">
    <value>
      $C00
    </value>
  </const>
  <pointer name="PLibModule" type="TLibModule" indircnt="1" file="System.pas" line="2800"/>
  <struct name="TLibModule" size="28" file="System.pas" line="2801">
    <field name="Next" type="PLibModule" visibility="public" size="4" offset="0" file="System.pas" line="2802"/>
    <field name="Instance" type="NativeUInt" visibility="public" size="4" offset="4" file="System.pas" line="2803"/>
    <field name="CodeInstance" type="NativeUInt" visibility="public" size="4" offset="8" file="System.pas" line="2804"/>
    <field name="DataInstance" type="NativeUInt" visibility="public" size="4" offset="12" file="System.pas" line="2805"/>
    <field name="ResInstance" type="NativeUInt" visibility="public" size="4" offset="16" file="System.pas" line="2806"/>
    <field name="TypeInfo" type="PPackageTypeInfo" visibility="public" size="4" offset="20" file="System.pas" line="2807"/>
    <field name="Reserved" type="NativeInt" visibility="public" size="4" offset="24" file="System.pas" line="2808"/>
  </struct>
  <type name="TEnumModuleFunc" file="System.pas" line="2820" procflags="">
  </type>
  <type name="TEnumModuleFuncLW" file="System.pas" line="2821" procflags="">
  </type>
  <type name="TModuleUnloadProc" file="System.pas" line="2822" procflags="">
  </type>
  <type name="TModuleUnloadProcLW" file="System.pas" line="2823" procflags="">
  </type>
  <pointer name="PModuleUnloadRec" type="TModuleUnloadRec" indircnt="1" file="System.pas" line="2825"/>
  <struct name="TModuleUnloadRec" size="8" file="System.pas" line="2826">
    <field name="Next" type="PModuleUnloadRec" visibility="public" size="4" offset="0" file="System.pas" line="2827"/>
    <field name="Proc" type="TModuleUnloadProcLW" visibility="public" size="4" offset="4" file="System.pas" line="2828"/>
  </struct>
  <variable name="LibModuleList" type="PLibModule" visibility="public" file="System.pas" line="2832"/>
  <variable name="ModuleUnloadList" type="PModuleUnloadRec" visibility="public" file="System.pas" line="2833"/>
  <pointer name="PResStringRec" type="TResStringRec" indircnt="1" file="System.pas" line="2861"/>
  <struct name="TResStringRec" size="8" packed="true" file="System.pas" line="2867">
    <field name="Module" visibility="public" size="4" offset="0" file="System.pas" line="2870">
      <pointer name="Module" type="NativeUInt" indircnt="1"/>
    </field>
    <field name="Identifier" type="NativeUInt" visibility="public" size="4" offset="4" file="System.pas" line="2871"/>
  </struct>
  <variable name="LoadResStringFunc" type="function(ResStringRec: PResStringRec): string;" visibility="public" file="System.pas" line="2876"/>
  <const name="fsZero" type="TFloatSpecial" file="System.pas" line="2882">
    <value>
      fsZero
    </value>
  </const>
  <const name="fsNZero" type="TFloatSpecial" file="System.pas" line="2882">
    <value>
      fsNZero
    </value>
  </const>
  <const name="fsDenormal" type="TFloatSpecial" file="System.pas" line="2882">
    <value>
      fsDenormal
    </value>
  </const>
  <const name="fsNDenormal" type="TFloatSpecial" file="System.pas" line="2882">
    <value>
      fsNDenormal
    </value>
  </const>
  <const name="fsPositive" type="TFloatSpecial" file="System.pas" line="2883">
    <value>
      fsPositive
    </value>
  </const>
  <const name="fsNegative" type="TFloatSpecial" file="System.pas" line="2883">
    <value>
      fsNegative
    </value>
  </const>
  <const name="fsInf" type="TFloatSpecial" file="System.pas" line="2883">
    <value>
      fsInf
    </value>
  </const>
  <const name="fsNInf" type="TFloatSpecial" file="System.pas" line="2883">
    <value>
      fsNInf
    </value>
  </const>
  <const name="fsNaN" type="TFloatSpecial" file="System.pas" line="2883">
    <value>
      fsNaN
    </value>
  </const>
  <enum name="TFloatSpecial" file="System.pas" line="2882">
    <element value="0" name="fsZero" file="System.pas" line="2882"/>
    <element value="1" name="fsNZero" file="System.pas" line="2882"/>
    <element value="2" name="fsDenormal" file="System.pas" line="2882"/>
    <element value="3" name="fsNDenormal" file="System.pas" line="2882"/>
    <element value="4" name="fsPositive" file="System.pas" line="2883"/>
    <element value="5" name="fsNegative" file="System.pas" line="2883"/>
    <element value="6" name="fsInf" file="System.pas" line="2883"/>
    <element value="7" name="fsNInf" file="System.pas" line="2883"/>
    <element value="8" name="fsNaN" file="System.pas" line="2883"/>
  </enum>
  <pointer name="PSingleRec" type="TSingleRec" indircnt="1" file="System.pas" line="2885"/>
  <struct name="TSingleRec" size="4" packed="true" file="System.pas" line="2886" symflags="deprecated">
    <field name="aSingle" type="Single" visibility="private" size="4" offset="0" file="System.pas" line="2888"/>
    <function name="InternalGetBytes" visibility="private" procflags="inline" file="System.pas" line="2890">
      <devnotes>
        PIC
        PIC
      </devnotes>
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Byte"/>
      </parameters>
    </function>
    <function name="InternalGetWords" visibility="private" procflags="inline" file="System.pas" line="2891">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Word"/>
      </parameters>
    </function>
    <procedure name="InternalSetBytes" visibility="private" procflags="inline" file="System.pas" line="2892">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Byte" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="InternalSetWords" visibility="private" procflags="inline" file="System.pas" line="2893">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Word" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="GetBytes" visibility="private" procflags="inline" file="System.pas" line="2894">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Byte"/>
      </parameters>
    </function>
    <function name="GetWords" visibility="private" procflags="inline" file="System.pas" line="2895">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Word"/>
      </parameters>
    </function>
    <procedure name="SetBytes" visibility="private" procflags="inline" file="System.pas" line="2896">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Byte" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="SetWords" visibility="private" procflags="inline" file="System.pas" line="2897">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Word" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="GetExp" visibility="private" procflags="inline" file="System.pas" line="2898">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <function name="GetFrac" visibility="private" procflags="inline" file="System.pas" line="2899">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <function name="GetSign" visibility="private" procflags="inline" file="System.pas" line="2900">
      <parameters>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <procedure name="SetExp" visibility="private" file="System.pas" line="2901">
      <parameters>
        <parameter name="NewExp" type="UInt64"/>
      </parameters>
    </procedure>
    <procedure name="SetFrac" visibility="private" file="System.pas" line="2902">
      <parameters>
        <parameter name="NewFrac" type="UInt64"/>
      </parameters>
    </procedure>
    <procedure name="SetSign" visibility="private" file="System.pas" line="2903">
      <parameters>
        <parameter name="NewSign" type="Boolean"/>
      </parameters>
    </procedure>
    <function name="Exponent" visibility="public" file="System.pas" line="2906">
      <parameters>
        <retval type="Integer"/>
      </parameters>
    </function>
    <function name="Fraction" visibility="public" file="System.pas" line="2907">
      <parameters>
        <retval type="Extended"/>
      </parameters>
    </function>
    <function name="Mantissa" visibility="public" file="System.pas" line="2908">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <property name="Sign" visibility="public" read="GetSign" write="SetSign" type="Boolean" file="System.pas" line="2910"/>
    <property name="Exp" visibility="public" read="GetExp" write="SetExp" type="UInt64" file="System.pas" line="2911"/>
    <property name="Frac" visibility="public" read="GetFrac" write="SetFrac" type="UInt64" file="System.pas" line="2912"/>
    <function name="SpecialType" visibility="public" file="System.pas" line="2914">
      <parameters>
        <retval type="TFloatSpecial"/>
      </parameters>
    </function>
    <procedure name="BuildUp" visibility="public" file="System.pas" line="2915">
      <parameters>
        <parameter name="SignFlag" type="Boolean" paramflags="const"/>
        <parameter name="Mantissa" type="UInt64" paramflags="const"/>
        <parameter name="Exponent" type="Integer" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="operator Explicit" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="2916" generated="true">
      <parameters>
        <parameter name="a" type="Extended"/>
        <retval type="TSingleRec" symflags="deprecated">
        </retval>
      </parameters>
    </function>
    <function name="operator Explicit" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="2917" generated="true">
      <parameters>
        <parameter name="a" type="TSingleRec"/>
        <retval type="Extended"/>
      </parameters>
    </function>
    <property name="Bytes[Index]" visibility="public" read="GetBytes" write="SetBytes" type="Byte" file="System.pas" line="2919"/>
    <property name="Words[Index]" visibility="public" read="GetWords" write="SetWords" type="Word" file="System.pas" line="2920"/>
  </struct>
  <pointer name="PDoubleRec" type="TDoubleRec" indircnt="1" file="System.pas" line="2923"/>
  <struct name="TDoubleRec" size="8" packed="true" file="System.pas" line="2924" symflags="deprecated">
    <field name="aDouble" type="Double" visibility="private" size="8" offset="0" file="System.pas" line="2926"/>
    <function name="InternalGetBytes" visibility="private" procflags="inline" file="System.pas" line="2928">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Byte"/>
      </parameters>
    </function>
    <function name="InternalGetWords" visibility="private" procflags="inline" file="System.pas" line="2929">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Word"/>
      </parameters>
    </function>
    <procedure name="InternalSetBytes" visibility="private" procflags="inline" file="System.pas" line="2930">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Byte" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="InternalSetWords" visibility="private" procflags="inline" file="System.pas" line="2931">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Word" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="GetBytes" visibility="private" procflags="inline" file="System.pas" line="2932">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Byte"/>
      </parameters>
    </function>
    <function name="GetWords" visibility="private" procflags="inline" file="System.pas" line="2933">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Word"/>
      </parameters>
    </function>
    <procedure name="SetBytes" visibility="private" procflags="inline" file="System.pas" line="2934">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Byte" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="SetWords" visibility="private" procflags="inline" file="System.pas" line="2935">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Word" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="GetExp" visibility="private" procflags="inline" file="System.pas" line="2936">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <function name="GetFrac" visibility="private" procflags="inline" file="System.pas" line="2937">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <function name="GetSign" visibility="private" procflags="inline" file="System.pas" line="2938">
      <parameters>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <procedure name="SetExp" visibility="private" file="System.pas" line="2939">
      <parameters>
        <parameter name="NewExp" type="UInt64"/>
      </parameters>
    </procedure>
    <procedure name="SetFrac" visibility="private" file="System.pas" line="2940">
      <parameters>
        <parameter name="NewFrac" type="UInt64"/>
      </parameters>
    </procedure>
    <procedure name="SetSign" visibility="private" file="System.pas" line="2941">
      <parameters>
        <parameter name="NewSign" type="Boolean"/>
      </parameters>
    </procedure>
    <function name="Exponent" visibility="public" file="System.pas" line="2943">
      <parameters>
        <retval type="Integer"/>
      </parameters>
    </function>
    <function name="Fraction" visibility="public" file="System.pas" line="2944">
      <parameters>
        <retval type="Extended"/>
      </parameters>
    </function>
    <function name="Mantissa" visibility="public" file="System.pas" line="2945">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <property name="Sign" visibility="public" read="GetSign" write="SetSign" type="Boolean" file="System.pas" line="2947"/>
    <property name="Exp" visibility="public" read="GetExp" write="SetExp" type="UInt64" file="System.pas" line="2948"/>
    <property name="Frac" visibility="public" read="GetFrac" write="SetFrac" type="UInt64" file="System.pas" line="2949"/>
    <function name="SpecialType" visibility="public" file="System.pas" line="2951">
      <parameters>
        <retval type="TFloatSpecial"/>
      </parameters>
    </function>
    <procedure name="BuildUp" visibility="public" file="System.pas" line="2952">
      <parameters>
        <parameter name="SignFlag" type="Boolean" paramflags="const"/>
        <parameter name="Mantissa" type="UInt64" paramflags="const"/>
        <parameter name="Exponent" type="Integer" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="operator Explicit" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="2953" generated="true">
      <parameters>
        <parameter name="a" type="Extended"/>
        <retval type="TDoubleRec" symflags="deprecated">
        </retval>
      </parameters>
    </function>
    <function name="operator Explicit" visibility="public" procflags="class noself operator overload inline" file="System.pas" line="2954" generated="true">
      <parameters>
        <parameter name="a" type="TDoubleRec"/>
        <retval type="Extended"/>
      </parameters>
    </function>
    <property name="Bytes[Index]" visibility="public" read="GetBytes" write="SetBytes" type="Byte" file="System.pas" line="2956"/>
    <property name="Words[Index]" visibility="public" read="GetWords" write="SetWords" type="Word" file="System.pas" line="2957"/>
  </struct>
  <pointer name="PExtended80Rec" type="TExtended80Rec" indircnt="1" file="System.pas" line="2960"/>
  <struct name="TExtended80Rec" size="10" packed="true" file="System.pas" line="2961">
    <field name="aExtended80" type="Extended" visibility="private" size="10" offset="0" file="System.pas" line="2964"/>
    <function name="InternalGetBytes" visibility="private" procflags="inline" file="System.pas" line="2969">
      <devnotes>
        EXTENDEDIS10BYTES
      </devnotes>
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Byte"/>
      </parameters>
    </function>
    <function name="InternalGetWords" visibility="private" procflags="inline" file="System.pas" line="2970">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Word"/>
      </parameters>
    </function>
    <procedure name="InternalSetBytes" visibility="private" procflags="inline" file="System.pas" line="2971">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Byte" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="InternalSetWords" visibility="private" procflags="inline" file="System.pas" line="2972">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Word" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="GetBytes" visibility="private" file="System.pas" line="2973">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Byte"/>
      </parameters>
    </function>
    <function name="GetWords" visibility="private" file="System.pas" line="2974">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Word"/>
      </parameters>
    </function>
    <function name="Get_Exp" visibility="private" procflags="inline" file="System.pas" line="2975">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <function name="GetExp" visibility="private" procflags="inline" file="System.pas" line="2976">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <function name="GetFrac" visibility="private" procflags="inline" file="System.pas" line="2977">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <function name="GetSign" visibility="private" procflags="inline" file="System.pas" line="2978">
      <parameters>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <procedure name="SetBytes" visibility="private" file="System.pas" line="2979">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Byte" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="SetWords" visibility="private" file="System.pas" line="2980">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Word" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="Set_Exp" visibility="private" procflags="inline" file="System.pas" line="2981">
      <parameters>
        <parameter name="NewExp" type="UInt64"/>
      </parameters>
    </procedure>
    <procedure name="SetExp" visibility="private" file="System.pas" line="2982">
      <parameters>
        <parameter name="NewExp" type="UInt64"/>
      </parameters>
    </procedure>
    <procedure name="SetFrac" visibility="private" procflags="inline" file="System.pas" line="2983">
      <parameters>
        <parameter name="NewFrac" type="UInt64"/>
      </parameters>
    </procedure>
    <procedure name="SetSign" visibility="private" file="System.pas" line="2984">
      <parameters>
        <parameter name="NewSign" type="Boolean"/>
      </parameters>
    </procedure>
    <function name="Exponent" visibility="public" file="System.pas" line="2986">
      <parameters>
        <retval type="Integer"/>
      </parameters>
    </function>
    <function name="Fraction" visibility="public" file="System.pas" line="2987">
      <parameters>
        <retval type="Extended"/>
      </parameters>
    </function>
    <function name="Mantissa" visibility="public" procflags="inline" file="System.pas" line="2988">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <property name="Sign" visibility="public" read="GetSign" write="SetSign" type="Boolean" file="System.pas" line="2990"/>
    <property name="Exp" visibility="public" read="GetExp" write="SetExp" type="UInt64" file="System.pas" line="2991"/>
    <property name="_Exp" visibility="public" read="Get_Exp" write="Set_Exp" type="UInt64" file="System.pas" line="2992"/>
    <property name="Frac" visibility="public" read="GetFrac" write="SetFrac" type="UInt64" file="System.pas" line="2993"/>
    <function name="SpecialType" visibility="public" file="System.pas" line="2995">
      <parameters>
        <retval type="TFloatSpecial"/>
      </parameters>
    </function>
    <procedure name="BuildUp" visibility="public" file="System.pas" line="2996">
      <parameters>
        <parameter name="SignFlag" type="Boolean" paramflags="const"/>
        <parameter name="Mantissa" type="UInt64" paramflags="const"/>
        <parameter name="Exponent" type="Integer" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="operator Explicit" visibility="public" procflags="class noself operator overload" file="System.pas" line="2997" generated="true">
      <parameters>
        <parameter name="a" type="Extended"/>
        <retval type="TExtended80Rec"/>
      </parameters>
    </function>
    <function name="operator Explicit" visibility="public" procflags="class noself operator overload" file="System.pas" line="2998" generated="true">
      <parameters>
        <parameter name="a" type="TExtended80Rec"/>
        <retval type="Extended"/>
      </parameters>
    </function>
    <property name="Bytes[Index]" visibility="public" read="GetBytes" write="SetBytes" type="Byte" file="System.pas" line="3000"/>
    <property name="Words[Index]" visibility="public" read="GetWords" write="SetWords" type="Word" file="System.pas" line="3001"/>
  </struct>
  <pointer name="PExtendedRec" alias="System.PExtended80Rec" type="TExtended80Rec" indircnt="1" file="System.pas" line="2960"/>
  <struct name="TExtendedRec" alias="System.TExtended80Rec" size="10" packed="true" file="System.pas" line="3011">
    <field name="aExtended80" type="Extended" visibility="private" size="10" offset="0" file="System.pas" line="2964"/>
    <function name="InternalGetBytes" visibility="private" procflags="inline" file="System.pas" line="2969">
      <devnotes>
        EXTENDEDIS10BYTES
      </devnotes>
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Byte"/>
      </parameters>
    </function>
    <function name="InternalGetWords" visibility="private" procflags="inline" file="System.pas" line="2970">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Word"/>
      </parameters>
    </function>
    <procedure name="InternalSetBytes" visibility="private" procflags="inline" file="System.pas" line="2971">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Byte" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="InternalSetWords" visibility="private" procflags="inline" file="System.pas" line="2972">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Word" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="GetBytes" visibility="private" file="System.pas" line="2973">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Byte"/>
      </parameters>
    </function>
    <function name="GetWords" visibility="private" file="System.pas" line="2974">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <retval type="Word"/>
      </parameters>
    </function>
    <function name="Get_Exp" visibility="private" procflags="inline" file="System.pas" line="2975">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <function name="GetExp" visibility="private" procflags="inline" file="System.pas" line="2976">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <function name="GetFrac" visibility="private" procflags="inline" file="System.pas" line="2977">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <function name="GetSign" visibility="private" procflags="inline" file="System.pas" line="2978">
      <parameters>
        <retval type="Boolean"/>
      </parameters>
    </function>
    <procedure name="SetBytes" visibility="private" file="System.pas" line="2979">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Byte" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="SetWords" visibility="private" file="System.pas" line="2980">
      <parameters>
        <parameter name="Index" type="Cardinal"/>
        <parameter name="Value" type="Word" paramflags="const"/>
      </parameters>
    </procedure>
    <procedure name="Set_Exp" visibility="private" procflags="inline" file="System.pas" line="2981">
      <parameters>
        <parameter name="NewExp" type="UInt64"/>
      </parameters>
    </procedure>
    <procedure name="SetExp" visibility="private" file="System.pas" line="2982">
      <parameters>
        <parameter name="NewExp" type="UInt64"/>
      </parameters>
    </procedure>
    <procedure name="SetFrac" visibility="private" procflags="inline" file="System.pas" line="2983">
      <parameters>
        <parameter name="NewFrac" type="UInt64"/>
      </parameters>
    </procedure>
    <procedure name="SetSign" visibility="private" file="System.pas" line="2984">
      <parameters>
        <parameter name="NewSign" type="Boolean"/>
      </parameters>
    </procedure>
    <function name="Exponent" visibility="public" file="System.pas" line="2986">
      <parameters>
        <retval type="Integer"/>
      </parameters>
    </function>
    <function name="Fraction" visibility="public" file="System.pas" line="2987">
      <parameters>
        <retval type="Extended"/>
      </parameters>
    </function>
    <function name="Mantissa" visibility="public" procflags="inline" file="System.pas" line="2988">
      <parameters>
        <retval type="UInt64"/>
      </parameters>
    </function>
    <property name="Sign" visibility="public" read="GetSign" write="SetSign" type="Boolean" file="System.pas" line="2990"/>
    <property name="Exp" visibility="public" read="GetExp" write="SetExp" type="UInt64" file="System.pas" line="2991"/>
    <property name="_Exp" visibility="public" read="Get_Exp" write="Set_Exp" type="UInt64" file="System.pas" line="2992"/>
    <property name="Frac" visibility="public" read="GetFrac" write="SetFrac" type="UInt64" file="System.pas" line="2993"/>
    <function name="SpecialType" visibility="public" file="System.pas" line="2995">
      <parameters>
        <retval type="TFloatSpecial"/>
      </parameters>
    </function>
    <procedure name="BuildUp" visibility="public" file="System.pas" line="2996">
      <parameters>
        <parameter name="SignFlag" type="Boolean" paramflags="const"/>
        <parameter name="Mantissa" type="UInt64" paramflags="const"/>
        <parameter name="Exponent" type="Integer" paramflags="const"/>
      </parameters>
    </procedure>
    <function name="operator Explicit" visibility="public" procflags="class noself operator overload" file="System.pas" line="2997" generated="true">
      <parameters>
        <parameter name="a" type="Extended"/>
        <retval type="TExtended80Rec"/>
      </parameters>
    </function>
    <function name="operator Explicit" visibility="public" procflags="class noself operator overload" file="System.pas" line="2998" generated="true">
      <parameters>
        <parameter name="a" type="TExtended80Rec"/>
        <retval type="Extended"/>
      </parameters>
    </function>
    <property name="Bytes[Index]" visibility="public" read="GetBytes" write="SetBytes" type="Byte" file="System.pas" line="3000"/>
    <property name="Words[Index]" visibility="public" read="GetWords" write="SetWords" type="Word" file="System.pas" line="3001"/>
  </struct>
  <variable name="AlternateWriteUnicodeStringProc" type="function(t: TTextRec; s: string): Pointer;" visibility="public" file="System.pas" line="3171"/>
  <pointer name="PInitContext" type="TInitContext" indircnt="1" file="System.pas" line="3334"/>
  <struct name="TInitContext" size="48" file="System.pas" line="3335" symflags="platform">
    <field name="OuterContext" type="PInitContext" visibility="public" size="4" offset="0" file="System.pas" line="3336"/>
    <field name="ExcFrame" type="Pointer" visibility="public" size="4" offset="4" file="System.pas" line="3338"/>
    <field name="InitTable" type="PackageInfo" visibility="public" size="4" offset="8" file="System.pas" line="3340"/>
    <field name="InitCount" type="Integer" visibility="public" size="4" offset="12" file="System.pas" line="3341"/>
    <field name="Module" type="PLibModule" visibility="public" size="4" offset="16" file="System.pas" line="3342"/>
    <field name="DLLSaveEBP" type="Pointer" visibility="public" size="4" offset="20" file="System.pas" line="3344"/>
    <field name="DLLSaveEBX" type="Pointer" visibility="public" size="4" offset="24" file="System.pas" line="3345"/>
    <field name="DLLSaveESI" type="Pointer" visibility="public" size="4" offset="28" file="System.pas" line="3346"/>
    <field name="DLLSaveEDI" type="Pointer" visibility="public" size="4" offset="32" file="System.pas" line="3347"/>
    <field name="ExitProcessTLS" visibility="public" size="4" offset="36" file="System.pas" line="3350">
    </field>
    <field name="DLLInitState" type="Byte" visibility="public" size="1" offset="40" file="System.pas" line="3352"/>
    <field name="ThreadID" type="Cardinal" visibility="public" size="4" offset="44" file="System.pas" line="3353"/>
  </struct>
  <type name="TDLLProc" file="System.pas" line="3365" procflags="">
  </type>
  <type name="TDLLProcEx" file="System.pas" line="3367" procflags="">
  </type>
  <pointer name="PExceptionRecord" type="TExceptionRecord" indircnt="1" file="System.pas" line="3391"/>
  <struct name="TExceptionRecord" size="80" file="System.pas" line="3392">
    <field name="ExceptionCode" type="Cardinal" visibility="public" size="4" offset="0" file="System.pas" line="3393"/>
    <field name="ExceptionFlags" type="Cardinal" visibility="public" size="4" offset="4" file="System.pas" line="3394"/>
    <field name="ExceptionRecord" type="PExceptionRecord" visibility="public" size="4" offset="8" file="System.pas" line="3395"/>
    <field name="ExceptionAddress" type="Pointer" visibility="public" size="4" offset="12" file="System.pas" line="3396"/>
    <field name="NumberParameters" type="Cardinal" visibility="public" size="4" offset="16" file="System.pas" line="3397"/>
    <field name="ExceptionInformation" visibility="public" variant="true" size="60" offset="20" file="System.pas" line="3399">
      <array name="ExceptionInformation" visibility="public" low="0" high="14" file="System.pas" line="3399">
        <element type="NativeUInt"/>
      </array>
    </field>
    <field name="ExceptAddr" type="Pointer" visibility="public" variant="true" size="4" offset="20" file="System.pas" line="3400"/>
    <field name="ExceptObject" type="Pointer" visibility="public" variant="true" size="4" offset="24" file="System.pas" line="3400"/>
  </struct>
  <type name="TExceptClsProc" file="System.pas" line="3402" procflags="">
  </type>
  <type name="TExceptObjProc" file="System.pas" line="3403" procflags="">
  </type>
  <type name="TRaiseExceptObjProc" file="System.pas" line="3404" procflags="">
  </type>
  <const name="reNone" type="TRuntimeError" file="System.pas" line="4157">
    <value>
      reNone
    </value>
  </const>
  <const name="reOutOfMemory" type="TRuntimeError" file="System.pas" line="4157">
    <value>
      reOutOfMemory
    </value>
  </const>
  <const name="reInvalidPtr" type="TRuntimeError" file="System.pas" line="4157">
    <value>
      reInvalidPtr
    </value>
  </const>
  <const name="reDivByZero" type="TRuntimeError" file="System.pas" line="4157">
    <value>
      reDivByZero
    </value>
  </const>
  <const name="reRangeError" type="TRuntimeError" file="System.pas" line="4158">
    <value>
      reRangeError
    </value>
  </const>
  <const name="reIntOverflow" type="TRuntimeError" file="System.pas" line="4158">
    <value>
      reIntOverflow
    </value>
  </const>
  <const name="reInvalidOp" type="TRuntimeError" file="System.pas" line="4158">
    <value>
      reInvalidOp
    </value>
  </const>
  <const name="reZeroDivide" type="TRuntimeError" file="System.pas" line="4158">
    <value>
      reZeroDivide
    </value>
  </const>
  <const name="reOverflow" type="TRuntimeError" file="System.pas" line="4158">
    <value>
      reOverflow
    </value>
  </const>
  <const name="reUnderflow" type="TRuntimeError" file="System.pas" line="4159">
    <value>
      reUnderflow
    </value>
  </const>
  <const name="reInvalidCast" type="TRuntimeError" file="System.pas" line="4159">
    <value>
      reInvalidCast
    </value>
  </const>
  <const name="reAccessViolation" type="TRuntimeError" file="System.pas" line="4159">
    <value>
      reAccessViolation
    </value>
  </const>
  <const name="rePrivInstruction" type="TRuntimeError" file="System.pas" line="4159">
    <value>
      rePrivInstruction
    </value>
  </const>
  <const name="reControlBreak" type="TRuntimeError" file="System.pas" line="4160">
    <value>
      reControlBreak
    </value>
  </const>
  <const name="reStackOverflow" type="TRuntimeError" file="System.pas" line="4160">
    <value>
      reStackOverflow
    </value>
  </const>
  <const name="reVarTypeCast" type="TRuntimeError" file="System.pas" line="4162">
    <value>
      reVarTypeCast
    </value>
  </const>
  <const name="reVarInvalidOp" type="TRuntimeError" file="System.pas" line="4162">
    <value>
      reVarInvalidOp
    </value>
  </const>
  <const name="reVarDispatch" type="TRuntimeError" file="System.pas" line="4163">
    <value>
      reVarDispatch
    </value>
  </const>
  <const name="reVarArrayCreate" type="TRuntimeError" file="System.pas" line="4163">
    <value>
      reVarArrayCreate
    </value>
  </const>
  <const name="reVarNotArray" type="TRuntimeError" file="System.pas" line="4163">
    <value>
      reVarNotArray
    </value>
  </const>
  <const name="reVarArrayBounds" type="TRuntimeError" file="System.pas" line="4163">
    <value>
      reVarArrayBounds
    </value>
  </const>
  <const name="reAssertionFailed" type="TRuntimeError" file="System.pas" line="4164">
    <value>
      reAssertionFailed
    </value>
  </const>
  <const name="reExternalException" type="TRuntimeError" file="System.pas" line="4165">
    <value>
      reExternalException
    </value>
  </const>
  <const name="reIntfCastError" type="TRuntimeError" file="System.pas" line="4166">
    <value>
      reIntfCastError
    </value>
  </const>
  <const name="reSafeCallError" type="TRuntimeError" file="System.pas" line="4166">
    <value>
      reSafeCallError
    </value>
  </const>
  <const name="reMonitorNotLocked" type="TRuntimeError" file="System.pas" line="4167">
    <value>
      reMonitorNotLocked
    </value>
  </const>
  <const name="reNoMonitorSupport" type="TRuntimeError" file="System.pas" line="4167">
    <value>
      reNoMonitorSupport
    </value>
  </const>
  <const name="rePlatformNotImplemented" type="TRuntimeError" file="System.pas" line="4174">
    <value>
      rePlatformNotImplemented
    </value>
  </const>
  <const name="reObjectDisposed" type="TRuntimeError" file="System.pas" line="4174">
    <value>
      reObjectDisposed
    </value>
  </const>
  <enum name="TRuntimeError" file="System.pas" line="4157">
    <element value="0" name="reNone" file="System.pas" line="4157"/>
    <element value="1" name="reOutOfMemory" file="System.pas" line="4157"/>
    <element value="2" name="reInvalidPtr" file="System.pas" line="4157"/>
    <element value="3" name="reDivByZero" file="System.pas" line="4157"/>
    <element value="4" name="reRangeError" file="System.pas" line="4158"/>
    <element value="5" name="reIntOverflow" file="System.pas" line="4158"/>
    <element value="6" name="reInvalidOp" file="System.pas" line="4158"/>
    <element value="7" name="reZeroDivide" file="System.pas" line="4158"/>
    <element value="8" name="reOverflow" file="System.pas" line="4158"/>
    <element value="9" name="reUnderflow" file="System.pas" line="4159"/>
    <element value="10" name="reInvalidCast" file="System.pas" line="4159"/>
    <element value="11" name="reAccessViolation" file="System.pas" line="4159"/>
    <element value="12" name="rePrivInstruction" file="System.pas" line="4159"/>
    <element value="13" name="reControlBreak" file="System.pas" line="4160"/>
    <element value="14" name="reStackOverflow" file="System.pas" line="4160"/>
    <element value="15" name="reVarTypeCast" file="System.pas" line="4162"/>
    <element value="16" name="reVarInvalidOp" file="System.pas" line="4162"/>
    <element value="17" name="reVarDispatch" file="System.pas" line="4163"/>
    <element value="18" name="reVarArrayCreate" file="System.pas" line="4163"/>
    <element value="19" name="reVarNotArray" file="System.pas" line="4163"/>
    <element value="20" name="reVarArrayBounds" file="System.pas" line="4163"/>
    <element value="21" name="reAssertionFailed" file="System.pas" line="4164"/>
    <element value="22" name="reExternalException" file="System.pas" line="4165"/>
    <element value="23" name="reIntfCastError" file="System.pas" line="4166"/>
    <element value="24" name="reSafeCallError" file="System.pas" line="4166"/>
    <element value="25" name="reMonitorNotLocked" file="System.pas" line="4167"/>
    <element value="26" name="reNoMonitorSupport" file="System.pas" line="4167"/>
    <element value="27" name="rePlatformNotImplemented" file="System.pas" line="4174"/>
    <element value="28" name="reObjectDisposed" file="System.pas" line="4174"/>
  </enum>
  <pointer name="PLongBool" type="LongBool" indircnt="1" file="System.pas" line="4233"/>
  <const name="CP_ACP" type="Integer" file="System.pas" line="4281">
    <value>
      $0
    </value>
  </const>
  <const name="CP_UTF7" type="Word" file="System.pas" line="4282">
    <value>
      $FDE8
    </value>
  </const>
  <const name="CP_UTF8" type="Word" file="System.pas" line="4283">
    <value>
      $FDE9
    </value>
  </const>
  <procedure name="TextStart" visibility="public" file="System.pas" line="4431" symflags="deprecated">
  </procedure>
  <function name="GetLastError" visibility="external public" callconv="stdcall" file="WindowsAPIs.INC" line="462">
    <parameters>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="SetLastError" visibility="external public" callconv="stdcall" file="WindowsAPIs.INC" line="466">
    <parameters>
      <parameter name="ErrorCode" type="Integer"/>
    </parameters>
  </procedure>
  <function name="FindResource" visibility="external public" callconv="stdcall" file="WindowsAPIs.INC" line="473">
    <parameters>
      <parameter name="ModuleHandle" type="NativeUInt"/>
      <parameter name="ResourceName" type="PWideChar"/>
      <parameter name="ResourceType" type="PWideChar"/>
      <retval type="NativeUInt"/>
    </parameters>
  </function>
  <function name="LoadResource" visibility="external public" callconv="stdcall" file="WindowsAPIs.INC" line="476">
    <parameters>
      <parameter name="ModuleHandle" type="NativeUInt"/>
      <parameter name="ResHandle" type="NativeUInt"/>
      <retval type="NativeUInt"/>
    </parameters>
  </function>
  <function name="LockResource" visibility="external public" callconv="stdcall" file="WindowsAPIs.INC" line="482">
    <parameters>
      <parameter name="ResData" type="NativeUInt"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="UnlockResource" visibility="public" procflags="inline" file="WindowsAPIs.INC" line="485">
    <parameters>
      <parameter name="ResData" type="NativeUInt"/>
      <retval type="LongBool"/>
    </parameters>
  </function>
  <function name="SizeofResource" visibility="external public" callconv="stdcall" file="WindowsAPIs.INC" line="490">
    <parameters>
      <parameter name="ModuleHandle" type="NativeUInt"/>
      <parameter name="ResHandle" type="NativeUInt"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="FreeResource" visibility="external public" callconv="stdcall" file="WindowsAPIs.INC" line="493">
    <parameters>
      <parameter name="ResData" type="NativeUInt"/>
      <retval type="LongBool"/>
    </parameters>
  </function>
  <function name="Pos" visibility="public" procflags="overload inline" file="System.pas" line="4761">
    <parameters>
      <parameter name="SubStr" type="string" paramflags="const"/>
      <parameter name="Str" type="string" paramflags="const"/>
      <parameter name="Offset" type="Integer">
        <value>
          $1
        </value>
      </parameter>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Pos" visibility="public" procflags="overload inline" file="System.pas" line="4766">
    <parameters>
      <parameter name="SubStr" type="WideString" paramflags="const"/>
      <parameter name="Str" type="WideString" paramflags="const"/>
      <parameter name="Offset" type="Integer">
        <value>
          $1
        </value>
      </parameter>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Pos" visibility="public" procflags="overload inline" file="System.pas" line="4775">
    <devnotes>
      MSWINDOWS
    </devnotes>
    <parameters>
      <parameter name="SubStr" type="RawByteString" paramflags="const"/>
      <parameter name="Str" type="RawByteString" paramflags="const"/>
      <parameter name="Offset" type="Integer">
        <value>
          $1
        </value>
      </parameter>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="SysGetMem" visibility="public" file="GETMEM.INC" line="1935">
    <devnotes>
      POSIX
      POSIX
    </devnotes>
    <parameters>
      <parameter name="Size" type="NativeInt"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="SysFreeMem" visibility="public" file="GETMEM.INC" line="2962">
    <parameters>
      <parameter name="P" type="Pointer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="SysReallocMem" visibility="public" file="GETMEM.INC" line="3891">
    <parameters>
      <parameter name="P" type="Pointer"/>
      <parameter name="Size" type="NativeInt"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="SysAllocMem" visibility="public" file="GETMEM.INC" line="4840">
    <parameters>
      <parameter name="Size" type="NativeInt"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="SysRegisterExpectedMemoryLeak" visibility="public" file="GETMEM.INC" line="5163">
    <parameters>
      <parameter name="P" type="Pointer"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="SysUnregisterExpectedMemoryLeak" visibility="public" file="GETMEM.INC" line="5181">
    <parameters>
      <parameter name="P" type="Pointer"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <procedure name="GetMemoryManagerState" visibility="public" file="GETMEM.INC" line="5569" symflags="platform">
    <parameters>
      <parameter name="AMemoryManagerState" type="TMemoryManagerState" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="GetMemoryMap" visibility="public" file="GETMEM.INC" line="5657" symflags="platform">
    <parameters>
      <parameter name="AMemoryMap" type="TMemoryMap" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="GetHeapStatus" visibility="public" file="GETMEM.INC" line="5720" symflags="deprecated platform">
    <devnotes>
      POSIX
    </devnotes>
    <parameters>
      <retval type="THeapStatus" symflags="deprecated">
      </retval>
    </parameters>
  </function>
  <function name="AttemptToUseSharedMemoryManager" visibility="public" file="GETMEM.INC" line="5870" symflags="platform">
    <parameters>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="ShareMemoryManager" visibility="public" file="GETMEM.INC" line="5925" symflags="platform">
    <parameters>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="GetMinimumBlockAlignment" visibility="public" file="GETMEM.INC" line="5995" symflags="platform">
    <parameters>
      <retval type="TMinimumBlockAlignment"/>
    </parameters>
  </function>
  <procedure name="SetMinimumBlockAlignment" visibility="public" file="GETMEM.INC" line="6000" symflags="platform">
    <parameters>
      <parameter name="AMinimumBlockAlignment" type="TMinimumBlockAlignment"/>
    </parameters>
  </procedure>
  <function name="AllocMem" visibility="public" file="System.pas" line="4846">
    <parameters>
      <parameter name="Size" type="NativeInt"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="RegisterExpectedMemoryLeak" visibility="public" file="System.pas" line="4895" symflags="platform">
    <devnotes>
      PIC
      PIC
    </devnotes>
    <parameters>
      <parameter name="P" type="Pointer"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="UnregisterExpectedMemoryLeak" visibility="public" file="System.pas" line="4900" symflags="platform">
    <parameters>
      <parameter name="P" type="Pointer"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <procedure name="GetMemoryManager" visibility="public" procflags="overload" file="System.pas" line="5162" symflags="deprecated">
    <parameters>
      <parameter name="MemMgr" type="TMemoryManager" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="SetMemoryManager" visibility="public" procflags="overload" file="System.pas" line="5170" symflags="deprecated">
    <parameters>
      <parameter name="MemMgr" type="TMemoryManager" paramflags="const"/>
    </parameters>
  </procedure>
  <procedure name="GetMemoryManager" visibility="public" procflags="overload" file="System.pas" line="5182">
    <parameters>
      <parameter name="MemMgrEx" type="TMemoryManagerEx" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="SetMemoryManager" visibility="public" procflags="overload" file="System.pas" line="5187">
    <parameters>
      <parameter name="MemMgrEx" type="TMemoryManagerEx" paramflags="const"/>
    </parameters>
  </procedure>
  <function name="IsMemoryManagerSet" visibility="public" file="System.pas" line="5192">
    <parameters>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="ExceptObject" visibility="public" file="System.pas" line="5612">
    <parameters>
      <retval type="TObject"/>
    </parameters>
  </function>
  <function name="ExceptAddr" visibility="public" file="System.pas" line="5621">
    <parameters>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="AcquireExceptionObject" visibility="public" file="System.pas" line="5629">
    <parameters>
      <retval type="TObject"/>
    </parameters>
  </function>
  <procedure name="ReleaseExceptionObject" visibility="public" file="System.pas" line="5647">
  </procedure>
  <function name="RaiseList" visibility="public" file="System.pas" line="5663" symflags="deprecated">
    <parameters>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="SetRaiseList" visibility="public" file="System.pas" line="5669" symflags="deprecated">
    <parameters>
      <parameter name="NewPtr" type="Pointer"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <procedure name="Error" visibility="public" file="System.pas" line="5893">
    <parameters>
      <parameter name="errorCode" type="TRuntimeError"/>
    </parameters>
  </procedure>
  <procedure name="SetLineBreakStyle" visibility="public" file="System.pas" line="5898">
    <parameters>
      <parameter name="T" type="Text" paramflags="var"/>
      <parameter name="Style" type="TTextLineBreakStyle"/>
    </parameters>
  </procedure>
  <function name="GetTextCodePage" visibility="public" file="System.pas" line="5906">
    <parameters>
      <parameter name="T" type="Text" paramflags="const"/>
      <retval type="Word"/>
    </parameters>
  </function>
  <procedure name="SetTextCodePage" visibility="public" file="System.pas" line="5911">
    <parameters>
      <parameter name="T" type="Text" paramflags="var"/>
      <parameter name="CodePage" type="Word"/>
    </parameters>
  </procedure>
  <procedure name="SetInOutRes" visibility="public" file="System.pas" line="5943">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="NewValue" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="ChDir" visibility="public" procflags="overload" file="System.pas" line="5953">
    <parameters>
      <parameter name="S" type="string" paramflags="const"/>
    </parameters>
  </procedure>
  <procedure name="ChDir" visibility="public" procflags="overload" file="System.pas" line="5959">
    <parameters>
      <parameter name="P" type="PWideChar"/>
    </parameters>
  </procedure>
  <function name="IOResult" visibility="public" file="System.pas" line="6069">
    <parameters>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="MkDir" visibility="public" procflags="overload" file="System.pas" line="6075">
    <parameters>
      <parameter name="S" type="string" paramflags="const"/>
    </parameters>
  </procedure>
  <procedure name="MkDir" visibility="public" procflags="overload" file="System.pas" line="6080">
    <parameters>
      <parameter name="P" type="PWideChar"/>
    </parameters>
  </procedure>
  <procedure name="Move" visibility="public" file="System.pas" line="6104">
    <parameters>
      <parameter name="Source" paramflags="const"/>
      <parameter name="Dest" paramflags="var"/>
      <parameter name="Count" type="NativeInt"/>
    </parameters>
  </procedure>
  <procedure name="MoveChars" visibility="public" procflags="inline" file="System.pas" line="6348">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="Source" paramflags="const"/>
      <parameter name="Dest" paramflags="var"/>
      <parameter name="Length" type="Integer"/>
    </parameters>
  </procedure>
  <function name="ParamCount" visibility="public" file="System.pas" line="6418">
    <parameters>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="ParamStr" visibility="public" file="System.pas" line="6445">
    <parameters>
      <parameter name="Index" type="Integer"/>
      <retval type="string"/>
    </parameters>
  </function>
  <procedure name="DefaultRandomize" visibility="public" file="System.pas" line="6474">
    <parameters>
      <parameter name="NewSeed" type="UInt64"/>
    </parameters>
  </procedure>
  <procedure name="Randomize" visibility="public" file="System.pas" line="6479">
  </procedure>
  <function name="DefaultRandom32" visibility="public" file="System.pas" line="6509">
    <parameters>
      <retval type="Cardinal"/>
    </parameters>
  </function>
  <function name="Random" visibility="public" procflags="overload" file="System.pas" line="6535">
    <devnotes>
      PUREPASCAL
      PIC
      PIC
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="ARange" type="Integer" paramflags="const"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Random" visibility="public" procflags="overload" file="System.pas" line="6580">
    <devnotes>
      PUREPASCAL
      PIC
      PIC
      PUREPASCAL
    </devnotes>
    <parameters>
      <retval type="Extended"/>
    </parameters>
  </function>
  <procedure name="RmDir" visibility="public" procflags="overload" file="System.pas" line="6621">
    <devnotes>
      PUREPASCAL
      PIC
      PIC
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="S" type="string" paramflags="const"/>
    </parameters>
  </procedure>
  <procedure name="RmDir" visibility="public" procflags="overload" file="System.pas" line="6627">
    <parameters>
      <parameter name="P" type="PWideChar"/>
    </parameters>
  </procedure>
  <function name="UpCase" visibility="public" procflags="overload inline" file="System.pas" line="6644">
    <parameters>
      <parameter name="Ch" type="AnsiChar"/>
      <retval type="AnsiChar"/>
    </parameters>
  </function>
  <function name="UpCase" visibility="public" procflags="overload inline" file="System.pas" line="6651">
    <parameters>
      <parameter name="Ch" type="Char"/>
      <retval type="Char"/>
    </parameters>
  </function>
  <procedure name="FClearExcept" visibility="public" procflags="inline" file="System.pas" line="7302">
    <devnotes>
      NEXTGEN
    </devnotes>
  </procedure>
  <procedure name="FCheckExcept" visibility="public" procflags="inline" file="System.pas" line="7306">
  </procedure>
  <function name="FSetExceptFlag" visibility="public" file="System.pas" line="7310">
    <parameters>
      <parameter name="NewFlags" type="Cardinal"/>
      <parameter name="Excepts" type="Cardinal">
        <value>
          $3F
        </value>
      </parameter>
      <retval type="Cardinal"/>
    </parameters>
  </function>
  <function name="FGetExceptFlag" visibility="public" file="System.pas" line="7363">
    <devnotes>
      defined(CPUX86) or !defined(CPUX64)
    </devnotes>
    <parameters>
      <parameter name="Excepts" type="Cardinal">
        <value>
          $3F
        </value>
      </parameter>
      <retval type="Cardinal"/>
    </parameters>
  </function>
  <procedure name="FRaiseExcept" visibility="public" file="System.pas" line="7388">
    <devnotes>
      defined(CPUX86) or !Defined(CPUX64)
    </devnotes>
    <parameters>
      <parameter name="excepts" type="Cardinal"/>
      <parameter name="CheckExceptionMask" type="Boolean">
        <value>
          True
        </value>
      </parameter>
    </parameters>
  </procedure>
  <function name="FGetRound" visibility="public" file="System.pas" line="7443">
    <devnotes>
      defined(CPUX86) or !Defined(CPUX64)
    </devnotes>
    <parameters>
      <retval type="Cardinal"/>
    </parameters>
  </function>
  <function name="FSetRound" visibility="public" file="System.pas" line="7460">
    <devnotes>
      defined(CPUX86) or !defined(CPUX64)
    </devnotes>
    <parameters>
      <parameter name="NewRound" type="Cardinal"/>
      <retval type="Cardinal"/>
    </parameters>
  </function>
  <function name="FSetExceptMask" visibility="public" file="System.pas" line="7499">
    <parameters>
      <parameter name="NewMasks" type="Cardinal"/>
      <parameter name="ExceptMasks" type="Cardinal">
        <value>
          $3F
        </value>
      </parameter>
      <retval type="Cardinal"/>
    </parameters>
  </function>
  <function name="FGetExceptMask" visibility="public" file="System.pas" line="7552">
    <devnotes>
      defined(CPUX86) or !Defined(CPUX64)
    </devnotes>
    <parameters>
      <parameter name="ExceptMasks" type="Cardinal">
        <value>
          $3F
        </value>
      </parameter>
      <retval type="Cardinal"/>
    </parameters>
  </function>
  <procedure name="Reset8087CW" visibility="public" file="System.pas" line="7579">
    <devnotes>
      defined(CPUX86) or !Defined(CPUX64)
      NEXTGEN
    </devnotes>
  </procedure>
  <procedure name="Set8087CW" visibility="public" file="System.pas" line="7584">
    <parameters>
      <parameter name="NewCW" type="Word"/>
    </parameters>
  </procedure>
  <function name="Get8087CW" visibility="public" file="System.pas" line="7619">
    <devnotes>
      PIC
      PIC
    </devnotes>
    <parameters>
      <retval type="Word"/>
    </parameters>
  </function>
  <procedure name="ResetMXCSR" visibility="public" file="System.pas" line="7636" symflags="platform">
  </procedure>
  <procedure name="SetMXCSR" visibility="public" file="System.pas" line="7642" symflags="platform">
    <parameters>
      <parameter name="NewMXCSR" type="Cardinal"/>
    </parameters>
  </procedure>
  <procedure name="SetMXCSRExceptionFlag" visibility="public" file="System.pas" line="7676">
    <devnotes>
      PIC
      PIC
    </devnotes>
    <parameters>
      <parameter name="NewExceptionFlag" type="Cardinal"/>
    </parameters>
  </procedure>
  <function name="GetMXCSR" visibility="public" file="System.pas" line="7750" symflags="platform">
    <devnotes>
      PIC
      PIC
    </devnotes>
    <parameters>
      <retval type="Cardinal"/>
    </parameters>
  </function>
  <function name="Int" visibility="public" file="System.pas" line="8752">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="Frac" visibility="public" file="System.pas" line="8822">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="Exp" visibility="public" file="System.pas" line="9135">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="ExpMinus1" visibility="public" file="System.pas" line="9488">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="Cos" visibility="public" file="System.pas" line="10066">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="Sin" visibility="public" file="System.pas" line="10150">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="Tangent" visibility="public" file="System.pas" line="10234">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <procedure name="SineCosine" visibility="public" file="System.pas" line="10310">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <parameter name="Sin" type="Extended" paramflags="var"/>
      <parameter name="Cos" type="Extended" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="Ln" visibility="public" file="System.pas" line="10700">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="LnXPlus1" visibility="public" file="System.pas" line="10765">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="ArcTan" visibility="public" file="System.pas" line="10981">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="Sqrt" visibility="public" file="System.pas" line="11005">
    <parameters>
      <parameter name="X" type="Extended" paramflags="const"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="Flush" visibility="public" file="System.pas" line="11821">
    <parameters>
      <parameter name="t" type="Text" paramflags="var"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="Mark" visibility="public" file="System.pas" line="12397" symflags="deprecated">
    <devnotes>
      PUREPASCAL
    </devnotes>
  </procedure>
  <function name="IsICUAvailable" visibility="public" procflags="inline" file="System.pas" line="12680">
    <parameters>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <procedure name="Release" visibility="public" file="System.pas" line="13406" symflags="deprecated">
  </procedure>
  <procedure name="FPower10" visibility="public" file="System.pas" line="16251" symflags="deprecated">
  </procedure>
  <function name="Power10" visibility="public" file="System.pas" line="16341">
    <devnotes>
      EXTENDEDHAS10BYTES
    </devnotes>
    <parameters>
      <parameter name="val" type="Extended"/>
      <parameter name="power" type="Integer"/>
      <retval type="Extended"/>
    </parameters>
  </function>
  <function name="GetCPUID" visibility="public" file="System.pas" line="17350" symflags="platform">
    <parameters>
      <parameter name="FunctionID" type="Cardinal"/>
      <parameter name="SubFunctionID" type="Cardinal">
        <value>
          $0
        </value>
      </parameter>
      <retval type="TCPUIDRec" symflags="platform">
      </retval>
    </parameters>
  </function>
  <function name="UTF8IdentToString" visibility="public" file="System.pas" line="17641">
    <parameters>
      <parameter name="Name" type="PShortString" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="UTF8IdentStringCompare" visibility="public" file="System.pas" line="17662">
    <parameters>
      <parameter name="Name1" type="PShortString" paramflags="const"/>
      <parameter name="Name2" type="string" paramflags="const"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="UTF8IdentIdentCompare" visibility="public" file="System.pas" line="17692">
    <parameters>
      <parameter name="Name1" type="PShortString" paramflags="const"/>
      <parameter name="Name2" type="PShortString" paramflags="const"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="UTF8IdentLength" visibility="public" file="System.pas" line="17816">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="Name" type="string" paramflags="const"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="GetDynaMethod" visibility="public" file="System.pas" line="18576">
    <parameters>
      <parameter name="vmt" type="TClass"/>
      <parameter name="selector" type="SmallInt"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="MonitorEnter" visibility="public" procflags="inline" file="System.pas" line="19987">
    <parameters>
      <parameter name="AObject" type="TObject" paramflags="const"/>
      <parameter name="Timeout" type="Cardinal">
        <value>
          $FFFFFFFF
        </value>
      </parameter>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="MonitorTryEnter" visibility="public" procflags="inline" file="System.pas" line="19992">
    <parameters>
      <parameter name="AObject" type="TObject" paramflags="const"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <procedure name="MonitorExit" visibility="public" procflags="inline" file="System.pas" line="19997">
    <parameters>
      <parameter name="AObject" type="TObject" paramflags="const"/>
    </parameters>
  </procedure>
  <function name="MonitorWait" visibility="public" procflags="overload inline" file="System.pas" line="20002">
    <parameters>
      <parameter name="AObject" type="TObject" paramflags="const"/>
      <parameter name="Timeout" type="Cardinal"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="MonitorWait" visibility="public" procflags="overload inline" file="System.pas" line="20007">
    <parameters>
      <parameter name="AObject" type="TObject" paramflags="const"/>
      <parameter name="ALock" type="TObject" paramflags="const"/>
      <parameter name="Timeout" type="Cardinal"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <procedure name="MonitorPulse" visibility="public" procflags="inline" file="System.pas" line="20012">
    <parameters>
      <parameter name="AObject" type="TObject" paramflags="const"/>
    </parameters>
  </procedure>
  <procedure name="MonitorPulseAll" visibility="public" procflags="inline" file="System.pas" line="20017">
    <parameters>
      <parameter name="AObject" type="TObject" paramflags="const"/>
    </parameters>
  </procedure>
  <procedure name="YieldProcessor" visibility="public" file="System.pas" line="20044">
  </procedure>
  <procedure name="DLLShutdown" visibility="public" callconv="stdcall" file="System.pas" line="25244">
  </procedure>
  <function name="BeginThread" visibility="public" file="System.pas" line="25418">
    <devnotes>
      PUREPASCAL
      PC_MAPPED_EXCEPTIONS
      PC_MAPPED_EXCEPTIONS
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="SecurityAttributes" type="Pointer"/>
      <parameter name="StackSize" type="Cardinal"/>
      <parameter name="ThreadFunc" type="TThreadFunc"/>
      <parameter name="Parameter" type="Pointer"/>
      <parameter name="CreationFlags" type="Cardinal"/>
      <parameter name="ThreadId" type="Cardinal" paramflags="var"/>
      <retval type="NativeUInt"/>
    </parameters>
  </function>
  <procedure name="EndThread" visibility="public" file="System.pas" line="25445">
    <parameters>
      <parameter name="ExitCode" type="Integer"/>
    </parameters>
  </procedure>
  <function name="StringElementSize" visibility="public" procflags="overload inline" file="System.pas" line="26899">
    <devnotes>
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="S" type="string" paramflags="const"/>
      <retval type="Word"/>
    </parameters>
  </function>
  <function name="StringElementSize" visibility="public" procflags="overload inline" file="System.pas" line="26907">
    <parameters>
      <parameter name="S" type="RawByteString" paramflags="const"/>
      <retval type="Word"/>
    </parameters>
  </function>
  <function name="StringCodePage" visibility="public" procflags="overload inline" file="System.pas" line="26925">
    <devnotes>
      MSWINDOWS
    </devnotes>
    <parameters>
      <parameter name="S" type="string" paramflags="const"/>
      <retval type="Word"/>
    </parameters>
  </function>
  <function name="StringCodePage" visibility="public" procflags="overload inline" file="System.pas" line="26933">
    <parameters>
      <parameter name="S" type="RawByteString" paramflags="const"/>
      <retval type="Word"/>
    </parameters>
  </function>
  <function name="StringRefCount" visibility="public" procflags="overload inline" file="System.pas" line="26955">
    <devnotes>
      MSWINDOWS
    </devnotes>
    <parameters>
      <parameter name="S" type="string" paramflags="const"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="StringRefCount" visibility="public" procflags="overload inline" file="System.pas" line="26963">
    <parameters>
      <parameter name="S" type="RawByteString" paramflags="const"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="UniqueString" visibility="public" procflags="overload" file="System.pas" line="27315">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="Str" type="string" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="UniqueString" visibility="public" procflags="overload" file="System.pas" line="27328">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="Str" type="WideString" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="UniqueString" visibility="public" procflags="overload" file="System.pas" line="27351">
    <devnotes>
      MSWINDOWS and !POSIX
    </devnotes>
    <parameters>
      <parameter name="Str" type="AnsiString" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="Pos" visibility="public" procflags="overload" file="System.pas" line="31591">
    <parameters>
      <parameter name="SubStr" type="ShortString" paramflags="const"/>
      <parameter name="Str" type="ShortString" paramflags="const"/>
      <parameter name="Offset" type="Integer">
        <value>
          $1
        </value>
      </parameter>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="StringOfChar" visibility="public" procflags="overload" file="System.pas" line="32031">
    <parameters>
      <parameter name="Ch" type="Char"/>
      <parameter name="Count" type="Integer"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="StringOfChar" visibility="public" procflags="overload" file="System.pas" line="32044">
    <parameters>
      <parameter name="Ch" type="AnsiChar"/>
      <parameter name="Count" type="Integer"/>
      <retval type="AnsiString"/>
    </parameters>
  </function>
  <procedure name="SetAnsiString" visibility="public" procflags="overload" file="System.pas" line="32107">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="Dest" type="PAnsiString"/>
      <parameter name="Source" type="PAnsiChar"/>
      <parameter name="Length" type="Integer"/>
      <parameter name="CodePage" type="Word"/>
    </parameters>
  </procedure>
  <procedure name="SetAnsiString" visibility="public" procflags="overload" file="System.pas" line="32112">
    <parameters>
      <parameter name="Dest" type="PAnsiString"/>
      <parameter name="Source" type="PWideChar"/>
      <parameter name="Length" type="Integer"/>
      <parameter name="CodePage" type="Word"/>
    </parameters>
  </procedure>
  <procedure name="SetCodePage" visibility="public" file="System.pas" line="32117">
    <parameters>
      <parameter name="S" type="RawByteString" paramflags="var"/>
      <parameter name="CodePage" type="Word"/>
      <parameter name="Convert" type="Boolean">
        <value>
          True
        </value>
      </parameter>
    </parameters>
  </procedure>
  <function name="UnicodeStringToUCS4String" visibility="public" file="System.pas" line="32143">
    <parameters>
      <parameter name="S" type="string" paramflags="const"/>
      <retval type="UCS4String"/>
    </parameters>
  </function>
  <function name="UCS4StringToUnicodeString" visibility="public" file="System.pas" line="32169">
    <parameters>
      <parameter name="S" type="UCS4String" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="WideCharToUCS4String" visibility="public" file="System.pas" line="32200">
    <parameters>
      <parameter name="S" type="PWideChar"/>
      <parameter name="Len" type="Integer">
        <value>
          $7FFFFFFF
        </value>
      </parameter>
      <retval type="UCS4String"/>
    </parameters>
  </function>
  <procedure name="InitializeArray" visibility="public" file="System.pas" line="32381">
    <devnotes>
      PUREPASCAL and !MANAGED_RECORD
    </devnotes>
    <parameters>
      <parameter name="p" type="Pointer"/>
      <parameter name="typeInfo" type="Pointer"/>
      <parameter name="elemCount" type="NativeUInt"/>
    </parameters>
  </procedure>
  <procedure name="MoveRecord" visibility="public" file="System.pas" line="34170">
    <devnotes>
       <summary>Move fields in Record. </summary>
       <remarks>MoveRecord is equivalent to calling CopyRecord(Dest, Souce, TypeInfo)
       then FinalizeRecord(Source, TypeInfo)</remarks>
    </devnotes>
    <parameters>
      <parameter name="Dest" type="Pointer"/>
      <parameter name="Source" type="Pointer"/>
      <parameter name="TypeInfo" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="MoveArray" visibility="public" file="System.pas" line="34654">
    <devnotes>
       <summary>Move Count items in Array. </summary>
       <remarks>MoveArray is equivalent to calling CopyArray(Dest, Souce, TypeInfo, Count)
       then FinalizeArray(Source, TypeInfo, count)</remarks>
    </devnotes>
    <parameters>
      <parameter name="Dest" type="Pointer"/>
      <parameter name="Source" type="Pointer"/>
      <parameter name="TypeInfo" type="Pointer"/>
      <parameter name="Count" type="NativeInt"/>
    </parameters>
  </procedure>
  <procedure name="CopyArray" visibility="public" file="System.pas" line="34771">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
       <summary>Copy Count items in Array. </summary>
    </devnotes>
    <parameters>
      <parameter name="Dest" type="Pointer"/>
      <parameter name="Source" type="Pointer"/>
      <parameter name="TypeInfo" type="Pointer"/>
      <parameter name="Count" type="NativeInt"/>
    </parameters>
  </procedure>
  <procedure name="FinalizeArray" visibility="public" file="System.pas" line="34797">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
       <summary>Finalize Count items in Array. </summary>
    </devnotes>
    <parameters>
      <parameter name="P" type="Pointer"/>
      <parameter name="TypeInfo" type="Pointer"/>
      <parameter name="Count" type="NativeUInt"/>
    </parameters>
  </procedure>
  <procedure name="CopyRecord" visibility="public" file="System.pas" line="34810">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
       <summary>Copy fields in Record. </summary>
    </devnotes>
    <parameters>
      <parameter name="Dest" type="Pointer"/>
      <parameter name="Source" type="Pointer"/>
      <parameter name="TypeInfo" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="FinalizeRecord" visibility="public" file="System.pas" line="34824">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
       <summary>Finalize fields in Record. </summary>
    </devnotes>
    <parameters>
      <parameter name="P" type="Pointer"/>
      <parameter name="TypeInfo" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="InvokeRecordInitializer" visibility="public" file="System.pas" line="34841">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
       <summary>Call Initialize operator for Dest if exist.
       Otherwise call per each managed record member of the record. </summary>
    </devnotes>
    <parameters>
      <parameter name="Dest" type="Pointer"/>
      <parameter name="TypeInfo" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="InvokeRecordInitializerArray" visibility="public" file="System.pas" line="34893">
    <devnotes>
       <summary>Call Finalize operator per each elements of the array. </summary>
    </devnotes>
    <parameters>
      <parameter name="Dest" type="Pointer"/>
      <parameter name="TypeInfo" type="Pointer"/>
      <parameter name="ElemCount" type="NativeUInt"/>
    </parameters>
  </procedure>
  <function name="WideCharToString" visibility="public" file="System.pas" line="34956">
    <parameters>
      <parameter name="Source" type="PWideChar"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="WideCharLenToString" visibility="public" file="System.pas" line="34961">
    <parameters>
      <parameter name="Source" type="PWideChar"/>
      <parameter name="SourceLen" type="Integer"/>
      <retval type="string"/>
    </parameters>
  </function>
  <procedure name="WideCharToStrVar" visibility="public" file="System.pas" line="34966">
    <parameters>
      <parameter name="Source" type="PWideChar"/>
      <parameter name="Dest" type="string" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="WideCharLenToStrVar" visibility="public" procflags="overload" file="System.pas" line="34972">
    <parameters>
      <parameter name="Source" type="PWideChar"/>
      <parameter name="SourceLen" type="Integer"/>
      <parameter name="Dest" type="string" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="WideCharLenToStrVar" visibility="public" procflags="overload" file="System.pas" line="34978">
    <parameters>
      <parameter name="Source" type="PWideChar"/>
      <parameter name="SourceLen" type="Integer"/>
      <parameter name="Dest" type="AnsiString" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="StringToWideChar" visibility="public" file="System.pas" line="34984">
    <parameters>
      <parameter name="Source" type="string" paramflags="const"/>
      <parameter name="Dest" type="PWideChar"/>
      <parameter name="DestSize" type="Integer"/>
      <retval type="PWideChar"/>
    </parameters>
  </function>
  <function name="OleStrToString" visibility="public" file="System.pas" line="35010">
    <parameters>
      <parameter name="Source" type="PWideChar"/>
      <retval type="string"/>
    </parameters>
  </function>
  <procedure name="OleStrToStrVar" visibility="public" procflags="overload" file="System.pas" line="35015">
    <parameters>
      <parameter name="Source" type="PWideChar"/>
      <parameter name="Dest" type="AnsiString" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="OleStrToStrVar" visibility="public" procflags="overload" file="System.pas" line="35020">
    <parameters>
      <parameter name="Source" type="PWideChar"/>
      <parameter name="Dest" type="string" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="StringToOleStr" visibility="public" procflags="overload" file="System.pas" line="35025">
    <parameters>
      <parameter name="Source" type="AnsiString" paramflags="const"/>
      <retval type="PWideChar"/>
    </parameters>
  </function>
  <function name="StringToOleStr" visibility="public" procflags="overload" file="System.pas" line="35031">
    <parameters>
      <parameter name="Source" type="string" paramflags="const"/>
      <retval type="PWideChar"/>
    </parameters>
  </function>
  <procedure name="GetVariantManager" visibility="public" file="System.pas" line="35041" symflags="deprecated">
    <parameters>
      <parameter name="VarMgr" type="TVariantManager" paramflags="var"/>
    </parameters>
  </procedure>
  <procedure name="SetVariantManager" visibility="public" file="System.pas" line="35046" symflags="deprecated">
    <parameters>
      <parameter name="VarMgr" type="TVariantManager" paramflags="const"/>
    </parameters>
  </procedure>
  <function name="IsVariantManagerSet" visibility="public" file="System.pas" line="35050" symflags="deprecated">
    <parameters>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <procedure name="DynArrayClear" visibility="public" procflags="inline" file="System.pas" line="36191">
    <parameters>
      <parameter name="A" type="Pointer" paramflags="var"/>
      <parameter name="TypeInfo" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="RegisterWeakRefTypeInfo" visibility="public" file="System.pas" line="36206">
    <parameters>
      <parameter name="aTypeInfo" type="Pointer" paramflags="const"/>
      <parameter name="value" type="Boolean" paramflags="const"/>
      <parameter name="index" type="Integer" paramflags="const"/>
    </parameters>
  </procedure>
  <function name="SysHasWeakRef" visibility="public" file="System.pas" line="36277">
    <parameters>
      <parameter name="elementType" type="Pointer" paramflags="const"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <procedure name="DynArraySetLength" visibility="public" file="System.pas" line="36289">
    <parameters>
      <parameter name="a" type="Pointer" paramflags="var"/>
      <parameter name="typeInfo" type="Pointer"/>
      <parameter name="dimCnt" type="NativeInt"/>
      <parameter name="lengthVec" type="PNativeInt"/>
    </parameters>
  </procedure>
  <procedure name="DynArrayCopy" visibility="public" procflags="inline" file="System.pas" line="36756">
    <devnotes>
      PUREPASCAL
      PUREPASCAL
    </devnotes>
    <parameters>
      <parameter name="Result" type="Pointer" paramflags="var"/>
      <parameter name="a" type="Pointer"/>
      <parameter name="typeInfo" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="DynArrayCopyRange" visibility="public" procflags="inline" file="System.pas" line="36765">
    <parameters>
      <parameter name="Result" type="Pointer" paramflags="var"/>
      <parameter name="A" type="Pointer"/>
      <parameter name="TypeInfo" type="Pointer"/>
      <parameter name="Index" type="NativeInt"/>
      <parameter name="Count" type="NativeInt"/>
    </parameters>
  </procedure>
  <procedure name="DynArrayUnique" visibility="public" file="System.pas" line="36774">
    <parameters>
      <parameter name="A" type="Pointer" paramflags="var"/>
      <parameter name="typeInfo" type="Pointer"/>
    </parameters>
  </procedure>
  <function name="DynArrayIndex" visibility="public" procflags="overload" file="System.pas" line="37155">
    <parameters>
      <parameter name="P" type="Pointer"/>
      <parameter name="Indices" paramflags="const">
        <array name="Indices" file="System.pas" line="37155">
          <element type="NativeInt"/>
        </array>
      </parameter>
      <parameter name="TypInfo" type="Pointer"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="DynArrayIndex" visibility="public" procflags="overload" file="System.pas" line="37190">
    <parameters>
      <parameter name="P" type="Pointer"/>
      <parameter name="Indices" paramflags="const">
        <array name="Indices" file="System.pas" line="37190">
          <element type="Integer"/>
        </array>
      </parameter>
      <parameter name="TypInfo" type="Pointer"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="DynArrayDim" visibility="public" file="System.pas" line="37289">
    <parameters>
      <parameter name="typeInfo" type="Pointer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="DynArraySize" visibility="public" procflags="inline" file="System.pas" line="37300">
    <parameters>
      <parameter name="A" type="Pointer"/>
      <retval type="NativeInt"/>
    </parameters>
  </function>
  <procedure name="DynArrayAssign" visibility="public" procflags="inline" file="System.pas" line="37307">
    <parameters>
      <parameter name="Dest" type="Pointer" paramflags="var"/>
      <parameter name="Source" type="Pointer"/>
      <parameter name="typeInfo" type="Pointer"/>
    </parameters>
  </procedure>
  <function name="IsDynArrayRectangular" visibility="public" file="System.pas" line="37313">
    <parameters>
      <parameter name="DynArray" type="Pointer" paramflags="const"/>
      <parameter name="typeInfo" type="Pointer"/>
      <retval type="Boolean"/>
    </parameters>
  </function>
  <function name="DynArrayBounds" visibility="public" file="System.pas" line="37350">
    <parameters>
      <parameter name="DynArray" type="Pointer" paramflags="const"/>
      <parameter name="typeInfo" type="Pointer"/>
      <retval type="TBoundArray"/>
    </parameters>
  </function>
  <function name="FindHInstance" visibility="public" file="System.pas" line="37455">
    <parameters>
      <parameter name="Address" type="Pointer"/>
      <retval type="NativeUInt"/>
    </parameters>
  </function>
  <function name="FindClassHInstance" visibility="public" file="System.pas" line="37493">
    <devnotes>
      MSWINDOWS and !POSIX
    </devnotes>
    <parameters>
      <parameter name="ClassType" type="TClass"/>
      <retval type="NativeUInt"/>
    </parameters>
  </function>
  <function name="FindResourceHInstance" visibility="public" file="System.pas" line="37722">
    <parameters>
      <parameter name="Instance" type="NativeUInt"/>
      <retval type="NativeUInt"/>
    </parameters>
  </function>
  <function name="GetUILanguages" visibility="public" file="System.pas" line="37919">
    <parameters>
      <parameter name="LANGID" type="Word" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="GetLocaleOverride" visibility="public" file="System.pas" line="38204">
    <parameters>
      <parameter name="AppName" type="string" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <procedure name="SetLocaleOverride" visibility="public" file="System.pas" line="38211">
    <parameters>
      <parameter name="NewPreferredLanguages" type="string" paramflags="const"/>
    </parameters>
  </procedure>
  <function name="GetResourceModuleName" visibility="public" file="System.pas" line="38229">
    <parameters>
      <parameter name="HostAppName" type="string"/>
      <parameter name="ModuleName" type="string"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="LoadResourceModule" visibility="public" file="System.pas" line="38426">
    <parameters>
      <parameter name="ModuleName" type="PWideChar"/>
      <parameter name="CheckOwner" type="Boolean">
        <value>
          True
        </value>
      </parameter>
      <retval type="NativeUInt"/>
    </parameters>
  </function>
  <procedure name="EnumModules" visibility="public" procflags="overload" file="System.pas" line="38443">
    <parameters>
      <parameter name="Func" type="TEnumModuleFunc"/>
      <parameter name="Data" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="EnumResourceModules" visibility="public" procflags="overload" file="System.pas" line="38448">
    <parameters>
      <parameter name="Func" type="TEnumModuleFunc"/>
      <parameter name="Data" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="EnumModules" visibility="public" procflags="overload" file="System.pas" line="38453">
    <parameters>
      <parameter name="Func" type="TEnumModuleFuncLW"/>
      <parameter name="Data" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="EnumResourceModules" visibility="public" procflags="overload" file="System.pas" line="38465">
    <parameters>
      <parameter name="Func" type="TEnumModuleFuncLW"/>
      <parameter name="Data" type="Pointer"/>
    </parameters>
  </procedure>
  <procedure name="AddModuleUnloadProc" visibility="public" procflags="overload" file="System.pas" line="38477">
    <parameters>
      <parameter name="Proc" type="TModuleUnloadProc"/>
    </parameters>
  </procedure>
  <procedure name="RemoveModuleUnloadProc" visibility="public" procflags="overload" file="System.pas" line="38482">
    <parameters>
      <parameter name="Proc" type="TModuleUnloadProc"/>
    </parameters>
  </procedure>
  <procedure name="AddModuleUnloadProc" visibility="public" procflags="overload" file="System.pas" line="38487">
    <parameters>
      <parameter name="Proc" type="TModuleUnloadProcLW"/>
    </parameters>
  </procedure>
  <procedure name="RemoveModuleUnloadProc" visibility="public" procflags="overload" file="System.pas" line="38497">
    <parameters>
      <parameter name="Proc" type="TModuleUnloadProcLW"/>
    </parameters>
  </procedure>
  <procedure name="RegisterModule" visibility="public" file="System.pas" line="38543">
    <parameters>
      <parameter name="LibModule" type="PLibModule"/>
    </parameters>
  </procedure>
  <procedure name="UnregisterModule" visibility="public" file="System.pas" line="38557">
    <parameters>
      <parameter name="LibModule" type="PLibModule"/>
    </parameters>
  </procedure>
  <function name="CompToDouble" visibility="public" callconv="cdecl" file="System.pas" line="39827">
    <parameters>
      <parameter name="Value" type="Comp"/>
      <retval type="Double"/>
    </parameters>
  </function>
  <procedure name="DoubleToComp" visibility="public" callconv="cdecl" file="System.pas" line="39832">
    <parameters>
      <parameter name="Value" type="Double"/>
      <parameter name="Result" type="Comp" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="CompToCurrency" visibility="public" callconv="cdecl" file="System.pas" line="39837">
    <parameters>
      <parameter name="Value" type="Comp"/>
      <retval type="Currency"/>
    </parameters>
  </function>
  <procedure name="CurrencyToComp" visibility="public" callconv="cdecl" file="System.pas" line="39842">
    <parameters>
      <parameter name="Value" type="Currency"/>
      <parameter name="Result" type="Comp" paramflags="var"/>
    </parameters>
  </procedure>
  <function name="GetMemory" visibility="public" callconv="cdecl" file="System.pas" line="39847">
    <parameters>
      <parameter name="Size" type="NativeInt"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="FreeMemory" visibility="public" callconv="cdecl" file="System.pas" line="39852">
    <parameters>
      <parameter name="P" type="Pointer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="ReallocMemory" visibility="public" callconv="cdecl" file="System.pas" line="39860">
    <parameters>
      <parameter name="P" type="Pointer"/>
      <parameter name="Size" type="NativeInt"/>
      <retval type="Pointer"/>
    </parameters>
  </function>
  <function name="UnicodeToUtf8" visibility="public" procflags="overload" file="System.pas" line="39872" symflags="deprecated">
    <parameters>
      <parameter name="Dest" type="PAnsiChar"/>
      <parameter name="Source" type="PWideChar"/>
      <parameter name="MaxBytes" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="UnicodeToUtf8" visibility="public" procflags="overload" file="System.pas" line="39918">
    <devnotes>
      LINUX
    </devnotes>
    <parameters>
      <parameter name="Dest" type="PAnsiChar"/>
      <parameter name="MaxDestBytes" type="Cardinal"/>
      <parameter name="Source" type="PWideChar"/>
      <parameter name="SourceChars" type="Cardinal"/>
      <retval type="Cardinal"/>
    </parameters>
  </function>
  <function name="Utf8ToUnicode" visibility="public" procflags="overload" file="System.pas" line="39953" symflags="deprecated">
    <parameters>
      <parameter name="Dest" type="PWideChar"/>
      <parameter name="Source" type="PAnsiChar"/>
      <parameter name="MaxChars" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="Utf8ToUnicode" visibility="public" procflags="overload" file="System.pas" line="39994">
    <devnotes>
      LINUX
    </devnotes>
    <parameters>
      <parameter name="Dest" type="PWideChar"/>
      <parameter name="MaxDestChars" type="Cardinal"/>
      <parameter name="Source" type="PAnsiChar"/>
      <parameter name="SourceBytes" type="Cardinal"/>
      <retval type="Cardinal"/>
    </parameters>
  </function>
  <function name="UTF8Encode" visibility="public" procflags="overload" file="System.pas" line="40029">
    <parameters>
      <parameter name="WS" type="WideString" paramflags="const"/>
      <retval type="RawByteString"/>
    </parameters>
  </function>
  <function name="UTF8Encode" visibility="public" procflags="overload" file="System.pas" line="40047">
    <parameters>
      <parameter name="US" type="string" paramflags="const"/>
      <retval type="RawByteString"/>
    </parameters>
  </function>
  <function name="UTF8Encode" visibility="public" procflags="overload" file="System.pas" line="40065">
    <parameters>
      <parameter name="A" type="RawByteString" paramflags="const"/>
      <retval type="RawByteString"/>
    </parameters>
  </function>
  <procedure name="UTF8Encode" visibility="public" procflags="overload" file="System.pas" line="40073">
    <parameters>
      <parameter name="US" type="string" paramflags="const"/>
      <parameter name="B" paramflags="var">
        <array name="B" file="System.pas" line="40073">
          <element type="Byte"/>
        </array>
      </parameter>
    </parameters>
  </procedure>
  <function name="UTF8EncodeToShortString" visibility="public" procflags="overload" file="System.pas" line="40086">
    <parameters>
      <parameter name="WS" type="WideString" paramflags="const"/>
      <retval type="ShortString"/>
    </parameters>
  </function>
  <function name="UTF8EncodeToShortString" visibility="public" procflags="overload" file="System.pas" line="40091">
    <parameters>
      <parameter name="US" type="string" paramflags="const"/>
      <retval type="ShortString"/>
    </parameters>
  </function>
  <function name="UTF8EncodeToShortString" visibility="public" procflags="overload" file="System.pas" line="40096">
    <parameters>
      <parameter name="A" type="RawByteString" paramflags="const"/>
      <retval type="ShortString"/>
    </parameters>
  </function>
  <function name="UTF8Decode" visibility="public" file="System.pas" line="40104" symflags="deprecated">
    <parameters>
      <parameter name="S" type="RawByteString" paramflags="const"/>
      <retval type="WideString"/>
    </parameters>
  </function>
  <function name="UTF8ToWideString" visibility="public" procflags="inline" file="System.pas" line="40119">
    <parameters>
      <parameter name="S" type="RawByteString" paramflags="const"/>
      <retval type="WideString"/>
    </parameters>
  </function>
  <function name="UTF8ToUnicodeString" visibility="public" procflags="overload" file="System.pas" line="40124">
    <parameters>
      <parameter name="S" type="RawByteString" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="UTF8ToUnicodeString" visibility="public" procflags="overload" file="System.pas" line="40139">
    <parameters>
      <parameter name="S" type="PAnsiChar" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="UTF8ToUnicodeString" visibility="public" procflags="overload" file="System.pas" line="40154">
    <parameters>
      <parameter name="S" type="ShortString" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="UTF8ToString" visibility="public" procflags="overload inline" file="System.pas" line="40169">
    <parameters>
      <parameter name="S" type="RawByteString" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="UTF8ToString" visibility="public" procflags="overload inline" file="System.pas" line="40174">
    <parameters>
      <parameter name="S" type="ShortString" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="UTF8ToString" visibility="public" procflags="overload inline" file="System.pas" line="40179">
    <parameters>
      <parameter name="S" type="PAnsiChar" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="UTF8ToString" visibility="public" procflags="overload" file="System.pas" line="40184" symflags="deprecated">
    <parameters>
      <parameter name="S" paramflags="const">
        <array name="S" file="System.pas" line="40184">
          <element type="Byte"/>
        </array>
      </parameter>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="UTF8ArrayToString" visibility="public" procflags="overload" file="System.pas" line="40191">
    <parameters>
      <parameter name="S" paramflags="const">
        <array name="S" file="System.pas" line="40191">
          <element type="AnsiChar"/>
        </array>
      </parameter>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="UTF8ArrayToString" visibility="public" procflags="overload" file="System.pas" line="40206">
    <parameters>
      <parameter name="S" paramflags="const">
        <array name="S" file="System.pas" line="40206">
          <element type="Byte"/>
        </array>
      </parameter>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="AnsiToUtf8" visibility="public" file="System.pas" line="40221">
    <parameters>
      <parameter name="S" type="string" paramflags="const"/>
      <retval type="RawByteString"/>
    </parameters>
  </function>
  <function name="Utf8ToAnsi" visibility="public" file="System.pas" line="40226">
    <parameters>
      <parameter name="S" type="RawByteString" paramflags="const"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="LoadResString" visibility="public" file="System.pas" line="40800">
    <parameters>
      <parameter name="ResStringRec" type="PResStringRec"/>
      <retval type="string"/>
    </parameters>
  </function>
  <function name="PUCS4Chars" visibility="public" file="System.pas" line="41020">
    <parameters>
      <parameter name="S" type="UCS4String" paramflags="const"/>
      <retval type="PUCS4Char"/>
    </parameters>
  </function>
  <function name="WideStringToUCS4String" visibility="public" file="System.pas" line="41028">
    <parameters>
      <parameter name="S" type="WideString" paramflags="const"/>
      <retval type="UCS4String"/>
    </parameters>
  </function>
  <function name="UCS4StringToWideString" visibility="public" file="System.pas" line="41056">
    <parameters>
      <parameter name="S" type="UCS4String" paramflags="const"/>
      <retval type="WideString"/>
    </parameters>
  </function>
  <function name="LocaleCharsFromUnicode" visibility="public" procflags="overload" file="System.pas" line="41320">
    <parameters>
      <parameter name="CodePage" type="Cardinal"/>
      <parameter name="Flags" type="Cardinal"/>
      <parameter name="UnicodeStr" type="PWideChar"/>
      <parameter name="UnicodeStrLen" type="Integer"/>
      <parameter name="LocaleStr" type="PAnsiChar"/>
      <parameter name="LocaleStrLen" type="Integer"/>
      <parameter name="DefaultChar" type="PAnsiChar"/>
      <parameter name="UsedDefaultChar" type="PLongBool"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <function name="UnicodeFromLocaleChars" visibility="public" procflags="overload" file="System.pas" line="41335">
    <parameters>
      <parameter name="CodePage" type="Cardinal"/>
      <parameter name="Flags" type="Cardinal"/>
      <parameter name="LocaleStr" type="PAnsiChar"/>
      <parameter name="LocaleStrLen" type="Integer"/>
      <parameter name="UnicodeStr" type="PWideChar"/>
      <parameter name="UnicodeStrLen" type="Integer"/>
      <retval type="Integer"/>
    </parameters>
  </function>
  <procedure name="SetMultiByteConversionCodePage" visibility="public" file="System.pas" line="41870">
    <parameters>
      <parameter name="CodePage" type="Integer"/>
    </parameters>
  </procedure>
  <procedure name="SetUTF8CompareLocale" visibility="public" file="System.pas" line="41891" symflags="platform">
  </procedure>
</namespace>