Skip to content

Commit 93ae23d

Browse files
authored
Replace 0xA0 (non-br. space) w/ regular space: /web/api (pt. 2/2) (mdn#13104)
This PR is a part of mdn#13094. This PR replaces non-breaking space characters with normal spaces for the `/web/api` directory. Part two of two.
1 parent 89c8199 commit 93ae23d

File tree

611 files changed

+2683
-2683
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

611 files changed

+2683
-2683
lines changed

files/en-us/web/api/nodefilter/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ browser-compat: api.NodeFilter
99
---
1010
{{APIRef("DOM")}}
1111

12-
A **`NodeFilter`** interface represents an object used to filter the nodes in a {{domxref("NodeIterator")}} or {{domxref("TreeWalker")}}. A `NodeFilter` knows nothing about the document or traversing nodes; it only knows how to evaluate a single node against the provided filter.
12+
A **`NodeFilter`** interface represents an object used to filter the nodes in a {{domxref("NodeIterator")}} or {{domxref("TreeWalker")}}. A `NodeFilter` knows nothing about the document or traversing nodes; it only knows how to evaluate a single node against the provided filter.
1313

1414
> **Note:** The browser doesn't provide any object implementing this interface. It is the user who is expected to write one, tailoring the `acceptNode()` method to its needs, and using it with some {{domxref("TreeWalker")}} or {{domxref("NodeIterator")}} objects.
1515
@@ -49,11 +49,11 @@ _This interface doesn't inherit any methods._
4949
<p>
5050
Value to be returned by the
5151
{{domxref("NodeFilter.acceptNode()")}} method when a
52-
node should be rejected. For {{domxref("TreeWalker")}}, child
52+
node should be rejected. For {{domxref("TreeWalker")}}, child
5353
nodes are also rejected.
5454
</p>
5555
<p>
56-
For {{ domxref("NodeIterator") }}, this flag is synonymous
56+
For {{ domxref("NodeIterator") }}, this flag is synonymous
5757
with <code>FILTER_SKIP</code>.
5858
</p>
5959
</td>
@@ -89,7 +89,7 @@ const nodeIterator = document.createNodeIterator(
8989
// Object containing the function to use for the acceptNode method
9090
// of the NodeFilter
9191
{
92-
  acceptNode: function(node) {
92+
acceptNode: function(node) {
9393
// Logic to determine whether to accept, reject or skip node
9494
// In this case, only accept nodes that have content
9595
// other than whitespace

files/en-us/web/api/nodeiterator/nextnode/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ browser-compat: api.NodeIterator.nextNode
1212

1313
The **`NodeIterator.nextNode()`** method returns the next node
1414
in the set represented by the {{domxref("NodeIterator")}} and advances the position of
15-
the iterator within the set.  The first call to `nextNode()` returns the
15+
the iterator within the set. The first call to `nextNode()` returns the
1616
first node in the set.
1717

1818
This method returns `null` when there are no nodes left in the set.

files/en-us/web/api/nodeiterator/whattoshow/index.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,32 +58,32 @@ The values that can be combined to form the bitmask are:
5858
<code>NodeFilter.SHOW_CDATA_SECTION</code> {{deprecated_inline}}
5959
</td>
6060
<td><code>8</code></td>
61-
<td>Shows {{ domxref("CDATASection") }} nodes.</td>
61+
<td>Shows {{ domxref("CDATASection") }} nodes.</td>
6262
</tr>
6363
<tr>
6464
<td><code>NodeFilter.SHOW_COMMENT</code></td>
6565
<td><code>128</code></td>
66-
<td>Shows {{ domxref("Comment") }} nodes.</td>
66+
<td>Shows {{ domxref("Comment") }} nodes.</td>
6767
</tr>
6868
<tr>
6969
<td><code>NodeFilter.SHOW_DOCUMENT</code></td>
7070
<td><code>256</code></td>
71-
<td>Shows {{ domxref("Document") }} nodes.</td>
71+
<td>Shows {{ domxref("Document") }} nodes.</td>
7272
</tr>
7373
<tr>
7474
<td><code>NodeFilter.SHOW_DOCUMENT_FRAGMENT</code></td>
7575
<td><code>1024</code></td>
76-
<td>Shows {{ domxref("DocumentFragment") }} nodes.</td>
76+
<td>Shows {{ domxref("DocumentFragment") }} nodes.</td>
7777
</tr>
7878
<tr>
7979
<td><code>NodeFilter.SHOW_DOCUMENT_TYPE</code></td>
8080
<td><code>512</code></td>
81-
<td>Shows {{ domxref("DocumentType") }} nodes.</td>
81+
<td>Shows {{ domxref("DocumentType") }} nodes.</td>
8282
</tr>
8383
<tr>
8484
<td><code>NodeFilter.SHOW_ELEMENT</code></td>
8585
<td><code>1</code></td>
86-
<td>Shows {{ domxref("Element") }} nodes.</td>
86+
<td>Shows {{ domxref("Element") }} nodes.</td>
8787
</tr>
8888
<tr>
8989
<td><code>NodeFilter.SHOW_ENTITY</code> {{deprecated_inline}}</td>
@@ -108,12 +108,12 @@ The values that can be combined to form the bitmask are:
108108
<tr>
109109
<td><code>NodeFilter.SHOW_PROCESSING_INSTRUCTION</code></td>
110110
<td><code>64</code></td>
111-
<td>Shows {{ domxref("ProcessingInstruction") }} nodes.</td>
111+
<td>Shows {{ domxref("ProcessingInstruction") }} nodes.</td>
112112
</tr>
113113
<tr>
114114
<td><code>NodeFilter.SHOW_TEXT</code></td>
115115
<td><code>4</code></td>
116-
<td>Shows {{ domxref("Text") }} nodes.</td>
116+
<td>Shows {{ domxref("Text") }} nodes.</td>
117117
</tr>
118118
</tbody>
119119
</table>
@@ -128,7 +128,7 @@ var nodeIterator = document.createNodeIterator(
128128
false
129129
);
130130
if ((nodeIterator.whatToShow & NodeFilter.SHOW_ALL) ||
131-
(nodeIterator.whatToShow & NodeFilter.SHOW_COMMENT)) {
131+
(nodeIterator.whatToShow & NodeFilter.SHOW_COMMENT)) {
132132
// nodeIterator will show comments
133133
}
134134
```

files/en-us/web/api/nodelist/foreach/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ someNodeList.forEach(callback[, thisArg]);
3636
- : The index of the `currentValue` being processed in
3737
`someNodeList`.
3838
- `listObj` {{Optional_inline}}
39-
- : The `someNodeList` that `forEach()` is being
39+
- : The `someNodeList` that `forEach()` is being
4040
applied to.
4141

4242
- `thisArg` {{Optional_inline}}

files/en-us/web/api/nodelist/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ console.log(child_nodes.length); // outputs "3"
3636

3737
### Static NodeLists
3838

39-
In other cases, the `NodeList` is _static,_ where any changes in the DOM does not affect the content of the collection. The ubiquitous {{domxref("document.querySelectorAll()")}} method returns a _static_ `NodeList`.
39+
In other cases, the `NodeList` is _static,_ where any changes in the DOM does not affect the content of the collection. The ubiquitous {{domxref("document.querySelectorAll()")}} method returns a _static_ `NodeList`.
4040

4141
It's good to keep this distinction in mind when you choose how to iterate over the items in the `NodeList`, and whether you should cache the list's `length`.
4242

@@ -51,7 +51,7 @@ It's good to keep this distinction in mind when you choose how to iterate over t
5151

5252
- : Returns an item in the list by its index, or `null` if the index is out-of-bounds.
5353

54-
An alternative to accessing `nodeList[i]` (which instead returns  `undefined` when `i` is out-of-bounds). This is mostly useful for non-JavaScript DOM implementations.
54+
An alternative to accessing `nodeList[i]` (which instead returns `undefined` when `i` is out-of-bounds). This is mostly useful for non-JavaScript DOM implementations.
5555

5656
- {{domxref("NodeList.entries()")}}
5757
- : Returns an {{jsxref("Iteration_protocols","iterator")}}, allowing code to go through all key/value pairs contained in the collection. (In this case, the keys are numbers starting from `0` and the values are nodes.)

files/en-us/web/api/notification/actions/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The actions are set using the `actions` option of the second argument for the [`
2323

2424
A read-only array of actions. Each element in the array is an object with the following members:
2525

26-
- action: A {{domxref("DOMString")}} identifying a user action to be displayed on the notification.
26+
- action: A {{domxref("DOMString")}} identifying a user action to be displayed on the notification.
2727
- title: A {{domxref("DOMString")}} containing action text to be shown to the user.
2828
- icon: A {{domxref("USVString")}} containing the URL of an icon to display with the action.
2929

files/en-us/web/api/notification/notification/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ var notification = new Notification(title, options);
6363
The default value is `false`.
6464
- `actions`: An array of actions to display in the notification. Each element in the array is an object with the following members:
6565

66-
- `action`: A {{domxref("DOMString")}} identifying a user action to be displayed on the notification.
66+
- `action`: A {{domxref("DOMString")}} identifying a user action to be displayed on the notification.
6767
- `title`: A {{domxref("DOMString")}} containing action text to be shown to the user.
6868
- `icon`: A {{domxref("USVString")}} containing the URL of an icon to display with the action.
6969

files/en-us/web/api/notificationevent/action/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ browser-compat: api.NotificationEvent.action
1515
---
1616
{{APIRef("Web Notifications")}}
1717

18-
Returns the string ID of the notification button the user clicked. This value returns an empty string if the user clicked the notification somewhere other than an action button, or the notification does not have a button. The notification id is set during the creation of the Notification via the actions array attribute and can't be modified unless the notification is replaced.
18+
Returns the string ID of the notification button the user clicked. This value returns an empty string if the user clicked the notification somewhere other than an action button, or the notification does not have a button. The notification id is set during the creation of the Notification via the actions array attribute and can't be modified unless the notification is replaced.
1919

2020
## Returns
2121

files/en-us/web/api/notifyaudioavailableevent/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ tags:
1111
---
1212
{{APIRef("Web Audio API")}}{{Non-standard_header}}{{Deprecated_header}}
1313

14-
The non-standard, obsolete, **`NotifyAudioAvailableEvent`** interface defines the event sent to audio elements  when the audio buffer is full.
14+
The non-standard, obsolete, **`NotifyAudioAvailableEvent`** interface defines the event sent to audio elements when the audio buffer is full.
1515

1616
## Properties
1717

files/en-us/web/api/oes_fbo_render_mipmap/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ The `OES_fbo_render_mipmap` extension is part of the [WebGL API](/en-US/docs/Web
1515

1616
WebGL extensions are available using the {{domxref("WebGLRenderingContext.getExtension()")}} method. For more information, see also [Using Extensions](/en-US/docs/Web/API/WebGL_API/Using_Extensions) in the [WebGL tutorial](/en-US/docs/Web/API/WebGL_API/Tutorial).
1717

18-
> **Note:** This extension is only available to {{domxref("WebGLRenderingContext", "WebGL 1", "", 1)}}.  
18+
> **Note:** This extension is only available to {{domxref("WebGLRenderingContext", "WebGL 1", "", 1)}}.
1919
> In WebGL2, the functionality of this extension is available in the WebGL 2 context by default.
2020
2121
## Examples

files/en-us/web/api/oes_standard_derivatives/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ WebGL extensions are available using the {{domxref("WebGLRenderingContext.getExt
1818
1919
## Constants
2020

21-
This extension exposes one new constant, which can be used in the {{domxref("WebGLRenderingContext.hint()", "hint()")}} and {{domxref("WebGLRenderingContext.getParameter()", "getParameter()")}} methods.
21+
This extension exposes one new constant, which can be used in the {{domxref("WebGLRenderingContext.hint()", "hint()")}} and {{domxref("WebGLRenderingContext.getParameter()", "getParameter()")}} methods.
2222

2323
- `ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES`
2424
- : A {{domxref("WebGL_API.Types")}} indicating the accuracy of the derivative calculation for the GLSL built-in functions: `dFdx`, `dFdy`, and `fwidth`.

files/en-us/web/api/oes_vertex_array_object/bindvertexarrayoes/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ browser-compat: api.OES_vertex_array_object.bindVertexArrayOES
1414

1515
The **`OES_vertex_array_object.bindVertexArrayOES()`** method
1616
of the [WebGL API](/en-US/docs/Web/API/WebGL_API) binds a
17-
passed {{domxref("WebGLVertexArrayObject")}} object to the buffer.
17+
passed {{domxref("WebGLVertexArrayObject")}} object to the buffer.
1818

1919
## Syntax
2020

files/en-us/web/api/offlineaudiocontext/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ _Also inherits methods from its parent interface, {{domxref("BaseAudioContext")}
4747
- {{domxref("OfflineAudioContext.resume()")}}
4848
- : Resumes the progression of time in an audio context that has previously been suspended.
4949

50-
> **Note:** The `resume()` method is still available — it is now defined on the {{domxref("BaseAudioContext")}} interface (see {{domxref("AudioContext.resume")}}) and thus can be accessed by both the {{domxref("AudioContext")}} and {{domxref("OfflineAudioContext")}} interfaces.
50+
> **Note:** The `resume()` method is still available — it is now defined on the {{domxref("BaseAudioContext")}} interface (see {{domxref("AudioContext.resume")}}) and thus can be accessed by both the {{domxref("AudioContext")}} and {{domxref("OfflineAudioContext")}} interfaces.
5151
5252
## Events
5353

files/en-us/web/api/offlineaudiocontext/suspend/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ browser-compat: api.OfflineAudioContext.suspend
1616
The **`suspend()`** method of the {{
1717
domxref("OfflineAudioContext") }} interface schedules a suspension of the time
1818
progression in the audio context at the specified time and returns a promise. This is
19-
generally useful at the time of manipulating the audio graph synchronously on
19+
generally useful at the time of manipulating the audio graph synchronously on
2020
OfflineAudioContext.
2121

2222
Note that the maximum precision of suspension is the size of the render quantum and the
@@ -42,7 +42,7 @@ A {{jsxref("Promise")}} resolving to {{jsxref('undefined')}}.
4242

4343
### Exceptions
4444

45-
The promise is rejected when any exception is encountered.
45+
The promise is rejected when any exception is encountered.
4646

4747
- `InvalidStateError` {{domxref("DOMException")}}
4848
- : Returned if the quantized frame number is one of the following:

files/en-us/web/api/offscreencanvas/index.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ browser-compat: api.OffscreenCanvas
1111
---
1212
{{APIRef("Canvas API")}} {{SeeCompatTable}}
1313

14-
The **`OffscreenCanvas`** interface provides a canvas that can be rendered off screen. It is available in both the window and [worker](/en-US/docs/Web/API/Web_Workers_API) contexts.
14+
The **`OffscreenCanvas`** interface provides a canvas that can be rendered off screen. It is available in both the window and [worker](/en-US/docs/Web/API/Web_Workers_API) contexts.
1515

1616
{{AvailableInWorkers}}
1717

@@ -42,7 +42,7 @@ The **`OffscreenCanvas`** interface provides a canvas that can be rendered off s
4242

4343
### Synchronous display of frames produced by an `OffscreenCanvas`
4444

45-
One way to use the `OffscreenCanvas` API, is to use a rendering context that has been obtained from an `OffscreenCanvas` object to generate new frames. Once a new frame has finished rendering in this context,  the {{domxref("OffscreenCanvas.transferToImageBitmap", "transferToImageBitmap()")}} method can be called to save the most recent rendered image. This method returns an {{domxref("ImageBitmap")}} object, which can be used in a variety of Web APIs and also in a second canvas without creating a transfer copy.
45+
One way to use the `OffscreenCanvas` API, is to use a rendering context that has been obtained from an `OffscreenCanvas` object to generate new frames. Once a new frame has finished rendering in this context, the {{domxref("OffscreenCanvas.transferToImageBitmap", "transferToImageBitmap()")}} method can be called to save the most recent rendered image. This method returns an {{domxref("ImageBitmap")}} object, which can be used in a variety of Web APIs and also in a second canvas without creating a transfer copy.
4646

4747
To display the `ImageBitmap`, you can use a {{domxref("ImageBitmapRenderingContext")}} context, which can be created by calling `canvas.getContext("bitmaprenderer")` on a (visible) canvas element. This context only provides functionality to replace the canvas's contents with the given `ImageBitmap`. A call to {{domxref("ImageBitmapRenderingContext.transferFromImageBitmap()")}} with the previously rendered and saved `ImageBitmap` from the OffscreenCanvas, will display the `ImageBitmap` on the canvas and transfer its ownership to the canvas. A single `OffscreenCanvas` may transfer frames into an arbitrary number of other `ImageBitmapRenderingContext` objects.
4848

@@ -104,14 +104,14 @@ You can also use requestAnimationFrame in workers
104104

105105
```js
106106
onmessage = function(evt) {
107-
  const canvas = evt.data.canvas;
108-
  const gl = canvas.getContext("webgl");
109-
110-
  function render(time) {
111-
  // ... some drawing using the gl context ...
112-
  requestAnimationFrame(render);
113-
  }
114-
  requestAnimationFrame(render);
107+
const canvas = evt.data.canvas;
108+
const gl = canvas.getContext("webgl");
109+
110+
function render(time) {
111+
// ... some drawing using the gl context ...
112+
requestAnimationFrame(render);
113+
}
114+
requestAnimationFrame(render);
115115
};
116116
```
117117

files/en-us/web/api/oscillatornode/detune/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var oscillator = audioCtx.createOscillator();
2121
oscillator.detune.setValueAtTime(100, audioCtx.currentTime); // value in cents
2222
```
2323

24-
> **Note:** though the `AudioParam` returned is read-only, the value it represents is not.
24+
> **Note:** though the `AudioParam` returned is read-only, the value it represents is not.
2525
2626
### Value
2727

files/en-us/web/api/oscillatornode/frequency/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var oscillator = audioCtx.createOscillator();
2121
oscillator.frequency.setValueAtTime(440, audioCtx.currentTime); // value in hertz
2222
```
2323

24-
> **Note:** though the `AudioParam` returned is read-only, the value it represents is not.
24+
> **Note:** though the `AudioParam` returned is read-only, the value it represents is not.
2525
2626
### Value
2727

files/en-us/web/api/oscillatornode/index.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ browser-compat: api.OscillatorNode
1313
---
1414
{{APIRef("Web Audio API")}}
1515

16-
The **`OscillatorNode`** interface represents a periodic waveform, such as a sine wave. It is an {{domxref("AudioScheduledSourceNode")}} audio-processing module that causes a specified frequency of a given wave to be created—in effect, a constant tone.
16+
The **`OscillatorNode`** interface represents a periodic waveform, such as a sine wave. It is an {{domxref("AudioScheduledSourceNode")}} audio-processing module that causes a specified frequency of a given wave to be created—in effect, a constant tone.
1717

1818
{{InheritanceDiagram}}
1919

@@ -45,18 +45,18 @@ The **`OscillatorNode`** interface represents a periodic waveform, such as a si
4545
## Constructor
4646

4747
- {{domxref("OscillatorNode.OscillatorNode", "OscillatorNode()")}}
48-
- : Creates a new instance of an `OscillatorNode` object, optionally providing an object specifying default values for the node's {{anch("properties")}}.  As an alternative, you can use the {{domxref("BaseAudioContext.createOscillator()")}} factory method; see [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).
48+
- : Creates a new instance of an `OscillatorNode` object, optionally providing an object specifying default values for the node's {{anch("properties")}}. As an alternative, you can use the {{domxref("BaseAudioContext.createOscillator()")}} factory method; see [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).
4949

5050
## Properties
5151

5252
_Inherits properties from its parent, {{domxref("AudioScheduledSourceNode")}}, and adds the following properties:_
5353

5454
- {{domxref("OscillatorNode.frequency")}}
55-
- : An [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) {{domxref("AudioParam")}} representing the frequency of oscillation in hertz (though the `AudioParam` returned is read-only, the value it represents is not). The default value is 440 Hz (a standard middle-A note).
55+
- : An [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) {{domxref("AudioParam")}} representing the frequency of oscillation in hertz (though the `AudioParam` returned is read-only, the value it represents is not). The default value is 440 Hz (a standard middle-A note).
5656
- {{domxref("OscillatorNode.detune")}}
57-
- : An [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) {{domxref("AudioParam")}} representing detuning of oscillation in cents (though the `AudioParam` returned is read-only, the value it represents is not). The default value is 0.
57+
- : An [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) {{domxref("AudioParam")}} representing detuning of oscillation in cents (though the `AudioParam` returned is read-only, the value it represents is not). The default value is 0.
5858
- {{domxref("OscillatorNode.type")}}
59-
- : A string which specifies the shape of waveform to play; this can be one of a number of standard values, or `custom` to use a {{domxref("PeriodicWave")}} to describe a custom waveform. Different waves will produce different tones. Standard values are `"sine"`, `"square"`, `"sawtooth"`, `"triangle"` and `"custom"`. The default is `"sine"`.
59+
- : A string which specifies the shape of waveform to play; this can be one of a number of standard values, or `custom` to use a {{domxref("PeriodicWave")}} to describe a custom waveform. Different waves will produce different tones. Standard values are `"sine"`, `"square"`, `"sawtooth"`, `"triangle"` and `"custom"`. The default is `"sine"`.
6060

6161
### Event handlers
6262

files/en-us/web/api/oscillatornode/oscillatornode/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ var oscillatorNode = new OscillatorNode(context, options)
4545
'`sine`'.
4646
- `detune`
4747
- : A detuning value (in cents) which will offset
48-
the `frequency` by the given amount. Its default is 0.
48+
the `frequency` by the given amount. Its default is 0.
4949
- `frequency`
5050
- : The frequency (in {{interwiki("wikipedia", "hertz")}}) of the periodic
5151
waveform. Its default is 440.

0 commit comments

Comments
 (0)