cuenca 2.2.1__tar.gz → 2.2.2__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.
- {cuenca-2.2.1 → cuenca-2.2.2}/PKG-INFO +1 -1
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/__init__.py +4 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/__init__.py +6 -0
- cuenca-2.2.2/cuenca/resources/agent_verifications.py +37 -0
- cuenca-2.2.2/cuenca/resources/agents.py +52 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/version.py +1 -1
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca.egg-info/PKG-INFO +1 -1
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca.egg-info/SOURCES.txt +3 -0
- cuenca-2.2.2/tests/resources/test_agents.py +22 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/LICENSE +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/README.md +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/exc.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/http/__init__.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/http/client.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/jwt.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/py.typed +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/accounts.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/api_keys.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/arpc.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/balance_entries.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/base.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/bill_payments.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/card_activations.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/card_transactions.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/card_validations.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/cards.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/cash_references.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/clabes.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/commissions.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/curp_validations.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/deposits.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/endpoints.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/exist_phones.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/file_batches.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/files.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/identities.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/identity_events.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/jwt_tokens.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/kyc_validations.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/limited_wallets.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/login_tokens.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/otps.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/password_resets.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/phone_verification_associations.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/platforms.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/postal_codes.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/questionnaires.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/resources.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/savings.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/service_providers.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/sessions.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/statements.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/terms_of_service.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/transfers.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/user_credentials.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/user_events.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/user_lists_validation.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/user_logins.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/users.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/users_tos_agreements.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/verifications.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/wallet_transactions.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/webhooks.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca/resources/whatsapp_transfers.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca.egg-info/dependency_links.txt +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca.egg-info/requires.txt +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/cuenca.egg-info/top_level.txt +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/setup.cfg +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/setup.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/__init__.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/conftest.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/http/__init__.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/http/conftest.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/http/test_client.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/__init__.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_accounts.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_api_keys.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_arpc.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_balance_entries.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_bill_payments.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_card_activations.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_card_transactions.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_card_validations.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_cards.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_cash_references.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_clabes.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_commissions.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_curp_validations.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_deposits.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_endpoints.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_exist_phone.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_file_batches.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_files.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_identities.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_identity_events.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_jwt_tokens.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_kyc_validations.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_limited_wallets.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_login_tokens.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_otps.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_password_resets.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_phone_verification_association.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_platforms.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_postal_codes.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_questionnaires.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_resources.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_savings.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_service_providers.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_sessions.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_statements.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_transfers.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_user_credentials.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_user_events.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_user_lists_validation.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_user_logins.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_users.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_users_tos_agreements.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_verifications.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_wallet_transactions.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_webhooks.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/resources/test_whatsapp_transfers.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/test_cuenca.py +0 -0
- {cuenca-2.2.1 → cuenca-2.2.2}/tests/test_jwt.py +0 -0
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
__all__ = [
|
|
2
2
|
'__version__',
|
|
3
|
+
'Agent',
|
|
4
|
+
'AgentVerification',
|
|
3
5
|
'ApiKey',
|
|
4
6
|
'Account',
|
|
5
7
|
'Arpc',
|
|
@@ -53,6 +55,8 @@ __all__ = [
|
|
|
53
55
|
from . import http
|
|
54
56
|
from .resources import (
|
|
55
57
|
Account,
|
|
58
|
+
Agent,
|
|
59
|
+
AgentVerification,
|
|
56
60
|
ApiKey,
|
|
57
61
|
Arpc,
|
|
58
62
|
BalanceEntry,
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
__all__ = [
|
|
2
|
+
'Agent',
|
|
3
|
+
'AgentVerification',
|
|
2
4
|
'ApiKey',
|
|
3
5
|
'Account',
|
|
4
6
|
'Arpc',
|
|
@@ -47,6 +49,8 @@ __all__ = [
|
|
|
47
49
|
]
|
|
48
50
|
|
|
49
51
|
from .accounts import Account
|
|
52
|
+
from .agent_verifications import AgentVerification
|
|
53
|
+
from .agents import Agent
|
|
50
54
|
from .api_keys import ApiKey
|
|
51
55
|
from .arpc import Arpc
|
|
52
56
|
from .balance_entries import BalanceEntry
|
|
@@ -96,6 +100,8 @@ from .whatsapp_transfers import WhatsappTransfer
|
|
|
96
100
|
|
|
97
101
|
# avoid circular imports
|
|
98
102
|
resource_classes = [
|
|
103
|
+
Agent,
|
|
104
|
+
AgentVerification,
|
|
99
105
|
ApiKey,
|
|
100
106
|
Account,
|
|
101
107
|
Arpc,
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import datetime as dt
|
|
2
|
+
from typing import ClassVar
|
|
3
|
+
|
|
4
|
+
from cuenca_validations.types.identities import PhoneNumber
|
|
5
|
+
from pydantic import ConfigDict
|
|
6
|
+
|
|
7
|
+
from ..http import Session, session as global_session
|
|
8
|
+
from .base import Creatable
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class AgentVerification(Creatable):
|
|
12
|
+
_resource: ClassVar = 'agent_verifications'
|
|
13
|
+
|
|
14
|
+
created_at: dt.datetime
|
|
15
|
+
user_id: str
|
|
16
|
+
platform_id: str
|
|
17
|
+
phone_number: PhoneNumber
|
|
18
|
+
pairing_code: str
|
|
19
|
+
deactivated_at: dt.datetime
|
|
20
|
+
|
|
21
|
+
model_config = ConfigDict(
|
|
22
|
+
json_schema_extra={
|
|
23
|
+
'example': {
|
|
24
|
+
'id': 'AVjTtPH1mhT65GEgOeomJ4DQ',
|
|
25
|
+
'created_at': '2026-06-25T22:50:08.495768',
|
|
26
|
+
'user_id': 'USMP3EPgI4T4CPFyVmXUPi8A',
|
|
27
|
+
'platform_id': 'PTZbBlk__kQt-wfwzP5nwA9A',
|
|
28
|
+
'phone_number': '+525512345678',
|
|
29
|
+
'pairing_code': 'OJC37W',
|
|
30
|
+
'deactivated_at': '2026-06-25T22:55:08.495779',
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
@classmethod
|
|
36
|
+
def create(cls, session: Session = global_session) -> 'AgentVerification':
|
|
37
|
+
return cls._create(session=session)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import datetime as dt
|
|
2
|
+
from typing import ClassVar, Optional
|
|
3
|
+
|
|
4
|
+
from cuenca_validations.types import AgentQuery, AgentRequest, PhoneNumber
|
|
5
|
+
from cuenca_validations.typing import DictStrAny
|
|
6
|
+
from pydantic import ConfigDict, Field
|
|
7
|
+
|
|
8
|
+
from ..http import Session, session as global_session
|
|
9
|
+
from .base import Creatable, Queryable
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Agent(Creatable, Queryable):
|
|
13
|
+
_resource: ClassVar = 'agents'
|
|
14
|
+
_query_params: ClassVar = AgentQuery
|
|
15
|
+
|
|
16
|
+
created_at: dt.datetime
|
|
17
|
+
user_id: str
|
|
18
|
+
platform_id: str
|
|
19
|
+
agent_verification_id: str
|
|
20
|
+
session_id: str
|
|
21
|
+
device_info: DictStrAny = Field(default_factory=dict)
|
|
22
|
+
deactivated_at: Optional[dt.datetime] = None
|
|
23
|
+
|
|
24
|
+
model_config = ConfigDict(
|
|
25
|
+
json_schema_extra={
|
|
26
|
+
'example': {
|
|
27
|
+
'id': 'AG1G6Bm0oGQOCRjTDaeFSsyA',
|
|
28
|
+
'created_at': '2026-06-27T01:56:42.613781',
|
|
29
|
+
'user_id': 'USMP3EPgI4T4CPFyVmXUPi8A',
|
|
30
|
+
'platform_id': 'PTZbBlk__kQt-wfwzP5nwA9A',
|
|
31
|
+
'agent_verification_id': 'AV7A1FLC7MSnqKcb7oAkiQxA',
|
|
32
|
+
'session_id': 'SSH0M5yteyRHas-PmfT9pu9w',
|
|
33
|
+
'device_info': {'client': 'cursor', 'os': 'macOS'},
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
@classmethod
|
|
39
|
+
def create(
|
|
40
|
+
cls,
|
|
41
|
+
pairing_code: str,
|
|
42
|
+
phone_number: PhoneNumber,
|
|
43
|
+
device_info: Optional[DictStrAny] = None,
|
|
44
|
+
*,
|
|
45
|
+
session: Session = global_session,
|
|
46
|
+
) -> 'Agent':
|
|
47
|
+
req = AgentRequest(
|
|
48
|
+
pairing_code=pairing_code,
|
|
49
|
+
phone_number=phone_number,
|
|
50
|
+
device_info=device_info or {},
|
|
51
|
+
)
|
|
52
|
+
return cls._create(session=session, **req.model_dump())
|
|
@@ -16,6 +16,8 @@ cuenca/http/__init__.py
|
|
|
16
16
|
cuenca/http/client.py
|
|
17
17
|
cuenca/resources/__init__.py
|
|
18
18
|
cuenca/resources/accounts.py
|
|
19
|
+
cuenca/resources/agent_verifications.py
|
|
20
|
+
cuenca/resources/agents.py
|
|
19
21
|
cuenca/resources/api_keys.py
|
|
20
22
|
cuenca/resources/arpc.py
|
|
21
23
|
cuenca/resources/balance_entries.py
|
|
@@ -72,6 +74,7 @@ tests/http/conftest.py
|
|
|
72
74
|
tests/http/test_client.py
|
|
73
75
|
tests/resources/__init__.py
|
|
74
76
|
tests/resources/test_accounts.py
|
|
77
|
+
tests/resources/test_agents.py
|
|
75
78
|
tests/resources/test_api_keys.py
|
|
76
79
|
tests/resources/test_arpc.py
|
|
77
80
|
tests/resources/test_balance_entries.py
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
3
|
+
from cuenca.http.client import Session
|
|
4
|
+
from cuenca.resources import Agent, AgentVerification
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@pytest.mark.vcr
|
|
8
|
+
def test_agent_create():
|
|
9
|
+
verification = AgentVerification.create() # Created by user in APP
|
|
10
|
+
agent_session = Session()
|
|
11
|
+
agent_session.configure(sandbox=True)
|
|
12
|
+
agent = Agent.create(
|
|
13
|
+
pairing_code=verification.pairing_code,
|
|
14
|
+
phone_number=verification.phone_number,
|
|
15
|
+
device_info={'client': 'cursor', 'os': 'macOS'},
|
|
16
|
+
session=agent_session,
|
|
17
|
+
)
|
|
18
|
+
assert agent.id
|
|
19
|
+
assert agent.agent_verification_id == verification.id
|
|
20
|
+
assert agent.session_id
|
|
21
|
+
assert agent.user_id
|
|
22
|
+
assert agent.platform_id
|
|
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
|
|
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
|