@orangefox-recovery/foxclient 5.2.8 → 5.3.2

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.
Files changed (153) hide show
  1. package/.openapi-generator/FILES +24 -0
  2. package/.openapi-generator/VERSION +1 -1
  3. package/README.md +140 -28
  4. package/dist/apis/DeviceApi.d.ts +1 -1
  5. package/dist/apis/DeviceApi.js +10 -5
  6. package/dist/apis/PasteApi.d.ts +1 -1
  7. package/dist/apis/PasteApi.js +6 -3
  8. package/dist/apis/ReleaseApi.d.ts +1 -1
  9. package/dist/apis/ReleaseApi.js +11 -5
  10. package/dist/apis/StatsApi.d.ts +1 -1
  11. package/dist/apis/StatsApi.js +3 -2
  12. package/dist/esm/apis/DeviceApi.d.ts +1 -1
  13. package/dist/esm/apis/DeviceApi.js +10 -5
  14. package/dist/esm/apis/PasteApi.d.ts +1 -1
  15. package/dist/esm/apis/PasteApi.js +6 -3
  16. package/dist/esm/apis/ReleaseApi.d.ts +1 -1
  17. package/dist/esm/apis/ReleaseApi.js +11 -5
  18. package/dist/esm/apis/StatsApi.d.ts +1 -1
  19. package/dist/esm/apis/StatsApi.js +3 -2
  20. package/dist/esm/models/DeviceResponse.d.ts +13 -1
  21. package/dist/esm/models/DeviceResponse.js +5 -1
  22. package/dist/esm/models/GlobalStatsAggregationModel.d.ts +1 -1
  23. package/dist/esm/models/GlobalStatsAggregationModel.js +1 -1
  24. package/dist/esm/models/HTTPValidationError.d.ts +1 -1
  25. package/dist/esm/models/HTTPValidationError.js +1 -1
  26. package/dist/esm/models/ListResponseReleaseResponse.d.ts +1 -1
  27. package/dist/esm/models/ListResponseReleaseResponse.js +1 -1
  28. package/dist/esm/models/ListResponseShortDeviceResponse.d.ts +1 -1
  29. package/dist/esm/models/ListResponseShortDeviceResponse.js +1 -1
  30. package/dist/esm/models/ListResponseShortReleaseResponse.d.ts +1 -1
  31. package/dist/esm/models/ListResponseShortReleaseResponse.js +1 -1
  32. package/dist/esm/models/ListResponseStr.d.ts +1 -1
  33. package/dist/esm/models/ListResponseStr.js +1 -1
  34. package/dist/esm/models/MaintainerShortModel.d.ts +1 -1
  35. package/dist/esm/models/MaintainerShortModel.js +1 -1
  36. package/dist/esm/models/PasteInput.d.ts +2 -20
  37. package/dist/esm/models/PasteInput.js +1 -9
  38. package/dist/esm/models/PasteOutput.d.ts +9 -9
  39. package/dist/esm/models/PasteOutput.js +10 -8
  40. package/dist/esm/models/RecoveryImgResponse.d.ts +1 -1
  41. package/dist/esm/models/RecoveryImgResponse.js +1 -1
  42. package/dist/esm/models/ReleaseGroupsResponse.d.ts +1 -1
  43. package/dist/esm/models/ReleaseGroupsResponse.js +1 -1
  44. package/dist/esm/models/ReleaseResponse.d.ts +14 -2
  45. package/dist/esm/models/ReleaseResponse.js +7 -1
  46. package/dist/esm/models/ReleaseType.d.ts +1 -1
  47. package/dist/esm/models/ReleaseType.js +1 -1
  48. package/dist/esm/models/ReleasesSort.d.ts +1 -1
  49. package/dist/esm/models/ReleasesSort.js +1 -1
  50. package/dist/esm/models/ResponseGetReleases.d.ts +1 -1
  51. package/dist/esm/models/ResponseGetReleases.js +1 -1
  52. package/dist/esm/models/ShortDeviceResponse.d.ts +13 -1
  53. package/dist/esm/models/ShortDeviceResponse.js +5 -1
  54. package/dist/esm/models/ShortReleaseResponse.d.ts +14 -2
  55. package/dist/esm/models/ShortReleaseResponse.js +7 -1
  56. package/dist/esm/models/ValidationError.d.ts +1 -1
  57. package/dist/esm/models/ValidationError.js +1 -1
  58. package/dist/esm/models/ValidationErrorLocInner.d.ts +1 -1
  59. package/dist/esm/models/ValidationErrorLocInner.js +1 -1
  60. package/dist/esm/runtime.d.ts +1 -1
  61. package/dist/esm/runtime.js +1 -1
  62. package/dist/models/DeviceResponse.d.ts +13 -1
  63. package/dist/models/DeviceResponse.js +5 -1
  64. package/dist/models/GlobalStatsAggregationModel.d.ts +1 -1
  65. package/dist/models/GlobalStatsAggregationModel.js +1 -1
  66. package/dist/models/HTTPValidationError.d.ts +1 -1
  67. package/dist/models/HTTPValidationError.js +1 -1
  68. package/dist/models/ListResponseReleaseResponse.d.ts +1 -1
  69. package/dist/models/ListResponseReleaseResponse.js +1 -1
  70. package/dist/models/ListResponseShortDeviceResponse.d.ts +1 -1
  71. package/dist/models/ListResponseShortDeviceResponse.js +1 -1
  72. package/dist/models/ListResponseShortReleaseResponse.d.ts +1 -1
  73. package/dist/models/ListResponseShortReleaseResponse.js +1 -1
  74. package/dist/models/ListResponseStr.d.ts +1 -1
  75. package/dist/models/ListResponseStr.js +1 -1
  76. package/dist/models/MaintainerShortModel.d.ts +1 -1
  77. package/dist/models/MaintainerShortModel.js +1 -1
  78. package/dist/models/PasteInput.d.ts +2 -20
  79. package/dist/models/PasteInput.js +1 -9
  80. package/dist/models/PasteOutput.d.ts +9 -9
  81. package/dist/models/PasteOutput.js +10 -8
  82. package/dist/models/RecoveryImgResponse.d.ts +1 -1
  83. package/dist/models/RecoveryImgResponse.js +1 -1
  84. package/dist/models/ReleaseGroupsResponse.d.ts +1 -1
  85. package/dist/models/ReleaseGroupsResponse.js +1 -1
  86. package/dist/models/ReleaseResponse.d.ts +14 -2
  87. package/dist/models/ReleaseResponse.js +7 -1
  88. package/dist/models/ReleaseType.d.ts +1 -1
  89. package/dist/models/ReleaseType.js +1 -1
  90. package/dist/models/ReleasesSort.d.ts +1 -1
  91. package/dist/models/ReleasesSort.js +1 -1
  92. package/dist/models/ResponseGetReleases.d.ts +1 -1
  93. package/dist/models/ResponseGetReleases.js +1 -1
  94. package/dist/models/ShortDeviceResponse.d.ts +13 -1
  95. package/dist/models/ShortDeviceResponse.js +5 -1
  96. package/dist/models/ShortReleaseResponse.d.ts +14 -2
  97. package/dist/models/ShortReleaseResponse.js +7 -1
  98. package/dist/models/ValidationError.d.ts +1 -1
  99. package/dist/models/ValidationError.js +1 -1
  100. package/dist/models/ValidationErrorLocInner.d.ts +1 -1
  101. package/dist/models/ValidationErrorLocInner.js +1 -1
  102. package/dist/runtime.d.ts +1 -1
  103. package/dist/runtime.js +1 -1
  104. package/docs/DeviceApi.md +315 -0
  105. package/docs/DeviceResponse.md +60 -0
  106. package/docs/GlobalStatsAggregationModel.md +40 -0
  107. package/docs/HTTPValidationError.md +34 -0
  108. package/docs/ListResponseReleaseResponse.md +36 -0
  109. package/docs/ListResponseShortDeviceResponse.md +36 -0
  110. package/docs/ListResponseShortReleaseResponse.md +36 -0
  111. package/docs/ListResponseStr.md +36 -0
  112. package/docs/MaintainerShortModel.md +38 -0
  113. package/docs/PasteApi.md +149 -0
  114. package/docs/PasteInput.md +34 -0
  115. package/docs/PasteOutput.md +40 -0
  116. package/docs/RecoveryImgResponse.md +36 -0
  117. package/docs/ReleaseApi.md +354 -0
  118. package/docs/ReleaseGroupsResponse.md +34 -0
  119. package/docs/ReleaseResponse.md +72 -0
  120. package/docs/ReleaseType.md +32 -0
  121. package/docs/ReleasesSort.md +32 -0
  122. package/docs/ResponseGetReleases.md +36 -0
  123. package/docs/ShortDeviceResponse.md +54 -0
  124. package/docs/ShortReleaseResponse.md +60 -0
  125. package/docs/StatsApi.md +69 -0
  126. package/docs/ValidationError.md +38 -0
  127. package/docs/ValidationErrorLocInner.md +32 -0
  128. package/package.json +5 -2
  129. package/src/apis/DeviceApi.ts +18 -5
  130. package/src/apis/PasteApi.ts +10 -3
  131. package/src/apis/ReleaseApi.ts +19 -5
  132. package/src/apis/StatsApi.ts +5 -2
  133. package/src/models/DeviceResponse.ts +17 -1
  134. package/src/models/GlobalStatsAggregationModel.ts +1 -1
  135. package/src/models/HTTPValidationError.ts +1 -1
  136. package/src/models/ListResponseReleaseResponse.ts +1 -1
  137. package/src/models/ListResponseShortDeviceResponse.ts +1 -1
  138. package/src/models/ListResponseShortReleaseResponse.ts +1 -1
  139. package/src/models/ListResponseStr.ts +1 -1
  140. package/src/models/MaintainerShortModel.ts +1 -1
  141. package/src/models/PasteInput.ts +2 -27
  142. package/src/models/PasteOutput.ts +17 -16
  143. package/src/models/RecoveryImgResponse.ts +1 -1
  144. package/src/models/ReleaseGroupsResponse.ts +1 -1
  145. package/src/models/ReleaseResponse.ts +19 -2
  146. package/src/models/ReleaseType.ts +1 -1
  147. package/src/models/ReleasesSort.ts +1 -1
  148. package/src/models/ResponseGetReleases.ts +1 -1
  149. package/src/models/ShortDeviceResponse.ts +17 -1
  150. package/src/models/ShortReleaseResponse.ts +19 -2
  151. package/src/models/ValidationError.ts +1 -1
  152. package/src/models/ValidationErrorLocInner.ts +1 -1
  153. package/src/runtime.ts +1 -1
