<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>posts on Danto</title><link>https://10401040.xyz/en/posts/</link><description>Recent content in posts on Danto</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Thu, 11 Jul 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://10401040.xyz/en/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Get a Free ChatGPT API</title><link>https://10401040.xyz/en/posts/2024-07-11-%E5%85%8D%E8%B4%B9%E8%8E%B7%E5%8F%96chatgpt-%E7%9A%84api/</link><pubDate>Thu, 11 Jul 2024 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2024-07-11-%E5%85%8D%E8%B4%B9%E8%8E%B7%E5%8F%96chatgpt-%E7%9A%84api/</guid><description>&lt;p&gt;Below is a simple guide:&lt;/p&gt;
&lt;h1 id="1-register-a-valtown-account"&gt;1. Register a &lt;a href="https://www.val.town/"&gt;val.town&lt;/a&gt; Account&lt;/h1&gt;
&lt;p&gt;Add a project.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://myblog.s3.tebi.io/2024/07/1ed2d32749cab3de26866795bbe148d6.webp" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Add the following code:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://esm.town/v/std/openai&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt; &lt;span class="n"&gt;async&lt;/span&gt; &lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;OPTIONS&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Access-Control-Allow-Origin&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Access-Control-Allow-Headers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;204&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;await&lt;/span&gt; &lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;search&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;searchParams&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;messages&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;user&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;search&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;q&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;temperature&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;presence_penalty&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;frequency_penalty&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;top_p&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;gpt-4-turbo&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;await&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;JSON&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Access-Control-Allow-Origin&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Access-Control-Allow-Headers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Content-Type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;application/json; charset=UTF-8&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;readable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;writable&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;TransformStream&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;my_stream_writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;writable&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getWriter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;reader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toReadableStream&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getReader&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;totalText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;decoder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;TextDecoder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;true&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;encoder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;TextEncoder&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;async&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;done&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;await&lt;/span&gt; &lt;span class="n"&gt;reader&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;done&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;totalText&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;decoder&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;true&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;msgs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;totalText&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;totalText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;msgs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;let&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;msgs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;my_stream_writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;encoder&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;`&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;msgs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt;\&lt;span class="n"&gt;n&lt;/span&gt;\&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="err"&gt;`&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;await&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;my_stream_writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;})();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;readable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Access-Control-Allow-Origin&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Access-Control-Allow-Headers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Content-Type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;text/event-stream; charset=UTF-8&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://myblog.s3.tebi.io/2024/07/e9fdf9289e0bf83110a7892183b6707b.webp" alt=""&gt;&lt;/p&gt;</description></item><item><title>Manually Deploy Hysteria2</title><link>https://10401040.xyz/en/posts/2024-07-13-%E6%89%8B%E5%8A%A8%E6%90%AD%E5%BB%BAhysteria2/</link><pubDate>Thu, 11 Jul 2024 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2024-07-13-%E6%89%8B%E5%8A%A8%E6%90%AD%E5%BB%BAhysteria2/</guid><description>&lt;p&gt;After a Synology Docker app is closed, it cannot be restarted and reports the error &lt;code&gt;failed to initialize logging driver database is locked&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The problem is in the log database. In fact, you only need to delete the &lt;code&gt;log.db&lt;/code&gt; file. When the app starts again, this file will be recreated automatically. It will not affect the original data, and you do not need to reinstall the app.&lt;/p&gt;
&lt;p&gt;Below is a simple guide:&lt;/p&gt;</description></item><item><title>Solve Bizhub Printer SMB Transmission Errors in Windows 11 24H2</title><link>https://10401040.xyz/en/posts/sovle-bizhub-smb-transmission-errors---in-win11-24h2/</link><pubDate>Thu, 11 Jul 2024 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/sovle-bizhub-smb-transmission-errors---in-win11-24h2/</guid><description>&lt;p&gt;My printer model is Bizhub C7222. After updating Windows to Windows 11 24H2, I could no longer scan files to my PC.&lt;/p&gt;
&lt;p&gt;This is because the SMB signing requirements changed in Windows 11 24H2, so the printer settings need to be adjusted.&lt;/p&gt;</description></item><item><title>Synology Docker Error: failed to initialize logging driver database is locked</title><link>https://10401040.xyz/en/posts/2024-07-11-%E7%BE%A4%E6%99%96-docker-failed-to-initialize-logging-driver-database-is-locked/</link><pubDate>Thu, 11 Jul 2024 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2024-07-11-%E7%BE%A4%E6%99%96-docker-failed-to-initialize-logging-driver-database-is-locked/</guid><description>&lt;p&gt;After a Synology Docker app is closed, it cannot be restarted and reports the error &lt;code&gt;failed to initialize logging driver database is locked&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The problem is in the log database. In fact, you only need to delete the &lt;code&gt;log.db&lt;/code&gt; file. When the app starts again, this file will be recreated automatically. It will not affect the original data, and you do not need to reinstall the app.&lt;/p&gt;
&lt;p&gt;Below is a simple guide:&lt;/p&gt;</description></item><item><title>Install Tabby Web and Tabby Connection Gateway on Synology Docker</title><link>https://10401040.xyz/en/posts/2024-06-21--%E7%BE%A4%E6%99%96-docker-%E5%AE%89%E8%A3%85tabby-web%E5%92%8Ctabby-connection-gateway%E6%95%99%E7%A8%8B/</link><pubDate>Fri, 21 Jun 2024 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2024-06-21--%E7%BE%A4%E6%99%96-docker-%E5%AE%89%E8%A3%85tabby-web%E5%92%8Ctabby-connection-gateway%E6%95%99%E7%A8%8B/</guid><description>&lt;p&gt;This guide assumes that Cloudflare Tunnel is already installed on your Synology NAS and that you can configure it. This is not a step-by-step beginner tutorial. It is mainly for my own record and may not be reproduced without permission.&lt;/p&gt;
&lt;p&gt;Let us begin:&lt;/p&gt;
&lt;h1 id="1-github-configuration"&gt;1. GitHub Configuration&lt;/h1&gt;
&lt;p&gt;Go to &lt;a href="https://github.com/settings/applications/new"&gt;https://github.com/settings/applications/new&lt;/a&gt; to register a GitHub application.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Application name&lt;/code&gt;: anything you like.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Homepage URL&lt;/code&gt;: enter your access domain, for example &lt;code&gt;https://tabby.mutou.men&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Authorization callback URL&lt;/code&gt;: set it to &lt;code&gt;https://tabby.mutou.men/api/1/auth/social/complete/github/&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Capital One: The Essential Secured Card for U.S. Credit Card Beginners</title><link>https://10401040.xyz/en/posts/2024-06-08-c1%E7%BE%8E%E5%8D%A1%E5%85%A5%E9%97%A8%E5%BF%85%E5%AE%A1%E6%8A%BC%E9%87%91%E5%8D%A1/</link><pubDate>Sat, 08 Jun 2024 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2024-06-08-c1%E7%BE%8E%E5%8D%A1%E5%85%A5%E9%97%A8%E5%BF%85%E5%AE%A1%E6%8A%BC%E9%87%91%E5%8D%A1/</guid><description>&lt;p&gt;If there is one credit card that every cloud resident should try first, the Capital One secured card is definitely at the top of the list.&lt;/p&gt;
&lt;p&gt;The advantages of C1 are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Low entry threshold, with no credit history required.&lt;/li&gt;
&lt;li&gt;You can apply with an ITIN, making it essential for cloud residents.&lt;/li&gt;
&lt;li&gt;It reports to all three major credit bureaus, making it one of the best choices for building U.S. credit.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you already have an ITIN, have purchased a U.S. private address, and have your own U.S. physical mobile number, follow my detailed guide and start applying for the C1 secured card.&lt;/p&gt;</description></item><item><title>How to Get a U.S. Private Address and Use It to Forward Mail</title><link>https://10401040.xyz/en/posts/2024-02-01-%E5%A6%82%E4%BD%95%E8%8E%B7%E5%BE%97%E4%B8%80%E4%B8%AA%E7%BE%8E%E5%9B%BD%E7%A7%81%E4%BA%BA%E5%9C%B0%E5%9D%80/</link><pubDate>Thu, 01 Feb 2024 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2024-02-01-%E5%A6%82%E4%BD%95%E8%8E%B7%E5%BE%97%E4%B8%80%E4%B8%AA%E7%BE%8E%E5%9B%BD%E7%A7%81%E4%BA%BA%E5%9C%B0%E5%9D%80/</guid><description>&lt;p&gt;Sometimes you can use an international student&amp;rsquo;s address to forward your bank cards, but you should understand that U.S. credit building is tied to your address. If you want to play with U.S. credit cards more comfortably, a legal, stable, long-term, and secure U.S. private address is very important.&lt;/p&gt;
&lt;p&gt;Below I will show you how to obtain a U.S. private address for receiving and forwarding your bank cards.&lt;/p&gt;
&lt;h1 id="1-address-rental"&gt;1. Address Rental&lt;/h1&gt;
&lt;p&gt;Anytime Mailbox is a U.S. mail forwarding provider where you can find many private addresses that can be used for mail forwarding. Below I will show you how to find one:&lt;/p&gt;</description></item><item><title>U.S. Credit Card Application Guide</title><link>https://10401040.xyz/en/posts/2024-01-29-us-bank-credit-card-application-guide/</link><pubDate>Mon, 29 Jan 2024 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2024-01-29-us-bank-credit-card-application-guide/</guid><description>&lt;h2 id="1-why-apply-for-a-us-credit-card"&gt;1. Why Apply for a U.S. Credit Card?&lt;/h2&gt;
&lt;p&gt;Many people may ask why anyone would spend so much money and energy to get a U.S. bank card. Leaving aside services like OpenAI that restrict domestic Chinese card payments, and the shopping benefits on U.S. websites, the welcome bonuses alone can already cover the cost.&lt;/p&gt;
&lt;h2 id="2-what-do-you-need"&gt;2. What Do You Need?&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://mutou.men/posts/2023-11-17-%E5%8A%9E%E7%90%86itin%E4%B8%8D%E8%BF%87%E9%80%80%E8%B4%B9/" title="Click to learn more about U.S. mobile numbers"&gt;&lt;code&gt;1. U.S. physical mobile number&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bitcoin Falls Toward USD 43,000 as Spot Bitcoin ETFs and Blockchain Stocks Drop Broadly</title><link>https://10401040.xyz/en/posts/2024-01-13-%E6%AF%94%E7%89%B9%E5%B8%81%E8%B7%8C%E5%90%914.3%E4%B8%87%E7%BE%8E%E5%85%83-%E7%8E%B0%E8%B4%A7%E6%AF%94%E7%89%B9%E5%B8%81etf%E5%92%8C%E5%8C%BA%E5%9D%97%E9%93%BE%E6%A6%82%E5%BF%B5%E8%82%A1%E6%99%AE%E8%B7%8C/</link><pubDate>Sat, 13 Jan 2024 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2024-01-13-%E6%AF%94%E7%89%B9%E5%B8%81%E8%B7%8C%E5%90%914.3%E4%B8%87%E7%BE%8E%E5%85%83-%E7%8E%B0%E8%B4%A7%E6%AF%94%E7%89%B9%E5%B8%81etf%E5%92%8C%E5%8C%BA%E5%9D%97%E9%93%BE%E6%A6%82%E5%BF%B5%E8%82%A1%E6%99%AE%E8%B7%8C/</guid><description>&lt;p&gt;Blockchain concept stocks fell broadly. Ebang International ADR dropped 13.6%, Hut 8 fell 10.7%, The9 ADR fell 10.2%, MicroStrategy fell 8.5%, Canaan ADR fell 8.3%, Riot Platforms fell 7.4%, cryptocurrency exchange Coinbase fell 6.2%, and popular brokerage Robinhood fell 5.3%.&lt;/p&gt;
&lt;p&gt;The U.S. Securities and Exchange Commission (SEC) approved the first batch of spot Bitcoin ETFs on Wednesday, and they began trading on Thursday, January 11. Bitcoin fluctuated sharply throughout the day. On Thursday morning U.S. Eastern Time, Bitcoin rose above USD 49,000 intraday, reaching its highest level since December 2021 and rising about 6.8% on the day. But the enthusiasm soon faded. Bitcoin turned lower intraday and fell back below USD 46,000. Related ETFs also moved lower.&lt;/p&gt;</description></item><item><title>Introduction to ITIN</title><link>https://10401040.xyz/en/posts/2023-11-17-itin%E7%AE%80%E4%BB%8B/</link><pubDate>Fri, 17 Nov 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-11-17-itin%E7%AE%80%E4%BB%8B/</guid><description>&lt;h3 id="click-here-to-view-the-application-guide"&gt;&lt;a href="https://mutou.men/posts/2023-11-17-%E5%8A%9E%E7%90%86itin%E4%B8%8D%E8%BF%87%E9%80%80%E8%B4%B9/"&gt;Click here to view the application guide&lt;/a&gt;&lt;/h3&gt;
&lt;h1 id="1-what-is-an-itin"&gt;1. What Is an ITIN?&lt;/h1&gt;
&lt;h2 id="11-what-is-an-itin"&gt;1.1 What Is an ITIN?&lt;/h2&gt;
&lt;p&gt;An Individual Taxpayer Identification Number (ITIN) is a tax processing number issued by the U.S. Internal Revenue Service. The IRS issues ITINs to people who do not have, and are &lt;a href="https://www.ssa.gov/ssnumber/"&gt;not eligible&lt;/a&gt; to obtain, a Social Security Number (SSN) from the Social Security Administration (SSA), but who need an ITIN.&lt;/p&gt;
&lt;h2 id="12-what-is-an-itin-used-for"&gt;1.2 What Is an ITIN Used For?&lt;/h2&gt;
&lt;p&gt;The IRS issues ITINs to individuals to help them comply with U.S. tax laws and to allow tax returns and payments from people who are &lt;a href="https://www.ssa.gov/ssnumber/"&gt;not eligible&lt;/a&gt; for an SSN to be processed and recorded efficiently. These numbers are issued regardless of immigration status, because both resident and nonresident aliens as defined by tax law may have U.S. tax filing obligations under the Internal Revenue Code. An ITIN cannot be used for purposes other than federal tax filing.&lt;/p&gt;</description></item><item><title>ITIN Application: Refund If Not Approved</title><link>https://10401040.xyz/en/posts/2023-11-17-%E5%8A%9E%E7%90%86itin%E4%B8%8D%E8%BF%87%E9%80%80%E8%B4%B9/</link><pubDate>Fri, 17 Nov 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-11-17-%E5%8A%9E%E7%90%86itin%E4%B8%8D%E8%BF%87%E9%80%80%E8%B4%B9/</guid><description>&lt;h2 id="click-here-for-an-itin-introduction"&gt;&lt;a href="https://mutou.men/posts/2023-11-17-itin%E7%AE%80%E4%BB%8B/"&gt;Click here for an ITIN introduction&lt;/a&gt;&lt;/h2&gt;
&lt;h1 id="limited-time-special-price-for-mjj-usd-200-about-rmb-1400-contact-the-blogger-for-additional-special-offers"&gt;Limited-Time Special Price for MJJ: USD 200, About RMB 1,400. Contact the blogger for additional special offers.&lt;/h1&gt;
&lt;p&gt;The first batch of previous applications has already been mailed out.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Friends in the first batch have all received their numbers.
Friends in the second batch who mailed materials have started receiving their numbers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="1-required-materials"&gt;1. Required Materials&lt;/h1&gt;
&lt;h2 id="11-fill-out-the-fw-7-form-yourself-or-contact-me-for-help"&gt;1.1 Fill Out the &lt;a href="https://myblog.s3.tebi.io/2023/11/8f49d19b79a03261a641c997538edfe1.pdf"&gt;FW-7 Form&lt;/a&gt; Yourself, or Contact Me for Help&lt;/h2&gt;
&lt;p&gt;This mainly covers personal identity information, residential address, mailing address, and related information.&lt;/p&gt;</description></item><item><title>Turkish Virtual Bank Card Account Opening</title><link>https://10401040.xyz/en/posts/2023-11-1-%E5%9C%9F%E8%80%B3%E5%85%B6%E8%99%9A%E6%8B%9F%E9%93%B6%E8%A1%8C%E5%8D%A1%E5%BC%80%E6%88%B7/</link><pubDate>Wed, 01 Nov 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-11-1-%E5%9C%9F%E8%80%B3%E5%85%B6%E8%99%9A%E6%8B%9F%E9%93%B6%E8%A1%8C%E5%8D%A1%E5%BC%80%E6%88%B7/</guid><description>&lt;p&gt;The Turkish iyzipay wallet currently has a loophole that bypasses Turkish phone number registration. You can register with Google Voice or a domestic Chinese mobile number.&lt;/p&gt;
&lt;p&gt;It is unknown when this loophole will be fixed, so register quickly if you need it.&lt;/p&gt;
&lt;p&gt;The guide is below:&lt;/p&gt;
&lt;h1 id="1-app-side-steps"&gt;1. App-Side Steps&lt;/h1&gt;
&lt;p&gt;1.1 Download the iyzipay app from the App Store or Google Play. &lt;br&gt;
1.2 After downloading, enter your email address and tap Next. &lt;br&gt;
1.3 Enter any Turkish mobile number and tap Next.&lt;/p&gt;</description></item><item><title>Discourse Forum Installation Guide</title><link>https://10401040.xyz/en/posts/2023-09-05-discourse%E8%AE%BA%E5%9D%9B%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/</link><pubDate>Tue, 05 Sep 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-09-05-discourse%E8%AE%BA%E5%9D%9B%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/</guid><description>&lt;h3 id="1-configuration-requirements"&gt;1. Configuration Requirements&lt;/h3&gt;
&lt;p&gt;1 GB of available memory works, but it is noticeably slow in testing. 2 GB of memory just meets the requirement.&lt;/p&gt;
&lt;h3 id="2-installation"&gt;2. Installation&lt;/h3&gt;
&lt;h4 id="21-ssh-into-the-cloud-server"&gt;2.1 SSH into the Cloud Server&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo -i
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Enter root mode.&lt;/p&gt;
&lt;h4 id="22-download-discourse"&gt;2.2 Download Discourse&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;clone&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;github&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;discourse&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;discourse_docker&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;discourse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;discourse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;chmod&lt;/span&gt; &lt;span class="mi"&gt;700&lt;/span&gt; &lt;span class="n"&gt;containers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You need to use the root user for the remaining setup and bootstrap process.&lt;/p&gt;
&lt;h4 id="23-install"&gt;2.3 Install&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./discourse-setup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="23-when-prompts-appear-answer-the-following-questions"&gt;2.3 When Prompts Appear, Answer the Following Questions&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Hostname for your Discourse? [discourse.example.com]: 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Email address for admin account(s)? [me@example.com,you@example.com]: 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SMTP server address? [smtp.example.com]: 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SMTP port? [587]: // Keep the default for Tencent email. Do not change it to 465.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SMTP user name? [user@example.com]: 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SMTP password? [pa$$word]: 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Let&amp;#39;s Encrypt account email? (ENTER to skip) [me@example.com]: // Enter your email
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Optional Maxmind License key () [xxxxxxxxxxxxxxxx]: // Default is fine
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Be sure to configure the email service correctly, because logging in to the forum requires email activation.&lt;/p&gt;</description></item><item><title>HSBC AU Australia Debit Card Application: Apply Quickly</title><link>https://10401040.xyz/en/posts/2023-08-06-hsbc-au-%E6%BE%B3%E5%A4%A7%E5%88%A9%E4%BA%9A%E5%80%9F%E8%AE%B0%E5%8D%A1%E7%94%B3%E8%AF%B7/</link><pubDate>Sun, 06 Aug 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-08-06-hsbc-au-%E6%BE%B3%E5%A4%A7%E5%88%A9%E4%BA%9A%E5%80%9F%E8%AE%B0%E5%8D%A1%E7%94%B3%E8%AF%B7/</guid><description>&lt;h3 id="1-application-link"&gt;1. Application Link&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://www.hsbc.com.au/webapps/apply-account/eligibility/?campaignCode=hbaumsvintaa"&gt;Application link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is not too difficult. Be sure to fill in your information truthfully.&lt;/p&gt;
&lt;p&gt;I recommend registering with one Hong Kong address and one domestic Chinese address. I used a domestic address as my work address.&lt;/p&gt;
&lt;p&gt;I successfully applied using a Hong Kong address plus a &lt;a href="https://bbs.mutou.men/t/topic/14"&gt;UK SIM card&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://files.mutou.men/2023/08/72300d330d0418f77578cc9b3f74b407.png" alt="Information entry"&gt;&lt;/p&gt;
&lt;p&gt;Fill in the information above according to your real situation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You need to verify your passport information and take a selfie.&lt;/p&gt;</description></item><item><title>Estonia Zero-Monthly-Fee SIM Card</title><link>https://10401040.xyz/en/posts/2023-07-27-%E7%88%B1%E6%B2%99%E5%B0%BC%E4%BA%9A0%E6%9C%88%E7%A7%9F%E6%89%8B%E6%9C%BA%E5%8D%A1/</link><pubDate>Thu, 27 Jul 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-07-27-%E7%88%B1%E6%B2%99%E5%B0%BC%E4%BA%9A0%E6%9C%88%E7%A7%9F%E6%89%8B%E6%9C%BA%E5%8D%A1/</guid><description>&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;No monthly fee after the activation cost&lt;/li&gt;
&lt;li&gt;Supports eSIM and roaming in China&lt;/li&gt;
&lt;li&gt;Free incoming SMS&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Disadvantages:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;SMS reception is unstable, and messages from some websites may not arrive.&lt;/li&gt;
&lt;li&gt;Although there is no monthly fee, it is unclear when the number may be cancelled.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Activation guide, using iPhone as an example:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mobiledata.esimplus.me/"&gt;Official website&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Download the &lt;code&gt;esim+&lt;/code&gt; app.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://files.mutou.men/2023/07/422bf54e91f3a8c0dbf2c8b2dde78596.png" alt="Do not choose the wrong option"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://files.mutou.men/2023/07/a36960e0b7ddf3539f07e0ab063b0aee.png" alt="Select Spain as the country"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://files.mutou.men/2023/07/da5c7830db2a9f0d38b4c0f41a1138b2.png" alt="Do not choose the wrong option"&gt;&lt;/p&gt;</description></item><item><title>Overseas SIM Card Summary</title><link>https://10401040.xyz/en/posts/2023-07-26-%E5%9B%BD%E5%A4%96%E6%89%8B%E6%9C%BA%E5%8D%A1%E6%B1%87%E6%80%BB/</link><pubDate>Wed, 26 Jul 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-07-26-%E5%9B%BD%E5%A4%96%E6%89%8B%E6%9C%BA%E5%8D%A1%E6%B1%87%E6%80%BB/</guid><description>&lt;p&gt;This post summarizes SIM cards that can be activated and used from China, making it easier to compare and purchase them. Click the carrier name to jump directly. I recommend using eSIM to avoid SIM activation and forwarding costs. This post will continue to be updated.&lt;/p&gt;
&lt;div class="table-container"&gt;
 &lt;table&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r0'&gt;
