SAMBA-ilum 1.0.0.417__tar.gz → 1.0.0.419__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.
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/PKG-INFO +1 -1
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/SAMBA_ilum.egg-info/PKG-INFO +1 -1
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/__main__.py +1 -1
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/BZ_2D.py +11 -4
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_xy-scan +1 -1
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_xyz-scan +1 -1
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_z-scan +1 -1
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/job.py +5 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/make_files.py +3 -2
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/xy-scan.py +2 -2
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/xy-scan_analysis.py +31 -19
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/setup.py +1 -1
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/LICENSE.txt +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/README.md +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/SAMBA_ilum.egg-info/SOURCES.txt +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/SAMBA_ilum.egg-info/dependency_links.txt +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/SAMBA_ilum.egg-info/entry_points.txt +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/SAMBA_ilum.egg-info/requires.txt +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/SAMBA_ilum.egg-info/top_level.txt +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/__init__.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/HeteroStructure_Generator.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_a-scan +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_bader +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_bader.SO +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_bands +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_bands.SO +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_dos +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_dos.SO +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_relax +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_scf +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/INCAR_scf.SO +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/SAMBA_HeteroStructure.input +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/SAMBA_WorkFlow.input +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.bands +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.chgcar +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.dos +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.location +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.locpot +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.orbitals +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.spin +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/vdw_kernel.bindat +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/_info_pseudo.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/a-scan.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/a-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/bader +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/bader_poscar.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/bader_update.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/charge_transfer.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/chgsum.pl +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/contcar_update.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/data-base_json.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/data-base_union.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/energy_scan.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/kpoints.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/lattice_plot3d.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/output.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/potcar.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/vdW_DF.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/xyz-scan.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/xyz-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/z-scan.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/z-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/setup.cfg +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#-----------------
|
|
2
2
|
import numpy as np
|
|
3
|
+
import sys
|
|
3
4
|
import os
|
|
4
5
|
#----------------
|
|
5
6
|
import matplotlib
|
|
@@ -16,9 +17,15 @@ from scipy.spatial import Voronoi
|
|
|
16
17
|
#============================================================
|
|
17
18
|
kpoints_file = []
|
|
18
19
|
kpath = []
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if os.path.isdir('output/Bandas
|
|
20
|
+
#-------------------
|
|
21
|
+
continue_plot_bz = 0
|
|
22
|
+
if os.path.isdir('output/Bandas'):
|
|
23
|
+
dir_kpath = 'bands'
|
|
24
|
+
continue_plot_bz = 1
|
|
25
|
+
if os.path.isdir('output/Bandas_SO'):
|
|
26
|
+
dir_kpath = 'bands.SO'
|
|
27
|
+
continue_plot_bz = 1
|
|
28
|
+
if (continue_plot_bz == 0): sys.exit()
|
|
22
29
|
#-----------------------------------------------------------------------------
|
|
23
30
|
if os.path.isfile(dir_kpath + '/' + 'KPOINTS'): kpoints_file.append('KPOINTS')
|
|
24
31
|
#--------------------------------------------------------------------------------------
|
|
@@ -159,5 +166,5 @@ ax.legend(loc = "lower left", title = "", fontsize=8)
|
|
|
159
166
|
ax.set_box_aspect(abs((y_max - y_min) / (x_max - x_min)))
|
|
160
167
|
#-------------------------------------------------------------------------------------------------------------------------------
|
|
161
168
|
if os.path.isdir('output/Bandas'): plt.savefig('output/Bandas/Brillouin_Zone.png', dpi = 600, bbox_inches='tight', pad_inches=0)
|
|
162
|
-
if os.path.isdir('output/
|
|
169
|
+
if os.path.isdir('output/Bandas_SO'): plt.savefig('output/Bandas_SO/Brillouin_Zone.png', dpi = 600, bbox_inches='tight', pad_inches=0)
|
|
163
170
|
#-------------------------------------------------------------------------------------------------------------------------------------
|
|
@@ -45,6 +45,10 @@ job = open(dir_out + '/job0.sh', "w")
|
|
|
45
45
|
#====================================
|
|
46
46
|
job.write(f'#!/bin/bash \n')
|
|
47
47
|
job.write(f' \n')
|
|
48
|
+
job.write(f'cd $dir0 \n'
|
|
49
|
+
job.write(f'mv python_virtual python_virtual_delete \n'
|
|
50
|
+
job.write(f'rm -r python_virtual_delete \n'
|
|
51
|
+
job.write(f' \n')
|
|
48
52
|
job.write(f'#------------------------------- \n')
|
|
49
53
|
job.write(f'dir_virtual="{dir_virtual_python}" \n')
|
|
50
54
|
job.write(f'# cp -r $dir_virtual $dir0/python_virtual \n')
|
|
@@ -391,6 +395,7 @@ job.write(f' fi \n')
|
|
|
391
395
|
job.write(f' done \n')
|
|
392
396
|
job.write(f' cd $dir0/$i \n')
|
|
393
397
|
job.write(f' python3 output.py \n')
|
|
398
|
+
job.write(f' python3 BZ_2D.py \n')
|
|
394
399
|
job.write(f' python3 lattice_plot3d.py \n')
|
|
395
400
|
job.write(f' #------------------------ \n')
|
|
396
401
|
job.write(f' cp -r $dir0/$i/output/POSCAR $dir0/$i/output/POSCAR.info \n')
|
|
@@ -639,10 +639,11 @@ for i in range(len(files)):
|
|
|
639
639
|
# Copiando códigos python para o diretorio principal -----------------------------
|
|
640
640
|
#---------------------------------------------------------------------------------
|
|
641
641
|
for i in range(len(files)):
|
|
642
|
+
shutil.copyfile(dir_codes + '/data-base_json.py', dir_out + '/' + files[i] + '/data-base_json.py')
|
|
642
643
|
shutil.copyfile(dir_codes + '/lattice_plot3d.py', dir_out + '/' + files[i] + '/lattice_plot3d.py')
|
|
643
644
|
shutil.copyfile(dir_codes + '/output.py', dir_out + '/' + files[i] + '/output.py')
|
|
644
|
-
|
|
645
|
-
|
|
645
|
+
shutil.copyfile(dir_codes + '/BZ_2D.py', dir_out + '/' + files[i] + '/BZ_2D.py')
|
|
646
|
+
#-------------------------------------------------------------------------------
|
|
646
647
|
dir_file = dir_out + '/' + files[i] + '/data-base_json.py'
|
|
647
648
|
with open(dir_file, "r") as file: content = file.read()
|
|
648
649
|
content = content.replace('# replace_type_pseudo', 'pseudo_type = ' + "'" + str(replace_type_pseudo) + "'")
|
|
@@ -78,8 +78,8 @@ for i in range(len(folders)): shutil.rmtree('folders[i]')
|
|
|
78
78
|
poscar = open('POSCAR', "r")
|
|
79
79
|
#---------------------------------
|
|
80
80
|
line_0 = poscar.readline().split()
|
|
81
|
-
if (line_0[-
|
|
82
|
-
if (line_0[-
|
|
81
|
+
if (line_0[-7] == 'Shift_plane'): shift = str(line_0[-5])
|
|
82
|
+
if (line_0[-7] != 'Shift_plane'): shift = '0.0_0.0'
|
|
83
83
|
#-----------------------------------------------
|
|
84
84
|
VTemp = poscar.readline(); param = float(VTemp)
|
|
85
85
|
VTemp = poscar.readline().split(); A1x = float(VTemp[0]); A1y = float(VTemp[1]); A1z = float(VTemp[2])
|
|
@@ -23,6 +23,7 @@ from matplotlib import pyplot as plt
|
|
|
23
23
|
import matplotlib.ticker as ticker
|
|
24
24
|
from mpl_toolkits.mplot3d.axes3d import Axes3D
|
|
25
25
|
from matplotlib.ticker import LinearLocator, FormatStrFormatter
|
|
26
|
+
import matplotlib.patheffects as path_effects
|
|
26
27
|
import matplotlib.colors as mcolors
|
|
27
28
|
#----------------------------------
|
|
28
29
|
|
|
@@ -69,14 +70,10 @@ delta = date_shift[line]
|
|
|
69
70
|
delta_min = delta.replace('_', ' ').split()
|
|
70
71
|
a1_min = float(delta_min[0])
|
|
71
72
|
a2_min = float(delta_min[1])
|
|
72
|
-
|
|
73
|
-
y_min = (a1_min*A1y) + (a2_min*A2y)
|
|
74
|
-
#----------------------------------
|
|
73
|
+
#--------------------------------
|
|
75
74
|
if (a1_min == -0.0): a1_min = 0.0
|
|
76
75
|
if (a2_min == -0.0): a2_min = 0.0
|
|
77
|
-
|
|
78
|
-
if (y_min == -0.0): y_min = 0.0
|
|
79
|
-
#-------------------------------
|
|
76
|
+
#--------------------------------
|
|
80
77
|
|
|
81
78
|
|
|
82
79
|
#===============================================
|
|
@@ -102,7 +99,7 @@ for i in range(len(date_shift)):
|
|
|
102
99
|
t_shift_A1 = shift_A1 -a1_min +shift[j]
|
|
103
100
|
t_shift_A2 = shift_A2 -a2_min +shift[k]
|
|
104
101
|
if (t_shift_A1 >= -0.2 and t_shift_A1 <= 1.2):
|
|
105
|
-
if (t_shift_A2 >= -0.2 and t_shift_A2 <= 1.2):
|
|
102
|
+
if (t_shift_A2 >= -0.2 and t_shift_A2 <= 1.2):
|
|
106
103
|
file.write(f'{t_shift_A1}_{t_shift_A2} {(date_E[i]*1000)/Area} \n')
|
|
107
104
|
#-----------
|
|
108
105
|
file.close()
|
|
@@ -126,7 +123,7 @@ file = open('xy-scan_direct.dat', "w")
|
|
|
126
123
|
for i in range(len(date_shift)):
|
|
127
124
|
VTemp = str(date_shift[i])
|
|
128
125
|
VTemp = VTemp.replace('_', ' ')
|
|
129
|
-
file.write(f'{VTemp} {
|
|
126
|
+
file.write(f'{VTemp} {date_E[i]} \n')
|
|
130
127
|
#-----------
|
|
131
128
|
file.close()
|
|
132
129
|
#-----------
|
|
@@ -140,7 +137,7 @@ for i in range(len(date_shift)):
|
|
|
140
137
|
VTemp = VTemp.replace('_', ' ').split()
|
|
141
138
|
Coord_X = ((float(VTemp[0])*A1x) + (float(VTemp[1])*A2x))
|
|
142
139
|
Coord_Y = ((float(VTemp[0])*A1y) + (float(VTemp[1])*A2y))
|
|
143
|
-
file.write(f'{Coord_X} {Coord_Y} {
|
|
140
|
+
file.write(f'{Coord_X} {Coord_Y} {date_E[i]} \n')
|
|
144
141
|
#-----------
|
|
145
142
|
file.close()
|
|
146
143
|
#-----------
|
|
@@ -225,14 +222,14 @@ cmap_gray = (mpl.colors.ListedColormap(['darkgray', 'darkgray']))
|
|
|
225
222
|
#-----------------------
|
|
226
223
|
fig, ax = plt.subplots()
|
|
227
224
|
cp = plt.contourf(x_grid, y_grid, (e2_grid -E_min), levels = n_contour, cmap = 'jet', alpha = 1.0, antialiased = True)
|
|
228
|
-
plt.quiver(0, 0, A1x, A1y, angles='xy', scale_units='xy', scale=1, color='
|
|
229
|
-
plt.quiver(0, 0, A2x, A2y, angles='xy', scale_units='xy', scale=1, color='
|
|
225
|
+
plt.quiver(0, 0, A1x, A1y, angles='xy', scale_units='xy', scale=1, color='red', label='A$_1$', linewidth=0.1, edgecolor='black')
|
|
226
|
+
plt.quiver(0, 0, A2x, A2y, angles='xy', scale_units='xy', scale=1, color='red', label='A$_2$', linewidth=0.1, edgecolor='black')
|
|
230
227
|
plt.plot([A1x, (A1x+A2x)], [A1y, (A1y+A2y)], color = 'black', linewidth = 1.0, zorder=3)
|
|
231
228
|
plt.plot([A2x, (A1x+A2x)], [A2y, (A1y+A2y)], color = 'black', linewidth = 1.0, zorder=3)
|
|
232
|
-
plt.text((A1x/2), (A1y/2), "A$_1$", fontsize=10, color="
|
|
233
|
-
plt.text((A2x/2), (A2y/2), "A$_2$", fontsize=10, color="
|
|
234
|
-
|
|
235
|
-
|
|
229
|
+
text1 = plt.text((A1x/2), (A1y/2), "A$_1$", fontsize=10, color="red")
|
|
230
|
+
text2 = plt.text((A2x/2), (A2y/2), "A$_2$", fontsize=10, color="red")
|
|
231
|
+
text1.set_path_effects([path_effects.Stroke(linewidth=0.2, foreground='black'), path_effects.Normal()])
|
|
232
|
+
text2.set_path_effects([path_effects.Stroke(linewidth=0.2, foreground='black'), path_effects.Normal()])
|
|
236
233
|
cbar = fig.colorbar(cp, orientation = 'vertical', shrink = 1.0)
|
|
237
234
|
#-------------------
|
|
238
235
|
plt.title('xy-scan')
|
|
@@ -255,16 +252,31 @@ shutil.copyfile(str(delta) + '/CONTCAR', 'CONTCAR')
|
|
|
255
252
|
#--------------------------------------------------
|
|
256
253
|
|
|
257
254
|
|
|
255
|
+
#-----------------------------
|
|
256
|
+
contcar = open('CONTCAR', "r")
|
|
257
|
+
#----------------------------------
|
|
258
|
+
line_0 = contcar.readline().split()
|
|
259
|
+
if (line_0[-7] == 'Shift_plane'):
|
|
260
|
+
shift_0 = str(line_0[-5])
|
|
261
|
+
shift_0 = shift_0.replace('_', ' ').split()
|
|
262
|
+
#------------------------------------------
|
|
263
|
+
shift_A1 = float(shift_0[0])
|
|
264
|
+
shift_A2 = float(shift_0[1])
|
|
265
|
+
shift_X = (shift_A1*A1x) + (shift_A2*A2x)
|
|
266
|
+
shift_Y = (shift_A1*A1y) + (shift_A2*A2y)
|
|
267
|
+
#----------------------------------------
|
|
268
|
+
contcar.close()
|
|
269
|
+
#--------------
|
|
270
|
+
|
|
271
|
+
|
|
258
272
|
#=====================================================
|
|
259
273
|
info = open('info_xy-scan.dat', "w", encoding='utf-8')
|
|
260
274
|
info.write(f'====================================================== \n')
|
|
261
275
|
info.write(f'Displacement carried out over the 2nd material lattice \n')
|
|
262
276
|
#------------------------------------------------------------------
|
|
263
|
-
info.write(f'Displacement_XY = ({
|
|
264
|
-
info.write(f'Displacement_XY = ({
|
|
277
|
+
info.write(f'Displacement_XY = ({shift_X}, {shift_Y}) in Å \n')
|
|
278
|
+
info.write(f'Displacement_XY = ({shift_A1}*A1, {shift_A2}*A2) \n')
|
|
265
279
|
#----------------------------------------------------------------
|
|
266
|
-
# info.write(f'Displacement_XY = ({delta_X}, {delta_Y}) in Å \n')
|
|
267
|
-
# info.write(f'Displacement_XY = ({delta_A1}*A1, {delta_A2}*A2) \n')
|
|
268
280
|
info.write(f'------------------------------------------------------ \n')
|
|
269
281
|
info.write(f'ΔE = {Delta_E_meV:.12f} meV/Å^2 or {Delta_E_J:.12f} J/m^2 \n')
|
|
270
282
|
info.write(f'====================================================== \n')
|
|
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
|
{samba_ilum-1.0.0.417 → samba_ilum-1.0.0.419}/samba_ilum/src/INPUTS/SAMBA_HeteroStructure.input
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
|