【衝撃】DOGE社社員のコードがNLRB内部告発者を支援!?ロシアからの不正ログイン未遂も発覚し騒然!
引用元:https://news.ycombinator.com/item?id=43776476
Ge0rg3のコードは”オープンソース”ってことで、誰でもコピーして非商用で再利用できるんだって。たまたま、Ge0rg3のコードから派生した新しいバージョンがあって、それが”async-ip-rotator”って呼ばれてるらしい。DOGEのキャプテンMarko Elezが2025年1月にGitHubにコミットしたんだと。
オリジナルコード:https://github.com/Ge0rg3/requests-ip-rotator
フォーク:https://github.com/markoelez/async-ip-rotator
コードはほとんど同じで、コメントが削除されて、asyncが追加されて、ちょっと変更されてる(たぶんLLMにペーストしてasyncにしてって言っただけだろ)。
でも…オリジナルのGPL3ライセンスがない。DOGEの人たちが理解したり尊重したりするとは思えないけど。
そのリポジトリは削除されちゃったみたい。しかも、他の26個のリポジトリもアカウントから削除されてる。DOGEのメンバーって、注目されるとすぐにデータを消すから、いつものパターンだね。以前にも別の”teen hacker”で見たことある。[0]
アーカイブされたリポジトリページ:https://archive.ph/LI7tt;
アーカイブされた以前のリポジトリ数:https://archive.ph/tgkg5
0. https://arstechnica.com/tech-policy/2025/04/i-no-longer-hack…
アーカイブされたリポジトリ:https://archive.softwareheritage.org/browse/origin/directory…
ここからGitリポジトリとしてダウンロードできるよ:https://archive.softwareheritage.org/api/1/vault/git-bare/sw…
法律的には、GPLコードを内部で修正して使用するのは許可されてるんだって。ソースを再配布しなくてもいいから。唯一のミスは、LICENSEファイルなしでソースコードを公開gitリポジトリに公開したことかも。それってGPL違反になるかもね。
内部コードを公開gitまたはFTPサーバーに置いた場合、それが”配布”と見なされるかどうかはわかんないけど。
>ソースコードをLICENSEファイルなしで公開gitリポジトリに公開すると、GPL違反になる可能性がある”だって。
それについて連邦判事にサインしてもらうんだな。
たぶん、彼らは何らかの解決策を促進するように命じられるかもね。
俺が書いてる今も震えてるだろうな。
2月6日に、誰かがasync-ip-rotatorのGitHubの”issues”ページで、Elezのコードについて長くて詳細な批判を投稿したんだ。”安全じゃなくて、スケーラブルじゃなくて、基本的なエンジニアリングの失敗だ”って。
”これがサイドプロジェクトなら、ただの悪いコードで済むけど”ってレビューアーは書いてる。”でも、これが本番システムの構築方法を代表するものなら、もっと大きな懸念がある。この実装は根本的に壊れていて、もしこれと似たようなものが機密データを扱う環境にデプロイされているなら、すぐに監査されるべきだ”って。
その”批判”はマジでヤバい。絶対にAIが生成したでしょ。ドメインを信用してなかったら、作者がこんなものを真面目に引用してるなんて考えられないよ。
批判[0]を見て、コード[1]を見て。
[0] https://web.archive.org/web/20250423135719/https://github.co…
[1] https://github.com/ricci/async-ip-rotator/blob/master/src/as…
うん、明らかにAIだね。キーワードを太字にして、引数に番号を振って、みたいな。最近のAIが生成したコンテンツって、こういう構造化されたレスポンスパターンに従ってる気がする。
それは単純で目的志向のテンプレートを使ってて、明確なコミュニケーションのための一般的な推奨事項、アウトラインの番号付け、そしてキーワードをモノスペーステキストで強調してる。これは技術的な文章ではよくあることだよ。人が特に高い可視性を持つものを書くときに、そうするのは珍しいことじゃない。
フォーマット自体はAIを示唆してるわけじゃないけど、批判がほとんど意味不明なことを考えると、強く示唆してるように見えるね。
>ChatGPTは人間の文章がベースって知ってる?
マジレスすると、お前の文章がChatGPTっぽいからって「お前がChatGPT使った」って言うのって、ChatGPTがお前の文章に似せて作られてるんだから、メチャクチャ皮肉じゃね?
お前や俺の文章は全部ChatGPTっぽいんだよ。数十億ドルも使って、お前や俺の作ったコンテンツ含めて、許可なくスクレイピングしたデータを学習させて、同じような文章を作るようにしたんだから当たり前じゃん。
人間がそういう書き方しないとは言わないけど、ChatGPTみたいなの頻繁に使ってると、よくある返答のテンプレだってすぐわかるんだよね。
ダッシュ記号(—)もChatGPTっぽいって言うけど、LLMのパターンって現実世界のパターンから学習してるの忘れちゃってるよね。ChatGPTでよくあるってことは、現実世界でもよくあるってことだし、パターンベースの「検出」なんてやろうとしたら、誤検出だらけになるよ。
ChatGPTが登場するまで、同僚からのメールでダッシュ記号なんて見たことなかったけど、今はダッシュ記号があると、少なくとも一部はAIが生成した文章だってすぐわかる。セミコロンも同じ。確かに正しい文法ではセミコロンを使うけど、カジュアルなビジネスコミュニケーションでは、ほとんどの場合、簡略化されてる。
そうそう、ダッシュ記号はiOSでダブルダッシュを入力すると自動的に挿入されるんだよね:—
>そこそこマシなプレゼンでも「AIの兆候」扱いされる時代か。
これマジで。Redditのgamedevサブレで、自分のゲームの紹介文がちゃんとしてて、箇条書きを使ってただけでレビュー爆撃されたって人がいたわ。最近は箇条書き使うだけでAI扱いされるみたい。
この批判はAIの可能性大。
1. 無駄に長い。開発者は忙しいし、セキュリティ研究者ならもっと忙しい。そんなスキルがあるなら、こんなリポジトリの批判に2、3文以上も時間かけない。
2. 敵意むき出し。バグのないコードなんて書くのは難しいし、ほとんど不可能。Linus Torvalds、Richard Hipp、Dan Abramovくらいじゃないと、自分がガラスの家に住んでるのわかってて石を投げない。
3. 所有意識。「必殺」コメントは、自分の「赤ちゃん」を傷つけるような弱いPRに対する、不満を持った門番しか書かない。他人のランダムなユーティリティプロジェクトに感情移入する人なんていない。これは単なるPythonファイル。
4. 作者。作者はまだ意欲的な開発者。SOLID/DRY原則へのこだわりをプロジェクトの主な特徴として強調してるリポジトリを見て。ベテランのセキュリティ研究者ならありえない。
https://github.com/SSD1805/EchoFlow
5. 内容。批判が…間違ってる。単一ファイルのユーティリティリポジトリが「保守性の低い」モノリスであることは「ひどい」と言ってる。皮肉なことに、dependency injectionが不要だからコードが悪いと言ってる!
政治的な立場はともかく、嫌いな相手をネットいじめするためにAIを使う風潮はなくなってほしい。
DOGEがアメリカ政府を使って、嫌いな相手をネットいじめする風潮はなくなってほしい。
ChatGPTの文章を読みまくってると、すぐわかるんだよね。
- 異常なほどの冗長さ
- 完璧なスペルと文法
- 大げさな口調
- 段落や文の長さがほぼ同じロボットみたいな話し方(特に長い文章で顕著)
- ダッシュ記号(—)だらけ
- 同じような決まり文句や文構造の繰り返し。「これはXではない—Yだ」みたいなのが、そのissueで2回も使われてる。
「脆弱で安全でなく、スケーラブルでないコードを書くことは「ハードコア」ではありません。これは境界線を押し広げているのではなく—エンジニアリングの基礎知識が不足していることを示しています。
これが以前の仕事で学んだことなら、それを忘れ、ベストプラクティスに従うべきです。なぜなら今、これは単なる悪いエンジニアリングではなく—無謀だからです。」
もしAIが書いてないなら、インターネットのコメントから永久引退するわ。
(これはDOGEを擁護するつもりはないよ。)
あのさー、開発者がネットで何書いてるか読んだことないの?特に炎上してるときとか、誰かと揉めてるときとか。そういう時ってめっちゃ攻撃的だし、石投げたり、揚げ足取ったりするじゃん?経験ないやつに限って自分がプログラミングの神様みたいに振る舞うんだよねー。
2番についてだけど、それって自分のことを過大評価しなくなったベテラン開発者の特徴だと思うな。若い開発者だと、自分のスタイルと合わない人のコードをけなしたりするよね。「これは良い」って思ってることと違うと。 全部同意!リンク先のrepoのreadmeも、AIがコードベースを要約したみたい。ぶっちゃけ、AIはそのrepoのコードが何してるか理解できてないと思うんだよね。だから機能より形式について語ってるんだと思う。 >開発者は忙しいし、セキュリティ研究してる開発者はもっと忙しい。 マジウケる。こんな批判絶対書けないわー(コードじゃなくて批判の方ね)。 Krebsがこれにリンクしてるの見て、彼の評価の信頼性が下がったわ。 >すぐに監査されるべきだ。 FYI、Forkが消されたっぽいんだけど、誰かクローンできた人いる? できたよ。単なる.pyファイルだよ。 x_forwarded_for = headers.get(”X-Forwarded-For”) 元の作者は、API gatewayがクライアントの本当のIPを漏らさないようにするためだって言ってるよ。 公平に言うと、このコードは既存のサーバーへのプロキシとして機能する新しいAPI gatewayサーバーを作るもので、このヘッダーを自分のgatewayサービスで使うことを想定してるのかも。ヘッダーとして設定されて、ユーザー所有のプロキシに送られて、それから実際の外部エンドポイントに送られるってことだね。でも、これやるとAPI GatewayがAWSアカウントの識別子を見たり記録したりできると思うから、IP以外にも隠す必要のある情報があるかもね。 元のコードには目的がちゃんと書いてあるよ。 このコードはAPI gatewayを他の外部サイトへのプロキシにするための「創造的な」使い方みたいだね(サイトごとに必要だから、実際は単一サイト向け)。lambda(関数URL付き)でリクエストを送って、アウトバウンドリクエストをより細かく制御する方が簡単じゃない? これって、ハッカーがAPI gatewayを何年も前から使ってる一般的な方法なんだよね。IPRotateみたいなプラグインを見てみるといいよ。うちの製品にもそれを取り入れようとしてるところ。 GPLv3はライセンスを保持する必要があるんだよね。リポジトリのオーナーとかGitHubに報告できるんじゃないかな。 裁判所の命令を無視してるような政権で働いてる人たちが、これにちゃんと対応すると思う?…はい、消えたー。 GitHubにあるってのが…なんか変だよね。GPL3ライセンスを保持する必要があるのは、再配布する場合だけなんだよ。GitHubリポジトリに入れるのが再配布にあたるかどうかは、少なくとも道徳的には曖昧だよね。個人的なコピーでライセンスを削除するのは完全に有効だし、それをプライベートなGitHubリポジトリにアップロードするのも有効。それをパブリックなGitHubリポジトリにアップロードするとなると…? フォークは削除されたみたいだね。 DOGEの人たちが理解したり尊重したりするとは思えないね。 この内部告発の訴えの一部はマジでヤバそうじゃん。 一番マシな解釈って何だと思う?ロシア人がkeyloggerでPCに侵入して、DOGEが安全じゃないネットワークで作業してるってことかな? 関連情報:https://infosec.exchange/@briankrebs/114083485241630234 ロシアが国として攻撃するなら、IPアドレスをアメリカ国内から発信するように偽装すると思うけどなー。これは堂々としすぎじゃね? 国家が支援してるとは限らないよ。DOGEの関係者がロシアのハッキンググループと繋がってるだけかも。 Muskがロシア人を雇っただけって可能性もある。 捕まることが悪いことばかりじゃないんだよね。もし二つのグループの間に不和の種を蒔こうとしてるなら、片方を助けて捕まる方が、捕まらないよりも効果的なんだよ。 >struggle to see what Russia would gain with nlrb data それ良い指摘だね。 なんでロシアがこんなことするの?Trumpが大統領選に勝ったじゃん。それってウクライナにとって最高の結末じゃないの? あいつらにとって一番いいのは、アメリカが内紛でグチャグチャになって、何もできなくなることだよね。Trumpが勝つとウクライナにはいいみたいだけど、あいつらが欲しいのは、長期的に見れば政策を変えることと同じくらい、混乱させることなんだろうね。 たぶんね、ウクライナの件が終わってTrumpが大統領じゃなくなってからの方がいいんじゃないかな。Dogeへの不信感を煽るのはDemocratsを助けるだけだと思うよ。 いやいや、両陣営は別の情報空間に住んでるんだって。この話はDemocratsの間にも広まって、「ロシアがDogeを“助けてる”」って怒り出す人も出てくるだろうね。 めっちゃいい意見だけど、「trump derangement syndrome」なんて言葉を使わないでほしいな。それを作ったやつらがまさにそれを使って、さらに分断を煽りたいんだから。 >最高の解釈をすると?ロシア人がkeyloggerでPCに侵入して、DOGEがセキュリティが甘いオープンなネットワークで作業してるんじゃない? 第三の選択肢も忘れちゃいけないよ。偽旗作戦ってやつ。 プーチンに賛同してきた政権が、ロシアに泥を塗るようなことをするなんて、なんか変じゃない? よくわかんないんだけど。DOGEのやつらがTrumpに悪い印象を与えようとしてるってこと? AIの利用拡大を正当化するための口実を作ろうとしてるって説があるね。セキュリティのためってことで。このスレッドにもElonの味方みたいな人がいるし。セキュリティって言えば、みんな疑問も持たずに賛成するんじゃないかな。 マジでくだらない説だな。自分で考えたんでしょ? 誰かAIを代替案として提案した?政府におけるAIへの支持が増加する理由は何だろうね? それって単にIPルーターがローテーションの一部としてロシアのIPを使ってるだけじゃない?データ持ち出そうとしてるなら、何が起きてるか分からなくしたり、制限を回避するためにIPアドレスをローテーションさせたいんじゃないかな。単純なIPローテーターを使えばそうなるかも。IPアドレスに注意しないと、US国外とかの制限で引っかかることがあるかもね。ロシアからの変なリクエストに見えるかもしれないけど、フラグが立ってないUSからのリクエストをログしてないだけかも。僕の解釈が間違ってるかもだけど! AWS API Gatewayを使ってるから、ロシアのAWSリージョンはないよ。 最良のシナリオは、その子たちが騙されて、間違った(ロシアの)人に認証情報を渡しちゃったってことじゃないかな。 >考えられる最高の解釈は?ロシア人がキーロガーで彼らのPCに侵入したとか… そうそう、1年くらい前にUS政府機関のO365アカウントを侵害したAPTみたいに、Conditional Access Policiesを回避するためにresidential proxiesを使った連中が、今度はクレムリンから直接ログインしてるってことだね!:D 1年前と今とで何か違いがある?誰か別の人が大統領の椅子に座ってる? 言いたいこと分かってないね。問題の”ロシアのログイン試行”はCAPによってブロックされてるんだよ。ロシアの国家支援アクターは、それを回避するためにresidential relay boxesを使ってるって過去に示してる。内部告発者の主張の行間を読むと、辻褄が合わないことが多いんだよね。特に、彼が内部告発する前にdeathnoteがドアに残されてて、ドローンが家の上を旋回してたって結論が好きだな。 僕には完璧に辻褄が合うよ。 ロシアのハッカーがVPNを使わないなんてありえないでしょ?ロシアに住んでる友達は、VPNなしじゃUSのサイトのほとんどにアクセスできないから、いつもVPNをオンにしてるって言ってるよ。何かがおかしいか、こいつらがすごくバカなのか。 やつら、注目されたいんだな。で、あんたはどうすんの?ロシア国民に対して何の権限があるわけ? ログイン認証の後で「国外からのログイン禁止」ブロックがかかるのが不思議。もっと前にブロックした方が合理的じゃない? なんか変じゃね? 全員が全員、あんたが期待してるほどの天才じゃないのかもね。 Occam’s razor(オッカムの剃刀)で考えると、いたずらって可能性も十分あり得るよね。 Occam’s razor的には、ロシアの人が自分のIPをそのまま使うってのもありえる。どうせ「いたずらだ」って思う人がいるんだから。 なんでロシアの人がNLRBのデータにアクセスしたいんだ?それに、DOGEがNLRBのログイン情報をロシアにすぐリークする理由がわからん。バレたらすぐ特定されるのに。もし追跡不能な管理者権限を与えられてデータダウンロードできるなら、ロシアに渡す方が合理的じゃね? >ロシアの人がNLRBのデータにアクセスしたい理由? 経験不足で監視も不十分だから、NLRBのログイン情報をロシアにリーク(どうやって?)したって?LLMシステム(何の?)を展開しながら?そして、ロシアの奴らは下手すぎて、ロシアのIPアドレスからアクセスしてバレたって? >Primorskiy Krai(沿海地方) >Daniel J. Berulisって人の内部告発によると、DOGEのやつらが3月3日にNLRBのリーダーと会って、めちゃくちゃ強力な“tenant admin”アカウントを作れって要求したらしいよ。しかも、そのアカウントの操作記録は全部ログに残さないでくれってさ。普通に考えたら怪しいじゃん?何か正当な理由があるのかなあ。もっとコメントを表示(1)
>その批判も、批判者のプロフも、Krebsの記事ですら、批判者がセキュリティ研究者だって言ってないし。それに、すべての開発者が特に「忙しい人たち」ってわけでもないじゃん?
>あんた自身も後で、作者は経験豊富な開発者やセキュリティ研究者じゃないって言ってるじゃん。だから、コードがAIによって書かれたって仮定して、それを根拠に批判するのはナンセンスだよ。普通セキュリティ研究者は忙しくてそんなの書かないって言うけど。
>敵意。バグのないコードを書くのは難しいし、ほとんどの人には不可能。Linus Torvalds、Richard Hipp、Dan Abramovみたいな名前じゃない限り、ほとんどの開発者は自分がガラスの家に住んでるってわかってるから、石を投げるのは気が引ける。
>ネットに5分以上いたらわかると思うけど、敵意なんてありふれてるじゃん。コミュニティのほとんどじゃなくても、目立つ一部ではあるよね。
>こういう「Killshot」コメントは、自分の「赤ちゃん」を傷つける弱いPRに対して、不満を持った門番が書くんだよ。他の人のランダムなユーティリティプロジェクトに感情的に投資する人なんていない。
>HNでこの話をしてるのは、これがランダムなプロジェクトじゃないからだよ。作者がニュースで注目されてた時に批判が投稿されて、批判者は作者がニュース報道のせいで辞任したことについて、政治的なフォローアップを投稿したから。
>作者はまだ開発者志望者。SOLID/DRY原則を守ることをプロジェクトの主な特徴として強調してるrepoを見て。
>AIが書いたって批判は的外れ。AIよりシンプルな説明ができる。特にSOLID/DRYに焦点を当ててるのは、批判が間違ってるってことと一致してるんだよ。そして、AIで書かれたって仮定に基づいてる最初のポイントも弱まる。経験豊富なセキュリティ研究者じゃないって仮定に基づいているから。
過剰な冗長性、形式ばった書き方、間違いが多いってのがAIの特徴なら、あんたの投稿もAIっぽいじゃん。
どうせElonが紙に印刷させて、個人的にコードレビューしたんでしょ。
https://gist.github.com/whalesalad/06804fd734efe6bd2e0c84906…
if x_forwarded_for is None:
x_forwarded_for = ipaddress.IPv4Address._string_from_ip_int(
randint(0, MAX_IPV4)
)
lol
>X-Forwarded-Forがない場合、ランダムに自動生成する。
>そうしないと、AWSが本当のIPアドレスをX-Forwarded-Forヘッダーで転送してしまうから。
DOGEのやつはコメントを削除しただけ。
stack overflowとかGitHubからコピー&ペーストして、そのまま使い続ける人たちを日常的に見かけるよ。Creative Commons Attribution-ShareAlikeとかのライセンスを無視してね。このサイトでも、ペイウォールの裏にある著作権で保護された記事を共有してる人たちがいるし(アーカイブサイトにあるからって正当化できないよね)。DOGEを擁護してるわけじゃないよ。仲間を無視して他のグループを批判するのは良くないよね。
”2025年3月11日頃、NxGenの指標が前の週に異常な使用を示してたんだって。応答時間がベースラインを大幅に上回ってて、リソース使用率が過去最高レベルのネットワーク出力を示してたんだってー。DOGEがNLRBのシステムにアクセスしたデータ流出イベントと一致してることに気づいたんだって。海外からのログイン試行がアクセス拒否されてるのも確認。例えば、DOGEがアクセスした後、ロシアの沿海地方のIPアドレスを持つユーザーがログインを試みてるのを発見。ログインポリシーでブロックされたけど、アラームだったらしい。DOGEのエンジニアによって作成されたアカウントが使われてて、ユーザー名とパスワードが正しかったみたいだけど、海外からのログインポリシーでブロックされたんだって。20回以上試行されてて、アカウント作成から15分以内に試行されてるのが特にヤバい”もっとコメントを表示(2)
最悪な解釈は簡単でしょー。ロシアのために動いてて、ロシア人を招き入れたか、keyloggerをインストールしたってことじゃん。
引用:”この政権が完全に妥協してる証拠はもっと必要?米国がロシアに対する攻撃的なデジタル行動を緩和する理由なんてないじゃん。むしろ、もっとやるべき。”
あるいは、国家が支援してて、政府のお偉いさんの招待で正面玄関から入れるから隠れる必要がないと思ったのかもね。
ロシアがNLRBのデータで何を得られるか分からないけど、”DOGEを助けた”ことで国内の対立が深まることは、ロシアにとってプラスになる。
>ロシアがNLRBのデータで何を得られるかって話だけど、アメリカの企業の内部告発者のリストだよ。企業に自分の情報がバレたくないと思ってる人たちのね”
>furthers distrust between the two sides of our country - which is something they gain from
>国内の対立を深めることが、ロシアにとってどうプラスになるの?”
Republicansは「過剰反応だ」とか「嘘だ」って一蹴するだろうし。DemocratsがTrump derangement syndromeだって騒ぐだろうね。
Dogeが政府機関と関わると、内部のIT担当者は不正行為を恐れて、Dogeが要求するコントロールをオフにせざるを得なくなって、政府内でさらに衝突が起きるだろうね。お互いの悪と愚かさを信じる気持ちがさらに強固になるってわけ。ロシアはスパイ活動がバレても価値が下がらない方法で、効果的にスパイ活動ができるってこと。
superuserアカウントでGithubにアクセスしてるとか。コードの質からして、セキュリティ対策もできてないんじゃないかな。
目的はアクセスしたり、役立つデータを手に入れることじゃないかもしれない。ロシアに関するスキャンダラスな見出しを作って、既存のメディアや政治的な扇動を利用して、政府をさらに不安定化させることかもしれないんだよ。
やったって言ってないけど、プーチンとロシアへの支持と矛盾するよね。偽旗作戦として、プーチンに、自分に賛同しないハッキンググループを取り締まる口実を与えるのかも。もっとコメントを表示(3)
一番マシなのは、内部告発者が何か勘違いしてるか、わざと嘘をついてるってことかな。例えば、”国外からのログインポリシーが作動した”ってことは、ポリシーがいつトリガーされるかの誤解かもしれない。一番ありそうな説明ではないけど、一番心配ないのはそれかな。キーロガーよりはマシだと思うけど、それでもDOGEの従業員がVPNとかproxyとかTorを使ってたってことだよね。暗号化されてても敵対的な国を経由するのは良くないけど、キーロガーで認証情報を盗まれるよりはマシかな。もちろん心配だけどね。
・彼が内部告発者になるかもって疑われたか、彼が知ってたことのせいでdeath noteをもらったのかも。
・そのdeath noteが最後のきっかけになったのかも。
・ドローンはいつも僕の家の上を飛んでるよ。もし彼が目撃したことを僕が目撃して、death noteを受け取ったら、もっと重大な意味があると思っちゃうかもね。
どれも非現実的じゃないよ。
なんでロシアからログインしようとするんだろ(もし本当にロシア人なら)?
USのIPを使ったVPNなんてめっちゃ安いのに。
まともな知能を持った奴の行動とは思えない。
>”労働紛争の詳細が載ってるから。ロシアはUSの対立を煽るのが得意だから、理想的なデータセットになる。”
>DOGEがNLRBのログイン情報をすぐリークする理由?
>”若い未熟なエンジニアにLLMシステムを急いで展開させてるから。セキュリティが最優先じゃないんだ。”
NLRBのデータがロシアにとって価値があるからって、DOGEの従業員やデータへのアクセスを危険に晒すわけ?もっと価値のあるターゲットがあるでしょ。なんか怪しくね?
おそらく、もし本物なら、接続元としては最も予想外の場所。必ずしもそうでないとは言わないけど、普通じゃないし、意味不明。