@@ -0,0 +1,36 @@
1
+
2
+ # ListResponseReleaseResponse
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `data` | [Array<ReleaseResponse>](ReleaseResponse.md)
10
+ `count` | number
11
+
12
+ ## Example
13
+
14
+ ```typescript
15
+ import type { ListResponseReleaseResponse } from '@orangefox-recovery/foxclient'
16
+
17
+ // TODO: Update the object below with actual values
18
+ const example = {
19
+ "data": null,
20
+ "count": null,
21
+ } satisfies ListResponseReleaseResponse
22
+
23
+ console.log(example)
24
+
25
+ // Convert the instance to a JSON string
26
+ const exampleJSON: string = JSON.stringify(example)
27
+ console.log(exampleJSON)
28
+
29
+ // Parse the JSON string back to an object
30
+ const exampleParsed = JSON.parse(exampleJSON) as ListResponseReleaseResponse
31
+ console.log(exampleParsed)
32
+ ```
33
+
34
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
35
+
36
+
@@ -0,0 +1,36 @@
1
+
2
+ # ListResponseShortDeviceResponse
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `data` | [Array<ShortDeviceResponse>](ShortDeviceResponse.md)
10
+ `count` | number
11
+
12
+ ## Example
13
+
14
+ ```typescript
15
+ import type { ListResponseShortDeviceResponse } from '@orangefox-recovery/foxclient'
16
+
17
+ // TODO: Update the object below with actual values
18
+ const example = {
19
+ "data": null,
20
+ "count": null,
21
+ } satisfies ListResponseShortDeviceResponse
22
+
23
+ console.log(example)
24
+
25
+ // Convert the instance to a JSON string
26
+ const exampleJSON: string = JSON.stringify(example)
27
+ console.log(exampleJSON)
28
+
29
+ // Parse the JSON string back to an object
30
+ const exampleParsed = JSON.parse(exampleJSON) as ListResponseShortDeviceResponse
31
+ console.log(exampleParsed)
32
+ ```
33
+
34
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
35
+
36
+
@@ -0,0 +1,36 @@
1
+
2
+ # ListResponseShortReleaseResponse
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `data` | [Array<ShortReleaseResponse>](ShortReleaseResponse.md)
10
+ `count` | number
11
+
12
+ ## Example
13
+
14
+ ```typescript
15
+ import type { ListResponseShortReleaseResponse } from '@orangefox-recovery/foxclient'
16
+
17
+ // TODO: Update the object below with actual values
18
+ const example = {
19
+ "data": null,
20
+ "count": null,
21
+ } satisfies ListResponseShortReleaseResponse
22
+
23
+ console.log(example)
24
+
25
+ // Convert the instance to a JSON string
26
+ const exampleJSON: string = JSON.stringify(example)
27
+ console.log(exampleJSON)
28
+
29
+ // Parse the JSON string back to an object
30
+ const exampleParsed = JSON.parse(exampleJSON) as ListResponseShortReleaseResponse
31
+ console.log(exampleParsed)
32
+ ```
33
+
34
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
35
+
36
+
@@ -0,0 +1,36 @@
1
+
2
+ # ListResponseStr
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `data` | Array<string>
10
+ `count` | number
11
+
12
+ ## Example
13
+
14
+ ```typescript
15
+ import type { ListResponseStr } from '@orangefox-recovery/foxclient'
16
+
17
+ // TODO: Update the object below with actual values
18
+ const example = {
19
+ "data": null,
20
+ "count": null,
21
+ } satisfies ListResponseStr
22
+
23
+ console.log(example)
24
+
25
+ // Convert the instance to a JSON string
26
+ const exampleJSON: string = JSON.stringify(example)
27
+ console.log(exampleJSON)
28
+
29
+ // Parse the JSON string back to an object
30
+ const exampleParsed = JSON.parse(exampleJSON) as ListResponseStr
31
+ console.log(exampleParsed)
32
+ ```
33
+
34
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
35
+
36
+
@@ -0,0 +1,38 @@
1
+
2
+ # MaintainerShortModel
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `id` | string
10
+ `name` | string
11
+ `username` | string
12
+
13
+ ## Example
14
+
15
+ ```typescript
16
+ import type { MaintainerShortModel } from '@orangefox-recovery/foxclient'
17
+
18
+ // TODO: Update the object below with actual values
19
+ const example = {
20
+ "id": null,
21
+ "name": null,
22
+ "username": null,
23
+ } satisfies MaintainerShortModel
24
+
25
+ console.log(example)
26
+
27
+ // Convert the instance to a JSON string
28
+ const exampleJSON: string = JSON.stringify(example)
29
+ console.log(exampleJSON)
30
+
31
+ // Parse the JSON string back to an object
32
+ const exampleParsed = JSON.parse(exampleJSON) as MaintainerShortModel
33
+ console.log(exampleParsed)
34
+ ```
35
+
36
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
37
+
38
+
@@ -0,0 +1,149 @@
1
+ # PasteApi
2
+
3
+ All URIs are relative to *https://api.orangefox.download*
4
+
5
+ | Method | HTTP request | Description |
6
+ |------------- | ------------- | -------------|
7
+ | [**createPastePastePost**](PasteApi.md#createpastepastepost) | **POST** /paste/ | Create Paste |
8
+ | [**getPastePastePasteIdGet**](PasteApi.md#getpastepastepasteidget) | **GET** /paste/{paste_id} | Get Paste |
9
+
10
+
11
+
12
+ ## createPastePastePost
13
+
14
+ > PasteOutput createPastePastePost(pasteInput)
15
+
16
+ Create Paste
17
+
18
+ Create a new paste.
19
+
20
+ ### Example
21
+
22
+ ```ts
23
+ import {
24
+ Configuration,
25
+ PasteApi,
26
+ } from '@orangefox-recovery/foxclient';
27
+ import type { CreatePastePastePostRequest } from '@orangefox-recovery/foxclient';
28
+
29
+ async function example() {
30
+ console.log("🚀 Testing @orangefox-recovery/foxclient SDK...");
31
+ const api = new PasteApi();
32
+
33
+ const body = {
34
+ // PasteInput
35
+ pasteInput: ...,
36
+ } satisfies CreatePastePastePostRequest;
37
+
38
+ try {
39
+ const data = await api.createPastePastePost(body);
40
+ console.log(data);
41
+ } catch (error) {
42
+ console.error(error);
43
+ }
44
+ }
45
+
46
+ // Run the test
47
+ example().catch(console.error);
48
+ ```
49
+
50
+ ### Parameters
51
+
52
+
53
+ | Name | Type | Description | Notes |
54
+ |------------- | ------------- | ------------- | -------------|
55
+ | **pasteInput** | [PasteInput](PasteInput.md) | | |
56
+
57
+ ### Return type
58
+
59
+ [**PasteOutput**](PasteOutput.md)
60
+
61
+ ### Authorization
62
+
63
+ No authorization required
64
+
65
+ ### HTTP request headers
66
+
67
+ - **Content-Type**: `application/json`
68
+ - **Accept**: `application/json`
69
+
70
+
71
+ ### HTTP response details
72
+ | Status code | Description | Response headers |
73
+ |-------------|-------------|------------------|
74
+ | **201** | Successful Response | - |
75
+ | **429** | Too many requests | - |
76
+ | **422** | Validation Error | - |
77
+
78
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
79
+
80
+
81
+ ## getPastePastePasteIdGet
82
+
83
+ > PasteOutput getPastePastePasteIdGet(pasteId)
84
+
85
+ Get Paste
86
+
87
+ Get a paste by ID.
88
+
89
+ ### Example
90
+
91
+ ```ts
92
+ import {
93
+ Configuration,
94
+ PasteApi,
95
+ } from '@orangefox-recovery/foxclient';
96
+ import type { GetPastePastePasteIdGetRequest } from '@orangefox-recovery/foxclient';
97
+
98
+ async function example() {
99
+ console.log("🚀 Testing @orangefox-recovery/foxclient SDK...");
100
+ const api = new PasteApi();
101
+
102
+ const body = {
103
+ // string
104
+ pasteId: pasteId_example,
105
+ } satisfies GetPastePastePasteIdGetRequest;
106
+
107
+ try {
108
+ const data = await api.getPastePastePasteIdGet(body);
109
+ console.log(data);
110
+ } catch (error) {
111
+ console.error(error);
112
+ }
113
+ }
114
+
115
+ // Run the test
116
+ example().catch(console.error);
117
+ ```
118
+
119
+ ### Parameters
120
+
121
+
122
+ | Name | Type | Description | Notes |
123
+ |------------- | ------------- | ------------- | -------------|
124
+ | **pasteId** | `string` | | [Defaults to `undefined`] |
125
+
126
+ ### Return type
127
+
128
+ [**PasteOutput**](PasteOutput.md)
129
+
130
+ ### Authorization
131
+
132
+ No authorization required
133
+
134
+ ### HTTP request headers
135
+
136
+ - **Content-Type**: Not defined
137
+ - **Accept**: `application/json`
138
+
139
+
140
+ ### HTTP response details
141
+ | Status code | Description | Response headers |
142
+ |-------------|-------------|------------------|
143
+ | **200** | Successful Response | - |
144
+ | **404** | Item not found | - |
145
+ | **429** | Too many requests | - |
146
+ | **422** | Validation Error | - |
147
+
148
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
149
+
@@ -0,0 +1,34 @@
1
+
2
+ # PasteInput
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `content` | string
10
+
11
+ ## Example
12
+
13
+ ```typescript
14
+ import type { PasteInput } from '@orangefox-recovery/foxclient'
15
+
16
+ // TODO: Update the object below with actual values
17
+ const example = {
18
+ "content": null,
19
+ } satisfies PasteInput
20
+
21
+ console.log(example)
22
+
23
+ // Convert the instance to a JSON string
24
+ const exampleJSON: string = JSON.stringify(example)
25
+ console.log(exampleJSON)
26
+
27
+ // Parse the JSON string back to an object
28
+ const exampleParsed = JSON.parse(exampleJSON) as PasteInput
29
+ console.log(exampleParsed)
30
+ ```
31
+
32
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
33
+
34
+
@@ -0,0 +1,40 @@
1
+
2
+ # PasteOutput
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `id` | string
10
+ `content` | string
11
+ `createdAt` | Date
12
+ `isOwner` | boolean
13
+
14
+ ## Example
15
+
16
+ ```typescript
17
+ import type { PasteOutput } from '@orangefox-recovery/foxclient'
18
+
19
+ // TODO: Update the object below with actual values
20
+ const example = {
21
+ "id": null,
22
+ "content": null,
23
+ "createdAt": null,
24
+ "isOwner": null,
25
+ } satisfies PasteOutput
26
+
27
+ console.log(example)
28
+
29
+ // Convert the instance to a JSON string
30
+ const exampleJSON: string = JSON.stringify(example)
31
+ console.log(exampleJSON)
32
+
33
+ // Parse the JSON string back to an object
34
+ const exampleParsed = JSON.parse(exampleJSON) as PasteOutput
35
+ console.log(exampleParsed)
36
+ ```
37
+
38
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
39
+
40
+
@@ -0,0 +1,36 @@
1
+
2
+ # RecoveryImgResponse
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `size` | number
10
+ `md5` | string
11
+
12
+ ## Example
13
+
14
+ ```typescript
15
+ import type { RecoveryImgResponse } from '@orangefox-recovery/foxclient'
16
+
17
+ // TODO: Update the object below with actual values
18
+ const example = {
19
+ "size": null,
20
+ "md5": null,
21
+ } satisfies RecoveryImgResponse
22
+
23
+ console.log(example)
24
+
25
+ // Convert the instance to a JSON string
26
+ const exampleJSON: string = JSON.stringify(example)
27
+ console.log(exampleJSON)
28
+
29
+ // Parse the JSON string back to an object
30
+ const exampleParsed = JSON.parse(exampleJSON) as RecoveryImgResponse
31
+ console.log(exampleParsed)
32
+ ```
33
+
34
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
35
+
36
+