{$IFDEF VER80}    //Borland Delphi 1
  {$DEFINE IA_DELPHI1_UP}
{$ENDIF}
{$IFDEF VER90}    //Borland Delphi 2
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
{$ENDIF}
{$IFDEF VER100}   //Borland Delphi 3
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
{$ENDIF}
{$IFDEF VER120}   //Borland Delphi 4
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
{$ENDIF}
{$IFDEF VER130}  //Borland Delphi 5
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
{$ENDIF}
{$IFDEF VER140}  //Borland Delphi 6
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
{$ENDIF}
{$IFDEF VER150}  //Borland Delphi 7
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
{$ENDIF}
{$IFDEF VER160}  //Borland Delphi 8 for .NET
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
{$ENDIF}
{$IFDEF VER170} //Borland Delphi 2005
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI2005_UP}
{$ENDIF}
{$IFDEF VER180}  //Borland Delphi 2006
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
{$ENDIF}
{$IFDEF VER185}  //Codegear Delphi 2007
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
{$ENDIF}
{$IFDEF VER200}  //Embarcadero Delphi 2009
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
{$ENDIF}
{$IFDEF VER210}  //Embarcadero Delphi 2010
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
{$ENDIF}
{$IFDEF VER220}  //Embarcadero Delphi XE
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
{$ENDIF}
{$IFDEF VER230}  //Embarcadero Delphi XE2
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
{$ENDIF}
{$IFDEF VER240}  //Embarcadero Delphi XE3
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
{$ENDIF}
{$IFDEF VER250}  //Embarcadero Delphi XE4
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
{$ENDIF}
{$IFDEF VER260}  //Embarcadero Delphi XE5
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
{$ENDIF}
{$IFDEF VER270}  //Embarcadero Delphi XE6
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI20_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
  {$DEFINE IA_DELPHIXE6_UP}
{$ENDIF}
{$IFDEF VER280}  //Embarcadero Delphi XE7
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI20_UP}
  {$DEFINE IA_DELPHI21_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
  {$DEFINE IA_DELPHIXE6_UP}
  {$DEFINE IA_DELPHIXE7_UP}
{$ENDIF}
{$IFDEF VER290}  //Embarcadero Delphi XE8
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI20_UP}
  {$DEFINE IA_DELPHI21_UP}
  {$DEFINE IA_DELPHI22_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
  {$DEFINE IA_DELPHIXE6_UP}
  {$DEFINE IA_DELPHIXE7_UP}
  {$DEFINE IA_DELPHIXE8_UP}
{$ENDIF}
{$IFDEF VER300}  //Embarcadero Delphi 10 Seattle
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI20_UP}
  {$DEFINE IA_DELPHI21_UP}
  {$DEFINE IA_DELPHI22_UP}
  {$DEFINE IA_DELPHI23_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
  {$DEFINE IA_DELPHIXE6_UP}
  {$DEFINE IA_DELPHIXE7_UP}
  {$DEFINE IA_DELPHIXE8_UP}
  {$DEFINE IA_DELPHI10SEATTLE_UP}
{$ENDIF}
{$IFDEF VER310}  //Embarcadero Delphi 10.1 Berlin
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI20_UP}
  {$DEFINE IA_DELPHI21_UP}
  {$DEFINE IA_DELPHI22_UP}
  {$DEFINE IA_DELPHI23_UP}
  {$DEFINE IA_DELPHI24_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
  {$DEFINE IA_DELPHIXE6_UP}
  {$DEFINE IA_DELPHIXE7_UP}
  {$DEFINE IA_DELPHIXE8_UP}
  {$DEFINE IA_DELPHI10SEATTLE_UP}
  {$DEFINE IA_DELPHI101BERLIN_UP}
{$ENDIF}
{$IFDEF VER320}  //Embarcadero Delphi 10.2 Tokyo
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI20_UP}
  {$DEFINE IA_DELPHI21_UP}
  {$DEFINE IA_DELPHI22_UP}
  {$DEFINE IA_DELPHI23_UP}
  {$DEFINE IA_DELPHI24_UP}
  {$DEFINE IA_DELPHI25_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
  {$DEFINE IA_DELPHIXE6_UP}
  {$DEFINE IA_DELPHIXE7_UP}
  {$DEFINE IA_DELPHIXE8_UP}
  {$DEFINE IA_DELPHI10SEATTLE_UP}
  {$DEFINE IA_DELPHI101BERLIN_UP}
  {$DEFINE IA_DELPHI102TOKYO_UP}
{$ENDIF}
{$IFDEF VER330}  //Embarcadero Delphi 10.3 Rio
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI20_UP}
  {$DEFINE IA_DELPHI21_UP}
  {$DEFINE IA_DELPHI22_UP}
  {$DEFINE IA_DELPHI23_UP}
  {$DEFINE IA_DELPHI24_UP}
  {$DEFINE IA_DELPHI25_UP}
  {$DEFINE IA_DELPHI25_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
  {$DEFINE IA_DELPHIXE6_UP}
  {$DEFINE IA_DELPHIXE7_UP}
  {$DEFINE IA_DELPHIXE8_UP}
  {$DEFINE IA_DELPHI10SEATTLE_UP}
  {$DEFINE IA_DELPHI101BERLIN_UP}
  {$DEFINE IA_DELPHI102TOKYO_UP}
  {$DEFINE IA_DELPHI103RIO_UP}
{$ENDIF}

{$IFDEF VER340}  //Embarcadero Delphi 10.4 Sydney
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI20_UP}
  {$DEFINE IA_DELPHI21_UP}
  {$DEFINE IA_DELPHI22_UP}
  {$DEFINE IA_DELPHI23_UP}
  {$DEFINE IA_DELPHI24_UP}
  {$DEFINE IA_DELPHI25_UP}
  {$DEFINE IA_DELPHI26_UP}
  {$DEFINE IA_DELPHI27_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
  {$DEFINE IA_DELPHIXE6_UP}
  {$DEFINE IA_DELPHIXE7_UP}
  {$DEFINE IA_DELPHIXE8_UP}
  {$DEFINE IA_DELPHI10SEATTLE_UP}
  {$DEFINE IA_DELPHI101BERLIN_UP}
  {$DEFINE IA_DELPHI102TOKYO_UP}
  {$DEFINE IA_DELPHI103RIO_UP}
  {$DEFINE IA_DELPHI104SYDNEY_UP}
{$ENDIF}

{$IFDEF VER350}  //Embarcadero Delphi 11 Alexandria
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI11_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI20_UP}
  {$DEFINE IA_DELPHI21_UP}
  {$DEFINE IA_DELPHI22_UP}
  {$DEFINE IA_DELPHI23_UP}
  {$DEFINE IA_DELPHI24_UP}
  {$DEFINE IA_DELPHI25_UP}
  {$DEFINE IA_DELPHI26_UP}
  {$DEFINE IA_DELPHI27_UP}
  {$DEFINE IA_DELPHI28_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
  {$DEFINE IA_DELPHIXE6_UP}
  {$DEFINE IA_DELPHIXE7_UP}
  {$DEFINE IA_DELPHIXE8_UP}
  {$DEFINE IA_DELPHI10SEATTLE_UP}
  {$DEFINE IA_DELPHI101BERLIN_UP}
  {$DEFINE IA_DELPHI102TOKYO_UP}
  {$DEFINE IA_DELPHI103RIO_UP}
  {$DEFINE IA_DELPHI104SYDNEY_UP}
  {$DEFINE IA_DELPHI11ALEXANDRIA_UP}
{$ENDIF}
// Insert next version here //


{$IFNDEF IA_DELPHI1_UP}
  //VER### not handled - default to latest, currently Delphi 11 so code continues to work without editing this file first.
  {$DEFINE IA_DELPHI1_UP}
  {$DEFINE IA_DELPHI2_UP}
  {$DEFINE IA_DELPHI3_UP}
  {$DEFINE IA_DELPHI4_UP}
  {$DEFINE IA_DELPHI5_UP}
  {$DEFINE IA_DELPHI6_UP}
  {$DEFINE IA_DELPHI7_UP}
  {$DEFINE IA_DELPHI8_UP}
  {$DEFINE IA_DELPHI9_UP}
  {$DEFINE IA_DELPHI10_UP}
  {$DEFINE IA_DELPHI12_UP}
  //V13 skipped
  {$DEFINE IA_DELPHI14_UP}
  {$DEFINE IA_DELPHI15_UP}
  {$DEFINE IA_DELPHI16_UP}
  {$DEFINE IA_DELPHI17_UP}
  {$DEFINE IA_DELPHI18_UP}
  {$DEFINE IA_DELPHI19_UP}
  {$DEFINE IA_DELPHI20_UP}
  {$DEFINE IA_DELPHI21_UP}
  {$DEFINE IA_DELPHI22_UP}
  {$DEFINE IA_DELPHI23_UP}
  {$DEFINE IA_DELPHI24_UP}
  {$DEFINE IA_DELPHI25_UP}
  {$DEFINE IA_DELPHI25_UP}
  {$DEFINE IA_DELPHI2005_UP}
  {$DEFINE IA_DELPHI2006_UP}
  {$DEFINE IA_DELPHI2007_UP}
  {$DEFINE IA_DELPHI2009_UP}
  {$DEFINE IA_DELPHI2010_UP}
  {$DEFINE IA_DELPHIXE_UP}
  {$DEFINE IA_DELPHIXE2_UP}
  {$DEFINE IA_DELPHIXE3_UP}
  {$DEFINE IA_DELPHIXE4_UP}
  {$DEFINE IA_DELPHIXE5_UP}
  {$DEFINE IA_DELPHIXE6_UP}
  {$DEFINE IA_DELPHIXE7_UP}
  {$DEFINE IA_DELPHIXE8_UP}
  {$DEFINE IA_DELPHI10SEATTLE_UP}
  {$DEFINE IA_DELPHI101BERLIN_UP}
  {$DEFINE IA_DELPHI102TOKYO_UP}
  {$DEFINE IA_DELPHI103RIO_UP}
  {$DEFINE IA_DELPHI104SYDNEY_UP}
  {$DEFINE IA_DELPHI11ALEXANDRIA_UP}

  {$DEFINE IA_DELPHI_UNKNOWN_VERSION}
{$ENDIF}



//Delphi feature Flags

{$IFDEF IA_DELPHI4_UP}
  {$DEFINE IA_Supports_Int64}
  //dynamic arrays
  //resourcestrings
  //default parameters
{$ENDIF}

{$IFDEF IA_DELPHI6_UP}
  {$DEFINE IA_Has_Unit_Variants}
  {$DEFINE IA_Supports_RaiseLastOSError}
  {$DEFINE IA_Supports_Compiler_HintDirectives}    //Warn, Experimental, deprecated, library, platform, $MESSAGE HINT, $MESSAGE WARN, $MESSAGE ERROR and $MESSAGE FATAL
  //libprefix, libsuffix, libversion
  //$IF $ELSE
  //SLineBreak
{$ENDIF}

//2005: For/In loops,

{$IFDEF IA_DELPHI2006_UP}
  {$DEFINE IA_Supports_ReportMemoryLeaksOnShutdown}
  //FastMM built-in
{$ENDIF}

{$IFDEF IA_DELPHI2007_UP}
  {$DEFINE IA_Supports_TBytes}
  //DCU compatible with D2006
  //MainFormOnTaskbar
{$ENDIF}

{$IFDEF IA_DELPHI2009_UP}
  {$DEFINE IA_Supports_CharInSet}
  //String->UnicodeString
  //Generics
{$ENDIF}

{$IFDEF IA_DELPHI2010_UP}
  {$DEFINE IA_Supports_NameThreadForDebugging}
  {$DEFINE IA_TThread_Deprecated_Resume}
  //enhanced RTTI
  //attributes
  //class constructors
{$ENDIF}

{$IFDEF IA_DELPHIXE2_UP}
  {$DEFINE IA_Has_Unit_UITypes}
  {$DEFINE IA_UnitScopeNames}
{$ENDIF}

//XE3: AtomicExchange, AtomicIncrement, AtomicCmpExchange, AtomicDecrement
//XE7: parallel library


{$IFDEF IA_DELPHI_UNKNOWN_VERSION}
  {$IFDEF IA_Supports_Compiler_HintDirectives}
    {$MESSAGE 'Include file: "iaDelphi.inc" out of date with this version of Delphi, VER### compiler define not recognized'}
  {$ENDIF}
{$ENDIF}

