2026年9月16日 星期三

2026年亚运会乒乓球赛程

  

2026年亚运会乒乓球赛程


赛事由920日 至28日‌,在日本举行,共设男女团体、单打、双打及混双7个项目,9天内密集决出全部7枚金牌。


920日(首日)

09:00 开赛,进行‌男子团体、女子团体第一阶段小组赛‌,多球台并行开打


921

09:00 上午,剩余团体小组赛

17:30 晚间场次,开始男女团体16强淘汰赛‌


922

09:00 上午,进行团体赛剩余16强对决

18:20 晚间,男女团体1/4决赛‌ 。


923

08:00 上午,剩余1/4决赛场次,男女团体半决赛‌ 。


924日(首个金牌日)

09:00 上午,进行赛前热身、场地适应

16:00 男子团体金牌决赛‌

18:30 女子团体金牌决赛‌


925

09:00 ,混双、男单、女单项目的1/161/8淘汰赛‌ 。


926

09:00 上午,混双剩余淘汰赛

下午,男双、女双项目首轮淘汰赛‌

18:30 混双金牌决赛‌。


927

上午,进行女单、男双半决赛

18:00 男双金牌决赛‌

19:30 女单金牌决赛‌


928日(收官)

上午,进行女双、男单半决赛

18:00 女双金牌决赛‌

19:30 男单打金牌决赛‌

赛事正式落下帷幕 。


主要直播与收看渠道

香港:HOY TV77/ 78台)

大陆:CCTV-5(体育频道)、CCTV-16(奥林匹克频道)

2026年9月15日 星期二

Firefox's free VPN Extension

Starting from Firefox version 149, a free VPN is integrated into the Firefox Web Browser. When the VPN was first introduced it was restricted to only a few geographical locations, like US, UK Germany, France, Canada and several Other markets excluding Hong Kong. But now  it is available to Hong Kong.

The VPN is designed for everyday browsing privacy, allowing you to mask your real IP address and encrypt browser traffic with a single toggle. However, it does not protect non-browser applications (like games, Torrent clients, or system apps).

In other words, it is not a full-system VPN. In other words, only traffic inside Firefox goes through the proxy. Other apps, system traffic, background downloads on your device are not protected.

Although the VPN is free, it has a Data limit of 50 GB per calendar month. Once used up, VPN protection pauses until next month’s reset.


2026年7月14日 星期二

My computer refused to SHUT DOWN

Recently, after working on my computer and clicking on the SHUT DOWN button, my computer refused to turn off while the monitor had already turned black. I needed to hard press the POWER BUTTON to turn it OFF. This frustrating phenomenon happened constantly for some time. In an attempt to solve the problem, I tried to ask Google Gemini for help and advice. This was its reply:

" This "black screen but still powered on" issue is a frustratingly common quirk in the Arch/EndeavourOS ecosystem — especially when paired with KDE Plasma. (That is what my computer is installed with.)

Usually, this happens because a specific system service, background application, or your display manager (SDDM) is refusing to close. By default, systemd is incredibly patient and will wait 90 seconds (a "stop job") for the stubborn app to close before forcibly killing it and shutting down. Sometimes, it gets stuck completely due to GPU driver states (especially NVIDIA) or ACPI power states.

Here is a step-by-step guide to diagnose and fix the issue.
 

1. The Quick Diagnostic: See What's Hanging

Before changing settings, we need to know what is holding up your system.

Hit Esc during shutdown: The moment you click shutdown and the screen starts to fade/go black, repeatedly tap the Esc key. This will hide the splash screen and show you the system console (TTY). Look for a message like: [ LIMIT ] A stop job is running for... (X s / 1min 30s) Note down the service name that is taking forever.


Read the logs from the previous boot: Since you had to force-shut down, reboot your computer, open a terminal, and run:

journalctl -b -1 -e


-b -1 tells systemd to show logs from the previous boot (the one you just forced off).


-e jumps straight to the end of the log (the shutdown sequence). Look at the last 20–30 lines. Often, you'll see a service like systemd-user-sessions, sd-pam, a specific Flatpak, or sddm refusing to terminate. 


2. The Best Workaround: Speed Up systemd's Patience

If an application is refusing to close and you just want your PC to turn off instead of waiting forever, you can tell systemd to stop being so polite. Instead of waiting 90 seconds, you can force it to kill stubborn processes after 5 seconds.

