linkedapi 1.3.3__tar.gz → 1.3.4__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.
- {linkedapi-1.3.3 → linkedapi-1.3.4}/PKG-INFO +1 -1
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/__init__.py +3 -1
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/client.py +3 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/__init__.py +2 -0
- linkedapi-1.3.4/linkedapi/operations/retrieve_feed.py +15 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/__init__.py +3 -0
- linkedapi-1.3.4/linkedapi/types/feed.py +14 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/pyproject.toml +1 -1
- {linkedapi-1.3.3 → linkedapi-1.3.4}/tests/test_operations.py +33 -1
- {linkedapi-1.3.3 → linkedapi-1.3.4}/.github/workflows/publish.yaml +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/.gitignore +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/LICENSE +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/README.md +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/admin/__init__.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/admin/accounts.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/admin/admin.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/admin/http_client.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/admin/limits.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/admin/subscription.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/admin/webhooks.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/config.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/core/__init__.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/core/operation.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/core/polling.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/errors.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/http/__init__.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/http/base.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/http/linked_api_http_client.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/mappers/__init__.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/mappers/array.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/mappers/base.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/mappers/send_message.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/mappers/simple.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/mappers/then.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/mappers/void.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/accept_invitation.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/check_connection_status.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/comment_on_post.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/create_post.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/custom_workflow.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/fetch_company.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/fetch_job.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/fetch_person.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/fetch_post.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/ignore_invitation.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/manage_conversation.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/nv_fetch_company.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/nv_fetch_person.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/nv_manage_conversation.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/nv_search_companies.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/nv_search_people.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/nv_send_message.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/nv_sync_conversation.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/nv_sync_inbox.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/react_to_post.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/remove_connection.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/retrieve_connections.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/retrieve_invitations.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/retrieve_pending_requests.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/retrieve_performance.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/retrieve_ssi.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/search_companies.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/search_jobs.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/search_people.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/send_connection_request.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/send_message.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/sync_conversation.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/sync_inbox.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/sync_network.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/operations/withdraw_connection_request.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/py.typed +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/account.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/admin/__init__.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/admin/accounts.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/admin/config.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/admin/limits.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/admin/subscription.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/base.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/company.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/connection.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/jobs.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/message.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/network.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/params.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/person.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/post.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/responses.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/search_companies.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/search_people.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/statistics.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/webhooks.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/types/workflow.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/webhooks/__init__.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/linkedapi/webhooks/parse.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/tests/conftest.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/tests/test_admin.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/tests/test_direct_methods.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/tests/test_errors.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/tests/test_http_client.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/tests/test_mappers.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/tests/test_models.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/tests/test_polling.py +0 -0
- {linkedapi-1.3.3 → linkedapi-1.3.4}/tests/test_webhooks.py +0 -0
|
@@ -57,6 +57,7 @@ from linkedapi.operations import (
|
|
|
57
57
|
ReactToPost,
|
|
58
58
|
RemoveConnection,
|
|
59
59
|
RetrieveConnections,
|
|
60
|
+
RetrieveFeed,
|
|
60
61
|
RetrieveInvitations,
|
|
61
62
|
RetrievePendingRequests,
|
|
62
63
|
RetrievePerformance,
|
|
@@ -75,7 +76,7 @@ from linkedapi.types import * # noqa: F403
|
|
|
75
76
|
from linkedapi.types import __all__ as _types_all
|
|
76
77
|
from linkedapi.webhooks import parse_webhook_event
|
|
77
78
|
|
|
78
|
-
__version__ = "1.3.
|
|
79
|
+
__version__ = "1.3.4"
|
|
79
80
|
PredefinedOperation = Operation
|
|
80
81
|
|
|
81
82
|
__all__ = [
|
|
@@ -132,6 +133,7 @@ __all__ = [
|
|
|
132
133
|
"ResponseMapping",
|
|
133
134
|
"RetrieveInvitations",
|
|
134
135
|
"RetrieveConnections",
|
|
136
|
+
"RetrieveFeed",
|
|
135
137
|
"RetrievePendingRequests",
|
|
136
138
|
"RetrievePerformance",
|
|
137
139
|
"RetrieveSSI",
|
|
@@ -30,6 +30,7 @@ from linkedapi.operations import (
|
|
|
30
30
|
ReactToPost,
|
|
31
31
|
RemoveConnection,
|
|
32
32
|
RetrieveConnections,
|
|
33
|
+
RetrieveFeed,
|
|
33
34
|
RetrieveInvitations,
|
|
34
35
|
RetrievePendingRequests,
|
|
35
36
|
RetrievePerformance,
|
|
@@ -90,6 +91,7 @@ class LinkedApi:
|
|
|
90
91
|
self.react_to_post = ReactToPost(self.http_client)
|
|
91
92
|
self.comment_on_post = CommentOnPost(self.http_client)
|
|
92
93
|
self.create_post = CreatePost(self.http_client)
|
|
94
|
+
self.retrieve_feed = RetrieveFeed(self.http_client)
|
|
93
95
|
self.retrieve_ssi = RetrieveSSI(self.http_client)
|
|
94
96
|
self.retrieve_performance = RetrievePerformance(self.http_client)
|
|
95
97
|
self.nv_send_message = NvSendMessage(self.http_client)
|
|
@@ -127,6 +129,7 @@ class LinkedApi:
|
|
|
127
129
|
self.react_to_post,
|
|
128
130
|
self.comment_on_post,
|
|
129
131
|
self.create_post,
|
|
132
|
+
self.retrieve_feed,
|
|
130
133
|
self.retrieve_ssi,
|
|
131
134
|
self.retrieve_performance,
|
|
132
135
|
self.nv_send_message,
|
|
@@ -20,6 +20,7 @@ from linkedapi.operations.nv_sync_inbox import NvSyncInbox
|
|
|
20
20
|
from linkedapi.operations.react_to_post import ReactToPost
|
|
21
21
|
from linkedapi.operations.remove_connection import RemoveConnection
|
|
22
22
|
from linkedapi.operations.retrieve_connections import RetrieveConnections
|
|
23
|
+
from linkedapi.operations.retrieve_feed import RetrieveFeed
|
|
23
24
|
from linkedapi.operations.retrieve_invitations import RetrieveInvitations
|
|
24
25
|
from linkedapi.operations.retrieve_pending_requests import RetrievePendingRequests
|
|
25
26
|
from linkedapi.operations.retrieve_performance import RetrievePerformance
|
|
@@ -63,6 +64,7 @@ __all__ = [
|
|
|
63
64
|
"ReactToPost",
|
|
64
65
|
"RemoveConnection",
|
|
65
66
|
"RetrieveConnections",
|
|
67
|
+
"RetrieveFeed",
|
|
66
68
|
"RetrieveInvitations",
|
|
67
69
|
"RetrievePendingRequests",
|
|
68
70
|
"RetrievePerformance",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from linkedapi.core import Operation
|
|
4
|
+
from linkedapi.mappers import ArrayWorkflowMapper
|
|
5
|
+
from linkedapi.types import FeedPost, RetrieveFeedParams
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class RetrieveFeed(Operation[RetrieveFeedParams, list[FeedPost]]):
|
|
9
|
+
"""Retrieve posts from the current account's LinkedIn home feed."""
|
|
10
|
+
|
|
11
|
+
operation_name = "retrieveFeed"
|
|
12
|
+
mapper = ArrayWorkflowMapper[RetrieveFeedParams, FeedPost](
|
|
13
|
+
"st.retrieveFeed",
|
|
14
|
+
FeedPost,
|
|
15
|
+
)
|
|
@@ -87,6 +87,7 @@ from linkedapi.types.connection import (
|
|
|
87
87
|
SendConnectionRequestParams,
|
|
88
88
|
WithdrawConnectionRequestParams,
|
|
89
89
|
)
|
|
90
|
+
from linkedapi.types.feed import FeedPost, RetrieveFeedParams
|
|
90
91
|
from linkedapi.types.jobs import (
|
|
91
92
|
FetchJobParams,
|
|
92
93
|
FetchJobResult,
|
|
@@ -281,6 +282,7 @@ __all__ = [
|
|
|
281
282
|
"DeleteWebhookParams",
|
|
282
283
|
"DisconnectParams",
|
|
283
284
|
"EmploymentType",
|
|
285
|
+
"FeedPost",
|
|
284
286
|
"FetchCompanyParams",
|
|
285
287
|
"FetchCompanyResult",
|
|
286
288
|
"FetchJobParams",
|
|
@@ -383,6 +385,7 @@ __all__ = [
|
|
|
383
385
|
"RetrieveConnectionsFilter",
|
|
384
386
|
"RetrieveConnectionsParams",
|
|
385
387
|
"RetrieveConnectionsResult",
|
|
388
|
+
"RetrieveFeedParams",
|
|
386
389
|
"RetrievePendingRequestsResult",
|
|
387
390
|
"RetrievePerformanceResult",
|
|
388
391
|
"RetrieveSSIResult",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
5
|
+
from linkedapi.types.params import LimitParams
|
|
6
|
+
from linkedapi.types.post import Post
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class FeedPost(Post):
|
|
10
|
+
feed_context: str | None = None
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class RetrieveFeedParams(LimitParams):
|
|
14
|
+
limit: int | None = Field(default=None, ge=1, le=100)
|
|
@@ -7,10 +7,12 @@ from pydantic import ValidationError
|
|
|
7
7
|
from linkedapi import (
|
|
8
8
|
AcceptInvitationParams,
|
|
9
9
|
ArrayWorkflowMapper,
|
|
10
|
+
FeedPost,
|
|
10
11
|
FetchPersonParams,
|
|
11
12
|
Invitation,
|
|
12
13
|
LinkedApi,
|
|
13
14
|
LinkedApiConfig,
|
|
15
|
+
RetrieveFeedParams,
|
|
14
16
|
VoidWorkflowMapper,
|
|
15
17
|
)
|
|
16
18
|
|
|
@@ -38,6 +40,7 @@ def test_linked_api_exposes_all_predefined_operations() -> None:
|
|
|
38
40
|
"retrieve_pending_requests",
|
|
39
41
|
"retrieve_invitations",
|
|
40
42
|
"retrieve_connections",
|
|
43
|
+
"retrieve_feed",
|
|
41
44
|
"remove_connection",
|
|
42
45
|
"send_message",
|
|
43
46
|
"sync_conversation",
|
|
@@ -60,7 +63,7 @@ def test_linked_api_exposes_all_predefined_operations() -> None:
|
|
|
60
63
|
assert hasattr(operation, "execute")
|
|
61
64
|
assert hasattr(operation, "result")
|
|
62
65
|
assert hasattr(operation, "cancel")
|
|
63
|
-
assert len(linkedapi.operations) ==
|
|
66
|
+
assert len(linkedapi.operations) == 36
|
|
64
67
|
|
|
65
68
|
|
|
66
69
|
def test_operation_mappers_match_node_contract() -> None:
|
|
@@ -82,6 +85,8 @@ def test_operation_mappers_match_node_contract() -> None:
|
|
|
82
85
|
assert linkedapi.ignore_invitation.mapper.action_type == "st.ignoreInvitation"
|
|
83
86
|
assert isinstance(linkedapi.retrieve_invitations.mapper, ArrayWorkflowMapper)
|
|
84
87
|
assert linkedapi.retrieve_invitations.mapper.base_action_type == "st.retrieveInvitations"
|
|
88
|
+
assert isinstance(linkedapi.retrieve_feed.mapper, ArrayWorkflowMapper)
|
|
89
|
+
assert linkedapi.retrieve_feed.mapper.base_action_type == "st.retrieveFeed"
|
|
85
90
|
assert isinstance(linkedapi.sync_inbox.mapper, VoidWorkflowMapper)
|
|
86
91
|
assert linkedapi.sync_inbox.mapper.action_type == "st.syncInbox"
|
|
87
92
|
assert isinstance(linkedapi.nv_sync_inbox.mapper, VoidWorkflowMapper)
|
|
@@ -92,6 +97,33 @@ def test_operation_mappers_match_node_contract() -> None:
|
|
|
92
97
|
assert linkedapi.nv_manage_conversation.mapper.action_type == "nv.manageConversation"
|
|
93
98
|
|
|
94
99
|
|
|
100
|
+
def test_retrieve_feed_maps_params_and_feed_context() -> None:
|
|
101
|
+
linkedapi = LinkedApi(LinkedApiConfig(linked_api_token="x", identification_token="y"))
|
|
102
|
+
|
|
103
|
+
request = linkedapi.retrieve_feed.mapper.map_request(RetrieveFeedParams(limit=25))
|
|
104
|
+
response = linkedapi.retrieve_feed.mapper.map_response(
|
|
105
|
+
{
|
|
106
|
+
"actionType": "st.retrieveFeed",
|
|
107
|
+
"success": True,
|
|
108
|
+
"data": [
|
|
109
|
+
{
|
|
110
|
+
"url": "https://www.linkedin.com/feed/update/urn:li:activity:1",
|
|
111
|
+
"feedContext": "Example Person reacted to this",
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
}
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
assert request == {"actionType": "st.retrieveFeed", "limit": 25}
|
|
118
|
+
assert response.data is not None
|
|
119
|
+
assert isinstance(response.data[0], FeedPost)
|
|
120
|
+
assert response.data[0].feed_context == "Example Person reacted to this"
|
|
121
|
+
|
|
122
|
+
for invalid_limit in (0, 101):
|
|
123
|
+
with pytest.raises(ValidationError):
|
|
124
|
+
RetrieveFeedParams(limit=invalid_limit)
|
|
125
|
+
|
|
126
|
+
|
|
95
127
|
def test_invitation_params_require_the_matching_target_url() -> None:
|
|
96
128
|
params = AcceptInvitationParams(
|
|
97
129
|
invitation_type="companyFollow",
|
|
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
|
|
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
|