This commit is contained in:
louiscklaw
2025-01-31 22:23:19 +08:00
parent 141622669a
commit a2fb071e10
2041 changed files with 7712 additions and 0 deletions

View File

@@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30503.244
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Demo", "Demo\Demo.vcxproj", "{5C585268-EC8C-40F1-9EDD-6751D3CE9731}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5C585268-EC8C-40F1-9EDD-6751D3CE9731}.Debug|x64.ActiveCfg = Debug|x64
{5C585268-EC8C-40F1-9EDD-6751D3CE9731}.Debug|x64.Build.0 = Debug|x64
{5C585268-EC8C-40F1-9EDD-6751D3CE9731}.Debug|x86.ActiveCfg = Debug|Win32
{5C585268-EC8C-40F1-9EDD-6751D3CE9731}.Debug|x86.Build.0 = Debug|Win32
{5C585268-EC8C-40F1-9EDD-6751D3CE9731}.Release|x64.ActiveCfg = Release|x64
{5C585268-EC8C-40F1-9EDD-6751D3CE9731}.Release|x64.Build.0 = Release|x64
{5C585268-EC8C-40F1-9EDD-6751D3CE9731}.Release|x86.ActiveCfg = Release|Win32
{5C585268-EC8C-40F1-9EDD-6751D3CE9731}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {02CB7E44-C13B-41A9-8689-5CA4F7C88242}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{5c585268-ec8c-40f1-9edd-6751d3ce9731}</ProjectGuid>
<RootNamespace>Demo</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(OPENCV)\include\;$(IncludePath)</IncludePath>
<LibraryPath>$(OPENCV)\x86\vc14\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(OPENCV)\include;$(IncludePath)</IncludePath>
<LibraryPath>$(OPENCV)\x86\vc14\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(OPENCV)\include\;$(IncludePath)</IncludePath>
<LibraryPath>$(OPENCV)\x64\vc14\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(OPENCV)\include\;$(IncludePath)</IncludePath>
<LibraryPath>$(OPENCV)\x64\vc14\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>opencv_calib3d2413d.lib;opencv_contrib2413d.lib;opencv_core2413d.lib;opencv_features2d2413d.lib;opencv_flann2413d.lib;opencv_gpu2413d.lib;opencv_highgui2413d.lib;opencv_imgproc2413d.lib;opencv_legacy2413d.lib;opencv_ts2413d.lib;opencv_video2413d.lib;opencv_videostab2413d.lib;opencv_superres2413d.lib;opencv_stitching2413d.lib;opencv_photo2413d.lib;opencv_ocl2413d.lib;opencv_objdetect2413d.lib;opencv_nonfree2413d.lib;opencv_ml2413d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>opencv_calib3d2413.lib;opencv_contrib2413.lib;opencv_core2413.lib;opencv_features2d2413.lib;opencv_flann2413.lib;opencv_gpu2413.lib;opencv_highgui2413.lib;opencv_imgproc2413.lib;opencv_legacy2413.lib;opencv_ml2413.lib;opencv_nonfree2413.lib;opencv_objdetect2413.lib;opencv_ocl2413.lib;opencv_photo2413.lib;opencv_stitching2413.lib;opencv_superres2413.lib;opencv_ts2413.lib;opencv_video2413.lib;opencv_videostab2413.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>opencv_calib3d2413d.lib;opencv_contrib2413d.lib;opencv_core2413d.lib;opencv_features2d2413d.lib;opencv_flann2413d.lib;opencv_gpu2413d.lib;opencv_highgui2413d.lib;opencv_imgproc2413d.lib;opencv_legacy2413d.lib;opencv_ts2413d.lib;opencv_video2413d.lib;opencv_videostab2413d.lib;opencv_superres2413d.lib;opencv_stitching2413d.lib;opencv_photo2413d.lib;opencv_ocl2413d.lib;opencv_objdetect2413d.lib;opencv_nonfree2413d.lib;opencv_ml2413d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>opencv_calib3d2413.lib;opencv_contrib2413.lib;opencv_core2413.lib;opencv_features2d2413.lib;opencv_flann2413.lib;opencv_gpu2413.lib;opencv_highgui2413.lib;opencv_imgproc2413.lib;opencv_legacy2413.lib;opencv_ml2413.lib;opencv_nonfree2413.lib;opencv_objdetect2413.lib;opencv_ocl2413.lib;opencv_photo2413.lib;opencv_stitching2413.lib;opencv_superres2413.lib;opencv_ts2413.lib;opencv_video2413.lib;opencv_videostab2413.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
<ClCompile Include="retrieval.cpp" />
<ClCompile Include="sift.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="retrieval.h" />
<ClInclude Include="sift.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="retrieval.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sift.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="retrieval.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="sift.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

View File

@@ -0,0 +1,31 @@
#include <iostream>
#include "retrieval.h"
#include "sift.h"
using namespace std;
void run(int argc, char** argv) {
cout << "1: Image retrieval demo" << endl;
cout << "2: SIFT demo" << endl;
cout << "Type in the number to choose a demo and type enter to confirm" << endl;
int number;
cin >> number;
if (number == 1) {
retrival(argc, argv);
}
else if (number == 2) {
sift(argc, argv);
}
else {
cout << "Invalid input" << number << endl;
}
}
int main(int argc, char** argv)
{
while (1) {
run(argc, argv);
}
return 0;
}

View File

