]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Mon, 22 Dec 2014 01:44:59 +0000 (01:44 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Mon, 22 Dec 2014 01:44:59 +0000 (01:44 +0000)
MagickCore/cache.c
MagickCore/identify.c
MagickCore/property.c
MagickCore/resize.c
MagickCore/resource.c
MagickCore/string.c
MagickCore/string_.h
coders/json.c
config/policy.xml

index 58d243f1b5ea639a954406f61f3967e68589da72..757b3bc9872b0761abc1826701134b57005bd9e1 100644 (file)
@@ -3240,7 +3240,7 @@ static MagickBooleanType SetPixelCacheExtent(Image *image,MagickSizeType length)
         format[MaxTextExtent],
         message[MaxTextExtent];
 
-      (void) FormatMagickSize(length,MagickFalse,format);
+      (void) FormatMagickSize(length,MagickFalse,"B",format);
       (void) FormatLocaleString(message,MaxTextExtent,
         "extend %s (%s[%d], disk, %s)",cache_info->filename,
         cache_info->cache_filename,cache_info->file,format);
@@ -3371,7 +3371,8 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
                 }
               if (image->debug != MagickFalse)
                 {
-                  (void) FormatMagickSize(cache_info->length,MagickTrue,format);
+                  (void) FormatMagickSize(cache_info->length,MagickTrue,"B",
+                    format);
                   type=CommandOptionToMnemonic(MagickCacheOptions,(ssize_t)
                     cache_info->type);
                   (void) FormatLocaleString(message,MaxTextExtent,
@@ -3430,7 +3431,7 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
                 }
               if (image->debug != MagickFalse)
                 {
-                  (void) FormatMagickSize(cache_info->length,MagickFalse,
+                  (void) FormatMagickSize(cache_info->length,MagickFalse,"B",
                     format);
                   type=CommandOptionToMnemonic(MagickCacheOptions,(ssize_t)
                     cache_info->type);
@@ -3513,7 +3514,8 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
                 }
               if (image->debug != MagickFalse)
                 {
-                  (void) FormatMagickSize(cache_info->length,MagickTrue,format);
+                  (void) FormatMagickSize(cache_info->length,MagickTrue,"B",
+                    format);
                   type=CommandOptionToMnemonic(MagickCacheOptions,(ssize_t)
                     cache_info->type);
                   (void) FormatLocaleString(message,MaxTextExtent,
@@ -3538,7 +3540,7 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
     }
   if (image->debug != MagickFalse)
     {
-      (void) FormatMagickSize(cache_info->length,MagickFalse,format);
+      (void) FormatMagickSize(cache_info->length,MagickFalse,"B",format);
       type=CommandOptionToMnemonic(MagickCacheOptions,(ssize_t)
         cache_info->type);
       (void) FormatLocaleString(message,MaxTextExtent,
index 42a9695cbb13ff451190f49fdb2ce491e336ee1a..cb6d7b3436abab73172c6b50135c67cc0404a903 100644 (file)
@@ -599,7 +599,8 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file,
         {
           if (image->total_colors != 0)
             {
-              (void) FormatMagickSize(image->total_colors,MagickFalse,format);
+              (void) FormatMagickSize(image->total_colors,MagickFalse,"B",
+                format);
               (void) FormatLocaleFile(file,"%s ",format);
             }
         }
@@ -617,7 +618,8 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file,
           image->error.normalized_maximum_error);
       if (GetBlobSize(image) != 0)
         {
-          (void) FormatMagickSize(GetBlobSize(image),MagickFalse,format);
+          (void) FormatMagickSize(GetBlobSize(image),MagickFalse,"B",
+            format);
           (void) FormatLocaleFile(file,"%s ",format);
         }
       (void) FormatLocaleFile(file,"%0.3fu %lu:%02lu.%03lu",user_time,
@@ -1381,15 +1383,15 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file,
     }
   (void) FormatLocaleFile(file,"  Tainted: %s\n",CommandOptionToMnemonic(
     MagickBooleanOptions,(ssize_t) image->taint));
-  (void) FormatMagickSize(GetBlobSize(image),MagickFalse,format);
+  (void) FormatMagickSize(GetBlobSize(image),MagickFalse,"B",format);
   (void) FormatLocaleFile(file,"  Filesize: %s\n",format);
   (void) FormatMagickSize((MagickSizeType) image->columns*image->rows,
-    MagickFalse,format);
+    MagickFalse,"B",format);
   if (strlen(format) > 1)
     format[strlen(format)-1]='\0';
   (void) FormatLocaleFile(file,"  Number pixels: %s\n",format);
   (void) FormatMagickSize((MagickSizeType) ((double) image->columns*image->rows/
-    elapsed_time+0.5),MagickFalse,format);
+    elapsed_time+0.5),MagickFalse,"B",format);
   (void) FormatLocaleFile(file,"  Pixels per second: %s\n",format);
   (void) FormatLocaleFile(file,"  User time: %0.3fu\n",user_time);
   (void) FormatLocaleFile(file,"  Elapsed time: %lu:%02lu.%03lu\n",
index 036fabf340def742a28e2d559c5fad03922b9c78..3724a12e8dc457473d3d004fbe9551b32a4f2c97 100644 (file)
@@ -2294,11 +2294,7 @@ static const char *GetMagickPropertyLetter(ImageInfo *image_info,
     case 'b':  /* image size read in - in bytes */
     {
       WarnNoImageReturn("\"%%%c\"",letter);
-      (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
-        ((MagickOffsetType) image->extent));
-      if (image->extent != (MagickSizeType) ((size_t) image->extent))
-        (void) FormatMagickSize(image->extent,MagickFalse,value);
-      ConcatenateMagickString(value,"B",MaxTextExtent);
+      (void) FormatMagickSize(image->extent,MagickFalse,"B",value);
       break;
     }
     case 'c':  /* image comment property - empty string by default */
@@ -2975,12 +2971,8 @@ MagickExport const char *GetMagickProperty(ImageInfo *image_info,
         }
       if (LocaleCompare("size",property) == 0)
         {
-          char
-            format[MaxTextExtent];
-
           WarnNoImageReturn("\"%%[%s]\"",property);
-          (void) FormatMagickSize(GetBlobSize(image),MagickFalse,format);
-          (void) FormatLocaleString(value,MaxTextExtent,"%sB",format);
+          (void) FormatMagickSize(GetBlobSize(image),MagickFalse,"B",value);
           break;
         }
       if (LocaleCompare("skewness",property) == 0)
index 4a17c28c297072993ebfd571878cd2a3972c347b..83779e6c0eae6d31d2484345175cf270194fe44b 100644 (file)
@@ -3699,7 +3699,7 @@ MagickExport Image *ThumbnailImage(const Image *image,const size_t columns,
     }
   (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
     attributes.st_mtime);
-  (void) FormatMagickSize(GetBlobSize(image),MagickFalse,value);
+  (void) FormatMagickSize(GetBlobSize(image),MagickFalse,"B",value);
   (void) ConcatenateMagickString(value,"B",MaxTextExtent);
   (void) SetImageProperty(thumbnail_image,"Thumb::Size",value,exception);
   (void) FormatLocaleString(value,MaxTextExtent,"image/%s",image->magick);
index fbc1acd299407d040da8a7121439bf3a3da43d3a..9594a2cafd86927b5557dcbfbc6c46c47a3a04ae 100644 (file)
@@ -174,7 +174,7 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
     limit;
 
   status=MagickFalse;
-  (void) FormatMagickSize(size,MagickFalse,resource_request);
+  (void) FormatMagickSize(size,MagickFalse,"B",resource_request);
   if (resource_semaphore == (SemaphoreInfo *) NULL)
     ActivateSemaphoreInfo(&resource_semaphore);
   LockSemaphoreInfo(resource_semaphore);
@@ -187,9 +187,9 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
       status=(resource_info.area_limit == MagickResourceInfinity) ||
         (size < limit) ? MagickTrue : MagickFalse;
       (void) FormatMagickSize((MagickSizeType) resource_info.area,MagickFalse,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize(resource_info.area_limit,MagickFalse,
-        resource_limit);
+        "B",resource_limit);
       break;
     }
     case MemoryResource:
@@ -200,9 +200,9 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
         ((MagickSizeType) resource_info.memory < limit) ? MagickTrue :
         MagickFalse;
       (void) FormatMagickSize((MagickSizeType) resource_info.memory,MagickTrue,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize(resource_info.memory_limit,MagickTrue,
-        resource_limit);
+        "B",resource_limit);
       break;
     }
     case MapResource:
@@ -212,9 +212,9 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
       status=(resource_info.map_limit == MagickResourceInfinity) ||
         ((MagickSizeType) resource_info.map < limit) ? MagickTrue : MagickFalse;
       (void) FormatMagickSize((MagickSizeType) resource_info.map,MagickTrue,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize(resource_info.map_limit,MagickTrue,
-        resource_limit);
+        "B",resource_limit);
       break;
     }
     case DiskResource:
@@ -225,9 +225,9 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
         ((MagickSizeType) resource_info.disk < limit) ? MagickTrue :
         MagickFalse;
       (void) FormatMagickSize((MagickSizeType) resource_info.disk,MagickTrue,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize(resource_info.disk_limit,MagickTrue,
-        resource_limit);
+        "B",resource_limit);
       break;
     }
     case FileResource:
@@ -238,9 +238,9 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
         ((MagickSizeType) resource_info.file < limit) ?
         MagickTrue : MagickFalse;
       (void) FormatMagickSize((MagickSizeType) resource_info.file,MagickFalse,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize((MagickSizeType) resource_info.file_limit,
-        MagickFalse,resource_limit);
+        MagickFalse,"B",resource_limit);
       break;
     }
     case HeightResource:
@@ -250,9 +250,9 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
       status=(resource_info.area_limit == MagickResourceInfinity) ||
         (size < limit) ? MagickTrue : MagickFalse;
       (void) FormatMagickSize((MagickSizeType) resource_info.height,MagickFalse,
-        resource_current);
+        "P",resource_current);
       (void) FormatMagickSize(resource_info.height_limit,MagickFalse,
-        resource_limit);
+        "P",resource_limit);
       break;
     }
     case ThreadResource:
@@ -262,9 +262,9 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
         ((MagickSizeType) resource_info.thread < limit) ?
         MagickTrue : MagickFalse;
       (void) FormatMagickSize((MagickSizeType) resource_info.thread,MagickFalse,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize((MagickSizeType) resource_info.thread_limit,
-        MagickFalse,resource_limit);
+        MagickFalse,"B",resource_limit);
       break;
     }
     case ThrottleResource:
@@ -274,9 +274,9 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
         ((MagickSizeType) resource_info.throttle < limit) ?
         MagickTrue : MagickFalse;
       (void) FormatMagickSize((MagickSizeType) resource_info.throttle,
-        MagickFalse,resource_current);
+        MagickFalse,"B",resource_current);
       (void) FormatMagickSize((MagickSizeType) resource_info.throttle_limit,
-        MagickFalse,resource_limit);
+        MagickFalse,"B",resource_limit);
       break;
     }
     case TimeResource:
@@ -287,9 +287,9 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
         ((MagickSizeType) resource_info.time < limit) ?
         MagickTrue : MagickFalse;
       (void) FormatMagickSize((MagickSizeType) resource_info.time,MagickFalse,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize((MagickSizeType) resource_info.time_limit,
-        MagickFalse,resource_limit);
+        MagickFalse,"B",resource_limit);
       break;
     }
     case WidthResource:
@@ -299,9 +299,9 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
       status=(resource_info.area_limit == MagickResourceInfinity) ||
         (size < limit) ? MagickTrue : MagickFalse;
       (void) FormatMagickSize((MagickSizeType) resource_info.width,MagickFalse,
-        resource_current);
+        "P",resource_current);
       (void) FormatMagickSize(resource_info.width_limit,MagickFalse,
-        resource_limit);
+        "P",resource_limit);
       break;
     }
     default:
@@ -773,14 +773,17 @@ MagickExport MagickBooleanType ListMagickResourceInfo(FILE *file,
   if (resource_semaphore == (SemaphoreInfo *) NULL)
     ActivateSemaphoreInfo(&resource_semaphore);
   LockSemaphoreInfo(resource_semaphore);
-  (void) FormatMagickSize(resource_info.width_limit,MagickFalse,width_limit);
-  (void) FormatMagickSize(resource_info.height_limit,MagickFalse,height_limit);
-  (void) FormatMagickSize(resource_info.area_limit,MagickFalse,area_limit);
-  (void) FormatMagickSize(resource_info.memory_limit,MagickTrue,memory_limit);
-  (void) FormatMagickSize(resource_info.map_limit,MagickTrue,map_limit);
+  (void) FormatMagickSize(resource_info.width_limit,MagickFalse,"P",
+    width_limit);
+  (void) FormatMagickSize(resource_info.height_limit,MagickFalse,"P",
+    height_limit);
+  (void) FormatMagickSize(resource_info.area_limit,MagickFalse,"B",area_limit);
+  (void) FormatMagickSize(resource_info.memory_limit,MagickTrue,"B",
+    memory_limit);
+  (void) FormatMagickSize(resource_info.map_limit,MagickTrue,"B",map_limit);
   (void) CopyMagickString(disk_limit,"unlimited",MaxTextExtent);
   if (resource_info.disk_limit != MagickResourceInfinity)
-    (void) FormatMagickSize(resource_info.disk_limit,MagickTrue,disk_limit);
+    (void) FormatMagickSize(resource_info.disk_limit,MagickTrue,"B",disk_limit);
   (void) CopyMagickString(time_limit,"unlimited",MaxTextExtent);
   if (resource_info.time_limit != MagickResourceInfinity)
     (void) FormatLocaleString(time_limit,MaxTextExtent,"%.20g",(double)
@@ -837,7 +840,7 @@ MagickExport void RelinquishMagickResource(const ResourceType type,
     resource_limit[MaxTextExtent],
     resource_request[MaxTextExtent];
 
-  (void) FormatMagickSize(size,MagickFalse,resource_request);
+  (void) FormatMagickSize(size,MagickFalse,"B",resource_request);
   if (resource_semaphore == (SemaphoreInfo *) NULL)
                ActivateSemaphoreInfo(&resource_semaphore);
   LockSemaphoreInfo(resource_semaphore);
@@ -847,88 +850,88 @@ MagickExport void RelinquishMagickResource(const ResourceType type,
     {
       resource_info.width=(MagickOffsetType) size;
       (void) FormatMagickSize((MagickSizeType) resource_info.width,MagickFalse,
-        resource_current);
+        "P",resource_current);
       (void) FormatMagickSize(resource_info.width_limit,MagickFalse,
-        resource_limit);
+        "P",resource_limit);
       break;
     }
     case HeightResource:
     {
       resource_info.width=(MagickOffsetType) size;
       (void) FormatMagickSize((MagickSizeType) resource_info.width,MagickFalse,
-        resource_current);
+        "P",resource_current);
       (void) FormatMagickSize(resource_info.width_limit,MagickFalse,
-        resource_limit);
+        "P",resource_limit);
       break;
     }
     case AreaResource:
     {
       resource_info.area=(MagickOffsetType) size;
       (void) FormatMagickSize((MagickSizeType) resource_info.area,MagickFalse,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize(resource_info.area_limit,MagickFalse,
-        resource_limit);
+        "B",resource_limit);
       break;
     }
     case MemoryResource:
     {
       resource_info.memory-=size;
       (void) FormatMagickSize((MagickSizeType) resource_info.memory,
-        MagickTrue,resource_current);
+        MagickTrue,"B",resource_current);
       (void) FormatMagickSize(resource_info.memory_limit,MagickTrue,
-        resource_limit);
+        "B",resource_limit);
       break;
     }
     case MapResource:
     {
       resource_info.map-=size;
       (void) FormatMagickSize((MagickSizeType) resource_info.map,MagickTrue,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize(resource_info.map_limit,MagickTrue,
-        resource_limit);
+        "B",resource_limit);
       break;
     }
     case DiskResource:
     {
       resource_info.disk-=size;
       (void) FormatMagickSize((MagickSizeType) resource_info.disk,MagickTrue,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize(resource_info.disk_limit,MagickTrue,
-        resource_limit);
+        "B",resource_limit);
       break;
     }
     case FileResource:
     {
       resource_info.file-=size;
       (void) FormatMagickSize((MagickSizeType) resource_info.file,MagickFalse,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize((MagickSizeType) resource_info.file_limit,
-        MagickFalse,resource_limit);
+        MagickFalse,"B",resource_limit);
       break;
     }
     case ThreadResource:
     {
       (void) FormatMagickSize((MagickSizeType) resource_info.thread,MagickFalse,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize((MagickSizeType) resource_info.thread_limit,
-        MagickFalse,resource_limit);
+        MagickFalse,"B",resource_limit);
       break;
     }
     case ThrottleResource:
     {
       (void) FormatMagickSize((MagickSizeType) resource_info.throttle,
-        MagickFalse,resource_current);
+        MagickFalse,"B",resource_current);
       (void) FormatMagickSize((MagickSizeType) resource_info.throttle_limit,
-        MagickFalse,resource_limit);
+        MagickFalse,"B",resource_limit);
       break;
     }
     case TimeResource:
     {
       resource_info.time-=size;
       (void) FormatMagickSize((MagickSizeType) resource_info.time,MagickFalse,
-        resource_current);
+        "B",resource_current);
       (void) FormatMagickSize((MagickSizeType) resource_info.time_limit,
-        MagickFalse,resource_limit);
+        MagickFalse,"B",resource_limit);
       break;
     }
     default:
index 41a017fd14a37023e4c432d346d5f0123116b2eb..7aff064b3ed8afd8ab1b6c8dfce502ef9b047b8a 100644 (file)
@@ -1064,7 +1064,8 @@ MagickExport StringInfo *FileToStringInfo(const char *filename,
 %
 %  The format of the FormatMagickSize method is:
 %
-%      ssize_t FormatMagickSize(const MagickSizeType size,char *format)
+%      ssize_t FormatMagickSize(const MagickSizeType size,const char *suffix,
+^        char *format)
 %
 %  A description of each parameter follows:
 %
@@ -1072,11 +1073,13 @@ MagickExport StringInfo *FileToStringInfo(const char *filename,
 %
 %    o bi:  use power of two rather than power of ten.
 %
+%    o suffix:  append suffix, typically B or P.
+%
 %    o format:  human readable format.
 %
 */
 MagickExport ssize_t FormatMagickSize(const MagickSizeType size,
-  const MagickBooleanType bi,char *format)
+  const MagickBooleanType bi,const char *suffix,char *format)
 {
   const char
     **units;
@@ -1119,8 +1122,12 @@ MagickExport ssize_t FormatMagickSize(const MagickSizeType size,
   count=0;
   for (j=2; j < 12; j++)
   {
-    count=FormatLocaleString(format,MaxTextExtent,"%.*g%sB",(int) (i+j),length,
-      units[i]);
+    if (suffix == (const char *) NULL)
+      count=FormatLocaleString(format,MaxTextExtent,"%.*g%s",(int) (i+j),
+        length,units[i]);
+    else
+      count=FormatLocaleString(format,MaxTextExtent,"%.*g%s%s",(int) (i+j),
+        length,units[i],suffix);
     if (strchr(format,'+') == (char *) NULL)
       break;
   }
@@ -1410,7 +1417,7 @@ MagickExport double InterpretSiPrefixValue(const char *restrict string,
                 }
             }
         }
-      if (*q == 'B')
+      if ((*q == 'B') || (*q == 'P'))
         q++;
     }
   if (sentinal != (char **) NULL)
index f848aa0b7095761360097dd61bcfad7b1a369759..6c17c40bc05ebf774381fab28f7d742018e4b871 100644 (file)
@@ -78,7 +78,8 @@ extern MagickExport size_t
   GetStringInfoLength(const StringInfo *);
 
 extern MagickExport ssize_t
-  FormatMagickSize(const MagickSizeType,const MagickBooleanType,char *),
+  FormatMagickSize(const MagickSizeType,const MagickBooleanType,const char *,
+    char *),
   FormatMagickTime(const time_t,const size_t,char *);
 
 extern MagickExport StringInfo
index a2f0245c2df3476227d94d7fe2ff6caf76bd5dab..814c2b078a81c078b24bcc843aaefb983aeeabef 100644 (file)
@@ -1337,15 +1337,15 @@ static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
     }
   (void) FormatLocaleFile(file,"  Tainted: %s\n",CommandOptionToMnemonic(
     MagickBooleanOptions,(ssize_t) image->taint));
-  (void) FormatMagickSize(GetBlobSize(image),MagickFalse,format);
+  (void) FormatMagickSize(GetBlobSize(image),MagickFalse,"B",format);
   (void) FormatLocaleFile(file,"  Filesize: %s\n",format);
   (void) FormatMagickSize((MagickSizeType) image->columns*image->rows,
-    MagickFalse,format);
+    MagickFalse,"B",format);
   if (strlen(format) > 1)
     format[strlen(format)-1]='\0';
   (void) FormatLocaleFile(file,"  Number pixels: %s\n",format);
   (void) FormatMagickSize((MagickSizeType) ((double) image->columns*image->rows/
-    elapsed_time+0.5),MagickFalse,format);
+    elapsed_time+0.5),MagickFalse,"B",format);
   (void) FormatLocaleFile(file,"  Pixels per second: %s\n",format);
   (void) FormatLocaleFile(file,"  User time: %0.3fu\n",user_time);
   (void) FormatLocaleFile(file,"  Elapsed time: %lu:%02lu.%03lu\n",
index 476f7fdb8369aafba7c395ad754a6d9be03a77b7..9a3bf0f120a30e8fcb3146cea006283d84ce1718 100644 (file)
@@ -48,8 +48,8 @@
   <!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
   <!-- <policy domain="resource" name="memory" value="2GiB"/> -->
   <!-- <policy domain="resource" name="map" value="4GiB"/> -->
-  <!-- <policy domain="resource" name="width" value="1GB"/> -->
-  <!-- <policy domain="resource" name="height" value="1GB"/> -->
+  <!-- <policy domain="resource" name="width" value="100MP"/> -->
+  <!-- <policy domain="resource" name="height" value="100MP"/> -->
   <!-- <policy domain="resource" name="area" value="1GB"/> -->
   <!-- <policy domain="resource" name="disk" value="16EB"/> -->
   <!-- <policy domain="resource" name="file" value="768"/> -->