&lt;td height='16' class='x22' width='72' style='height:12.3pt;width:54pt;'&gt;Country/Region&lt;/td&gt;
&lt;td class='x22' width='72' style='width:54pt;'&gt;Carrier&lt;/td&gt;
&lt;td class='x22' width='100' style='width:75pt;'&gt;SIM type&lt;/td&gt;
&lt;td class='x22' width='72' style='width:54pt;'&gt;Cost&lt;/td&gt;
&lt;td class='x22' width='72' style='width:54pt;'&gt;Plan details&lt;/td&gt;
&lt;td class='x22' width='72' style='width:54pt;'&gt;Wi-Fi calling&lt;/td&gt;
&lt;td class='x22' width='72' style='width:54pt;'&gt;China roaming&lt;/td&gt;
&lt;td class='x22' width='92' style='width:69pt;'&gt;Free trial&lt;/td&gt;
&lt;td class='x22' width='72' style='width:54pt;'&gt;Notes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r1'&gt;
&lt;td rowspan='8' height='126' class='x23' style='border-right:1px solid windowtext;border-bottom:1px solid windowtext;height:95.1pt;'&gt;United States&lt;/td&gt;
&lt;td class='x22'&gt;&lt;a href="https://apps.apple.com/us/app/t-mobile-prepaid-esim/id1437014693"&gt;T-mobile&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;USD 3/month or USD 0/month&lt;/td&gt;
&lt;td class='x22'&gt;30 SMS&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;For the USD 0 monthly plan, contact customer service to change the plan&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r2'&gt;
&lt;td class='x22'&gt;&lt;a href="https://tello.com"&gt;Tello&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;USD 5/month&lt;/td&gt;
&lt;td class='x22'&gt;100 minutes and unlimited SMS&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r3'&gt;
&lt;td class='x22'&gt;&lt;a href="https://mintmobile.com"&gt;Mint Mobile&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;USD 15/month&lt;/td&gt;
&lt;td class='x22'&gt;/&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r4'&gt;
&lt;td class='x22'&gt;&lt;a href="https://www.usmobile.com"&gt;US Mobile&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;USD 5/month&lt;/td&gt;
&lt;td class='x22'&gt;/&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r5'&gt;
&lt;td class='x22' style='overflow:hidden;'&gt;&lt;a href="https://www.freedompop.com/plans/free-plan"&gt;Freedompop&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;USD 0/month&lt;/td&gt;
&lt;td class='x22'&gt;10 SMS&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x24'&gt;Forwarding required&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r6'&gt;
&lt;td class='x22' style='overflow:hidden;'&gt;&lt;a href="https://www.h2owireless.com/plan/minute"&gt;H2owireless&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;USD 9/3 months&lt;/td&gt;
&lt;td class='x22'&gt;5 cents per message&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x24'&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r7'&gt;
&lt;td class='x22'&gt;&lt;a href="https://www.textnow.com/wireless"&gt;Textnow&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;USD 4.99/lifetime&lt;/td&gt;
&lt;td class='x22' style='overflow:hidden;'&gt;Unlimited calls and SMS&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Forwarding required&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r7'&gt;
&lt;td class='x22'&gt;&lt;a href="https://www.redpocket.com"&gt;Red Pocket Mobile&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;USD 30/year&lt;/td&gt;
&lt;td class='x22' style='overflow:hidden;'&gt;500 minutes, 500 SMS&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r8'&gt;
&lt;td height='16' class='x22' style='height:12.3pt;'&gt;Germany&lt;/td&gt;
&lt;td class='x22'&gt;&lt;a href="https://www.vodafone.de/freikarten/callya-classic-form"&gt;Vodafone&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;No monthly fee; balance activity every 90 days&lt;/td&gt;
&lt;td class='x22'&gt;Free incoming SMS&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Passport and video verification required&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r9'&gt;
&lt;td height='16' class='x22' style='height:12.3pt;'&gt;Estonia&lt;/td&gt;
&lt;td class='x22'&gt;&lt;a href="https://www.mutou.men/posts/2023-7-27-%E7%88%B1%E6%B2%99%E5%B0%BC%E4%BA%9A0%E6%9C%88%E7%A7%9F%E6%89%8B%E6%9C%BA%E5%8D%A1/"&gt;Esimpro&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;No monthly fee&lt;/td&gt;
&lt;td class='x22'&gt;Free incoming SMS&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;May have no signal when used in China&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r10'&gt;
&lt;td height='16' class='x22' style='height:12.3pt;'&gt;Ukraine&lt;/td&gt;
&lt;td class='x22'&gt;&lt;a href="https://www.lifecall.com"&gt;Lifecall&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;150 UAH/60 days&lt;/td&gt;
&lt;td class='x22'&gt;&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Too niche; not recommended&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r11'&gt;
&lt;td rowspan='2' height='35' class='x25' style='border-right:1px solid windowtext;border-bottom:1px solid windowtext;height:26.85pt;'&gt;United Kingdom&lt;/td&gt;
&lt;td class='x22'&gt;&lt;a href="https://www.lycamobile.co.uk/en/order-free-sim/"&gt;Lycamobile&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;No monthly fee; balance activity every 90 days&lt;/td&gt;
&lt;td class='x22'&gt;Free incoming SMS&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Some SMS may not be received&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r12'&gt;
&lt;td class='x22'&gt;&lt;a href="https://giffgaffed.com/"&gt;GiffGaff&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;No monthly fee; balance activity every 180 days&lt;/td&gt;
&lt;td class='x22'&gt;Free incoming SMS&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Forwarding required&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr height='18' style='mso-height-source:userset;height:13.8pt' id='r13'&gt;
&lt;td height='16' class='x22' style='height:12.3pt;'&gt;Hong Kong&lt;/td&gt;
&lt;td class='x22'&gt;&lt;a href="https://www.clubsim.com.hk/zh/smspack"&gt;Clubsim&lt;/a&gt;&lt;/td&gt;
&lt;td class='x22'&gt;eSIM/physical SIM&lt;/td&gt;
&lt;td class='x22'&gt;HKD 6/year&lt;/td&gt;
&lt;td class='x22'&gt;100 SMS/year&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Yes&lt;/td&gt;
&lt;td class='x22'&gt;No&lt;/td&gt;
&lt;td class='x22'&gt;Real-name registration required&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;</description></item><item><title>T-Mobile Zero-Monthly-Fee SIM Activation Guide</title><link>https://10401040.xyz/en/posts/2024-06-17-t-mobile-0%E6%9C%88%E7%A7%9F%E6%89%8B%E6%9C%BA%E5%BC%80%E5%8D%A1%E6%95%99%E7%A8%8B/</link><pubDate>Wed, 26 Jul 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2024-06-17-t-mobile-0%E6%9C%88%E7%A7%9F%E6%89%8B%E6%9C%BA%E5%BC%80%E5%8D%A1%E6%95%99%E7%A8%8B/</guid><description>&lt;h2 id="1-activation"&gt;1. Activation&lt;/h2&gt;
&lt;p&gt;T-Mobile is one of the three major U.S. telecom carriers. It used to sell zero-monthly-fee SIM cards, but they have almost disappeared in recent years. However, you can still get one by persistently contacting customer service.&lt;/p&gt;
&lt;p&gt;First, you need a T-Mobile Prepaid SIM card. If you do not have one and your phone supports eSIM, you can download the T-Mobile Prepaid app and activate a USD 10/month prepaid SIM yourself. If your phone does not support eSIM, you will need to solve it through Taobao.&lt;/p&gt;</description></item><item><title>Python Product Price Monitor</title><link>https://10401040.xyz/en/posts/2023-06-09-python%E5%95%86%E5%93%81%E4%BB%B7%E6%A0%BC%E7%9B%91%E6%8E%A7/</link><pubDate>Fri, 09 Jun 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-06-09-python%E5%95%86%E5%93%81%E4%BB%B7%E6%A0%BC%E7%9B%91%E6%8E%A7/</guid><description>&lt;h2 id="1-features"&gt;1. Features&lt;/h2&gt;
&lt;p&gt;With the help of ChatGPT, I wrote a simple price monitoring script in Python.&lt;/p&gt;
&lt;p&gt;It supports the following features:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Get the current price&lt;/li&gt;
&lt;li&gt;Send an alert when the price drops below a target&lt;/li&gt;
&lt;li&gt;Send email notifications&lt;/li&gt;
&lt;li&gt;Send a daily email to confirm that the program is still running&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="2-code"&gt;2. Code&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;smtplib&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;email.mime.text&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MIMEText&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;email.header&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Header&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timedelta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pytz&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Email account information&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_email&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;yours@mutou.men&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;123456&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;recipient_email&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;abc@outlook.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Product links and target price list. Fill in your desired price after target_price.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;products&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://www.usa.canon.com/shop/p/refurbished-rf50mm-f1-8-stm&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;target_price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;reached_target&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;last_price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://www.usa.canon.com/shop/p/refurbished-eos-r8?color=Black&amp;amp;type=Refurbished&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;target_price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;reached_target&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;last_price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_price&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;Get the product price from the specified URL.&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;raise_for_status&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;html.parser&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;canon.com&amp;#34;&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;price_tag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;span&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;class&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;price_tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;price_str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;price_tag&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;$&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;,&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;price_str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="ne"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Price tag not found&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="ne"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Unsupported URL format&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RequestException&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Error getting price for &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;: network issue - &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Error getting price for &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;send_email&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;Send an email notification with the specified subject and message.&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;msg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;MIMEText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;plain&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Subject&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Header&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;From&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;my_email&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;To&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;recipient_email&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;smtplib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SMTP_SSL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;smtp.exmail.qq.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;465&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;login&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;my_password&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sendmail&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;recipient_email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;as_string&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Email sent successfully.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Error sending email: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;Main function for monitoring product prices and sending notifications.&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Set timezone to Beijing time&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tz&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pytz&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;timezone&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Asia/Shanghai&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tz&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;current_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;%H:%M:%S&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Send a confirmation email every morning at 8:00&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;current_time&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;08:00:00&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;subject&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Program Running Confirmation&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Your monitoring program is still running.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;send_email&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Starting monitoring. Current time:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;products&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;current_price&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;get_price&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;current_price&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Product &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; current price is $&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;current_price&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;current_price&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;target_price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;reached_target&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;last_price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;current_price&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;last_price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;subject&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Product price reached target!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Product &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; current price is $&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;current_price&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;, which has reached your target price of $&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;target_price&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;send_email&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Product &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; current price is $&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;current_price&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;reached_target&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;reached_target&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt; &lt;span class="c1"&gt;# Resume monitoring after the price rises&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;last_price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current_price&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Print next check time and wait for 1 hour&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;next_check_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;timedelta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hours&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;This monitoring cycle has ended. Next check time: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;next_check_time&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; (1-hour interval)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3600&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3-run-the-script-in-the-background-on-a-vps"&gt;3. Run the Script in the Background on a VPS&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nohup python3 your_script.py &amp;gt; script.log 2&amp;gt;&amp;amp;1 &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="4-check-background-processes"&gt;4. Check Background Processes&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ps aux | grep your_script.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Synology Docker SOCKS5 Configuration Guide</title><link>https://10401040.xyz/en/posts/2023-05-07-%E7%BE%A4%E6%99%96-docker-socks5%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B/</link><pubDate>Fri, 12 May 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-05-07-%E7%BE%A4%E6%99%96-docker-socks5%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B/</guid><description>&lt;p&gt;By routing through a domestic soft router, NAS, or router, you can remotely access those devices over SOCKS5. This guide uses Synology as the example, but other soft router setups can also work.&lt;/p&gt;
&lt;h1 id="1-requirements"&gt;1. Requirements&lt;/h1&gt;
&lt;p&gt;1.1 A Synology NAS with Docker support and the required network access permissions.&lt;br&gt;
1.2 A public IP address. IPv4 is preferred.&lt;br&gt;
1.3 A domain name connected to Synology DDNS. This is optional, but because public IP addresses may change, DDNS allows long-term access without worrying about IP changes.&lt;br&gt;
1.4 A router that supports port forwarding.&lt;/p&gt;</description></item><item><title>Best Buy Apple Music Free 3-Month Subscription</title><link>https://10401040.xyz/en/posts/2023-05-10-bestbuy%E7%9A%84apple-music%E5%85%8D%E8%B4%B94%E4%B8%AA%E6%9C%88%E8%AE%A2%E9%98%85/</link><pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-05-10-bestbuy%E7%9A%84apple-music%E5%85%8D%E8%B4%B94%E4%B8%AA%E6%9C%88%E8%AE%A2%E9%98%85/</guid><description>&lt;p&gt;The Best Buy subscription had not worked for me before.&lt;/p&gt;
&lt;p&gt;After trying the following setup, I subscribed successfully.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. A U.S. proxy. This is required.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Firefox browser. This may be the key point.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I previously used other browsers and could not complete the subscription.&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;
&lt;p&gt;Charles Schwab debit card&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Outlook email&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;5. Shipito address&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>LiteCart Store Installation</title><link>https://10401040.xyz/en/posts/2023-05-09-litecart%E5%95%86%E5%9F%8E%E5%AE%89%E8%A3%85/</link><pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-05-09-litecart%E5%95%86%E5%9F%8E%E5%AE%89%E8%A3%85/</guid><description>&lt;p&gt;Install a LiteCart store and add cryptocurrency payment support.&lt;/p&gt;
&lt;p&gt;Host: Oracle AMD instance. System: Ubuntu 22.04.&lt;/p&gt;
&lt;h1 id="1-initial-system-configuration"&gt;1. Initial System Configuration&lt;/h1&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo -i
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt upgrade
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt -y install language-pack-es language-pack-fr language-pack-de language-pack-zh-hans
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="2-install-required-components-php-mysql-and-others"&gt;2. Install Required Components: PHP, MySQL, and Others&lt;/h1&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt -y install curl nano unzip apache2 libapache2-mod-php mariadb-server php php-common php-cli php-fpm php-apcu php-curl php-dom php-gd php-imagick php-mysql php-simplexml php-mbstring php-intl php-zip php-xml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="21-enable-related-modules"&gt;2.1 Enable Related Modules&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;a2enmod&lt;/span&gt; &lt;span class="nx"&gt;rewrite&lt;/span&gt; &lt;span class="nx"&gt;headers&lt;/span&gt; &lt;span class="nx"&gt;proxy_fcgi&lt;/span&gt; &lt;span class="nx"&gt;setenvif&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;mysql_secure_installation&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="22-configure-the-database"&gt;2.2 Configure the Database&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;mysql&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;u&lt;/span&gt; &lt;span class="nx"&gt;root&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;p&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;END&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;ALTER&lt;/span&gt; &lt;span class="nx"&gt;USER&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;root&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt; &lt;span class="nx"&gt;IDENTIFIED&lt;/span&gt; &lt;span class="nx"&gt;BY&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;{desired_root_password_here}&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;GRANT&lt;/span&gt; &lt;span class="nx"&gt;ALL&lt;/span&gt; &lt;span class="nx"&gt;PRIVILEGES&lt;/span&gt; &lt;span class="nx"&gt;ON&lt;/span&gt; &lt;span class="o"&gt;*.*&lt;/span&gt; &lt;span class="nx"&gt;TO&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;root&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt; &lt;span class="nx"&gt;WITH&lt;/span&gt; &lt;span class="nx"&gt;GRANT&lt;/span&gt; &lt;span class="nx"&gt;OPTION&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;DROP&lt;/span&gt; &lt;span class="nx"&gt;USER&lt;/span&gt; &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nx"&gt;EXISTS&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;DROP&lt;/span&gt; &lt;span class="nx"&gt;DATABASE&lt;/span&gt; &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nx"&gt;EXISTS&lt;/span&gt; &lt;span class="nx"&gt;test&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;FLUSH&lt;/span&gt; &lt;span class="nx"&gt;PRIVILEGES&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;END&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;When configuring the database, make sure the root password is set correctly. Different MySQL versions may use different setup methods.&lt;/p&gt;</description></item><item><title>N26 Account Opening Guide (Updated)</title><link>https://10401040.xyz/en/posts/2023-05-09-n26%E5%BC%80%E6%88%B7%E6%95%99%E7%A8%8B/</link><pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-05-09-n26%E5%BC%80%E6%88%B7%E6%95%99%E7%A8%8B/</guid><description>&lt;h3 id="registration-is-available-again-if-you-have-not-registered-yet-act-quickly"&gt;Registration is available again. If you have not registered yet, act quickly.&lt;/h3&gt;
&lt;h1 id="1-download-the-n26-app"&gt;1. Download the N26 App&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Use a German proxy first&lt;/strong&gt;, then click this link to register on the web: &lt;a href="https://n26.com/r/haihuaw4351"&gt;registration link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then search for and download the N26 app from the App Store or Google Play, and follow the steps below to register.&lt;/p&gt;
&lt;div class="gallery-box"&gt;
 &lt;div class="gallery"&gt;
 &lt;img src="https://files.mutou.men/2023/05/10f2b1d3cd1af8be50d27142ae00c25d.png"&gt;
 &lt;img src="https://files.mutou.men/2023/05/f42403e86f99aadc60157c18632d03b2.png"&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;div class="gallery-box"&gt;
 &lt;div class="gallery"&gt;
 &lt;img src="https://files.mutou.men/2023/05/c28bb9e12b195e1fe95e1b0a563d6584.png"&gt;
 &lt;img src="https://files.mutou.men/2023/05/e664b498896743c11dd46b7d960bdd23.png"&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;div class="gallery-box"&gt;
 &lt;div class="gallery"&gt;
 &lt;img src="https://files.mutou.men/2023/05/53c9e53370e4784af8fa417b5f9ad386.png"&gt;
 &lt;img src="https://files.mutou.men/2023/05/1d753519705cc9eb75afe3064e1bb64e.png"&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;div class="gallery-box"&gt;
 &lt;div class="gallery"&gt;
 &lt;img src="https://files.mutou.men/2023/05/363ab54c7d98c8eaf0f08849a0c922ef.png"&gt;
 &lt;img src="https://files.mutou.men/2023/05/46a7666e3a9bb4897dc6f9695dedabb0.png"&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;div class="gallery-box"&gt;
 &lt;div class="gallery"&gt;
 &lt;img src="https://files.mutou.men/2023/05/ca48b00035e3ff16f3211a44e5df643d.png"&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://files.mutou.men/2023/05/7321bd654e5f4f77731bea5178711471.png" alt="Select NO directly"&gt;&lt;/p&gt;