Open the systemd configuration file in your terminal:

sudo nano /etc/systemd/system.conf


Scroll down and find these lines (they will likely be commented out with #):

Plaintext #DefaultTimeoutStartSec=90s #DefaultTimeoutStopSec=90s

Remove the # at the beginning of the lines and change the value to 5s or 10s:

Plaintext DefaultTimeoutStartSec=10s DefaultTimeoutStopSec=5s

Press Ctrl + O then Enter to save, and Ctrl + X to exit.

Do the same for the user configuration:

sudo nano /etc/systemd/user.conf

Uncomment and edit:

Plaintext DefaultTimeoutStopSec=5s

Save and exit.
 

3. The KDE Plasma Specific Fix (Desktop Session)

KDE Plasma has a habit of trying to save your open windows and applications so they reopen when you boot back up. Sometimes, an application refuses to save its state, locking up the logout sequence.

Open System Settings in KDE Plasma.

Navigate to Startup and Shutdown > Desktop Session.

Under the On Login / On Next Session setting, select Start with an empty session.

Click Apply.
 

4. Fix GPU Driver / Hardware Lockups

If your monitor turns off but your PC fans and LEDs stay fully active indefinitely, this is often a failure of the kernel or GPU driver transitioning into the D3 (off) power state.
For NVIDIA Users:

Ensure NVIDIA's systemd services are enabled so they can save power states properly during shutdown:

Bash sudo systemctl enable nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service

Try the LTS Kernel (Highly Recommended on Arch/EndeavourOS):

If a recent mainline kernel update introduced a power management bug with your motherboard or GPU, booting into the Long-Term Support (LTS) kernel often solves it.

Install the LTS kernel and its headers:

sudo pacman -S linux-lts linux-lts-headers

Reboot your computer, and at your bootloader menu (systemd-boot or GRUB), select the Linux-LTS option. If this fixes your shutdown issue, you can keep using it as your default kernel.
💡 Bonus Tip: Stop Hard-Pressing the Power Button! Hard-shutting down your system can eventually corrupt your storage drive. If your computer freezes on a black screen again, try the safer REISUB method to gracefully force a reboot:
Hold down Alt + SysRq (often the Print Screen key).

While holding them, slowly type the letters R E I S U O (waiting 1–2 seconds between each press). This sends low-level commands straight to the Linux kernel to safely close all processes, sync your hard drives, and power down (O for Off).  "

I followed through all the above steps but they did not help. 

While I was still wondering what to next, it suddenly came to my mind that would this be a problem of my motherboard which is Asus H610M-E D4. So I asked Gemini again. Its answer was:


" Yes, you hit the nail on the head. Your motherboard (Asus H610M-E D4) is highly likely the culprit behind this. Asus Prime series motherboards (specifically the H610 and B660 series) are notorious in the Linux community for having ACPI (Advanced Configuration and Power Interface) and power state translation bugs. When the operating system sends the ACPI signal to cut the hardware power (transitioning to the G3 mechanical off state), the motherboard firmware fails to interpret it. The OS shuts down and the screen goes black, but the motherboard physically keeps the power delivery lines to your fans, LEDs, and board logic active.

Fortunately, because this is a known motherboard firmware and ACPI behavior, you can usually resolve it using specific hardware and kernel workarounds.
 

Step 1: Fix ASUS Motherboard BIOS Power Settings

Several default ASUS power-saving and waking features block the motherboard from fully shutting down on Linux.

Turn on your computer and tap F2 or Del to enter the ASUS UEFI BIOS.

Press F7 to switch to Advanced Mode.

Go to Advanced --> APM Configuration (Advanced Power Management).

Find ErP Ready and change it to Enable (S4+S5) or Enable (S5). 

 (This forces the motherboard to cut power to USB ports and onboard components when shut down).


Find Power On By PCI-E and set it to Disabled (disables wake-on-LAN which often hangs the shutdown sequence).


Go to Advanced --> System Agent (SA) Configuration.

Find Graphics Configuration --> iGPU Multi-Monitor. If you are using a dedicated graphics card (like NVIDIA or AMD) and do not use your Intel motherboard HDMI port, set this to Disabled.
Press F10 to save and exit. "

This time, the Gemini advice finally worked. I needed only enable the ErP Ready to  S4+S5 and my computer could then shut down normally!

 

What is ErP?

ErP (Energy-Related Products) is a European Union directive designed to reduce energy consumption. In your BIOS, enabling ErP forces your computer to consume less than 1 watt of power when it is turned off or in standby.

To achieve this, the motherboard completely cuts power to USB ports, RGB lighting, network cards, and other onboard components when the system is inactive.

 

The Difference Between the Settings

The difference lies in which power states trigger this deep-sleep, ultra-low power mode.

SettingWhat it doesBest For
DisabledUSB ports and motherboard LEDs stay powered even when the PC is off. You can charge devices or boot via network (Wake-on-LAN).People who charge phones overnight using their PC, or use Wake-on-LAN.
Enabled (S5)ErP is active only when the PC is fully shut down (the S5 state). If the PC is in Hibernate (S4) or Sleep (S3), power to USBs and LEDs remains active.People who want power savings when finished for the day, but still want fast-charging/sleep features during short breaks.
Enabled (S4+S5)ErP is active when the PC is shut down (S5) OR hibernating (S4).Maximum energy savings and zero ghost power draw when the computer is not actively in use.

 

2026年6月26日 星期五

銀河 PRO 01,一款性價比高的蝴蝶 Viscaria 复刻品/替代品

蝴蝶 Viscaria 是一款深受乒乓球迷愛戴的球板,無論是專業球員還是業餘發燒友都愛使用。它的特点出球速度快,借力好,手感清晰通透,指向性好,底劲充沛。适合快攻结合弧圈打法。

可惜的是它的價錢比較貴,在淘寶網上通常要1000+人民币。

在日本的亞馬遜(amazon.co.jp)網站上,它現在的售價如下:

 

以現在的兌換價,1日元等於0.055港元,用大約 900 多港元 (未計運費) 便可以買到。

蝴蝶 Viscaria 的结构屬 外置芳碳混编纤维(Arylate-Carbon Hybrid Fiber),共有7層:

第一層: Koto (寇头木) 0.5mm
中硬脆木,鱼鳞纹 / 直纹两种;手感通透、反馈清晰,小力量不发闷,台内击球脆爽,提升一速。
第二層: Arylate-Carbon(ALC) 0.2mm
芳纶纤维柔、碳素刚性,兼顾弹性与减震;紧贴面材 = 外置结构,局部形变,借力弹击、快撕速度突出。 
第三層: Ayous(阿尤斯) 0.6mm
韧性足、支撑强,承接纤维力量,中小力量保证上台稳定性,发力后放大进攻质量。 
第四層: Kiri(桐木) 3.2mm
轻质、减震好,中和外置纤维的硬弹,降低震手感;但桐木芯蓄能一般,中远台底劲不如阿尤斯大芯底板。 
第五層: Ayous(阿尤斯) 0.6mm
第六層: Arylate-Carbon(ALC) 0.2mm
第七層: Koto (寇头木) 0.5mm  

特性:
- 外置芳碳(ALC):纤维层靠近面材,出球速度快,适合中远台弧圈结合快攻。
- 桐木大芯:吸收多余震动,提升控制与连续进攻稳定性。
- 阿尤斯 : Viscaria 的 核心层, 提供柔韧和稳定的击球手感
寇头木硬度较高,为底板提供清晰的击球手感和较快的出球初速,支撑力好
- 整体反馈:脆弹清晰,发力后形变大,弧线饱满,适合主动进攻型打法。

蝴蝶有多款底板采用类似结构,仅在面材或纤维层微调,同结构兄弟型号有:
- 张继科 ALC:与 Viscaria 结构相同。
- Innerforce Layer ALC:纤维层内置(靠近大芯),手感更柔和。
- Viscaria Super ALC:升级版,面材改用硬度更高的 寇头木 (koto),速度提升。

银河 Pro-01 是一款结构仿照 蝴蝶 VIS 的底板,Koto面材+蓝芳碳+阿尤斯力材+桐木大芯),木材做软化处理
厚度5.7mm 左右
重量87–93g,重心居中、手柄配重优化
价格元約 235 元
纤维调校:偏软弹,木感突出,持球更深、容错高


