zou 0.19.57__py3-none-any.whl → 0.19.59__py3-none-any.whl
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.
- zou/__init__.py +1 -1
- zou/app/blueprints/assets/resources.py +3 -3
- zou/app/blueprints/news/resources.py +9 -4
- zou/app/blueprints/source/otio.py +3 -3
- zou/app/blueprints/tasks/resources.py +6 -2
- zou/app/blueprints/user/resources.py +6 -6
- zou/app/utils/saml.py +3 -4
- {zou-0.19.57.dist-info → zou-0.19.59.dist-info}/METADATA +5 -5
- {zou-0.19.57.dist-info → zou-0.19.59.dist-info}/RECORD +13 -13
- {zou-0.19.57.dist-info → zou-0.19.59.dist-info}/WHEEL +1 -1
- {zou-0.19.57.dist-info → zou-0.19.59.dist-info}/LICENSE +0 -0
- {zou-0.19.57.dist-info → zou-0.19.59.dist-info}/entry_points.txt +0 -0
- {zou-0.19.57.dist-info → zou-0.19.59.dist-info}/top_level.txt +0 -0
zou/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.19.
|
|
1
|
+
__version__ = "0.19.59"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from flask import request
|
|
2
|
-
from flask_restful import Resource
|
|
2
|
+
from flask_restful import Resource, inputs
|
|
3
3
|
from flask_jwt_extended import jwt_required
|
|
4
4
|
|
|
5
5
|
from zou.app.utils import permissions, query
|
|
@@ -486,7 +486,7 @@ class NewAssetResource(Resource, ArgsMixin):
|
|
|
486
486
|
"is_shared",
|
|
487
487
|
True,
|
|
488
488
|
False,
|
|
489
|
-
|
|
489
|
+
inputs.boolean,
|
|
490
490
|
),
|
|
491
491
|
"episode_id",
|
|
492
492
|
]
|
|
@@ -688,7 +688,7 @@ class BaseSetSharedAssetsResource(Resource, ArgsMixin):
|
|
|
688
688
|
"is_shared",
|
|
689
689
|
True,
|
|
690
690
|
False,
|
|
691
|
-
|
|
691
|
+
inputs.boolean,
|
|
692
692
|
),
|
|
693
693
|
]
|
|
694
694
|
)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from flask_restful import Resource
|
|
1
|
+
from flask_restful import Resource, inputs
|
|
2
2
|
from flask_jwt_extended import jwt_required
|
|
3
3
|
|
|
4
4
|
from zou.app.mixin import ArgsMixin
|
|
@@ -7,7 +7,7 @@ from zou.app.services.exception import NewsNotFoundException
|
|
|
7
7
|
from zou.app.utils import permissions
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
class NewsMixin:
|
|
10
|
+
class NewsMixin(ArgsMixin):
|
|
11
11
|
def get_news(self, project_ids=[]):
|
|
12
12
|
(
|
|
13
13
|
only_preview,
|
|
@@ -21,7 +21,6 @@ class NewsMixin:
|
|
|
21
21
|
before,
|
|
22
22
|
) = self.get_arguments()
|
|
23
23
|
|
|
24
|
-
user_service
|
|
25
24
|
after = self.parse_date_parameter(after)
|
|
26
25
|
before = self.parse_date_parameter(before)
|
|
27
26
|
result = news_service.get_last_news_for_project(
|
|
@@ -38,6 +37,7 @@ class NewsMixin:
|
|
|
38
37
|
)
|
|
39
38
|
stats = news_service.get_news_stats_for_project(
|
|
40
39
|
project_ids=project_ids,
|
|
40
|
+
only_preview=only_preview,
|
|
41
41
|
task_type_id=task_type_id,
|
|
42
42
|
task_status_id=task_status_id,
|
|
43
43
|
episode_id=episode_id,
|
|
@@ -51,7 +51,12 @@ class NewsMixin:
|
|
|
51
51
|
def get_arguments(self):
|
|
52
52
|
args = self.get_args(
|
|
53
53
|
[
|
|
54
|
-
|
|
54
|
+
(
|
|
55
|
+
"only_preview",
|
|
56
|
+
False,
|
|
57
|
+
False,
|
|
58
|
+
inputs.boolean,
|
|
59
|
+
),
|
|
55
60
|
"task_type_id",
|
|
56
61
|
"task_status_id",
|
|
57
62
|
"person_id",
|
|
@@ -6,7 +6,7 @@ import re
|
|
|
6
6
|
from string import Template
|
|
7
7
|
|
|
8
8
|
from flask import request, current_app
|
|
9
|
-
from flask_restful import Resource
|
|
9
|
+
from flask_restful import Resource, inputs
|
|
10
10
|
from flask_jwt_extended import jwt_required
|
|
11
11
|
|
|
12
12
|
from zou.app import config
|
|
@@ -308,7 +308,7 @@ class OTIOImportResource(OTIOBaseResource):
|
|
|
308
308
|
False,
|
|
309
309
|
str,
|
|
310
310
|
),
|
|
311
|
-
("match_case", True, False,
|
|
311
|
+
("match_case", True, False, inputs.boolean),
|
|
312
312
|
]
|
|
313
313
|
)
|
|
314
314
|
|
|
@@ -359,6 +359,6 @@ class OTIOImportEpisodeResource(OTIOBaseResource):
|
|
|
359
359
|
False,
|
|
360
360
|
str,
|
|
361
361
|
),
|
|
362
|
-
("match_case", True, False,
|
|
362
|
+
("match_case", True, False, inputs.boolean),
|
|
363
363
|
]
|
|
364
364
|
)
|
|
@@ -2,7 +2,7 @@ import datetime
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from flask import abort, request
|
|
5
|
-
from flask_restful import Resource
|
|
5
|
+
from flask_restful import Resource, inputs
|
|
6
6
|
from flask_jwt_extended import jwt_required
|
|
7
7
|
|
|
8
8
|
from zou.app.services.exception import (
|
|
@@ -793,7 +793,11 @@ class ToReviewResource(Resource, ArgsMixin):
|
|
|
793
793
|
("comment", ""),
|
|
794
794
|
("name", "main"),
|
|
795
795
|
{"name": "revision", "default": 1, "type": int},
|
|
796
|
-
{
|
|
796
|
+
{
|
|
797
|
+
"name": "change_status",
|
|
798
|
+
"default": True,
|
|
799
|
+
"type": inputs.boolean,
|
|
800
|
+
},
|
|
797
801
|
]
|
|
798
802
|
)
|
|
799
803
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from flask import abort, request
|
|
2
|
-
from flask_restful import Resource
|
|
2
|
+
from flask_restful import Resource, inputs
|
|
3
3
|
|
|
4
4
|
from zou.app.mixin import ArgsMixin
|
|
5
5
|
from zou.app.services import (
|
|
@@ -556,7 +556,7 @@ class FiltersResource(Resource, ArgsMixin):
|
|
|
556
556
|
("list_type", "todo", True),
|
|
557
557
|
("project_id", None, False),
|
|
558
558
|
("entity_type", None, False),
|
|
559
|
-
("is_shared", False, False,
|
|
559
|
+
("is_shared", False, False, inputs.boolean),
|
|
560
560
|
("search_filter_group_id", None, False),
|
|
561
561
|
]
|
|
562
562
|
)
|
|
@@ -589,7 +589,7 @@ class FilterResource(Resource, ArgsMixin):
|
|
|
589
589
|
("name", None, False),
|
|
590
590
|
("search_query", None, False),
|
|
591
591
|
("search_filter_group_id", None, False),
|
|
592
|
-
("is_shared", None, False,
|
|
592
|
+
("is_shared", None, False, inputs.boolean),
|
|
593
593
|
("project_id", None, None),
|
|
594
594
|
]
|
|
595
595
|
)
|
|
@@ -695,7 +695,7 @@ class FilterGroupsResource(Resource, ArgsMixin):
|
|
|
695
695
|
("color", "", True),
|
|
696
696
|
("list_type", "todo", True),
|
|
697
697
|
("project_id", None, False),
|
|
698
|
-
("is_shared", False, False,
|
|
698
|
+
("is_shared", False, False, inputs.boolean),
|
|
699
699
|
("entity_type", None, False),
|
|
700
700
|
]
|
|
701
701
|
)
|
|
@@ -741,7 +741,7 @@ class FilterGroupResource(Resource, ArgsMixin):
|
|
|
741
741
|
[
|
|
742
742
|
("name", None, False),
|
|
743
743
|
("color", None, False),
|
|
744
|
-
("is_shared", None, False,
|
|
744
|
+
("is_shared", None, False, inputs.boolean),
|
|
745
745
|
("project_id", None, None),
|
|
746
746
|
]
|
|
747
747
|
)
|
|
@@ -919,7 +919,7 @@ class NotificationResource(Resource, ArgsMixin):
|
|
|
919
919
|
200:
|
|
920
920
|
description: Notification
|
|
921
921
|
"""
|
|
922
|
-
data = self.get_args([("read", None, False,
|
|
922
|
+
data = self.get_args([("read", None, False, inputs.boolean)])
|
|
923
923
|
return user_service.update_notification(notification_id, data["read"])
|
|
924
924
|
|
|
925
925
|
|
zou/app/utils/saml.py
CHANGED
|
@@ -15,8 +15,9 @@ def saml_client_for(metadata_url):
|
|
|
15
15
|
Given the name of an IdP, return a configuation.
|
|
16
16
|
The configuration is a hash for use by saml2.config.Config
|
|
17
17
|
"""
|
|
18
|
-
acs_url =
|
|
19
|
-
|
|
18
|
+
acs_url = (
|
|
19
|
+
f"{config.DOMAIN_PROTOCOL}://{config.DOMAIN_NAME}/api/auth/saml/sso"
|
|
20
|
+
)
|
|
20
21
|
|
|
21
22
|
rv = requests.get(metadata_url)
|
|
22
23
|
|
|
@@ -29,8 +30,6 @@ def saml_client_for(metadata_url):
|
|
|
29
30
|
"assertion_consumer_service": [
|
|
30
31
|
(acs_url, BINDING_HTTP_REDIRECT),
|
|
31
32
|
(acs_url, BINDING_HTTP_POST),
|
|
32
|
-
(https_acs_url, BINDING_HTTP_REDIRECT),
|
|
33
|
-
(https_acs_url, BINDING_HTTP_POST),
|
|
34
33
|
],
|
|
35
34
|
},
|
|
36
35
|
# Don't verify that the incoming requests originate from us via
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: zou
|
|
3
|
-
Version: 0.19.
|
|
3
|
+
Version: 0.19.59
|
|
4
4
|
Summary: API to store and manage the data of your animation production
|
|
5
5
|
Home-page: https://zou.cg-wire.com
|
|
6
6
|
Author: CG Wire
|
|
@@ -39,9 +39,9 @@ Requires-Dist: flask-jwt-extended ==4.6.0
|
|
|
39
39
|
Requires-Dist: flask-migrate ==4.0.7
|
|
40
40
|
Requires-Dist: flask-socketio ==5.4.1
|
|
41
41
|
Requires-Dist: flask ==3.0.3
|
|
42
|
-
Requires-Dist: gazu ==0.10.
|
|
42
|
+
Requires-Dist: gazu ==0.10.16
|
|
43
43
|
Requires-Dist: gevent-websocket ==0.10.1
|
|
44
|
-
Requires-Dist: gevent ==24.10.
|
|
44
|
+
Requires-Dist: gevent ==24.10.2
|
|
45
45
|
Requires-Dist: gunicorn ==23.0.0
|
|
46
46
|
Requires-Dist: isoweek ==1.3.3
|
|
47
47
|
Requires-Dist: itsdangerous ==2.2.0
|
|
@@ -53,7 +53,7 @@ Requires-Dist: opencv-python ==4.10.0.84
|
|
|
53
53
|
Requires-Dist: OpenTimelineIO ==0.17.0
|
|
54
54
|
Requires-Dist: OpenTimelineIO-Plugins ==0.17.0
|
|
55
55
|
Requires-Dist: orjson ==3.10.7
|
|
56
|
-
Requires-Dist: pillow ==
|
|
56
|
+
Requires-Dist: pillow ==11.0.0
|
|
57
57
|
Requires-Dist: psutil ==6.0.0
|
|
58
58
|
Requires-Dist: psycopg[binary] ==3.2.3
|
|
59
59
|
Requires-Dist: pyotp ==2.9.0
|
|
@@ -67,7 +67,7 @@ Requires-Dist: requests ==2.32.3
|
|
|
67
67
|
Requires-Dist: rq ==1.16.2
|
|
68
68
|
Requires-Dist: slackclient ==2.9.4
|
|
69
69
|
Requires-Dist: sqlalchemy-utils ==0.41.2
|
|
70
|
-
Requires-Dist: sqlalchemy ==2.0.
|
|
70
|
+
Requires-Dist: sqlalchemy ==2.0.36
|
|
71
71
|
Requires-Dist: ua-parser ==0.18.0
|
|
72
72
|
Requires-Dist: werkzeug ==3.0.4
|
|
73
73
|
Requires-Dist: numpy ==2.0.1 ; python_version == "3.9"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
zou/__init__.py,sha256=
|
|
1
|
+
zou/__init__.py,sha256=b97E6Hah3oQTkm2ZoT-WNuYCM9G9zqcTmV2ptqPmHPc,24
|
|
2
2
|
zou/cli.py,sha256=DHHf4mz33Bi0gGFJ0GdRUpjrMrMSQYyVubJFppHPZlU,18914
|
|
3
3
|
zou/debug.py,sha256=1fawPbkD4wn0Y9Gk0BiBFSa-CQe5agFi8R9uJYl2Uyk,520
|
|
4
4
|
zou/event_stream.py,sha256=_tue9Ry3aqCniZpKGhWJaY1Eo_fd6zOAfnzPvh_mJzU,8489
|
|
@@ -10,7 +10,7 @@ zou/app/mixin.py,sha256=eYwfS_CUFvNmldaQXrjsN5mK_gX0wYrBFykfx60uUM8,4897
|
|
|
10
10
|
zou/app/swagger.py,sha256=Jr7zsMqJi0V4FledODOdu-aqqVE02jMFzhqVxHK0_2c,54158
|
|
11
11
|
zou/app/blueprints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
12
|
zou/app/blueprints/assets/__init__.py,sha256=T2zhDagHjXF6jRwOQ8vqokZTkBHyY7XtTI0Rlooamjs,2931
|
|
13
|
-
zou/app/blueprints/assets/resources.py,sha256=
|
|
13
|
+
zou/app/blueprints/assets/resources.py,sha256=ff7g8_FzZC6dLvMxcYYffsIOy0CqKqdkZibGm2-qgko,25599
|
|
14
14
|
zou/app/blueprints/auth/__init__.py,sha256=xP874bMWUnLIirOPSEbpe-Q2fBBQrxZGKd0tLZmNJXk,1128
|
|
15
15
|
zou/app/blueprints/auth/resources.py,sha256=CAqlC8Q2Mw3grjL2bU_aZJQ18huwa1Kf3ym2sueH8Bg,45136
|
|
16
16
|
zou/app/blueprints/breakdown/__init__.py,sha256=Dp6GWSGxxWIedpyzTTEKpCRUYEo8oVNVyQhwNvTMmQM,1888
|
|
@@ -85,7 +85,7 @@ zou/app/blueprints/files/resources.py,sha256=8SIV8kaqv3dxyL8nyqG3QiZmk5ZYIvUxw6k
|
|
|
85
85
|
zou/app/blueprints/index/__init__.py,sha256=Dh3oQiirpg8RCkfVOuk3irIjSvUvuRf0jPxE6oGubz0,828
|
|
86
86
|
zou/app/blueprints/index/resources.py,sha256=lGPUGZPla59mjXXsDW4DB04uE_rI4fhMqm8J48Nxf4s,8407
|
|
87
87
|
zou/app/blueprints/news/__init__.py,sha256=HxBXjC15dVbotNAZ0CLf02iwUjxJr20kgf8_kT_9nwM,505
|
|
88
|
-
zou/app/blueprints/news/resources.py,sha256=
|
|
88
|
+
zou/app/blueprints/news/resources.py,sha256=SL0RYo-fs23GjQU1IW4kuEBg2SHdaXaonrOoOnWafdw,7183
|
|
89
89
|
zou/app/blueprints/persons/__init__.py,sha256=0cnHHw3K_8OEMm0qOi3wKVomSAg9IJSnVjAXabMeHks,3893
|
|
90
90
|
zou/app/blueprints/persons/resources.py,sha256=RsN8ix67zRU7NNeMY7uFCXkU2ntJlmKF6DizmGVYdE0,42684
|
|
91
91
|
zou/app/blueprints/playlists/__init__.py,sha256=vuEk1F3hFHsmuKWhdepMoLyOzmNKDn1YrjjfcaIz0lQ,1596
|
|
@@ -100,7 +100,7 @@ zou/app/blueprints/shots/__init__.py,sha256=HfgLneZBYUMa2OGwIgEZTz8zrIEYFRiYmRbr
|
|
|
100
100
|
zou/app/blueprints/shots/resources.py,sha256=_Zkxk_XFwuT_b6vWOx9p3VyMuD2PAo-xKJRATsGjPdQ,49965
|
|
101
101
|
zou/app/blueprints/source/__init__.py,sha256=H7K-4TDs4pc5EJvcYTYMJBHesxyqsE5-xq7J8ckOS2g,6093
|
|
102
102
|
zou/app/blueprints/source/kitsu.py,sha256=4lWdqxaKDzwx-5POAIHIgZ6ODbDMOOVRxaSb_FOLcCk,5012
|
|
103
|
-
zou/app/blueprints/source/otio.py,sha256=
|
|
103
|
+
zou/app/blueprints/source/otio.py,sha256=nTXQEauFinPv2QBXziJW83rSrB_qzIbkFQ_qgxbJynA,13419
|
|
104
104
|
zou/app/blueprints/source/csv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
105
105
|
zou/app/blueprints/source/csv/assets.py,sha256=yXoiRaEtW-GXYbmVQJn5Nghx0CR3WTQ-D4farDeG8JI,10471
|
|
106
106
|
zou/app/blueprints/source/csv/base.py,sha256=rzFBJhqBTUEmAH2eCzjFxJoAXaMW6VDafmWakoBdL-I,4387
|
|
@@ -127,9 +127,9 @@ zou/app/blueprints/source/shotgun/tasks.py,sha256=XXBRe9QhhS-kuZeV3HitOnpf7mmWVx
|
|
|
127
127
|
zou/app/blueprints/source/shotgun/team.py,sha256=GF7y2BwDeFJCiidtG68icfCi-uV1-b96YKiH8KR54iE,1819
|
|
128
128
|
zou/app/blueprints/source/shotgun/versions.py,sha256=8Mb35e5p3FLbbiu6AZb9tJErDKz2pPRBdIYu80Ayj7w,2292
|
|
129
129
|
zou/app/blueprints/tasks/__init__.py,sha256=pNUqVEVX1KVu1IzRRJNsziPkhWKXqgyvQsNp7LbmIxo,4342
|
|
130
|
-
zou/app/blueprints/tasks/resources.py,sha256=
|
|
130
|
+
zou/app/blueprints/tasks/resources.py,sha256=b5z4OolidyKdKTP5kuZLk7tDLhgDs5W3rkH4ZWlwB0Y,56020
|
|
131
131
|
zou/app/blueprints/user/__init__.py,sha256=H9zCHcVobC6jq6dTToXKAjnZmDA0a9gChHiIP3BcZsc,4586
|
|
132
|
-
zou/app/blueprints/user/resources.py,sha256=
|
|
132
|
+
zou/app/blueprints/user/resources.py,sha256=tfdNIIwClACEfmvu8SgQs1Q3oD9nVT0P2IpdcglmITo,38646
|
|
133
133
|
zou/app/file_trees/default.json,sha256=ryUrEmQYE8B_WkzCoQLgmem3N9yNwMIWx9G8p3HfG9o,2310
|
|
134
134
|
zou/app/file_trees/simple.json,sha256=VBI43Z3rjQxtTpVCq3ktUgS0UB8x-aTowKL9LXuXCFI,3149
|
|
135
135
|
zou/app/indexer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -242,7 +242,7 @@ zou/app/utils/monitoring.py,sha256=xOwyfM-7ZKWNtOxmX2WB1fOav5NpY6k8Tmuhli0nMBs,2
|
|
|
242
242
|
zou/app/utils/permissions.py,sha256=Oq91C_lN6aGVCtCVUqQhijMQEjXOiMezbngpjybzzQk,3426
|
|
243
243
|
zou/app/utils/query.py,sha256=q8ETGPAqnz0Pt9xWoQt5o7FFAVYUKVCJiWpwefIr-iU,4592
|
|
244
244
|
zou/app/utils/remote_job.py,sha256=QPxcCWEv-NM1Q4IQawAyJAiSORwkMeOlByQb9OCShEw,2522
|
|
245
|
-
zou/app/utils/saml.py,sha256=
|
|
245
|
+
zou/app/utils/saml.py,sha256=m8wt_2RnMEHSrFvqCRGF91U5mwkqC6W-iBcx8N0LAqs,1679
|
|
246
246
|
zou/app/utils/shell.py,sha256=D30NuOzr1D6jsa9OF69JYXyqYNhtIdnfKSVYW4irbz8,405
|
|
247
247
|
zou/app/utils/string.py,sha256=ZIJuQRe7ml669-T1o9keQtk_lV2D1DkS9ARQdexlQ6Y,404
|
|
248
248
|
zou/app/utils/thumbnail.py,sha256=eUb25So1fbjxZKYRpTOxLcZ0vww5zXNVkfVIa_tu5Dk,6625
|
|
@@ -412,9 +412,9 @@ zou/remote/normalize_movie.py,sha256=zNfEY3N1UbAHZfddGONTg2Sff3ieLVWd4dfZa1dpnes
|
|
|
412
412
|
zou/remote/playlist.py,sha256=AsDo0bgYhDcd6DfNRV6r6Jj3URWwavE2ZN3VkKRPbLU,3293
|
|
413
413
|
zou/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
414
414
|
zou/utils/movie.py,sha256=u9LCEOvmkxwm-KiZ6jKNdB9LSC6XXUDwJpVx8LkDwJg,16416
|
|
415
|
-
zou-0.19.
|
|
416
|
-
zou-0.19.
|
|
417
|
-
zou-0.19.
|
|
418
|
-
zou-0.19.
|
|
419
|
-
zou-0.19.
|
|
420
|
-
zou-0.19.
|
|
415
|
+
zou-0.19.59.dist-info/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
|
|
416
|
+
zou-0.19.59.dist-info/METADATA,sha256=K0hudkDEtKzacm14NetaW7DirauYKRfAEVRIlWrV7hc,6676
|
|
417
|
+
zou-0.19.59.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
|
418
|
+
zou-0.19.59.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
|
|
419
|
+
zou-0.19.59.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
|
|
420
|
+
zou-0.19.59.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|