File support-new-Canon-models.patch of Package libraw

From: Alex Tutubalin <lexa@lexa.ru>
Date: Sun, 17 Mar 2024 10:26:04 +0300
Subject: support new Canon models
Patch-mainline: 0.22
Git-commit: 12b0e5d60c57bb795382fda8494fc45f683550b8 (partial)

(cherry picked from commit 12b0e5d60c57bb795382fda8494fc45f683550b8)
---
 internal/libraw_cameraids.h      |   4 +
 src/metadata/canon.cpp           |  31 +-
 src/metadata/cr3_parser.cpp      |  20 ++
 src/metadata/normalize_model.cpp |  32 +-
 src/tables/cameralist.cpp        |   5 +
 src/tables/colordata.cpp         | 586 ++++++++++++++++---------------
 6 files changed, 370 insertions(+), 308 deletions(-)

--- a/internal/libraw_cameraids.h
+++ b/internal/libraw_cameraids.h
@@ -91,6 +91,10 @@ it under the terms of the one of two licenses as you choose:
 #define CanonID_EOS_R7            (0x80000000ULL + 0x464ULL)
 #define CanonID_EOS_R10           (0x80000000ULL + 0x465ULL)
 #define CanonID_EOS_M50_Mark_II   (0x80000000ULL + 0x468ULL)
+#define CanonID_EOS_R50           (0x80000000ULL + 0x480ULL)
+#define CanonID_EOS_R6m2          (0x80000000ULL + 0x481ULL)
+#define CanonID_EOS_R8            (0x80000000ULL + 0x487ULL)
+#define CanonID_EOS_R100          (0x80000000ULL + 0x498ULL)
 
 // CanonID_EOS_D2000C after Canon's TIFF2CR2 convertor:
 #define CanonID_EOS_D2000C        (0x80000000ULL + 0x520ULL)
--- a/src/metadata/canon.cpp
+++ b/src/metadata/canon.cpp
@@ -108,11 +108,15 @@ void LibRaw::setCanonBodyFeatures(unsigned long long id)
     ilm.CameraFormat = LIBRAW_FORMAT_APSC;
     ilm.CameraMount = LIBRAW_MOUNT_Canon_EF_M;
   }
-  else if ((id == CanonID_EOS_R)  ||
-           (id == CanonID_EOS_RP) ||
-           (id == CanonID_EOS_R3) ||
-           (id == CanonID_EOS_R5) ||
-           (id == CanonID_EOS_R6))
+  else if (
+              (id == CanonID_EOS_R)
+           || (id == CanonID_EOS_RP)
+           || (id == CanonID_EOS_R3)
+           || (id == CanonID_EOS_R5)
+           || (id == CanonID_EOS_R6)
+           || (id == CanonID_EOS_R6m2)
+           || (id == CanonID_EOS_R8)
+          )
   {
     ilm.CameraFormat = LIBRAW_FORMAT_FF;
     ilm.CameraMount = LIBRAW_MOUNT_Canon_RF;
@@ -120,8 +124,12 @@ void LibRaw::setCanonBodyFeatures(unsigned long long id)
     ilm.LensMount = LIBRAW_MOUNT_Canon_EF;
   }
 