银河 Pro-01 的表現很接近 蝴蝶 Viscaria。

控制与防守: 小球出色:台内摆短、搓球控制稳定,不易冒高,优于VIS的硬弹手感。 防守借力一般

旋转优于速度:一速中等,二跳下扎感不如VIS强烈,但旋转表现突出,适合连续拉冲。

退台底劲一般:中远台发力时支撑力稍弱,大力量下易发飘,更适合中近台作战。

正手套胶推荐:

Pro 01 柔和持球型, 外置蓝芳碳,软板适合中等硬度粘套 / 半粘内能套,弥补底板出球偏肉、单板冲击力不足;追求旋转选国产粘套,追求通透免灌选内能 / 德套。

1. NEO 省狂 3 / 蓝省狂 3(39° 2.15)【综合最强】
2. 729 奔腾 2 省套(38/39° MAX)【免灌平民狂三】
3. 银河木星 3(46°)【自家底板适配天花板】
4. 狂飙 8-80(38°)【轻量均衡、直板友好】
5. 银河北斗 3(45°)【百元内能性价比】
6. Yasaka 亚萨卡飞龙(中硬)【德系半粘天花板】
7. Tibhar 挺拔 MX-P(涩性)【纯快攻、单板速度流】


银河 Pro01 反手套胶推荐
1. 银河月球速度(软)
2. 729 闪现 Speed(软版)
3. PAlio CJ8000 轻快型 36–38°
4. Xiom 骄猛红 V(银 V)
5. Stiga Manitra M / Manitra PRO M
6. Yasaka 亚萨卡飞龙(中软)
7. Tibhar 挺拔 EL-P
8. Butterfly Rozenna 蝴蝶罗泽娜(玫瑰)
9. VICTAS V11e

