dodopayments 1.56.0__py3-none-any.whl → 1.56.2__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.
Potentially problematic release.
This version of dodopayments might be problematic. Click here for more details.
- dodopayments/_version.py +1 -1
- dodopayments/resources/checkout_sessions.py +75 -0
- dodopayments/resources/subscriptions.py +4 -0
- dodopayments/types/__init__.py +1 -0
- dodopayments/types/checkout_session_status.py +35 -0
- dodopayments/types/subscription_update_params.py +2 -0
- {dodopayments-1.56.0.dist-info → dodopayments-1.56.2.dist-info}/METADATA +1 -1
- {dodopayments-1.56.0.dist-info → dodopayments-1.56.2.dist-info}/RECORD +10 -9
- {dodopayments-1.56.0.dist-info → dodopayments-1.56.2.dist-info}/WHEEL +0 -0
- {dodopayments-1.56.0.dist-info → dodopayments-1.56.2.dist-info}/licenses/LICENSE +0 -0
dodopayments/_version.py
CHANGED
|
@@ -21,6 +21,7 @@ from .._base_client import make_request_options
|
|
|
21
21
|
from ..types.currency import Currency
|
|
22
22
|
from ..types.payment_method_types import PaymentMethodTypes
|
|
23
23
|
from ..types.customer_request_param import CustomerRequestParam
|
|
24
|
+
from ..types.checkout_session_status import CheckoutSessionStatus
|
|
24
25
|
from ..types.checkout_session_response import CheckoutSessionResponse
|
|
25
26
|
|
|
26
27
|
__all__ = ["CheckoutSessionsResource", "AsyncCheckoutSessionsResource"]
|
|
@@ -134,6 +135,37 @@ class CheckoutSessionsResource(SyncAPIResource):
|
|
|
134
135
|
cast_to=CheckoutSessionResponse,
|
|
135
136
|
)
|
|
136
137
|
|
|
138
|
+
def retrieve(
|
|
139
|
+
self,
|
|
140
|
+
id: str,
|
|
141
|
+
*,
|
|
142
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
143
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
144
|
+
extra_headers: Headers | None = None,
|
|
145
|
+
extra_query: Query | None = None,
|
|
146
|
+
extra_body: Body | None = None,
|
|
147
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
148
|
+
) -> CheckoutSessionStatus:
|
|
149
|
+
"""
|
|
150
|
+
Args:
|
|
151
|
+
extra_headers: Send extra headers
|
|
152
|
+
|
|
153
|
+
extra_query: Add additional query parameters to the request
|
|
154
|
+
|
|
155
|
+
extra_body: Add additional JSON properties to the request
|
|
156
|
+
|
|
157
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
158
|
+
"""
|
|
159
|
+
if not id:
|
|
160
|
+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
161
|
+
return self._get(
|
|
162
|
+
f"/checkouts/{id}",
|
|
163
|
+
options=make_request_options(
|
|
164
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
165
|
+
),
|
|
166
|
+
cast_to=CheckoutSessionStatus,
|
|
167
|
+
)
|
|
168
|
+
|
|
137
169
|
|
|
138
170
|
class AsyncCheckoutSessionsResource(AsyncAPIResource):
|
|
139
171
|
@cached_property
|
|
@@ -243,6 +275,37 @@ class AsyncCheckoutSessionsResource(AsyncAPIResource):
|
|
|
243
275
|
cast_to=CheckoutSessionResponse,
|
|
244
276
|
)
|
|
245
277
|
|
|
278
|
+
async def retrieve(
|
|
279
|
+
self,
|
|
280
|
+
id: str,
|
|
281
|
+
*,
|
|
282
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
283
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
284
|
+
extra_headers: Headers | None = None,
|
|
285
|
+
extra_query: Query | None = None,
|
|
286
|
+
extra_body: Body | None = None,
|
|
287
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
288
|
+
) -> CheckoutSessionStatus:
|
|
289
|
+
"""
|
|
290
|
+
Args:
|
|
291
|
+
extra_headers: Send extra headers
|
|
292
|
+
|
|
293
|
+
extra_query: Add additional query parameters to the request
|
|
294
|
+
|
|
295
|
+
extra_body: Add additional JSON properties to the request
|
|
296
|
+
|
|
297
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
298
|
+
"""
|
|
299
|
+
if not id:
|
|
300
|
+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
301
|
+
return await self._get(
|
|
302
|
+
f"/checkouts/{id}",
|
|
303
|
+
options=make_request_options(
|
|
304
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
305
|
+
),
|
|
306
|
+
cast_to=CheckoutSessionStatus,
|
|
307
|
+
)
|
|
308
|
+
|
|
246
309
|
|
|
247
310
|
class CheckoutSessionsResourceWithRawResponse:
|
|
248
311
|
def __init__(self, checkout_sessions: CheckoutSessionsResource) -> None:
|
|
@@ -251,6 +314,9 @@ class CheckoutSessionsResourceWithRawResponse:
|
|
|
251
314
|
self.create = to_raw_response_wrapper(
|
|
252
315
|
checkout_sessions.create,
|
|
253
316
|
)
|
|
317
|
+
self.retrieve = to_raw_response_wrapper(
|
|
318
|
+
checkout_sessions.retrieve,
|
|
319
|
+
)
|
|
254
320
|
|
|
255
321
|
|
|
256
322
|
class AsyncCheckoutSessionsResourceWithRawResponse:
|
|
@@ -260,6 +326,9 @@ class AsyncCheckoutSessionsResourceWithRawResponse:
|
|
|
260
326
|
self.create = async_to_raw_response_wrapper(
|
|
261
327
|
checkout_sessions.create,
|
|
262
328
|
)
|
|
329
|
+
self.retrieve = async_to_raw_response_wrapper(
|
|
330
|
+
checkout_sessions.retrieve,
|
|
331
|
+
)
|
|
263
332
|
|
|
264
333
|
|
|
265
334
|
class CheckoutSessionsResourceWithStreamingResponse:
|
|
@@ -269,6 +338,9 @@ class CheckoutSessionsResourceWithStreamingResponse:
|
|
|
269
338
|
self.create = to_streamed_response_wrapper(
|
|
270
339
|
checkout_sessions.create,
|
|
271
340
|
)
|
|
341
|
+
self.retrieve = to_streamed_response_wrapper(
|
|
342
|
+
checkout_sessions.retrieve,
|
|
343
|
+
)
|
|
272
344
|
|
|
273
345
|
|
|
274
346
|
class AsyncCheckoutSessionsResourceWithStreamingResponse:
|
|
@@ -278,3 +350,6 @@ class AsyncCheckoutSessionsResourceWithStreamingResponse:
|
|
|
278
350
|
self.create = async_to_streamed_response_wrapper(
|
|
279
351
|
checkout_sessions.create,
|
|
280
352
|
)
|
|
353
|
+
self.retrieve = async_to_streamed_response_wrapper(
|
|
354
|
+
checkout_sessions.retrieve,
|
|
355
|
+
)
|
|
@@ -206,6 +206,7 @@ class SubscriptionsResource(SyncAPIResource):
|
|
|
206
206
|
*,
|
|
207
207
|
billing: Optional[BillingAddressParam] | Omit = omit,
|
|
208
208
|
cancel_at_next_billing_date: Optional[bool] | Omit = omit,
|
|
209
|
+
customer_name: Optional[str] | Omit = omit,
|
|
209
210
|
disable_on_demand: Optional[subscription_update_params.DisableOnDemand] | Omit = omit,
|
|
210
211
|
metadata: Optional[Dict[str, str]] | Omit = omit,
|
|
211
212
|
next_billing_date: Union[str, datetime, None] | Omit = omit,
|
|
@@ -238,6 +239,7 @@ class SubscriptionsResource(SyncAPIResource):
|
|
|
238
239
|
{
|
|
239
240
|
"billing": billing,
|
|
240
241
|
"cancel_at_next_billing_date": cancel_at_next_billing_date,
|
|
242
|
+
"customer_name": customer_name,
|
|
241
243
|
"disable_on_demand": disable_on_demand,
|
|
242
244
|
"metadata": metadata,
|
|
243
245
|
"next_billing_date": next_billing_date,
|
|
@@ -702,6 +704,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
|
|
|
702
704
|
*,
|
|
703
705
|
billing: Optional[BillingAddressParam] | Omit = omit,
|
|
704
706
|
cancel_at_next_billing_date: Optional[bool] | Omit = omit,
|
|
707
|
+
customer_name: Optional[str] | Omit = omit,
|
|
705
708
|
disable_on_demand: Optional[subscription_update_params.DisableOnDemand] | Omit = omit,
|
|
706
709
|
metadata: Optional[Dict[str, str]] | Omit = omit,
|
|
707
710
|
next_billing_date: Union[str, datetime, None] | Omit = omit,
|
|
@@ -734,6 +737,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
|
|
|
734
737
|
{
|
|
735
738
|
"billing": billing,
|
|
736
739
|
"cancel_at_next_billing_date": cancel_at_next_billing_date,
|
|
740
|
+
"customer_name": customer_name,
|
|
737
741
|
"disable_on_demand": disable_on_demand,
|
|
738
742
|
"metadata": metadata,
|
|
739
743
|
"next_billing_date": next_billing_date,
|
dodopayments/types/__init__.py
CHANGED
|
@@ -75,6 +75,7 @@ from .customer_request_param import CustomerRequestParam as CustomerRequestParam
|
|
|
75
75
|
from .customer_update_params import CustomerUpdateParams as CustomerUpdateParams
|
|
76
76
|
from .discount_create_params import DiscountCreateParams as DiscountCreateParams
|
|
77
77
|
from .discount_update_params import DiscountUpdateParams as DiscountUpdateParams
|
|
78
|
+
from .checkout_session_status import CheckoutSessionStatus as CheckoutSessionStatus
|
|
78
79
|
from .customer_portal_session import CustomerPortalSession as CustomerPortalSession
|
|
79
80
|
from .license_activate_params import LicenseActivateParams as LicenseActivateParams
|
|
80
81
|
from .license_key_list_params import LicenseKeyListParams as LicenseKeyListParams
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .intent_status import IntentStatus
|
|
8
|
+
|
|
9
|
+
__all__ = ["CheckoutSessionStatus"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class CheckoutSessionStatus(BaseModel):
|
|
13
|
+
id: str
|
|
14
|
+
"""Id of the checkout session"""
|
|
15
|
+
|
|
16
|
+
created_at: datetime
|
|
17
|
+
"""Created at timestamp"""
|
|
18
|
+
|
|
19
|
+
customer_email: Optional[str] = None
|
|
20
|
+
"""Customer email: prefers payment's customer, falls back to session"""
|
|
21
|
+
|
|
22
|
+
customer_name: Optional[str] = None
|
|
23
|
+
"""Customer name: prefers payment's customer, falls back to session"""
|
|
24
|
+
|
|
25
|
+
payment_id: Optional[str] = None
|
|
26
|
+
"""Id of the payment created by the checkout sessions.
|
|
27
|
+
|
|
28
|
+
Null if checkout sessions is still at the details collection stage.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
payment_status: Optional[IntentStatus] = None
|
|
32
|
+
"""status of the payment.
|
|
33
|
+
|
|
34
|
+
Null if checkout sessions is still at the details collection stage.
|
|
35
|
+
"""
|
|
@@ -19,6 +19,8 @@ class SubscriptionUpdateParams(TypedDict, total=False):
|
|
|
19
19
|
cancel_at_next_billing_date: Optional[bool]
|
|
20
20
|
"""When set, the subscription will remain active until the end of billing period"""
|
|
21
21
|
|
|
22
|
+
customer_name: Optional[str]
|
|
23
|
+
|
|
22
24
|
disable_on_demand: Optional[DisableOnDemand]
|
|
23
25
|
|
|
24
26
|
metadata: Optional[Dict[str, str]]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dodopayments
|
|
3
|
-
Version: 1.56.
|
|
3
|
+
Version: 1.56.2
|
|
4
4
|
Summary: The official Python library for the Dodo Payments API
|
|
5
5
|
Project-URL: Homepage, https://github.com/dodopayments/dodopayments-python
|
|
6
6
|
Project-URL: Repository, https://github.com/dodopayments/dodopayments-python
|
|
@@ -11,7 +11,7 @@ dodopayments/_resource.py,sha256=Jfh17Q3kKzAhO-dlfIwYlueN9t1edaaY_vmnC9vErpA,113
|
|
|
11
11
|
dodopayments/_response.py,sha256=PDvrSN3E3IkXVw2GvyOCTNB8ch0Xn9yaWQz4w1nHZEQ,28854
|
|
12
12
|
dodopayments/_streaming.py,sha256=U4D6MhotaUaGaHz32lBt0XM98IOPIpPbKHUfbb0HGCk,10124
|
|
13
13
|
dodopayments/_types.py,sha256=CuN9iBczmyAIb_jqVBZ5gauyxAv6ya6d7w0Xj39EJcs,7242
|
|
14
|
-
dodopayments/_version.py,sha256
|
|
14
|
+
dodopayments/_version.py,sha256=VMwQru0ye53aclZirwfng5ODJk7vSmws4jsXEpOy34Q,165
|
|
15
15
|
dodopayments/pagination.py,sha256=gaS62u_b_92OYnUHmstLAFL5AF2_cr3Z6VpzSHd0mMw,2796
|
|
16
16
|
dodopayments/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
dodopayments/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
|
|
@@ -30,7 +30,7 @@ dodopayments/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
|
|
|
30
30
|
dodopayments/resources/__init__.py,sha256=uuPxPjUx7lOhJf5IXShPaBZmOrk3KGk1dqIHFWZ3QZ4,9411
|
|
31
31
|
dodopayments/resources/addons.py,sha256=0Bderk3-jPjorDIuvqI84ytKaj4z3e7ry33w05Va1z8,21752
|
|
32
32
|
dodopayments/resources/brands.py,sha256=kgLjiIy_rOy_zPs6rQyFEEJ9vdlCdTZfDISJXO05Emk,18636
|
|
33
|
-
dodopayments/resources/checkout_sessions.py,sha256=
|
|
33
|
+
dodopayments/resources/checkout_sessions.py,sha256=8H4OSwy-I_yZjbqSHND5B1ViwhfH4idy-pWWKBIDzKg,15443
|
|
34
34
|
dodopayments/resources/discounts.py,sha256=h-zdT_5Xetgen14atfb-nTOEGTe_Q6tJOBI9cPlqGVQ,26464
|
|
35
35
|
dodopayments/resources/disputes.py,sha256=jqQ9r4_UN9jPYzPBpEyGOv-tM9-lBOi7S4uCG4ZvY5M,12149
|
|
36
36
|
dodopayments/resources/license_key_instances.py,sha256=v4zzBPp0fI3jhXaEY3bE0bK3MNCidZ62HCBgU_9CG7k,14040
|
|
@@ -41,7 +41,7 @@ dodopayments/resources/misc.py,sha256=PIp_ZkbbtaOEA5Q_Wda4Cngv7HG4p6Kkdg7MDD2dw6
|
|
|
41
41
|
dodopayments/resources/payments.py,sha256=9IZKqgdN0lpRJ4iBT0GUcrBLGpfnHIsXz9jRMVRQUv0,24601
|
|
42
42
|
dodopayments/resources/payouts.py,sha256=gn8Vx0ALnJW14tRWV__FFoWLkU3lWKDd4of5SIUNVE4,7732
|
|
43
43
|
dodopayments/resources/refunds.py,sha256=vssQ990GZaBZb6-jSxjXEWcdj03nf2mNdNVxkd6xhsU,15057
|
|
44
|
-
dodopayments/resources/subscriptions.py,sha256=
|
|
44
|
+
dodopayments/resources/subscriptions.py,sha256=cCg-GKZfEH2P8rVBV2cYl9gs17rnt7hGPovyveFtBkY,49344
|
|
45
45
|
dodopayments/resources/usage_events.py,sha256=yPLaWJL6_7PmK1K9as_TxVFzwj44ZRS3Wd6kaldSGoU,22197
|
|
46
46
|
dodopayments/resources/customers/__init__.py,sha256=LCE-I9hVmlMoL9NbPUp1fbmv-mvpkbJtkJJY9TW4t28,1609
|
|
47
47
|
dodopayments/resources/customers/customer_portal.py,sha256=We7D6Vh79CVz10bEuJUyvzv5WoVAcrQcQmdWUti-5Yk,6955
|
|
@@ -58,7 +58,7 @@ dodopayments/resources/products/products.py,sha256=PNKNt58mwjZ6-z4pgK1bURzfU1hEg
|
|
|
58
58
|
dodopayments/resources/webhooks/__init__.py,sha256=qhsQMSm4GpXfesAwbvPOYkhytB3Ab_uW4Nqur7h1R8w,1041
|
|
59
59
|
dodopayments/resources/webhooks/headers.py,sha256=o0cF_pqZ8zr214n579qAAPMG3BxduPm5u4sGzNRqIrw,9581
|
|
60
60
|
dodopayments/resources/webhooks/webhooks.py,sha256=saIim2UtrT_lDYVYHyjfTca0WBww95dxAH_LCB4jLSo,30411
|
|
61
|
-
dodopayments/types/__init__.py,sha256=
|
|
61
|
+
dodopayments/types/__init__.py,sha256=tbG6gIGF_mntUpsTifBcrakEMb_S1zCP38Yzvcmvzug,11333
|
|
62
62
|
dodopayments/types/add_meter_to_price.py,sha256=kCxLBTWwLCOjc1NbJM8tQX0dY5X-Be36YL1G2oBU6Z8,827
|
|
63
63
|
dodopayments/types/add_meter_to_price_param.py,sha256=aHH_YNEAexekadq44gkNEpIcv-t6v8akZMgZY_nECVE,895
|
|
64
64
|
dodopayments/types/addon_cart_response_item.py,sha256=R-I8Zd2HJKn0DmXmv6Oyu4oo-oEC1-dud0Q6_yqDB7k,235
|
|
@@ -78,6 +78,7 @@ dodopayments/types/brand_update_images_response.py,sha256=QEt_87f6YTRqgN1Wu0NL_z
|
|
|
78
78
|
dodopayments/types/brand_update_params.py,sha256=S7qu2_IYkxxBbNuz5G12sujyW9gyte8cxw3jVsm1V4Y,468
|
|
79
79
|
dodopayments/types/checkout_session_create_params.py,sha256=mVMqrNLrsBclvLA-9zNVhoaL-yKkMmcWom0buDq_WxU,4981
|
|
80
80
|
dodopayments/types/checkout_session_response.py,sha256=t8xfip5y2ghrOib7ttHnGZYhiby8-vx6diuTnULx98A,317
|
|
81
|
+
dodopayments/types/checkout_session_status.py,sha256=_VUEFrP1Gq1XEm6yZ_0p4NczseZ_SE43-DK3d--w3Y0,977
|
|
81
82
|
dodopayments/types/country_code.py,sha256=aKc-CApHuQUg8xWGKxS2pnYvwUOz7G59qv4H7NOOHEo,2690
|
|
82
83
|
dodopayments/types/currency.py,sha256=Cv-x2wYCXupjzRgWHgtepd3ANbB6DrygxJVVxLpjEJY,1789
|
|
83
84
|
dodopayments/types/customer.py,sha256=gyxIAWVJyoUPvqKFMSZb2SE-gbgVw9Cf8FGVevPFKQs,371
|
|
@@ -203,7 +204,7 @@ dodopayments/types/subscription_renewed_webhook_event1.py,sha256=dXxKuSr8MpTFy5c
|
|
|
203
204
|
dodopayments/types/subscription_retrieve_usage_history_params.py,sha256=6zy-1464rEJEeYQDBOpYnsaO7UQMj6pK1-ritd3eAAk,863
|
|
204
205
|
dodopayments/types/subscription_retrieve_usage_history_response.py,sha256=m6ypsxNUMZ6QYPlgmXBI_AzGTLs2GLeM6Ib6GciTSqI,1155
|
|
205
206
|
dodopayments/types/subscription_status.py,sha256=3UxvrPY4QVcppbeIV86qe6p2YUQK8sPVcxbqUJn4V8Y,277
|
|
206
|
-
dodopayments/types/subscription_update_params.py,sha256=
|
|
207
|
+
dodopayments/types/subscription_update_params.py,sha256=n2CmO-DW3yZmftqath4MTWbigxdEHpQ5IbU0VQy3gL8,1127
|
|
207
208
|
dodopayments/types/tax_category.py,sha256=Fwgm25IMhHaSziDOfqePSBKE4PczW_KFJq1yE1uSfpA,245
|
|
208
209
|
dodopayments/types/time_interval.py,sha256=ZTA79GvVo5RjERLfRrY7ad6e0OqfeeoZuMnE1NShcio,231
|
|
209
210
|
dodopayments/types/unsafe_unwrap_webhook_event.py,sha256=dC5Jh3xYD5CdVvODQWuFkeJ5QKpn4jCkJv-PBt0BWsU,2518
|
|
@@ -232,7 +233,7 @@ dodopayments/types/products/image_update_response.py,sha256=TcJyXjoJlONpwwR6yZdI
|
|
|
232
233
|
dodopayments/types/webhooks/__init__.py,sha256=F_ZpQalnBiuXt_C2pUepZjgJZwiAGKNwaEB03ZB6sUM,285
|
|
233
234
|
dodopayments/types/webhooks/header_retrieve_response.py,sha256=IKNaI2xO9qU7UXbffENYrRo2vUr0mqb8TIkAQdtLtXI,369
|
|
234
235
|
dodopayments/types/webhooks/header_update_params.py,sha256=USiXP4oFllTJgOBcBZQrcLlEzEOB6RHH9Ugdxatyy3g,376
|
|
235
|
-
dodopayments-1.56.
|
|
236
|
-
dodopayments-1.56.
|
|
237
|
-
dodopayments-1.56.
|
|
238
|
-
dodopayments-1.56.
|
|
236
|
+
dodopayments-1.56.2.dist-info/METADATA,sha256=lpFF7_SHHTi36yB2WBB32lMiUPQ0S7LLAgI5EzYgUe4,17302
|
|
237
|
+
dodopayments-1.56.2.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
238
|
+
dodopayments-1.56.2.dist-info/licenses/LICENSE,sha256=3_sqrBb5J3AT3FsjMKEOBRZhweWVsl_s_RjFlclm1vQ,11343
|
|
239
|
+
dodopayments-1.56.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|