@@ -0,0 +1,158 @@
/**
* CS4185/CS5185 Multimedia Technologies and Applications
* Course Assignment
* Image Retrieval Project
*/
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/nonfree/nonfree.hpp"
#include "opencv2/features2d/features2d.hpp"
using namespace std;
using namespace cv;
#define IMAGE_LIST_FILE "../image.query/inputimage.txt"
//Compute pixel-by-pixel difference
double compareImgs(Mat img1, Mat img2)
{
int w = img1.cols, h = img1.rows;
Mat new_img2;
resize(img2, new_img2, img1.size());
double sum = 0;
for (int i = 0; i < w; i++)for (int j = 0; j < h; j++)
{
sum += abs(img1.at<uchar>(j, i) - new_img2.at<uchar>(j, i));
}
return sum;
}
int retrival(int argc, char** argv)
{
Mat src_input, gray_input;
Mat db_img, db_gray_img;
double score[1000];
int db_id = 0;
double maxscore = 1000000000;
int maxscore_num;
char maximg_name[200];
Mat max_img;
int number;
printf("1: beach\n");
printf("2: building\n");
printf("3: bus\n");
printf("4: dinosaur\n");
printf("5: flower\n");
printf("6: horse\n");
printf("7: man\n");
printf("Type in the number to choose a category and type enter to confirm\n");
scanf_s("%d", &number);
switch (number) {
case 1:
src_input = imread("../image.query/beach.jpg"); // read input image
printf("You choose: %d - beach\n", number);
break;
case 2:
src_input = imread("../image.query/building.jpg");
printf("You choose: %d - building\n", number);
break;
case 3:
src_input = imread("../image.query/bus.jpg");
printf("You choose: %d - bus\n", number);
break;
case 4:
src_input = imread("../image.query/dinosaur.jpg");
printf("You choose: %d - dinosaur\n", number);
break;
case 5:
src_input = imread("../image.query/flower.jpg");
printf("You choose: %d - flower\n", number);
break;
case 6:
src_input = imread("../image.query/horse.jpg");
printf("You choose: %d - horse\n", number);
break;
case 7:
src_input = imread("../image.query/man.jpg");
printf("You choose: %d - man\n", number);
break;
}
if (!src_input.data)
{
printf("Cannot find the input image!\n");
system("pause");
return -1;
}
imshow("Input", src_input);
/// Convert to grayscale
cvtColor(src_input, gray_input, COLOR_BGR2GRAY);
///Read Database
FILE* fp;
char imagepath[200];
fopen_s(&fp, IMAGE_LIST_FILE, "r");
printf("Extracting features from input images...\n");
while (!feof(fp))
{
while (fscanf_s(fp, "%s ", imagepath, sizeof(imagepath)) > 0)
{
printf("%s\n", imagepath);
char tempname[200];
sprintf_s(tempname, 200, "../%s", imagepath);
db_img = imread(tempname); // read database image
if (!db_img.data)
{
printf("Cannot find the database image number %d!\n", db_id + 1);
system("pause");
return -1;
}
cvtColor(db_img, db_gray_img, COLOR_BGR2GRAY);
/// Apply the pixel-by-pixel comparison method
score[db_id] = compareImgs(gray_input, db_gray_img);
/// Compute max score
if (score[db_id] < maxscore)
{
maxscore = score[db_id];
maxscore_num = db_id;
memcpy(maximg_name, tempname, 200 * sizeof(char));
}
db_id++;
}
}
fclose(fp);
Mat maximg = imread(maximg_name);
imshow("Best Match Image", maximg);
printf("the most similar image is %d, the pixel-by-pixel difference is %f\n", maxscore_num + 1, maxscore);
printf("Done \n");
// Wait for the user to press a key in the GUI window.
//Press ESC to quit
int keyValue = 0;
while (keyValue >= 0)
{
keyValue = cvWaitKey(0);
switch (keyValue)
{
case 27:keyValue = -1;
break;
}
}
return 0;
}

View File

@@ -0,0 +1 @@
int retrival(int argc, char** argv);

View File

@@ -0,0 +1,80 @@
/**
* CS4185/CS5185 Multimedia Technologies and Applications
* Course Assignment
// ********* ********* ********* *********
// sift demo
// ********* ********* ********* *********
*/
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/nonfree/nonfree.hpp"
#include "opencv2/features2d/features2d.hpp"
using namespace std;
using namespace cv;
#define IMAGE_LIST_FILE "inputimage.txt" // NOTE: this is relative to current file
int sift(int argc, char** argv)
{
Mat img_1 = imread("../image.query/flower.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat img_2 = imread("../image.orig/685.jpg", CV_LOAD_IMAGE_GRAYSCALE);
if (!img_1.data || !img_2.data)
{
printf("Error loading images\n"); return -1;
}
//-- Step 1: Detect the keypoints using SURF Detector
int minHessian = 400;
SurfFeatureDetector detector(minHessian);
std::vector<KeyPoint> keypoints_1, keypoints_2;
detector.detect(img_1, keypoints_1);
detector.detect(img_2, keypoints_2);
//-- Step 2: Calculate descriptors (feature vectors)
SurfDescriptorExtractor extractor;
Mat descriptors_1, descriptors_2;
extractor.compute(img_1, keypoints_1, descriptors_1);
extractor.compute(img_2, keypoints_2, descriptors_2);
//-- Step 3: Matching descriptor vectors with a brute force matcher
BFMatcher matcher(NORM_L2);
std::vector< DMatch > matches;
matcher.match(descriptors_1, descriptors_2, matches);
//-- Draw matches
Mat img_matches;
drawMatches(img_1, keypoints_1, img_2, keypoints_2, matches, img_matches);
//-- Show detected matches
imshow("Matches", img_matches);
printf("Done \n");
// Wait for the user to press a key in the GUI window.
//Press ESC to quit
int keyValue = 0;
while (keyValue >= 0)
{
keyValue = cvWaitKey(0);
switch (keyValue)
{
case 27:keyValue = -1;
break;
}
}
return 0;
}

View File

@@ -0,0 +1 @@
int sift(int argc, char** argv);

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More