2026年6月11日 星期四

Installing and Setting Up Fcitx5 Quick-Classic on EndeavourOS

Here's a complete guide to install and configure Fcitx5 input method framework on EndeavourOS.

Install Core Packages

Fcitx5 requires several packages for full functionality. Run in terminal:

sudo pacman -S fcitx5 fcitx5-gtk fcitx5-qt

sudo pacman -S fcitx5-configtool

sudo pacman -S fcitx5-chinese-addons

sudo pacman -S fcitx5-table-extra

sudo pacman -S noto-fonts noto-fonts-cjk



Note:

fcitx5 -- Main input framework

fcitx5-gtk -- GTK3/GTK4 app compatibility (Firefox, GIMP, etc.)

fcitx5-qt -- Qt5/Qt6 app compatibility (KDE apps, VLC, Chromium)

fcitx5-configtool -- GUI settings panel

fcitx5-chinese-addons -- Built-in Pinyin, Shuangpin, Zongma etc. (optional)

Noto-fonts-cjk -- Display Chinese characters correctly

fcitx5-table-extra -- for Cangjie/Quick input

Set Environment Variables (Critical Step)

- Wayland (Sway/KDE Plasma/Weston/GNOME)

Create/edit user profile for session env vars:

sudo nano /etc/environment

Add these lines:

GTK_IM_MODULE=fcitx 
QT_IM_MODULE=fcitx 
XMODIFIERS=@im=fcitx 
INPUT_METHOD=fcitx 
SDL_IM_MODULE=fcitx

Important: The value is fcitx, NOT fcitx5. This is a very common mistake!

Save and exit (Ctrl+O, Enter, Ctrl+X).

Also add to ~/.xprofile (for display manager sessions)

nano ~/.xprofile 

export GTK_IM_MODULE=fcitx 
export QT_IM_MODULE=fcitx 
export XMODIFIERS=@im=fcitx 
export INPUT_METHOD=fcitx 
export SDL_IM_MODULE=fcitx

Save and exit (Ctrl+O, Enter, Ctrl+X).

Reboot

After installation a keyboard icon will appear on the task bar.

Configure Input Methods

KDE Plasma Wayland needs extra setup
  1. Open System Settings → Virtual Keyboard
  2. Select “Fcitx5 Wayland Launcher”
  3. Log out & log back in


Add Input Method
  1. In System Settings, go to Input Method (under Keyboard section)
  2. Under "Input Method," click Add Input Method (bottom right corner)
  3. Uncheck "Only Show Current Language", else the quick-classic won't appear 
  4. Select Quick-Classic -- almost at the bottom of the list


