Skip to content

Commit 7ff4e12

Browse files
committed
Update mozjpeg to 4.0.0, clean up file paths, add missing copying.txt
1 parent 5039b1b commit 7ff4e12

18 files changed

+113
-48
lines changed

src/Dianoga.Tests/Optimizers/Pipelines/DianogaJpeg/MozJpegOptimizerTests.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public MozJpegOptimizerTests(ITestOutputHelper output)
2121
public void ShouldSquishSmallJpegLossless()
2222
{
2323
Test(@"TestImages\small.jpg",
24-
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg_3.3.1_x86\jpegtran.exe",
24+
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg\jpegtran.exe",
2525
"-progressive", out var args, out var startingSize);
2626
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
2727
args.IsOptimized.Should().BeTrue();
@@ -31,7 +31,7 @@ public void ShouldSquishSmallJpegLossless()
3131
public void ShouldSquishLargeJpegLossless()
3232
{
3333
Test(@"TestImages\large.jpg",
34-
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg_3.3.1_x86\jpegtran.exe",
34+
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg\jpegtran.exe",
3535
"-progressive", out var args, out var startingSize);
3636
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
3737
args.IsOptimized.Should().BeTrue();
@@ -41,7 +41,7 @@ public void ShouldSquishLargeJpegLossless()
4141
public void ShouldSquishSmallJpegLossy()
4242
{
4343
Test(@"TestImages\small.jpg",
44-
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg_3.3.1_x86\cjpeg.exe",
44+
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg\cjpeg.exe",
4545
"-quality 80", out var args, out var startingSize);
4646
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
4747
args.IsOptimized.Should().BeTrue();
@@ -51,7 +51,7 @@ public void ShouldSquishSmallJpegLossy()
5151
public void ShouldSquishLargeJpegLossy()
5252
{
5353
Test(@"TestImages\large.jpg",
54-
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg_3.3.1_x86\cjpeg.exe",
54+
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg\cjpeg.exe",
5555
"-quality 80", out var args, out var startingSize);
5656
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
5757
args.IsOptimized.Should().BeTrue();
@@ -61,7 +61,7 @@ public void ShouldSquishLargeJpegLossy()
6161
public void ShouldNotSquishCorruptedJpegLossless()
6262
{
6363
Test(@"TestImages\corrupted.jpg",
64-
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg_3.3.1_x86\jpegtran.exe",
64+
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg\jpegtran.exe",
6565
"-quality 80", out var args, out var startingSize);
6666
args.Stream.Length.Should().IsSameOrEqualTo(startingSize);
6767
args.IsOptimized.Should().BeFalse();
@@ -71,7 +71,7 @@ public void ShouldNotSquishCorruptedJpegLossless()
7171
public void ShouldNotSquishCorruptedJpegLossy()
7272
{
7373
Test(@"TestImages\corrupted.jpg",
74-
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg_3.3.1_x86\cjpeg.exe",
74+
@"..\..\..\..\Dianoga\Dianoga Tools\mozjpeg\cjpeg.exe",
7575
"-quality 80", out var args, out var startingSize);
7676
args.Stream.Length.Should().IsSameOrEqualTo(startingSize);
7777
args.IsOptimized.Should().BeFalse();

src/Dianoga.Tests/Optimizers/Pipelines/DianogaWebP/WebPOptimizerTests.cs

+12-12
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public WebPOptimizerTests(ITestOutputHelper output)
2121
public void ShouldReturnOriginalStreamWhenOptimizedImageSizeIsGreater()
2222
{
2323
Test(@"TestImages\small.jpg",
24-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\cwebp.exe",
24+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\cwebp.exe",
2525
"-q 100 -m 6 -lossless", out var args, out var startingSize);
2626
args.Stream.Length.Should().Be(startingSize).And.BeGreaterThan(0);
2727
args.IsOptimized.Should().BeFalse();
@@ -31,7 +31,7 @@ public void ShouldReturnOriginalStreamWhenOptimizedImageSizeIsGreater()
3131
public void ShouldSquishLosslessSmallPng()
3232
{
3333
Test(@"TestImages\small.png",
34-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\cwebp.exe",
34+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\cwebp.exe",
3535
"-q 100 -m 6 -lossless", out var args, out var startingSize);
3636
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
3737
args.IsOptimized.Should().BeTrue();
@@ -41,7 +41,7 @@ public void ShouldSquishLosslessSmallPng()
4141
public void ShouldSquishLosslessLargePng()
4242
{
4343
Test(@"TestImages\large.png",
44-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\cwebp.exe",
44+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\cwebp.exe",
4545
"-q 100 -m 6 -lossless", out var args, out var startingSize);
4646
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
4747
args.IsOptimized.Should().BeTrue();
@@ -51,7 +51,7 @@ public void ShouldSquishLosslessLargePng()
5151
public void ShouldSquishLossyTestJpeg()
5252
{
5353
Test(@"TestImages\large.jpg",
54-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\cwebp.exe",
54+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\cwebp.exe",
5555
"-q 90 -m 6", out var args, out var startingSize);
5656
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
5757
args.IsOptimized.Should().BeTrue();
@@ -61,7 +61,7 @@ public void ShouldSquishLossyTestJpeg()
6161
public void ShouldSquishLossySmallJpegDefaults()
6262
{
6363
Test(@"TestImages\small.jpg",
64-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\cwebp.exe",
64+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\cwebp.exe",
6565
"-preset photo -q 80", out var args, out var startingSize);
6666
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
6767
args.IsOptimized.Should().BeTrue();
@@ -71,7 +71,7 @@ public void ShouldSquishLossySmallJpegDefaults()
7171
public void ShouldSquishLossyLargeJpegDefaults()
7272
{
7373
Test(@"TestImages\small.jpg",
74-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\cwebp.exe",
74+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\cwebp.exe",
7575
"-preset photo -q 80", out var args, out var startingSize);
7676
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
7777
args.IsOptimized.Should().BeTrue();
@@ -81,7 +81,7 @@ public void ShouldSquishLossyLargeJpegDefaults()
8181
public void ShouldNotSquishCorruptedJpegLossy()
8282
{
8383
Test(@"TestImages\corrupted.jpg",
84-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\cwebp.exe",
84+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\cwebp.exe",
8585
"-preset photo -q 80", out var args, out var startingSize);
8686
args.Stream.Length.Should().IsSameOrEqualTo(startingSize);
8787
args.IsOptimized.Should().BeFalse();
@@ -91,7 +91,7 @@ public void ShouldNotSquishCorruptedJpegLossy()
9191
public void ShouldSquishLossySmallPngHighAlpha()
9292
{
9393
Test(@"TestImages\small.png",
94-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\cwebp.exe",
94+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\cwebp.exe",
9595
"-q 90 -alpha_q 100 -m 6", out var args, out var startingSize);
9696
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
9797
args.IsOptimized.Should().BeTrue();
@@ -101,7 +101,7 @@ public void ShouldSquishLossySmallPngHighAlpha()
101101
public void ShouldSquishLossySmallPngDefaults()
102102
{
103103
Test(@"TestImages\small.png",
104-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\cwebp.exe",
104+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\cwebp.exe",
105105
"-preset icon", out var args, out var startingSize);
106106
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
107107
args.IsOptimized.Should().BeTrue();
@@ -111,7 +111,7 @@ public void ShouldSquishLossySmallPngDefaults()
111111
public void ShouldSquishLossyLargePngDefaults()
112112
{
113113
Test(@"TestImages\large.png",
114-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\cwebp.exe",
114+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\cwebp.exe",
115115
"-preset icon", out var args, out var startingSize);
116116
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
117117
args.IsOptimized.Should().BeTrue();
@@ -121,7 +121,7 @@ public void ShouldSquishLossyLargePngDefaults()
121121
public void ShouldSquishLossyTestGif()
122122
{
123123
Test(@"TestImages\small.gif",
124-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\gif2webp.exe",
124+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\gif2webp.exe",
125125
"-q 90 -lossy", out var args, out var startingSize);
126126
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
127127
args.IsOptimized.Should().BeTrue();
@@ -131,7 +131,7 @@ public void ShouldSquishLossyTestGif()
131131
public void ShouldSquishLosslessTestGif()
132132
{
133133
Test(@"TestImages\small.gif",
134-
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp-1.1.0-windows-x64\bin\gif2webp.exe",
134+
@"..\..\..\..\Dianoga\Dianoga Tools\libwebp\gif2webp.exe",
135135
"-q 80", out var args, out var startingSize);
136136
args.Stream.Length.Should().BeLessThan(startingSize).And.BeGreaterThan(0);
137137
args.IsOptimized.Should().BeTrue();

src/Dianoga/Default Config Files/Dianoga.Jpeg.config

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@
2323
<dianogaOptimizeJpeg>
2424
<!-- mozjpeg lossless compression
2525
<processor type="Dianoga.Optimizers.Pipelines.DianogaJpeg.MozJpegOptimizer, Dianoga">
26-
<ExePath>/App_Data/Dianoga Tools/mozjpeg_3.3.1_x86/jpegtran.exe</ExePath>
26+
<ExePath>/App_Data/Dianoga Tools/mozjpeg/jpegtran.exe</ExePath>
2727
<AdditionalToolArguments>-optimize -copy none -progressive</AdditionalToolArguments>
2828
</processor> -->
2929
<!-- mozjpeg lossy compression, quality set to 80%, progressive by default -->
3030
<processor type="Dianoga.Optimizers.Pipelines.DianogaJpeg.MozJpegOptimizer, Dianoga">
31-
<ExePath>/App_Data/Dianoga Tools/mozjpeg_3.3.1_x86/cjpeg.exe</ExePath>
31+
<ExePath>/App_Data/Dianoga Tools/mozjpeg/cjpeg.exe</ExePath>
3232
<AdditionalToolArguments>-quality 80</AdditionalToolArguments>
3333
</processor>
3434
</dianogaOptimizeJpeg>

src/Dianoga/Default Config Files/Dianoga.WebP.config.disabled

+4-4
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,25 @@
2929

3030
<dianogaOptimizeWebP>
3131
<processor type="Dianoga.Optimizers.Pipelines.DianogaWebP.WebPOptimizer, Dianoga">
32-
<ExePath>/App_Data/Dianoga Tools/libwebp-1.1.0-windows-x64/bin/cwebp.exe</ExePath>
32+
<ExePath>/App_Data/Dianoga Tools/libwebp/cwebp.exe</ExePath>
3333
<AdditionalToolArguments>-q 80</AdditionalToolArguments>
3434
</processor>
3535
</dianogaOptimizeWebP>
3636
<dianogaOptimizeJpeg>
3737
<processor type="Dianoga.Optimizers.Pipelines.DianogaWebP.WebPOptimizer, Dianoga" patch:before="processor[1]">
38-
<ExePath>/App_Data/Dianoga Tools/libwebp-1.1.0-windows-x64/bin/cwebp.exe</ExePath>
38+
<ExePath>/App_Data/Dianoga Tools/libwebp/cwebp.exe</ExePath>
3939
<AdditionalToolArguments>-preset photo -q 80</AdditionalToolArguments>
4040
</processor>
4141
</dianogaOptimizeJpeg>
4242
<dianogaOptimizePng>
4343
<processor type="Dianoga.Optimizers.Pipelines.DianogaWebP.WebPOptimizer, Dianoga" patch:before="processor[1]">
44-
<ExePath>/App_Data/Dianoga Tools/libwebp-1.1.0-windows-x64/bin/cwebp.exe</ExePath>
44+
<ExePath>/App_Data/Dianoga Tools/libwebp/cwebp.exe</ExePath>
4545
<AdditionalToolArguments>-preset icon</AdditionalToolArguments>
4646
</processor>
4747
</dianogaOptimizePng>
4848
<dianogaOptimizeGif>
4949
<processor type="Dianoga.Optimizers.Pipelines.DianogaWebP.WebPOptimizer, Dianoga" patch:before="processor[1]">
50-
<ExePath>/App_Data/Dianoga Tools/libwebp-1.1.0-windows-x64/bin/gif2webp.exe</ExePath>
50+
<ExePath>/App_Data/Dianoga Tools/libwebp/gif2webp.exe</ExePath>
5151
<AdditionalToolArguments>-q 80 -lossy</AdditionalToolArguments>
5252
<DisableResizing>true</DisableResizing>
5353
</processor>
+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
The MIT License
2+
3+
Copyright © 2012–2016 Kir Belevich
4+
5+
Permission is hereby granted, free of charge, to any person
6+
obtaining a copy of this software and associated documentation
7+
files (the "Software"), to deal in the Software without
8+
restriction, including without limitation the rights to use,
9+
copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
copies of the Software, and to permit persons to whom the
11+
Software is furnished to do so, subject to the following
12+
conditions:
13+
14+
The above copyright notice and this permission notice shall be
15+
included in all copies or substantial portions of the Software.
16+
17+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24+
OTHER DEALINGS IN THE SOFTWARE.
25+
26+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
27+
28+
Лицензия MIT
29+
30+
Copyright © 2012–2016 Кир Белевич
31+
32+
Данная лицензия разрешает лицам, получившим копию данного
33+
программного обеспечения и сопутствующей документации
34+
(в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно
35+
использовать Программное Обеспечение без ограничений, включая
36+
неограниченное право на использование, копирование, изменение,
37+
добавление, публикацию, распространение, сублицензирование
38+
и/или продажу копий Программного Обеспечения, также как и лицам,
39+
которым предоставляется данное Программное Обеспечение,
40+
при соблюдении следующих условий:
41+
42+
Указанное выше уведомление об авторском праве и данные условия
43+
должны быть включены во все копии или значимые части данного
44+
Программного Обеспечения.
45+
46+
ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ»,
47+
БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ,
48+
ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ,
49+
СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ
50+
ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ
51+
ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ
52+
ТРЕБОВАНИЙ ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ,
53+
ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ С ПРОГРАММНЫМ
54+
ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
55+
ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Copyright (c) 2010, Google Inc. All rights reserved.
2+
3+
Redistribution and use in source and binary forms, with or without
4+
modification, are permitted provided that the following conditions are
5+
met:
6+
7+
* Redistributions of source code must retain the above copyright
8+
notice, this list of conditions and the following disclaimer.
9+
10+
* Redistributions in binary form must reproduce the above copyright
11+
notice, this list of conditions and the following disclaimer in
12+
the documentation and/or other materials provided with the
13+
distribution.
14+
15+
* Neither the name of Google nor the names of its contributors may
16+
be used to endorse or promote products derived from this software
17+
without specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23+
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30+
865 KB
Binary file not shown.
549 KB
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

src/Dianoga/Dianoga Tools/pngquant/Drag PNG here to reduce palette automatically.bat

-11
This file was deleted.

src/Dianoga/Dianoga Tools/pngquant/Drag PNG here to reduce palette to 256.bat

-10
This file was deleted.

src/Dianoga/Dianoga.csproj

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<TargetFrameworks>net452;net462;net471;net48</TargetFrameworks>
55
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
66
<Description>Automatic media library image file optimization for Sitecore</Description>
7-
<Version>5.0.3</Version>
7+
<Version>5.1.0</Version>
88
<Authors>Kam Figy, Mark Gibbons</Authors>
99
<PackageProjectUrl>https://github.com/kamsar/Dianoga</PackageProjectUrl>
1010
<PackageLicenseExpression>MIT</PackageLicenseExpression>
@@ -81,5 +81,6 @@
8181
</ItemGroup>
8282
<ItemGroup>
8383
<None Remove="Default Config Files\Dianoga.WebP.CDN.config.disabled" />
84+
<None Remove="Dianoga Tools\libwebp\COPYING.txt" />
8485
</ItemGroup>
8586
</Project>

src/Dianoga/Dianoga.svgtools.nuspec

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package>
33
<metadata>
44
<id>Dianoga.svgtools</id>
5-
<version>5.0.3</version>
5+
<version>5.1.0</version>
66
<title>Dianoga.svgtools</title>
77
<authors>Kam Figy, Mark Gibbons</authors>
88
<owners>Kam Figy, Mark Gibbons</owners>
@@ -14,7 +14,7 @@
1414
<copyright>Copyright 2020</copyright>
1515
<tags>sitecore image optimization</tags>
1616
<dependencies>
17-
<dependency id="Dianoga" version="5.0.3" />
17+
<dependency id="Dianoga" version="5.1.0" />
1818
</dependencies>
1919
</metadata>
2020
<files>

0 commit comments

Comments
 (0)