&lt;p&gt;Select &lt;code&gt;NO&lt;/code&gt; directly. After completing the options above, submit the form.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If there is a place to enter a referral code, you can use &lt;code&gt;haihuaw4351&lt;/code&gt; to receive a EUR 15 bonus.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Oracle Cannot Create a New Instance</title><link>https://10401040.xyz/en/posts/2023-05-07-%E7%94%B2%E9%AA%A8%E6%96%87%E6%97%A0%E6%B3%95%E5%88%9B%E5%BB%BA%E6%96%B0%E7%9A%84%E4%B8%BB%E6%9C%BA/</link><pubDate>Sun, 07 May 2023 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2023-05-07-%E7%94%B2%E9%AA%A8%E6%96%87%E6%97%A0%E6%B3%95%E5%88%9B%E5%BB%BA%E6%96%B0%E7%9A%84%E4%B8%BB%E6%9C%BA/</guid><description>&lt;p&gt;Oracle VPS still appears to have capacity available, but instance creation keeps failing.&lt;/p&gt;
&lt;p&gt;The following error appears:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;(400, LimitExceeded, false) You cannot create a volume because you have reached your limit. Upgrade to a paid account. (opc-request-id: dummy RequestId)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The reason is that although the instance was terminated, the storage may not have been deleted.&lt;/p&gt;
&lt;p&gt;Go to the following URL and terminate the remaining boot volume:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cloud.oracle.com/block-storage/boot-volumes"&gt;https://cloud.oracle.com/block-storage/boot-volumes&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The Man Has Passed Away</title><link>https://10401040.xyz/en/posts/2022-11-30-%E6%96%AF%E4%BA%BA%E5%B7%B2%E9%80%9D/</link><pubDate>Wed, 30 Nov 2022 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2022-11-30-%E6%96%AF%E4%BA%BA%E5%B7%B2%E9%80%9D/</guid><description>&lt;h3 id="on-april-15-1989-hu-yaobang-former-general-secretary-of-the-communist-party-of-china-passed-away"&gt;On April 15, 1989, Hu Yaobang, former General Secretary of the Communist Party of China, passed away.&lt;/h3&gt;
&lt;h3 id="on-november-30-2022-jiang-zemin-former-general-secretary-of-the-communist-party-of-china-passed-away"&gt;On November 30, 2022, Jiang Zemin, former General Secretary of the Communist Party of China, passed away.&lt;/h3&gt;
&lt;h3 id="the-man-has-passed-away"&gt;The man has passed away.&lt;/h3&gt;
&lt;h3 id="this-moment-echoes-that-moment"&gt;This moment echoes that moment.&lt;/h3&gt;</description></item><item><title>Enable YubiKey Support in Vaultwarden</title><link>https://10401040.xyz/en/posts/2022-11-26--vaultwarden%E5%BC%80%E5%90%AFyubikey%E6%94%AF%E6%8C%81/</link><pubDate>Sat, 26 Nov 2022 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2022-11-26--vaultwarden%E5%BC%80%E5%90%AFyubikey%E6%94%AF%E6%8C%81/</guid><description>&lt;p&gt;Two layers of protection make things even safer.&lt;/p&gt;
&lt;h1 id="add-variables-in-synology-docker"&gt;Add Variables in Synology Docker&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;YUBICO_CLIENT_ID&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;p&gt;&lt;code&gt;YUBICO_SECRET_KEY&lt;/code&gt;&lt;/p&gt;
&lt;h1 id="get-the-values-from-this-website"&gt;Get the Values from This Website&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://upgrade.yubico.com/getapikey/"&gt;Click to get the ID and key&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;After filling them in, you can configure YubiKey two-factor authentication in Bitwarden.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Manually Deploy NaiveProxy</title><link>https://10401040.xyz/en/posts/2022-11-26--%E7%81%AF%E7%81%AB%E9%98%91%E7%8F%8A%E7%9A%84naive/</link><pubDate>Mon, 21 Nov 2022 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2022-11-26--%E7%81%AF%E7%81%AB%E9%98%91%E7%8F%8A%E7%9A%84naive/</guid><description>&lt;h1 id="0-preparation"&gt;0. Preparation&lt;/h1&gt;
&lt;h2 id="01-open-ports-on-ubuntu"&gt;0.1 Open Ports on Ubuntu&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -P INPUT ACCEPT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -P FORWARD ACCEPT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -P OUTPUT ACCEPT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -F
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="02-remove-the-firewall"&gt;0.2 Remove the Firewall&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get purge netfilter-persistent
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get remove ufw
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;reboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="03-add-an-a-record-for-the-domain-and-point-it-to-the-server-ipv4-address"&gt;0.3 Add an A Record for the Domain and Point It to the Server IPv4 Address&lt;/h2&gt;
&lt;p&gt;Cloudflare users should mainly disable DNS proxying.&lt;/p&gt;
&lt;p&gt;Ping your domain name. If it returns your server IP address, it is fine.&lt;/p&gt;
&lt;p&gt;For example: &lt;code&gt;a.xyz.com&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Tracfone Deal Summary</title><link>https://10401040.xyz/en/posts/2022-11-21-tracfone%E4%BC%98%E6%83%A0%E6%80%BB%E7%BB%93/</link><pubDate>Mon, 21 Nov 2022 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/2022-11-21-tracfone%E4%BC%98%E6%83%A0%E6%80%BB%E7%BB%93/</guid><description>&lt;p&gt;Tracfone deals and useful offers.&lt;/p&gt;
&lt;h1 id="tracfone-phone-deals"&gt;Tracfone Phone Deals&lt;/h1&gt;
&lt;p&gt;Buy a phone for USD 19.90 with a one-year plan included.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style="text-align: center"&gt;Phone type&lt;/th&gt;
					&lt;th style="text-align: center"&gt;Model&lt;/th&gt;
					&lt;th style="text-align: center"&gt;Price&lt;/th&gt;
					&lt;th style="text-align: center"&gt;Purchase channel&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style="text-align: center"&gt;Flip phone&lt;/td&gt;
					&lt;td style="text-align: center"&gt;FLIP2&lt;/td&gt;
					&lt;td style="text-align: center"&gt;19.9&lt;/td&gt;
					&lt;td style="text-align: center"&gt;eBay&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: center"&gt;Touchscreen&lt;/td&gt;
					&lt;td style="text-align: center"&gt;moto&lt;/td&gt;
					&lt;td style="text-align: center"&gt;30.0&lt;/td&gt;
					&lt;td style="text-align: center"&gt;HSN&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="summary-of-tracfone-reward-points"&gt;Summary of Tracfone Reward Points&lt;/h1&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style="text-align: center"&gt;Method&lt;/th&gt;
					&lt;th style="text-align: center"&gt;Points&lt;/th&gt;
					&lt;th style="text-align: center"&gt;Pending period&lt;/th&gt;
					&lt;th style="text-align: center"&gt;Notes&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style="text-align: center"&gt;New line&lt;/td&gt;
					&lt;td style="text-align: center"&gt;10000&lt;/td&gt;
					&lt;td style="text-align: center"&gt;2 months&lt;/td&gt;
					&lt;td style="text-align: center"&gt;Must remain active for 61 days&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: center"&gt;Referral&lt;/td&gt;
					&lt;td style="text-align: center"&gt;5000-7000&lt;/td&gt;
					&lt;td style="text-align: center"&gt;2 months&lt;/td&gt;
					&lt;td style="text-align: center"&gt;Must remain active for 61 days&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: center"&gt;Promotions&lt;/td&gt;
					&lt;td style="text-align: center"&gt;Negligible&lt;/td&gt;
					&lt;td style="text-align: center"&gt;&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Open-Source AdGuard VPN Setup Guide</title><link>https://10401040.xyz/en/posts/adguard-vpn%E5%BC%80%E6%BA%90-%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://10401040.xyz/en/posts/adguard-vpn%E5%BC%80%E6%BA%90-%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/</guid><description>&lt;h1 id="0-preparation"&gt;0. Preparation&lt;/h1&gt;
&lt;h2 id="01-open-ports-on-ubuntu"&gt;0.1 Open Ports on Ubuntu&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -P INPUT ACCEPT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -P FORWARD ACCEPT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -P OUTPUT ACCEPT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -F
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="02-remove-the-firewall"&gt;0.2 Remove the Firewall&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get purge netfilter-persistent
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get remove ufw
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;reboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="03-add-an-a-record-for-the-domain-and-point-it-to-the-server-ipv4-address"&gt;0.3 Add an A Record for the Domain and Point It to the Server IPv4 Address&lt;/h2&gt;
&lt;p&gt;Cloudflare users should mainly disable DNS proxying.&lt;/p&gt;
&lt;p&gt;Ping your domain name. If it returns your server IP address, it is fine.&lt;/p&gt;
&lt;p&gt;For example: &lt;code&gt;a.xyz.com&lt;/code&gt;&lt;/p&gt;</description></item></channel></rss>