To increase the font size of the candidate words in Fcitx5's Quick Classic input method, you need to adjust the settings for the Classic User Interface (UI), as the candidate window font size is controlled there

Using the Graphical Configuration Tool

System Setting → Input Method → Configure addons → Classic User Interface

Adjust the font sizes to the desired sizes → Apply

Restart Fcitx5 to take effect:

fcitx5-remote -r




2026年6月9日 星期二

Creating a M3U playlist of Acestream links from scratch

Advantage of having a M3U Playlist:

  • You do not need to install Acestream player, which is a snap, and use it to play the Acestream Content IDs. All you need to do is just to install the Acestream Engine which is not a snap.
  • You can use video players like VLC, Smplayer or Celluloid to play the M3U Playlist.
  • A M3U playlist allows you to switch playing from one channel to another channel quickly and easily.

Structure of a M3U Playlist:

  • It consists of a file header denoted by: #EXTM3U
  • After the header will be the list channels
Each channel consists of two parts:

A lable: #EXTINF:<duration in seconds>,<Channel Name>

URL of the Stream (channel), typically with this format:

http://127.0.0.1:6878/ace/manifest.m3u8?content_id=xxxx


For example, Sky Sports Football [UK] with Content ID=8dbe2d515e9131fa311353537736f8c94be9b26d, is denoted as follows:

#EXTINF:3.81933,Sky Sports Football [UK]

Explanation:

  • #EXTINF is an extended info tag in M3U format.
  • 3.81933 represents the duration of the stream segment in seconds.
  • Sky Sports Football [UK] is the display name or title of the stream.
  • 127.0.0.1 is the local loopback address (your own machine).
  • 6878 is the Port typically used by Ace Stream, a peer-to-peer streaming application.
  • manifest.m3u8 indicates the stream is delivered in HLS (HTTP Live Streaming) format.
  • content_id=... is the unique identifier for the stream content.
Media players parse the M3U file, display the channel name, and connect to the AceStream Engine to fetch video segments from peers. That is why you have to launch the Acestream Engine first before you can watch the channel!


An Example of a M3U Playlist File with Acestream links:

----------------------------------------------------------------------------------------------------
#EXTM3U

#EXTINF:-1,Sky Sports Football [UK]

http://127.0.0.1:6878/ace/manifest.m3u8?content_id=8dbe2d515e9131fa311353537736f8c94be9b26d

#EXTINF:-1,BBC News

http://127.0.0.1:6878/ace/manifest.m3u8?content_id=abcdef1234567890

#EXTINF:52.66667,NBA TV [US]

http://127.0.0.1:6878/ace/getstream?id=e72d03fb9694164317260f684470be9ab781ed95&pid=44679

#EXTINF:50.4747,Super Tennis HD

http://127.0.0.1:6878/ace/getstream?id=b58dbf92765976b308695f62dea94b00b40730ee&pid=47906

#EXTINF:51.79233,Tennis Channel HD [UK]

http://127.0.0.1:6878/ace/getstream?id=039fae21c9e7e5214d3d898cba80863e37e623ac&pid=2575
.....................
---------------------------------------------------------------------------------------------------------

Steps to Create a Custom M3U File

  • Open a plain text editor like Notpad, Kate
I use Kate foe linux
  • In the text editor Add the header
#EXTM3U
  • Insert channel info one by one
Each channel entry has two parts:

Metadata line:

#EXTINF:-1,Channel Name you prefer

-1 means indefinite duration (live stream).

Stream URLof the channel:

http://127.0.0.1:6878/ace/manifest.m3u8?content_id=xxxx

Replace xxxx with your Ace Stream content ID

  • Repeat the above step for other channels
Add as many entries as you like, one after another.
  • Save the file
Save with .m3u or .m3u8 extension.
Example: myplaylist.m3u.

How to play the list

  • Launch the Acestream Engine
  • Open the file in VLC, Smplayer, Celluloid, or another IPTV player.
  • Click on the channel you want to watch
  • Wait for a few seconds for the Engine to connect to the peers that provide the required stream.

My favorite Playlist

--------------------------------------------------------------------------------------------
#EXTM3U

