Myosotis-Researches 0.0.30__tar.gz → 0.0.32__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32/Myosotis_Researches.egg-info}/PKG-INFO +13 -2
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/Myosotis_Researches.egg-info/SOURCES.txt +2 -4
- {myosotis_researches-0.0.30/Myosotis_Researches.egg-info → myosotis_researches-0.0.32}/PKG-INFO +13 -2
- myosotis_researches-0.0.32/README.md +14 -0
- myosotis_researches-0.0.32/myosotis_researches/CcGAN/utils/__init__.py +5 -0
- myosotis_researches-0.0.32/myosotis_researches/CcGAN/utils/concat_image.py +72 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/utils/make_h5.py +2 -2
- myosotis_researches-0.0.30/myosotis_researches/CcGAN/utils/print_hdf5_structure.py → myosotis_researches-0.0.32/myosotis_researches/CcGAN/utils/print_hdf5.py +2 -2
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/setup.py +1 -1
- myosotis_researches-0.0.30/README.md +0 -3
- myosotis_researches-0.0.30/myosotis_researches/CcGAN/utils/__init__.py +0 -6
- myosotis_researches-0.0.30/myosotis_researches/CcGAN/utils/concat_image_horizontal.py +0 -31
- myosotis_researches-0.0.30/myosotis_researches/CcGAN/utils/concat_image_vertical.py +0 -31
- myosotis_researches-0.0.30/myosotis_researches/CcGAN/utils/install_datasets.py +0 -46
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/LICENSE +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/Myosotis_Researches.egg-info/dependency_links.txt +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/Myosotis_Researches.egg-info/top_level.txt +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/__init__.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/internal/__init__.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/internal/install_datasets.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/internal/show_datasets.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/internal/uninstall_datasets.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_128/CcGAN_SAGAN.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_128/ResNet_class_eval.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_128/ResNet_embed.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_128/ResNet_regre_eval.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_128/__init__.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_128/autoencoder.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_128/cGAN_SAGAN.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_128/cGAN_concat_SAGAN.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_256/CcGAN_SAGAN.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_256/ResNet_class_eval.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_256/ResNet_embed.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_256/ResNet_regre_eval.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_256/__init__.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_256/autoencoder.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_256/cGAN_SAGAN.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/models_256/cGAN_concat_SAGAN.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/DiffAugment_pytorch.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/__init__.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/eval_metrics.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/opts.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/pretrain_AE.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/pretrain_CNN_class.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/pretrain_CNN_regre.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/train_ccgan.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/train_cgan.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/train_cgan_concat.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/train_net_for_label_embed.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128/utils.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/DiffAugment_pytorch.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/__init__.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/eval_metrics.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/opts.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/pretrain_AE.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/pretrain_CNN_class.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/pretrain_CNN_regre.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/train_ccgan.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/train_cgan.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/train_cgan_concat.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/train_net_for_label_embed.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/train_128_output_10/utils.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/__init__.py +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/pyproject.toml +0 -0
- {myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/setup.cfg +0 -0
{myosotis_researches-0.0.30 → myosotis_researches-0.0.32/Myosotis_Researches.egg-info}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: Myosotis-Researches
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.32
|
4
4
|
Summary: A repository for storing my progress of researches.
|
5
5
|
Home-page: https://github.com/Zeyu-Xie/Myosotis-Researches
|
6
6
|
Author: Zeyu Xie
|
@@ -23,4 +23,15 @@ Dynamic: summary
|
|
23
23
|
|
24
24
|
# Myosotis-Researches
|
25
25
|
|
26
|
-
|
26
|
+
## `CcGAN` (`myosotis_researches.CcGAN`)
|
27
|
+
|
28
|
+
### `internal`
|
29
|
+
|
30
|
+
Import
|
31
|
+
|
32
|
+
```
|
33
|
+
from myosotis_researches.internal import *
|
34
|
+
```
|
35
|
+
|
36
|
+
### `utils`
|
37
|
+
|
{myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/Myosotis_Researches.egg-info/SOURCES.txt
RENAMED
@@ -53,8 +53,6 @@ myosotis_researches/CcGAN/train_128_output_10/train_cgan_concat.py
|
|
53
53
|
myosotis_researches/CcGAN/train_128_output_10/train_net_for_label_embed.py
|
54
54
|
myosotis_researches/CcGAN/train_128_output_10/utils.py
|
55
55
|
myosotis_researches/CcGAN/utils/__init__.py
|
56
|
-
myosotis_researches/CcGAN/utils/
|
57
|
-
myosotis_researches/CcGAN/utils/concat_image_vertical.py
|
58
|
-
myosotis_researches/CcGAN/utils/install_datasets.py
|
56
|
+
myosotis_researches/CcGAN/utils/concat_image.py
|
59
57
|
myosotis_researches/CcGAN/utils/make_h5.py
|
60
|
-
myosotis_researches/CcGAN/utils/
|
58
|
+
myosotis_researches/CcGAN/utils/print_hdf5.py
|
{myosotis_researches-0.0.30/Myosotis_Researches.egg-info → myosotis_researches-0.0.32}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: Myosotis-Researches
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.32
|
4
4
|
Summary: A repository for storing my progress of researches.
|
5
5
|
Home-page: https://github.com/Zeyu-Xie/Myosotis-Researches
|
6
6
|
Author: Zeyu Xie
|
@@ -23,4 +23,15 @@ Dynamic: summary
|
|
23
23
|
|
24
24
|
# Myosotis-Researches
|
25
25
|
|
26
|
-
|
26
|
+
## `CcGAN` (`myosotis_researches.CcGAN`)
|
27
|
+
|
28
|
+
### `internal`
|
29
|
+
|
30
|
+
Import
|
31
|
+
|
32
|
+
```
|
33
|
+
from myosotis_researches.internal import *
|
34
|
+
```
|
35
|
+
|
36
|
+
### `utils`
|
37
|
+
|
@@ -0,0 +1,72 @@
|
|
1
|
+
from PIL import Image
|
2
|
+
|
3
|
+
|
4
|
+
def _concat_image_horizontal(img_list: list[Image], gap=2) -> Image:
|
5
|
+
N = len(img_list)
|
6
|
+
|
7
|
+
# Error 1: no images
|
8
|
+
if N == 0:
|
9
|
+
raise ValueError("The length of the image list is 0.")
|
10
|
+
|
11
|
+
# Error 2: Size differs
|
12
|
+
width = img_list[0].width
|
13
|
+
height = img_list[0].height
|
14
|
+
for i in range(1, N):
|
15
|
+
if img_list[i].width != width:
|
16
|
+
raise ValueError("All images should have the same width.")
|
17
|
+
if img_list[i].height != height:
|
18
|
+
raise ValueError("All images should have the same height.")
|
19
|
+
|
20
|
+
# Create concated image
|
21
|
+
concated_width = width * N + gap * (N + 1)
|
22
|
+
concated_height = height + gap * 2
|
23
|
+
concated_image = Image.new("RGB", (concated_width, concated_height))
|
24
|
+
|
25
|
+
# Copy ans paste
|
26
|
+
for i in range(N):
|
27
|
+
concated_image.paste(img_list[i], (width * i + gap * (i + 1), gap))
|
28
|
+
|
29
|
+
# return
|
30
|
+
return concated_image
|
31
|
+
|
32
|
+
|
33
|
+
def _concat_image_vertical(img_list: list[Image], gap=2) -> Image:
|
34
|
+
N = len(img_list)
|
35
|
+
|
36
|
+
# Error 1: no images
|
37
|
+
if N == 0:
|
38
|
+
raise ValueError("The length of the image list is 0.")
|
39
|
+
|
40
|
+
# Error 2: Size differs
|
41
|
+
width = img_list[0].width
|
42
|
+
height = img_list[0].height
|
43
|
+
for i in range(1, N):
|
44
|
+
if img_list[i].width != width:
|
45
|
+
raise ValueError("All images should have the same width.")
|
46
|
+
if img_list[i].height != height:
|
47
|
+
raise ValueError("All images should have the same height.")
|
48
|
+
|
49
|
+
# Create concated image
|
50
|
+
concated_width = width + gap * 2
|
51
|
+
concated_height = height * N + gap * (N + 1)
|
52
|
+
concated_image = Image.new("RGB", (concated_width, concated_height))
|
53
|
+
|
54
|
+
# Copy ans paste
|
55
|
+
for i in range(N):
|
56
|
+
concated_image.paste(img_list[i], (gap, height * i + gap * (i + 1)))
|
57
|
+
|
58
|
+
# return
|
59
|
+
return concated_image
|
60
|
+
|
61
|
+
|
62
|
+
def concat_image(img_list: list[Image], gap=2, direction="vertical"):
|
63
|
+
|
64
|
+
if direction == "vertical":
|
65
|
+
_concat_image_vertical(img_list, gap=gap)
|
66
|
+
elif direction == "horizontal":
|
67
|
+
_concat_image_horizontal(img_list, gap=gap)
|
68
|
+
else:
|
69
|
+
raise ValueError("Direction should be 'vertical' or 'horizontal'.")
|
70
|
+
|
71
|
+
|
72
|
+
__all__ = ["concat_image"]
|
{myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/utils/make_h5.py
RENAMED
@@ -2,7 +2,7 @@ import h5py
|
|
2
2
|
import numpy as np
|
3
3
|
import os
|
4
4
|
from PIL import Image
|
5
|
-
from .
|
5
|
+
from .print_hdf5 import print_hdf5
|
6
6
|
|
7
7
|
# Make all images to a HDF5 file
|
8
8
|
def make_h5(image_dir, h5_path, image_names = [], indx_train = None, indx_valid = None, image_labels = None, image_types = None):
|
@@ -38,6 +38,6 @@ def make_h5(image_dir, h5_path, image_names = [], indx_train = None, indx_valid
|
|
38
38
|
f.create_dataset("types", data=image_types)
|
39
39
|
|
40
40
|
# Visualize
|
41
|
-
f.visititems(
|
41
|
+
f.visititems(print_hdf5)
|
42
42
|
|
43
43
|
__all__ = ["make_h5"]
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import h5py
|
2
2
|
|
3
3
|
|
4
|
-
def
|
4
|
+
def print_hdf5(name, obj):
|
5
5
|
indent = " " * name.count("/")
|
6
6
|
if isinstance(obj, h5py.Dataset):
|
7
7
|
print(f"{indent}[Dataset] {name} shape={obj.shape} dtype={obj.dtype}")
|
8
8
|
elif isinstance(obj, h5py.Group):
|
9
9
|
print(f"{indent}[Group] {name}")
|
10
10
|
|
11
|
-
__all__ = ["
|
11
|
+
__all__ = ["print_hdf5"]
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|
2
2
|
|
3
3
|
setup(
|
4
4
|
name="Myosotis-Researches",
|
5
|
-
version="0.0.
|
5
|
+
version="0.0.32",
|
6
6
|
description="A repository for storing my progress of researches.",
|
7
7
|
long_description=open("README.md").read(),
|
8
8
|
long_description_content_type="text/markdown",
|
@@ -1,6 +0,0 @@
|
|
1
|
-
from .print_hdf5_structure import print_hdf5_structure
|
2
|
-
from .concat_image_horizontal import concat_image_horizontal
|
3
|
-
from .concat_image_vertical import concat_image_vertical
|
4
|
-
from .make_h5 import make_h5
|
5
|
-
|
6
|
-
__all__ = ["print_hdf5_structure", "concat_image_horizontal", "concat_image_vertical", "make_h5"]
|
@@ -1,31 +0,0 @@
|
|
1
|
-
from PIL import Image
|
2
|
-
|
3
|
-
def concat_image_horizontal(img_list: list[Image], gap = 2) -> Image:
|
4
|
-
N = len(img_list)
|
5
|
-
|
6
|
-
# Error 1: no images
|
7
|
-
if N == 0:
|
8
|
-
raise ValueError("The length of the image list is 0.")
|
9
|
-
|
10
|
-
# Error 2: Size differs
|
11
|
-
width = img_list[0].width
|
12
|
-
height = img_list[0].height
|
13
|
-
for i in range(1, N):
|
14
|
-
if img_list[i].width != width:
|
15
|
-
raise ValueError("All images should have the same width.")
|
16
|
-
if img_list[i].height != height:
|
17
|
-
raise ValueError("All images should have the same height.")
|
18
|
-
|
19
|
-
# Create concated image
|
20
|
-
concated_width = width * N + gap * (N+1)
|
21
|
-
concated_height = height + gap * 2
|
22
|
-
concated_image = Image.new("RGB", (concated_width, concated_height))
|
23
|
-
|
24
|
-
# Copy ans paste
|
25
|
-
for i in range(N):
|
26
|
-
concated_image.paste(img_list[i], (width * i + gap * (i+1), gap))
|
27
|
-
|
28
|
-
# return
|
29
|
-
return concated_image
|
30
|
-
|
31
|
-
__all__ = ["concat_image_horizontal"]
|
@@ -1,31 +0,0 @@
|
|
1
|
-
from PIL import Image
|
2
|
-
|
3
|
-
def concat_image_vertical(img_list: list[Image], gap = 2) -> Image:
|
4
|
-
N = len(img_list)
|
5
|
-
|
6
|
-
# Error 1: no images
|
7
|
-
if N == 0:
|
8
|
-
raise ValueError("The length of the image list is 0.")
|
9
|
-
|
10
|
-
# Error 2: Size differs
|
11
|
-
width = img_list[0].width
|
12
|
-
height = img_list[0].height
|
13
|
-
for i in range(1, N):
|
14
|
-
if img_list[i].width != width:
|
15
|
-
raise ValueError("All images should have the same width.")
|
16
|
-
if img_list[i].height != height:
|
17
|
-
raise ValueError("All images should have the same height.")
|
18
|
-
|
19
|
-
# Create concated image
|
20
|
-
concated_width = width + gap * 2
|
21
|
-
concated_height = height * N + gap * (N+1)
|
22
|
-
concated_image = Image.new("RGB", (concated_width, concated_height))
|
23
|
-
|
24
|
-
# Copy ans paste
|
25
|
-
for i in range(N):
|
26
|
-
concated_image.paste(img_list[i], (gap, height * i + gap * (i+1)))
|
27
|
-
|
28
|
-
# return
|
29
|
-
return concated_image
|
30
|
-
|
31
|
-
__all__ = ["concat_image_vertical"]
|
@@ -1,46 +0,0 @@
|
|
1
|
-
import gdown
|
2
|
-
import getpass
|
3
|
-
from importlib import resources
|
4
|
-
import os
|
5
|
-
import subprocess
|
6
|
-
|
7
|
-
# Paths
|
8
|
-
datasets_dir = resources.files("myosotis_researches").joinpath("CcGAN", "datasets")
|
9
|
-
if not os.path.exists(datasets_dir):
|
10
|
-
os.makedirs(datasets_dir, exist_ok=True)
|
11
|
-
|
12
|
-
# File ID dictionary
|
13
|
-
file_id_dict = {
|
14
|
-
"Ra": "1CcXp7ga4Ebj7XeMA_fYH2RxTMOWvA0v5",
|
15
|
-
"MNIST": "1LCQmQEBAGBI7ouBEWvIAjGKZsKcYasoe",
|
16
|
-
}
|
17
|
-
|
18
|
-
|
19
|
-
# Function
|
20
|
-
def install_datasets(datasets_name):
|
21
|
-
|
22
|
-
# Path
|
23
|
-
zipped_dataset_path = os.path.join(datasets_dir, f"{datasets_name}_datasets.rar")
|
24
|
-
|
25
|
-
# File ID
|
26
|
-
file_id = file_id_dict[datasets_name]
|
27
|
-
|
28
|
-
# URL
|
29
|
-
url = f"https://drive.google.com/uc?id={file_id}"
|
30
|
-
|
31
|
-
# Download
|
32
|
-
gdown.download(url, zipped_dataset_path, quiet=False, use_cookies=False)
|
33
|
-
|
34
|
-
# Unzip
|
35
|
-
unzip_password = getpass.getpass("Password:")
|
36
|
-
cmd = ["unrar", "x", f"-p{unzip_password}", zipped_dataset_path, datasets_dir]
|
37
|
-
try:
|
38
|
-
subprocess.run(cmd, check=True)
|
39
|
-
except subprocess.CalledProcessError as e:
|
40
|
-
print(e)
|
41
|
-
|
42
|
-
# Delete zipped datasets
|
43
|
-
os.remove(zipped_dataset_path)
|
44
|
-
|
45
|
-
|
46
|
-
__all__ = ["install_datasets"]
|
File without changes
|
File without changes
|
{myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/Myosotis_Researches.egg-info/top_level.txt
RENAMED
File without changes
|
{myosotis_researches-0.0.30 → myosotis_researches-0.0.32}/myosotis_researches/CcGAN/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|