-  else if ((id == CanonID_EOS_R7)  ||
-           (id == CanonID_EOS_R10))
+  else if (
+              (id == CanonID_EOS_R7)
+           || (id == CanonID_EOS_R10)
+           || (id == CanonID_EOS_R50)
+           || (id == CanonID_EOS_R100)
+          )
   {
     ilm.CameraFormat = LIBRAW_FORMAT_APSC;
     ilm.CameraMount = LIBRAW_MOUNT_Canon_RF;
@@ -955,6 +963,7 @@ void LibRaw::parseCanonMakernotes(unsigned tag, unsigned /*type*/, unsigned len,
       imgdata.sizes.raw_aspect = LIBRAW_IMAGE_ASPECT_1to1;
       break;
     case 2:
+    case 0x102:
       imgdata.sizes.raw_aspect = LIBRAW_IMAGE_ASPECT_4to3;
       break;
     case 7:
@@ -1234,9 +1243,9 @@ void LibRaw::parseCanonMakernotes(unsigned tag, unsigned /*type*/, unsigned len,
       break;
 
     case 1820: // M50; ColorDataSubVer: 16
-    case 1824: // R; ColorDataSubVer: 17
+    case 1824: // R, Ra; ColorDataSubVer: 17
     case 1816: // RP, 250D, SX70 HS; ColorDataSubVer: 18
-               // M6 Mark II, M200, 90D, G5 X Mark II, G7 X Mark III, 850D; ColorDataSubVer: 19
+               // R100, M6 Mark II, M200, 90D, G5 X Mark II, G7 X Mark III, 850D; ColorDataSubVer: 19
       imCanon.ColorDataVer = 9;
       AsShot_Auto_MeasuredWB(0x0047);
       CR3_ColorData(0x0047);
@@ -1244,14 +1253,14 @@ void LibRaw::parseCanonMakernotes(unsigned tag, unsigned /*type*/, unsigned len,
 
     case 1770: // R5 CRM
     case 2024: // -1D X Mark III; ColorDataSubVer: 32
-    case 3656: // R5, R6; ColorDataSubVer: 33 
+    case 3656: // R5, R6; ColorDataSubVer: 33
       imCanon.ColorDataVer = 10;
       AsShot_Auto_MeasuredWB(0x0055);
       CR3_ColorData(0x0055);
       break;
 
     case 3973: // R3; ColorDataSubVer: 34
-    case 3778: // R7, R10; ColorDataSubVer: 48
+    case 3778: // R6 Mark II, R7, R8, R10, R50; ColorDataSubVer: 48
       imCanon.ColorDataVer = 11;
       AsShot_Auto_MeasuredWB(0x0069);
 
--- a/src/metadata/cr3_parser.cpp
+++ b/src/metadata/cr3_parser.cpp
@@ -138,6 +138,7 @@ void LibRaw::selectCRXTrack()
   else
 	  return; // No RAW track index
 
+  int ctmdcount = 0;
   // Frame selected: parse CTMD metadata
   for (int i = 0, trackcnt = 0; i <= maxTrack && i < LIBRAW_CRXTRACKS_MAXCOUNT; i++)
   {
@@ -149,6 +150,7 @@ void LibRaw::selectCRXTrack()
 		  if (fsel)
 			  selectCRXFrame(i, fsel);
 		  parseCR3_CTMD(i);
+		  ctmdcount++;
 	  }
 	  else if (d->MediaType == 2) // JPEG
 	  {
@@ -228,6 +230,10 @@ void LibRaw::selectCRXTrack()
       }
     if (tiff_idx >= 0)
       flip = tiff_ifd[tiff_idx].t_flip;
+
+	if (ctmdcount == 1 && imgdata.makernotes.canon.multishot[0] && imgdata.makernotes.canon.multishot[1])
+		for (int c = 0; c < 4; c++)
+			cam_mul[c] = 1024;
   }
 }
 
@@ -443,6 +449,7 @@ int LibRaw::parseCR3(INT64 oAtomList,
 
   char UIID[16];
   uchar CMP1[85];
+  uchar thdr[4];
   uchar CDI1[60];
   char HandlerType[5], MediaFormatID[5];
   uint32_t relpos_inDir, relpos_inBox;
@@ -463,6 +470,11 @@ int LibRaw::parseCR3(INT64 oAtomList,
     err = 0;
     order = 0x4d4d;
     fseek(ifp, oAtom, SEEK_SET);
+	if (nesting == 0)
+	{
+      fread(thdr, 1, 4, ifp);
+      fseek(ifp, oAtom, SEEK_SET);
+	}
     szAtom = get4();
     FORC4 nmAtom[c] = AtomNameStack[nesting * 4 + c] = fgetc(ifp);
     AtomNameStack[(nesting + 1) * 4] = '\0';
@@ -478,6 +490,14 @@ int LibRaw::parseCR3(INT64 oAtomList,
 
     if (!AtomType)
     {
+		if (nesting == 0)
+		{
+			if(!memcmp(thdr,"II*\0",4) || !memcmp(thdr,"MM*\0",4))
+			{
+				err = 0;
+				goto fin;
+			}
+	    }
       err = 1;
     }
 
--- a/src/metadata/normalize_model.cpp
+++ b/src/metadata/normalize_model.cpp
@@ -104,6 +104,10 @@ void LibRaw::GetNormalizedModel()
       { CanonID_EOS_R7,            "EOS R7"},
       { CanonID_EOS_R10,           "EOS R10"},
       { CanonID_EOS_M50_Mark_II,   "EOS M50 Mark II"}, // M50m2, Kiss M2
+      { CanonID_EOS_R50,           "EOS R50"},
+      { CanonID_EOS_R6m2,          "EOS R6 Mark II"},
+      { CanonID_EOS_R8,            "EOS R8"},
+      { CanonID_EOS_R100,          "EOS R100"}
     },
 #if 0
     olyque[] = {
@@ -729,8 +733,12 @@ void LibRaw::GetNormalizedModel()
         {
           if (unique_id == unique[i].id)
           {
-            strcpy(model, unique[i].t_model);
-            strcpy(normalized_model, unique[i].t_model);
+            if (!strcmp(model, "EOS Ra")) {
+              strcpy(normalized_model, model);
+            } else {
+              strcpy(model, unique[i].t_model);
+              strcpy(normalized_model, unique[i].t_model);
+            }
             break;
           }
         }
@@ -742,14 +750,20 @@ void LibRaw::GetNormalizedModel()
           (strlen(imgdata.color.UniqueCameraModel) > 6) &&
           strncmp(imgdata.color.UniqueCameraModel+6, "PowerShot", 9))
       {
-        for (i = 0; i < int(sizeof unique / sizeof *unique); i++)
-        {
-          if (!strcmp(unique[i].t_model, imgdata.color.UniqueCameraModel+6))
+        if (!strcmp(model, "EOS Ra")) {
+          ilm.CamID = unique_id = CanonID_EOS_R;
+          strcpy(normalized_model, model);
+          // try_xml = 1; // ??
+        } else {
+          for (i = 0; i < int(sizeof unique / sizeof *unique); i++)
           {
-            ilm.CamID = unique_id = unique[i].id;
-            strcpy(normalized_model, unique[i].t_model);
-            try_xml = 1;
-            break;
+            if (!strcmp(unique[i].t_model, imgdata.color.UniqueCameraModel+6))
+            {
+              ilm.CamID = unique_id = unique[i].id;
+              strcpy(normalized_model, unique[i].t_model);
+              try_xml = 1;
+              break;
+            }
           }
         }
       }
--- a/src/tables/cameralist.cpp
+++ b/src/tables/cameralist.cpp
@@ -153,12 +153,17 @@ static const char *static_camera_list[] = {
 	"Canon PowerShot SX20 IS (CHDK hack)",
 	"Canon PowerShot SX30 IS (CHDK hack)",
 	"Canon EOS R",
+	"Canon EOS Ra",
 	"Canon EOS RP",
 	"Canon EOS R3",
 	"Canon EOS R5",
 	"Canon EOS R6",
+	"Canon EOS R6 Mark II",
 	"Canon EOS R7",
+	"Canon EOS R8",
 	"Canon EOS R10",
+	"Canon EOS R50",
+	"Canon EOS R100",
 	"Canon EOS D30",
 	"Canon EOS D60",
 	"Canon EOS 5DS",
--- a/src/tables/colordata.cpp
+++ b/src/tables/colordata.cpp
@@ -52,299 +52,309 @@ int LibRaw::adobe_coeff(unsigned make_idx, const char *t_model,
     { LIBRAW_CAMERAMAKER_RaspberryPi, "ov5647", 16, 0x3ff,
       { 12782,-4059,-379,-478,9066,1413,1340,1513,5176 } }, /* DJC */
 #endif
-    { LIBRAW_CAMERAMAKER_Canon, "EOS D30", 0, 0,
-      { 9900,-2771,-1324,-7072,14229,3140,-2790,3344,8861 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS D60", 0, 0xfa0,
-      { 6211,-1358,-896,-8557,15766,3012,-3001,3507,8567 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 5DS", 0, 0x3c96, // same CMs: 5DS, "5DS R" */
-      { 6250,-711,-808,-5153,12794,2636,-1249,2198,5610 } }, // v.2
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 5D Mark IV", 0, 0,
-      { 6446,-366,-864,-4436,12204,2513,-952,2496,6348 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 5D Mark III", 0, 0x3c80,
-      { 6722,-635,-963,-4287,12460,2028,-908,2162,5668 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 5D Mark II", 0, 0x3cf0,
-      { 4716,603,-830,-7798,15474,2480,-1496,1937,6651 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 5D", 0, 0xe6c,
-      { 6347,-479,-972,-8297,15954,2480,-1968,2131,7649 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 6D Mark II", 0, 0x38de,
-      { 6875,-970,-932,-4691,12459,2501,-874,1953,5809 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 6D", 0, 0x3c82,
-      { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 77D", 0, 0,
-      { 7377,-742,-998,-4235,11981,2549,-673,1918,5538 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 7D Mark II", 0, 0x3510,
-      { 7268,-1082,-969,-4186,11839,2663,-825,2029,5839 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 7D", 0, 0x3510,
-      { 6844,-996,-856,-3876,11761,2396,-593,1772,6198 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 850D", 0, 0,
-      { 9079,-1923,-1236,-4677,12454,2492,-922,2319,5565}},
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 800D", 0, 0,
-      { 6970,-512,-968,-4425,12161,2553,-739,1982,5601 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 80D", 0, 0,
-      { 7457,-671,-937,-4849,12495,2643,-1213,2354,5492 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 10D", 0, 0xfa0,
-      { 8250,-2044,-1127,-8092,15606,2664,-2893,3453,8348 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 250D", 0, 0,
-      { 9079,-1923,-1236,-4677,12454,2492,-922,2319,5565 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 200D", 0, 0,
-      { 7377,-742,-998,-4235,11981,2549,-673,1918,5538 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 20Da", 0, 0,
-      { 14155,-5065,-1382,-6550,14633,2039,-1623,1824,6561 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 20D", 0, 0xfff,
-      { 6599,-537,-891,-8071,15783,2424,-1983,2234,7462 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 30D", 0, 0,
-      { 6257,-303,-1000,-7880,15621,2396,-1714,1904,7046 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 40D", 0, 0x3f60,
-      { 6071,-747,-856,-7653,15365,2441,-2025,2553,7315 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 50D", 0, 0x3d93,
-      { 4920,616,-593,-6493,13964,2784,-1774,3178,7005 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 60Da", 0, 0x2ff7,
-      { 17492,-7240,-2023,-1791,10323,1701,-186,1329,5406 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 60D", 0, 0x2ff7,
-      { 6719,-994,-925,-4408,12426,2211,-887,2129,6051 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 70D", 0, 0x3bc7,
-      { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 100D", 0, 0x350f,
-      { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 300D", 0, 0xfa0,
-      { 8250,-2044,-1127,-8092,15606,2664,-2893,3453,8348 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 350D", 0, 0xfff,
-      { 6018,-617,-965,-8645,15881,2975,-1530,1719,7642 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 3000D", 0, 0,
-      { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 400D", 0, 0xe8e,
-      { 7054,-1501,-990,-8156,15544,2812,-1278,1414,7796 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 450D", 0, 0x390d,
-      { 5784,-262,-821,-7539,15064,2672,-1982,2681,7427 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 500D", 0, 0x3479,
-      { 4763,712,-646,-6821,14399,2640,-1921,3276,6561 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 550D", 0, 0x3dd7,
-      { 6941,-1164,-857,-3825,11597,2534,-416,1540,6039 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 600D", 0, 0x3510,
-      { 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 650D", 0, 0x354d,
-      { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 750D", 0, 0x3c00,
-      { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 760D", 0, 0x3c00,
-      { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 700D", 0, 0x3c00,
-      { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 90D", 0, 0,
-      { 11498, -3759, -1516, -5073, 12954,  2349,  -892,  1867,  6118}},
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 1000D", 0, 0xe43,
-      { 6771,-1139,-977,-7818,15123,2928,-1244,1437,7533 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 1100D", 0, 0x3510,
-      { 6444,-904,-893,-4563,12308,2535,-903,2016,6728 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 1200D", 0, 0x37c2,
-      { 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 1300D", 0, 0x37c2,
-      { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS 1500D", 0, 0,
-      { 8300,-2110,-1120,-4917,12694,2482,-938,2141,5666 } }, // v.2
-
-    { LIBRAW_CAMERAMAKER_Canon, "EOS RP", 0, 0,
-      { 8608,-2097,-1178,-5425,13265,2383,-1149,2238,5680 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS R3", 0, 0,
-      { 9423,-2839,-1195,-4532,12377,2415,-483,1374,5276 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS R5", 0, 0,
-      { 9766,-2953,-1254,-4276,12116,2433,-437,1336,5131 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS R6", 0, 0,
-      { 8293,-1611,-1132,-4759,12711,2275,-1013,2415,5509 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS D30", 0, 0,
+	  { 9900,-2771,-1324,-7072,14229,3140,-2790,3344,8861 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS D60", 0, 0xfa0,
+	  { 6211,-1358,-896,-8557,15766,3012,-3001,3507,8567 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 5DS", 0, 0x3c96, // same CMs: 5DS, "5DS R" */
+	  { 6250,-711,-808,-5153,12794,2636,-1249,2198,5610 } }, // v.2
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 5D Mark IV", 0, 0,
+	  { 6446,-366,-864,-4436,12204,2513,-952,2496,6348 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 5D Mark III", 0, 0x3c80,
+	  { 6722,-635,-963,-4287,12460,2028,-908,2162,5668 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 5D Mark II", 0, 0x3cf0,
+	  { 4716,603,-830,-7798,15474,2480,-1496,1937,6651 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 5D", 0, 0xe6c,
+	  { 6347,-479,-972,-8297,15954,2480,-1968,2131,7649 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 6D Mark II", 0, 0x38de,
+	  { 6875,-970,-932,-4691,12459,2501,-874,1953,5809 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 6D", 0, 0x3c82,
+	  { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 77D", 0, 0,
+	  { 7377,-742,-998,-4235,11981,2549,-673,1918,5538 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 7D Mark II", 0, 0x3510,
+	  { 7268,-1082,-969,-4186,11839,2663,-825,2029,5839 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 7D", 0, 0x3510,
+	  { 6844,-996,-856,-3876,11761,2396,-593,1772,6198 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 850D", 0, 0,
+	  { 9079,-1923,-1236,-4677,12454,2492,-922,2319,5565}},
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 800D", 0, 0,
+	  { 6970,-512,-968,-4425,12161,2553,-739,1982,5601 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 80D", 0, 0,
+	  { 7457,-671,-937,-4849,12495,2643,-1213,2354,5492 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 10D", 0, 0xfa0,
+	  { 8250,-2044,-1127,-8092,15606,2664,-2893,3453,8348 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 250D", 0, 0,
+	  { 9079,-1923,-1236,-4677,12454,2492,-922,2319,5565 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 200D", 0, 0,
+	  { 7377,-742,-998,-4235,11981,2549,-673,1918,5538 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 20Da", 0, 0,
+	  { 14155,-5065,-1382,-6550,14633,2039,-1623,1824,6561 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 20D", 0, 0xfff,
+	  { 6599,-537,-891,-8071,15783,2424,-1983,2234,7462 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 30D", 0, 0,
+	  { 6257,-303,-1000,-7880,15621,2396,-1714,1904,7046 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 40D", 0, 0x3f60,
+	  { 6071,-747,-856,-7653,15365,2441,-2025,2553,7315 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 50D", 0, 0x3d93,
+	  { 4920,616,-593,-6493,13964,2784,-1774,3178,7005 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 60Da", 0, 0x2ff7,
+	  { 17492,-7240,-2023,-1791,10323,1701,-186,1329,5406 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 60D", 0, 0x2ff7,
+	  { 6719,-994,-925,-4408,12426,2211,-887,2129,6051 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 70D", 0, 0x3bc7,
+	  { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 100D", 0, 0x350f,
+	  { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 300D", 0, 0xfa0,
+	  { 8250,-2044,-1127,-8092,15606,2664,-2893,3453,8348 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 350D", 0, 0xfff,
+	  { 6018,-617,-965,-8645,15881,2975,-1530,1719,7642 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 3000D", 0, 0,
+	  { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 400D", 0, 0xe8e,
+	  { 7054,-1501,-990,-8156,15544,2812,-1278,1414,7796 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 450D", 0, 0x390d,
+	  { 5784,-262,-821,-7539,15064,2672,-1982,2681,7427 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 500D", 0, 0x3479,
+	  { 4763,712,-646,-6821,14399,2640,-1921,3276,6561 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 550D", 0, 0x3dd7,
+	  { 6941,-1164,-857,-3825,11597,2534,-416,1540,6039 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 600D", 0, 0x3510,
+	  { 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 650D", 0, 0x354d,
+	  { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 750D", 0, 0x3c00,
+	  { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 760D", 0, 0x3c00,
+	  { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 700D", 0, 0x3c00,
+	  { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 90D", 0, 0,
+	  { 11498, -3759, -1516, -5073, 12954,  2349,  -892,  1867,  6118}},
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 1000D", 0, 0xe43,
+	  { 6771,-1139,-977,-7818,15123,2928,-1244,1437,7533 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 1100D", 0, 0x3510,
+	  { 6444,-904,-893,-4563,12308,2535,-903,2016,6728 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 1200D", 0, 0x37c2,
+	  { 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 1300D", 0, 0x37c2,
+	  { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS 1500D", 0, 0,
+	  { 8300,-2110,-1120,-4917,12694,2482,-938,2141,5666 } }, // v.2
+
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS RP", 0, 0,
+	  { 8608,-2097,-1178,-5425,13265,2383,-1149,2238,5680 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS R3", 0, 0,
+	  { 9423,-2839,-1195,-4532,12377,2415,-483,1374,5276 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS R50", 0, 0,
+	  {  9269, -2012, -1107, -3990, 11762,  2527,  -569,  2093,  4913 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS R100", 0, 0,
+	  {  8230, -1515, -1032, -4179, 12005,  2454,  -649,  2076,  4711 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS R5", 0, 0,
+	  { 9766,-2953,-1254,-4276,12116,2433,-437,1336,5131 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS R6 Mark II", 0, 0,
+	  { 9539, -2795, -1224, -4175, 11998, 2458, -465, 1755,6048 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS R6", 0, 0,
+	  { 8293,-1611,-1132,-4759,12711,2275,-1013,2415,5509 } },
 	{ LIBRAW_CAMERAMAKER_Canon, "EOS R7", 0, 0,
 	  { 10424, -3138, -1300, -4221, 11938,  2584,  -547,  1658,  6183 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS R8", 0, 0,
+	  {  9539, -2795, -1224, -4175, 11998,  2458,  -465,  1755,  6048 } },
 	{ LIBRAW_CAMERAMAKER_Canon, "EOS R10", 0, 0,
 	  {  9269, -2012, -1107, -3990, 11762,  2527,  -569,  2093,  4913 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS Ra", 0, 0,
+	  { 22880,-11531,-2223,-2034,10469,1809, 316,1401,5769 } },
 	{ LIBRAW_CAMERAMAKER_Canon, "EOS R", 0, 0,
-      { 8293,-1789,-1094,-5025,12925,2327,-1199,2769,6108 } }, // v.2
-
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M6 Mark II", 0, 0,
-      { 11498,-3759,-1516,-5073,12954,2349,-892,1867,6118 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M6", 0, 0,
-      { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M50 Mark II", 0, 0,
-      { 10463,-2173,-1437,-4856,12635,2482,-1216,2915,7237 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M50", 0, 0,
-      { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M5", 0, 0,
-      { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M3", 0, 0,
-      { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M200", 0, 0,
-      { 10463,-2173,-1437,-4856,12635,2482,-1216,2915,7237 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M2", 0, 0,
-      { 6400,-480,-888,-5294,13416,2047,-1296,2203,6137 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M100", 0, 0,
-      { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M10", 0, 0,
-      { 6400,-480,-888,-5294,13416,2047,-1296,2203,6137 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS M", 0, 0,
-      { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
-
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1Ds Mark III", 0, 0x3bb0,
-      { 5859,-211,-930,-8255,16017,2353,-1732,1887,7448 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1Ds Mark II", 0, 0xe80,
-      { 6517,-602,-867,-8180,15926,2378,-1618,1771,7633 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark IV", 0, 0x3bb0,
-      { 6014,-220,-795,-4109,12014,2361,-561,1824,5787 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark III", 0, 0x3bb0,
-      { 6291,-540,-976,-8350,16145,2311,-1714,1858,7326 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark II N", 0, 0xe80,
-      { 6240,-466,-822,-8180,15825,2500,-1801,1938,8042 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark II", 0, 0xe80,
-      { 6264,-582,-724,-8312,15948,2504,-1744,1919,8664 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1Ds", 0, 0xe20,
-      { 3925,4060,-1739,-8973,16552,2545,-3287,3945,8243 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1D C", 0, 0x3c4e,
-      { 6847,-614,-1014,-4669,12737,2139,-1197,2488,6846 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1D X Mark III", 0, 0,
-      {  8971, -2022, -1242, -5405, 13249,  2380, -1280,  2483,  6072}},
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1D X Mark II", 0, 0x3c4e,
-      { 7596,-978,-967,-4808,12571,2503,-1398,2567,5752 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1D X", 0, 0x3c4e,
-      { 6847,-614,-1014,-4669,12737,2139,-1197,2488,6846 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS-1D", 0, 0xe20,
-      { 6806,-179,-1020,-8097,16415,1687,-3267,4236,7690 } },
-    { LIBRAW_CAMERAMAKER_Canon, "EOS C500", 853, 0,
-      { 17851,-10604,922,-7425,16662,763,-3660,3636,22278 } }, /* DJC */
-
-    { LIBRAW_CAMERAMAKER_Canon, "IXUS 160", 0, 0,
-      { 11657,-3781,-1136,-3544,11262,2283,-160,1219,4700 } }, /* DJC */
-    {LIBRAW_CAMERAMAKER_Canon, "PowerShot 600", 0, 0,
-      { -3822,10019,1311,4085,-157,3386,-5341,10829,4812,-1969,10969,1126 } },
-
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A3300 IS", 0, 0,
-      { 10826,-3654,-1023,-3215,11310,1906,0,999,4960 } }, /* DJC */
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A460", 0, 0,
-      { 6493,-2338,-885,-1589,5934,697,-445,1368,2543 } }, // CHDK
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A470", 0, 0,
-      { 12513,-4407,-1242,-2680,10276,2405,-878,2215,4734 } }, /* DJC */
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A530", 0, 0,
-      { 7252,-2405,-1223,-2102,6560,523,-112,704,3007 } }, // CHDK
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A50", 0, 0,
-      { -6233,10706,1825,3260,821,3980,-6512,10745,6287,-2539,12232,262 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A5", 0, 0,
-      { -5707,10308,2002,2662,1829,4139,-6265,11063,6033,-2659,11911,593 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A610", 0, 0,
-      { 15591,-6402,-1592,-5365,13198,2168,-1300,1824,5075 } }, /* DJC */
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A620", 0, 0,
-      { 15265,-6193,-1558,-4125,12116,2010,-888,1639,5220 } }, /* DJC */
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A630", 0, 0,
-      { 14201,-5308,-1757,-6087,14472,1617,-2191,3105,5348 } }, /* DJC */
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A640", 0, 0,
-      { 13124,-5329,-1390,-3602,11658,1944,-1612,2863,4885 } }, /* DJC */
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A650 IS", 0, 0,
-      { 9427,-3036,-959,-2581,10671,1911,-1039,1982,4430 } }, /* DJC */
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot A720 IS", 0, 0,
-      { 14573,-5482,-1546,-1266,9799,1468,-1040,1912,3810 } }, /* DJC */
-
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot D10", 127, 0,
-      { 14052,-5229,-1156,-1325,9420,2252,-498,1957,4116 } }, /* DJC */
-
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G10", 0, 0,
-      { 11093,-3906,-1028,-5047,12492,2879,-1003,1750,5561 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G11", 0, 0,
-      { 12177,-4817,-1069,-1612,9864,2049,-98,850,4471 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G12", 0, 0,
-      { 13244,-5501,-1248,-1508,9858,1935,-270,1083,4366 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G15", 0, 0,
-      { 7474,-2301,-567,-4056,11456,2975,-222,716,4181 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G16", 0, 0,
-      { 8020,-2687,-682,-3704,11879,2052,-965,1921,5556 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G1 X Mark III", 0, 0,
-      { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G1 X Mark II", 0, 0,
-      { 7378,-1255,-1043,-4088,12251,2048,-876,1946,5805 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G1 X", 0, 0,
-      { 7378,-1255,-1043,-4088,12251,2048,-876,1946,5805 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G1", 0, 0,
-      { -5686,10300,2223,4725,-1157,4383,-6128,10783,6163,-2688,12093,604 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G2", 0, 0,
-      { 9194,-2787,-1059,-8098,15657,2608,-2610,3064,7867 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G3 X", 0, 0,
-      { 9701,-3857,-921,-3149,11537,1817,-786,1817,5147 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G3", 0, 0,
-      { 9326,-2882,-1084,-7940,15447,2677,-2620,3090,7740 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G5 X Mark II",0, 0,
-      { 11629, -5713, -914, -2706, 11090, 1842, -206, 1225, 5515 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G5 X",0, 0,
-      { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G5", 0, 0,
-      { 9869,-2972,-942,-7314,15098,2369,-1898,2536,7282 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G6", 0, 0,
-      { 9876,-3774,-871,-7613,14807,3071,-1448,1305,7485 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G7 X Mark III", 0, 0,
-      { 11629, -5713, -914, -2706, 11090, 1842, -206, 1225, 5515 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G7 X Mark II", 0, 0,
-      { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G7 X", 0, 0,
-      { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G9 X Mark II", 0, 0,
-      { 10056,-4131,-944,-2576,11143,1625,-238,1294,5179 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G9 X",0, 0,
-      { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot G9", 0, 0,
-      { 7368,-2141,-598,-5621,13254,2625,-1418,1696,5743 } },
-
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S2 IS", 0, 0,
-      { 5477,-1435,-992,-1868,6639,510,-58,792,2670 } }, // CHDK
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S3 IS", 0, 0,
-      { 14062,-5199,-1446,-4712,12470,2243,-1286,2028,4836 } }, /* DJC */
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S30", 0, 0,
-      { 10744,-3813,-1142,-7962,15966,2075,-2492,2805,7744 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S40", 0, 0,
-      { 8606,-2573,-949,-8237,15489,2974,-2649,3076,9100 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S45", 0, 0, // +
-      { 8251,-2410,-964,-8047,15430,2823,-2380,2824,8119 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S50", 0, 0,
-      { 8979,-2658,-871,-7721,15500,2357,-1773,2366,6634 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S60", 0, 0,
-      { 8794,-2482,-797,-7804,15403,2572,-1422,1996,7083 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S70", 0, 0,
-      { 9976,-3810,-832,-7115,14463,2906,-901,989,7889 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S90", 0, 0,
-      { 12374,-5016,-1049,-1677,9902,2078,-83,852,4683 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S95", 0, 0,
-      { 13440,-5896,-1279,-1236,9598,1931,-180,1001,4651 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S120", 0, 0,
-      { 6961,-1685,-695,-4625,12945,1836,-1114,2152,5518 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S110", 0, 0,
-      { 8039,-2643,-654,-3783,11230,2930,-206,690,4194 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot S100", 0, 0,
-      { 7968,-2565,-636,-2873,10697,2513,180,667,4211 } },
-
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SD300", 0, 0,
-      { 6526,-1720,-1075,-1390,5945,602,-90,820,2380 } }, // CHDK
-
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX1 IS", 0, 0,
-      { 6578,-259,-502,-5974,13030,3309,-308,1058,4970 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX20 IS", 0, 0,
-      { 8275,-2904,-1260,-128,5305,505,51,481,2450 } }, // CHDK
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX30 IS", 0, 0,
-      { 13014,-4698,-1026,-2001,9615,2386,-164,1423,3759 } }, // CHDK
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX40 HS", 0, 0,
-      { 54480,-17404,-8039,-7505,44044,1136,-580,7158,11891 } }, // CHDK
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX50 HS", 0, 0,
-      { 12432,-4753,-1247,-2110,10691,1629,-412,1623,4926 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX60 HS", 0, 0,
-      { 13161,-5451,-1344,-1989,10654,1531,-47,1271,4955 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX70 HS", 0, 0,
-      { 18285,-8907,-1951,-1845,10688,1323,364,1101,5139 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX110 IS", 0, 0,
-      { 14134,-5576,-1527,-1991,10719,1273,-1158,1929,3581 } }, /* DJC */
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX120 IS", 0, 0,
-      { 7286,-2242,-1047,41,4401,457,269,684,1864 } }, // CHDK
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX220 HS", 0, 0,
-      { 13898,-5076,-1447,-1405,10109,1297,-244,1860,3687 } }, /* DJC */
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX710 HS", 0, 0,
-      { 13161,-5451,-1344,-1989,10654,1531,-47,1271,4955 } },
-
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot Pro1", 0, 0,
-      { 10062,-3522,-1000,-7643,15117,2730,-765,817,7322 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot Pro70", 34, 0,
-      { -5106,10695,1576,3820,53,4566,-6497,10736,6701,-3336,11887,1394 } },
-    { LIBRAW_CAMERAMAKER_Canon, "PowerShot Pro90", 0, 0,
-      { -5912,10768,2288,4612,-989,4333,-6153,10897,5944,-2907,12288,624 } },
+	  { 8293,-1789,-1094,-5025,12925,2327,-1199,2769,6108 } }, // v.2
+
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M6 Mark II", 0, 0,
+	  { 11498,-3759,-1516,-5073,12954,2349,-892,1867,6118 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M6", 0, 0,
+	  { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M50 Mark II", 0, 0,
+	  { 10463,-2173,-1437,-4856,12635,2482,-1216,2915,7237 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M50", 0, 0,
+	  { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M5", 0, 0,
+	  { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M3", 0, 0,
+	  { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M200", 0, 0,
+	  { 10463,-2173,-1437,-4856,12635,2482,-1216,2915,7237 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M2", 0, 0,
+	  { 6400,-480,-888,-5294,13416,2047,-1296,2203,6137 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M100", 0, 0,
+	  { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M10", 0, 0,
+	  { 6400,-480,-888,-5294,13416,2047,-1296,2203,6137 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS M", 0, 0,
+	  { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
+
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1Ds Mark III", 0, 0x3bb0,
+	  { 5859,-211,-930,-8255,16017,2353,-1732,1887,7448 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1Ds Mark II", 0, 0xe80,
+	  { 6517,-602,-867,-8180,15926,2378,-1618,1771,7633 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark IV", 0, 0x3bb0,
+	  { 6014,-220,-795,-4109,12014,2361,-561,1824,5787 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark III", 0, 0x3bb0,
+	  { 6291,-540,-976,-8350,16145,2311,-1714,1858,7326 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark II N", 0, 0xe80,
+	  { 6240,-466,-822,-8180,15825,2500,-1801,1938,8042 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark II", 0, 0xe80,
+	  { 6264,-582,-724,-8312,15948,2504,-1744,1919,8664 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1Ds", 0, 0xe20,
+	  { 3925,4060,-1739,-8973,16552,2545,-3287,3945,8243 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1D C", 0, 0x3c4e,
+	  { 6847,-614,-1014,-4669,12737,2139,-1197,2488,6846 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1D X Mark III", 0, 0,
+	  {  8971, -2022, -1242, -5405, 13249,  2380, -1280,  2483,  6072}},
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1D X Mark II", 0, 0x3c4e,
+	  { 7596,-978,-967,-4808,12571,2503,-1398,2567,5752 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1D X", 0, 0x3c4e,
+	  { 6847,-614,-1014,-4669,12737,2139,-1197,2488,6846 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS-1D", 0, 0xe20,
+	  { 6806,-179,-1020,-8097,16415,1687,-3267,4236,7690 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "EOS C500", 853, 0,
+	  { 17851,-10604,922,-7425,16662,763,-3660,3636,22278 } }, /* DJC */
+
+	{ LIBRAW_CAMERAMAKER_Canon, "IXUS 160", 0, 0,
+	  { 11657,-3781,-1136,-3544,11262,2283,-160,1219,4700 } }, /* DJC */
+	{LIBRAW_CAMERAMAKER_Canon, "PowerShot 600", 0, 0,
+	  { -3822,10019,1311,4085,-157,3386,-5341,10829,4812,-1969,10969,1126 } },
+
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A3300 IS", 0, 0,
+	  { 10826,-3654,-1023,-3215,11310,1906,0,999,4960 } }, /* DJC */
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A460", 0, 0,
+	  { 6493,-2338,-885,-1589,5934,697,-445,1368,2543 } }, // CHDK
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A470", 0, 0,
+	  { 12513,-4407,-1242,-2680,10276,2405,-878,2215,4734 } }, /* DJC */
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A530", 0, 0,
+	  { 7252,-2405,-1223,-2102,6560,523,-112,704,3007 } }, // CHDK
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A50", 0, 0,
+	  { -6233,10706,1825,3260,821,3980,-6512,10745,6287,-2539,12232,262 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A5", 0, 0,
+	  { -5707,10308,2002,2662,1829,4139,-6265,11063,6033,-2659,11911,593 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A610", 0, 0,
+	  { 15591,-6402,-1592,-5365,13198,2168,-1300,1824,5075 } }, /* DJC */
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A620", 0, 0,
+	  { 15265,-6193,-1558,-4125,12116,2010,-888,1639,5220 } }, /* DJC */
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A630", 0, 0,
+	  { 14201,-5308,-1757,-6087,14472,1617,-2191,3105,5348 } }, /* DJC */
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A640", 0, 0,
+	  { 13124,-5329,-1390,-3602,11658,1944,-1612,2863,4885 } }, /* DJC */
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A650 IS", 0, 0,
+	  { 9427,-3036,-959,-2581,10671,1911,-1039,1982,4430 } }, /* DJC */
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot A720 IS", 0, 0,
+	  { 14573,-5482,-1546,-1266,9799,1468,-1040,1912,3810 } }, /* DJC */
+
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot D10", 127, 0,
+	  { 14052,-5229,-1156,-1325,9420,2252,-498,1957,4116 } }, /* DJC */
+
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G10", 0, 0,
+	  { 11093,-3906,-1028,-5047,12492,2879,-1003,1750,5561 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G11", 0, 0,
+	  { 12177,-4817,-1069,-1612,9864,2049,-98,850,4471 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G12", 0, 0,
+	  { 13244,-5501,-1248,-1508,9858,1935,-270,1083,4366 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G15", 0, 0,
+	  { 7474,-2301,-567,-4056,11456,2975,-222,716,4181 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G16", 0, 0,
+	  { 8020,-2687,-682,-3704,11879,2052,-965,1921,5556 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G1 X Mark III", 0, 0,
+	  { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G1 X Mark II", 0, 0,
+	  { 7378,-1255,-1043,-4088,12251,2048,-876,1946,5805 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G1 X", 0, 0,
+	  { 7378,-1255,-1043,-4088,12251,2048,-876,1946,5805 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G1", 0, 0,
+	  { -5686,10300,2223,4725,-1157,4383,-6128,10783,6163,-2688,12093,604 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G2", 0, 0,
+	  { 9194,-2787,-1059,-8098,15657,2608,-2610,3064,7867 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G3 X", 0, 0,
+	  { 9701,-3857,-921,-3149,11537,1817,-786,1817,5147 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G3", 0, 0,
+	  { 9326,-2882,-1084,-7940,15447,2677,-2620,3090,7740 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G5 X Mark II",0, 0,
+	  { 11629, -5713, -914, -2706, 11090, 1842, -206, 1225, 5515 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G5 X",0, 0,
+	  { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G5", 0, 0,
+	  { 9869,-2972,-942,-7314,15098,2369,-1898,2536,7282 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G6", 0, 0,
+	  { 9876,-3774,-871,-7613,14807,3071,-1448,1305,7485 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G7 X Mark III", 0, 0,
+	  { 11629, -5713, -914, -2706, 11090, 1842, -206, 1225, 5515 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G7 X Mark II", 0, 0,
+	  { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G7 X", 0, 0,
+	  { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G9 X Mark II", 0, 0,
+	  { 10056,-4131,-944,-2576,11143,1625,-238,1294,5179 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G9 X",0, 0,
+	  { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot G9", 0, 0,
+	  { 7368,-2141,-598,-5621,13254,2625,-1418,1696,5743 } },
+
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S2 IS", 0, 0,
+	  { 5477,-1435,-992,-1868,6639,510,-58,792,2670 } }, // CHDK
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S3 IS", 0, 0,
+	  { 14062,-5199,-1446,-4712,12470,2243,-1286,2028,4836 } }, /* DJC */
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S30", 0, 0,
+	  { 10744,-3813,-1142,-7962,15966,2075,-2492,2805,7744 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S40", 0, 0,
+	  { 8606,-2573,-949,-8237,15489,2974,-2649,3076,9100 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S45", 0, 0, // +
+	  { 8251,-2410,-964,-8047,15430,2823,-2380,2824,8119 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S50", 0, 0,
+	  { 8979,-2658,-871,-7721,15500,2357,-1773,2366,6634 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S60", 0, 0,
+	  { 8794,-2482,-797,-7804,15403,2572,-1422,1996,7083 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S70", 0, 0,
+	  { 9976,-3810,-832,-7115,14463,2906,-901,989,7889 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S90", 0, 0,
+	  { 12374,-5016,-1049,-1677,9902,2078,-83,852,4683 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S95", 0, 0,
+	  { 13440,-5896,-1279,-1236,9598,1931,-180,1001,4651 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S120", 0, 0,
+	  { 6961,-1685,-695,-4625,12945,1836,-1114,2152,5518 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S110", 0, 0,
+	  { 8039,-2643,-654,-3783,11230,2930,-206,690,4194 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot S100", 0, 0,
+	  { 7968,-2565,-636,-2873,10697,2513,180,667,4211 } },
+
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SD300", 0, 0,
+	  { 6526,-1720,-1075,-1390,5945,602,-90,820,2380 } }, // CHDK
+
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX1 IS", 0, 0,
+	  { 6578,-259,-502,-5974,13030,3309,-308,1058,4970 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX20 IS", 0, 0,
+	  { 8275,-2904,-1260,-128,5305,505,51,481,2450 } }, // CHDK
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX30 IS", 0, 0,
+	  { 13014,-4698,-1026,-2001,9615,2386,-164,1423,3759 } }, // CHDK
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX40 HS", 0, 0,
+	  { 54480,-17404,-8039,-7505,44044,1136,-580,7158,11891 } }, // CHDK
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX50 HS", 0, 0,
+	  { 12432,-4753,-1247,-2110,10691,1629,-412,1623,4926 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX60 HS", 0, 0,
+	  { 13161,-5451,-1344,-1989,10654,1531,-47,1271,4955 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX70 HS", 0, 0,
+	  { 18285,-8907,-1951,-1845,10688,1323,364,1101,5139 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX110 IS", 0, 0,
+	  { 14134,-5576,-1527,-1991,10719,1273,-1158,1929,3581 } }, /* DJC */
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX120 IS", 0, 0,
+	  { 7286,-2242,-1047,41,4401,457,269,684,1864 } }, // CHDK
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX220 HS", 0, 0,
+	  { 13898,-5076,-1447,-1405,10109,1297,-244,1860,3687 } }, /* DJC */
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot SX710 HS", 0, 0,
+	  { 13161,-5451,-1344,-1989,10654,1531,-47,1271,4955 } },
+
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot Pro1", 0, 0,
+	  { 10062,-3522,-1000,-7643,15117,2730,-765,817,7322 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot Pro70", 34, 0,
+	  { -5106,10695,1576,3820,53,4566,-6497,10736,6701,-3336,11887,1394 } },
+	{ LIBRAW_CAMERAMAKER_Canon, "PowerShot Pro90", 0, 0,
+	  { -5912,10768,2288,4612,-989,4333,-6153,10897,5944,-2907,12288,624 } },
 
     { LIBRAW_CAMERAMAKER_Casio, "EX-F1", 0, 0,
       { 9084,-2016,-848,-6711,14351,2570,-1059,1725,6135 } },
openSUSE Build Service is sponsored by