#EXTINF:-1,Sky Sports Football [UK]
http://127.0.0.1:6878/ace/manifest.m3u8?content_id=8dbe2d515e9131fa311353537736f8c94be9b26d
#EXTINF:-1.973,Sky Sports Main Event [UK]
http://127.0.0.1:6878/ace/manifest.m3u8?content_id=eab7aeef0218ce8b0752e596e4792b69eda4df5e
#EXTINF:4.08,Eurosport 1 [DE]
http://localhost:6878/ace/getstream?infohash=467a9ad90a4fcdcee8e072075d3a2c4748b55792
#EXTINF:2.709,Eurosport 2 [DE]
http://localhost:6878/ace/getstream?infohash=9510f65da1d8a4a2b7c972fdc2f1b19e2d468f2f
#EXTINF:-1.06667,BBC
http://localhost:6878/ace/getstream?infohash=050702a6580361bbf040fbb42f8004ab4f1b9211
#EXTINF:1.74707,CNN
http://localhost:6878/ace/getstream?infohash=04f3e6773c11ab733be1be222e62953fb31ecb5f
#EXTINF:0.76667,Fox Sports 1
http://localhost:6878/ace/getstream?infohash=df23d9ca9275b354e23156d59b8bc1122441fa47
#EXTINF:1,Fox Sports 2
http://localhost:6878/ace/getstream?infohash=e765303108614af0f9a42da7b45a147195982796
#EXTINF:0.34133,BeIN Sports 3HD
http://localhost:6878/ace/getstream?infohash=7fee896143ae89590d97793a0be7ad8ec6fa4552
#EXTINF:7.7093,BeIN Sports 4HD
http://localhost:6878/ace/getstream?infohash=26c1fe91207fb2a1cfa6271970081d4c2009b6fa
#EXTINF:2.66667,NBA TV [US]
http://127.0.0.1:6878/ace/getstream?id=e72d03fb9694164317260f684470be9ab781ed95&pid=44679
#EXTINF:-1.4747,Super Tennis HD
http://127.0.0.1:6878/ace/getstream?id=b58dbf92765976b308695f62dea94b00b40730ee&pid=47906
#EXTINF:5.79233,Tennis Channel HD [UK]
http://127.0.0.1:6878/ace/getstream?id=039fae21c9e7e5214d3d898cba80863e37e623ac&pid=2575
--------------------------------------------------------------------------------------------------

If you like, you can copy my playlist and then paste it to a text editor like Notepad or Kate. Afer that, save the file as a M3U file, then you can play with it.

Getting VLC to play the AceStream links

Because AceStream is actually built on VLC code, therefore it can easily be played on VLC

How to do it

Install and run the AceStream Engine

The Ace Stream Engine will will open a local server on port 6878 and listen on 127.0.0.1:6878.

When you provide an acestream:// link, the Engine converts it into an HTTP stream.

VLC can then open that HTTP stream as if it were a normal video URL.


Open the VLC Media Player.


Get an Acestream Content ID, e.g., 8dbe2d515e9131fa311353537736f8c94be9b26d (Sky Sports Football [UK])

Go to Media --> Open Network Stream (or press Ctrl + N).

Enter the URL of your AceStream with this standard format (modified ID):

http://127.0.0.1:6878/ace/manifest.m3u8?content_id=8dbe2d515e9131fa311353537736f8c94be9b26d

The Acestream Engine will convert the Acestream ID into a HTTP URL so that it can be played by VLC

Click Play, and wait for a few seconds, Sky Sports Football TV will be broadcasted on VLC.

If you want to play another Acestream, say Eurosport 2 with Content ID:

6176281b9c46a5621a0e88524f8dc621f173b8e0

just repeat the above steps by replacing the Sky Sports Football link with the link (ID) of that Eurosport 2

http://127.0.0.1:6878/ace/manifest.m3u8?content_id=6176281b9c46a5621a0e88524f8dc621f173b8e0

The above method also works on Celluloid and Smplayer..


Explained:

http://127.0.0.1:6878/ace/manifest.m3u8?content_id=8dbe2d515e9131fa311353537736f8c94be9b26d

  • This is the actual URL pointing to the stream.

  • 127.0.0.1 is the local loopback address (your own machine).

  • Port 6878 is typically used by Ace Stream, a peer-to-peer streaming application.

  • manifest.m3u8 indicates the stream is delivered in HLS (HTTP Live Streaming) format.

  • content_id=... is the unique identifier for the stream content.