CPCTF参加記(+Write-Up的なもの)

こんにちは。
最近、初対面の人にnagatechを「ながてっく」って読まれることに悩んでいるながてちです。

2019年4月17日(水)に行われたtraPの一大新歓イベントであるtraP CPCTFに参加したのでその参加記とWrite up的なものです。

他の人のWrite up(解き方の解説)もいろいろ上がっているのですが、あまり新入生向けの解説がなかったので解いた問題全部についてなにかしらコメントをしていこうと思います。

先に結果だけ言っておくと、全体13位でした。

今年のCPCTFはtraP外や学外からもとても参加者が多く、大盛況でした。

AtCoder(競プロ)のchokudaiさんもCPCTFについてツイートしていたのがびっくりでした。

問題はこの記事を書いている現在はまだ公開されているので、興味がある人はチャレンジしてみてください。

https://cpctf.space/

参加記

前日は楽しみすぎてまったく寝られない遠足前の小学生みたいなことをしていました。
頑張って午前5時くらいには寝たかも。

13:10 オンサイト会場到着

めちゃくちゃ人がいました。びっくり。

パソコンのセッティングしたり、運営側のtraP部員と話してたりしました。

13:00 スタート

今年も問題数が多い
とりあえず目についた簡単そうな問題を解くことにしました。

13:33 [Web] Password: C1 (100点)

ソースコードを読むと、

if(inp.value === "p45sW0rD"){
  alert("Nice! " + decrypt(inp.value));
}else{
  alert("Wrong password ...");
}

となっているので、p45sW0rDを入力します。

FLAG_100{you_must_not_include_password_into_js}

13:37 [OSINT] easyTwitter (100点)

FLAG_100{FourmiSushiが2018/11/28に訪れていたお店の電話番号}

とあるので、TwitterでFourmiSushiくんの行動をネトストします。
ピンポイントで日付指定するとたまにツイートが全部取得できないことがあるので、前後の日にちをTwitterの検索欄に入力します。

from:FourmiSushi since:2018-11-27 until:2018-11-29

どうやら多摩川駅付近にあるはま寿司に行っていたようです。
「はま寿司 多摩川」でググると、はま寿司田園調布店が出てきます。

FLAG_100{03-5483-0063}

これすき

13:39 [Web] You are Postman!! (100点)

http://you_are_postman.problem.cpctf.space/にPOSTするとFLAGがもらえます。

curlというツールを使いました。

$ curl -X POST http://you_are_postman.problem.cpctf.space/

FLAG_100{h77p_h45_53v3n_m37h0d5}

13:41 [Web] ! (100点)

実はこれを最初に解こうとしたんですけど、Descriptionがなくてバグかな??ってなってました(仕様です)

問題文の!からコメント文であることをエスパーして、サイトのソースコード見たらDescriptionのところにFLAGがコメントアウトされてました。

<!-- FLAG_100{F14g_15_H1de_4nd_W1n} -->

13:45 [Shell] veeeeeeery_long _text (100点)

UNIXコマンド問題。

問題文からめちゃくちゃ長いテキストファイルであるっぽいので、grepコマンドで検索しました。

$ cat qwerty | grep FLAG

FLAG_100{50m3t1m35_u53ful_p1p3}

13:47 [Shell] Hidden (100点)

これもUNIXコマンドの知識問題。

$ ls -aするとフラグが隠されたファイルが存在することがわかります。

FLAG_100{d07f1l35_4r3_h1dd3n_f1l35}

13:50 [Shell] cat (100点)

これも(略

そのままではファイル名の先頭にハイフンがあって読めないので、--をつけてオプションを指定しないことを明示します。(ググった)

$ cat -- -flag-.txt

FLAG_100{Fi1e5_c0n74ining_hyphen5_4re_ug1y}

14:01 [OSINT] Sugoi Yabai Image (180点)

僕のtwitterに超すごいやばい秘蔵画像.pngを公開しました。
ぜひご覧ください!

ヒント無しだと糸口がつかめなかったので、ヒントを1つあけました。

大ヒントですよ。
2019年4月16日の4:28:27にツイートしました!

そんなツイート無いけど〜って思ったんですけど、外部にツイートが保存されている可能性を考えて、ついろぐというサービスで探すと、その日時のツイートが見つかりました。

FLAG_200{I_tw33t_5uper_Hyper_U1tra_Tre45ured_Im4ges}

14:03 [Shell] nc (100点)

問題文の指示に従うだけ(チュートリアル問題みたいなもの)

{FLAG_100{nc_test}

14:06 [Forensics] Black (100点)

問題として真っ黒な画像が与えられます。

塗りつぶすとフラグが見つかります。

FLAG_100{C@n_y0u_find_me?}

14:15 [Forensics] deleted flag (200点)

FLAGが入ったファイルを消してしまったようですが、gitで管理しているので巻き戻すことができます。

しかしgit logコマンドでコミットログだけ見てもそれっぽいファイルが存在しないので、HEADの動きを記録したgit reflogコマンドを見て、怪しい動きをしている部分にgit checkoutします。

FLAG_200{1_und3r5t00d_g1t_c0mpl373ly}

これほんとお?

14:16 [Misc] Undo (300点)

FLAGが書かれてるっぽいテキストを開いても何も表示されませんが、.vimrcが存在してるのと問題文を読んだ感じ、vimのundoを使うと出てきそうです。
$ vim flag.txtで開いて、uを連打することでFLAGが出てきます。

FLAG_300{vim_can_save_history!}

300点…300点…?

14:34 [Misc] readable (100点)

暗号解読系の問題

fl46_100{y0u_c4n_r34d_

sᴉɥʇ ̄ǝsnɐɔǝq ̄ɓɐƮɟ ̄sᴉɥʇ

_vf_na_rnfl_pelcgbtencul}

フラッグはアルファベットとアンダーバーのみから構成されます。

1行目は4aであることがわかるのでそこから推測。
2行目は逆にするだけ。
3行目はそれまでの文からvfisなのを推測してそこから文字をずらす方針で後の文字列を割り出しました

ちなみに3行目の暗号はrot13というらしいです。

FLAG_100{you_can_read_this_flag_because_this_is_an_easy_cryptography}

14:51 matoryo (200点)

1989.zipを解凍すると1988.zipが出てきます。
1988.zipを解凍すると1987.zipが出てきます。
…。

手動でやってたら埒が明かないのでシェルスクリプトで自動化しました。

for i in `seq 1988` ; do
unzip -P traP_cpctf "$((1989-i)).zip"
done

FLAG_200{m47ry05hk4_15_n1ckn4m3_0f_m47ry0n4}

15:01 [Misc] equal (100点)

RkxBR18xMDB7dGghc18xc19iQHNlNjQhfQ==

暗号文の後ろに==がついていて特徴的だったので、base64で復号しました。

FLAG_100{th!s_1s_b@se64!}

15:20 [Web] Flag Post Service (100点)

指定したURLにFLAGを届けてくれるようです。

POSTを受けとれるサービスを使ってFLAGを受け取りましょう。

FLAG_100{fl46_p057_53rv1c3}

15:23 Password: S1 (300点)

if(strcmp($_REQUEST[“pass”], $password) == 0){
echo(“Nice! {$password}”);
}

ソースコードを読むと、phpのstrcmpで比較しているようです。

「strcmp 脆弱性」でググると、以下のサイトが出てきました。

これのstrcmpの項に、リクエストの後ろに[]をつけると配列になって例外が発生し、値がNULLになって、PHPではNULL == 0trueになるので、攻撃が成功する的なことが書かれていたので、
開発者ツールでpasspass[]に書き換えた上で文字列を送るとFLAGが降ってきました。

FLAG_300{false_equals_zero}

15:26 [Web] Password: C2 (200点)

パスワードはthis_is_super_secure_passwordと分かっているのですが、フォームに全部入力できません。

ブラウザの開発者ツールでformタグのオプションのmaxlength="10"を除くことで全部入力することができます。

FLAG_200{maxlength_is_no_meaning}

15:30 [Web] Password: C3 (200点)

if($_SERVER[“QUERY_STRING”] === “pw”){
exit(“***** CENSORED *****”);
}

がどう見ても怪しいです。

urlの後ろに?pwをつけて実行するとFLAGが降ってきました。

FLAG_200{inspecting_network_communication}

15:33 [Web] Password: S2 (300点)

$cnt = $db->query(“SELECT COUNT(*) FROM User WHERE Password = ‘{$_REQUEST[“pass”]}'”)->fetchColumn();

SQLインジェクションができそうです。

1' OR '1' = '1を入力することでFLAGが降ってきます。

FLAG_300{sql_injection_is_fun}

15:53 [Forensics] Unzip 2nd (200点)

$ zipinfo flag2nd.zipを実行すると、zipファイルの中身にEiichi_Shibusawa.jpgという明らかにどこかから拾ってきたであろう画像名が表示されて、検索してみると実際にWikipediaに画像が存在していることがわかります。

説明は省きますが、既知平文攻撃という手法を用いて突破することができそうです。

pkcrackというツールを使うと簡単に解析ができます。

$ pkcrack -c Eiichi_Shibusawa.jpg -p Eiichi_Shibusawa.jpg
 -C flag2nd.zip -P eiichi.zip -d flag.zip

FLAG_200{Shibusawa_Eiichi's_face_is_worth_10,000_yen}

16:09 [PPC] apulsb (100点)

競プロのチュートリアル問題。
問題文に回答のソースコードがあったのでコピペしました()

n = int(input())
for i in range(n):
  a,b = map(int, input().split())
  print(a+b)

16:12 [PPC] aplusbtimesc (100点)

上のソースコードに手を加えるだけ

n = int(input())
for i in range(n):
  a,b,c = map(int, input().split())
  print(a+b*c)

FLAG_100{mult_add_mult_add_mult_add}

16:14 [Binary] easybinary (100点)

stringsコマンドを使ってファイルから文字列を抜き出すとFLAGが見つかります。

FLAG_100{5trings_c0mannd_is_c0nven1ent!}

16:18 EasyRSA (100点)

n=29
e=13
c=238
FLAGの形式はFLAG_100{復号化された数字を十進数で}とする。

頑張ってRSAを手計算するか、Webに転がってるRSA解読ツールを使うことで計算できます。

FLAG_100{82}

この後くらいからいろいろな問題に手を出しては挫折して他の問題にチャレンジするという感じになっていきました。

16:40 [Forensics] trapyojo (100点)

たぶんpdfファイルのどこかに文字列が隠されてるんだろうなというのをエスパーして、Webに転がってる文字抽出サービスを使うとFLAGが出てきました。

FLAG_100{h3n741_7h1n6s_n0t_g00d}

16:46 trapyojo2 (200点)

一見ただのpngファイル。
stringsしてみると最後にflag.txtなる文字列が。

もしかしてと思ってオンラインバイナリエディタで開いてみると…

pngの後ろにzipくっついてんじゃ〜んとなるので(PKはzipのシグネチャ)

青色の部分だけをflag.zipとして保存して解凍してあげるとFLAGが手に入ります。

FLAG_200{z!p_1n_7h3_1m463}

16:52 [PPC] 3F (200点)

普段はRuby使いなのですが、競プロにおいてRubyは速度が遅すぎて向いてないと聞いたのでPythonで書きました。(もっといい書き方あると思うけど通れば勝ちなので…)

x = str(input())
y = str(input())

if x[0] == 'B':
  tmpx = int(x[1]) * -1
else:
  tmpx = int(x[0]) - 1

if y[0] == 'B':
  tmpy = int(y[1]) * -1
else:
  tmpy = int(y[0]) - 1

print(tmpx - tmpy)

17:43 [Web] Password: C5 (400点)

唯一時間内に解けた400点問題。

scriptタグで囲ってあるのに実行できていることからJavaScriptを難読化していることがわかり、ググると「(」・ω・)」うー!(/・ω・)/にゃー!encode」というサイトがみつかります。

じゃあ「(」・ω・)」うー!(/・ω・)/にゃー!decode」は無いのか〜〜〜といろいろググっていたら、以下の記事を見つけました。

難読化されたコードの復元方法は色々あるらしいが、
簡単なものはconsole.log()に入れてあげるだけで復元されるらしい

ためしに

console.log((ᒧᆞωᆞ)=(/ᆞωᆞ/),(ᒧᆞωᆞ).ᒧうー=-!!(/ᆞωᆞ/).にゃー,(〳ᆞωᆞ)=(ᒧᆞωᆞ),(〳ᆞωᆞ).〳にゃー=- -!(ᒧᆞωᆞ).ᒧうー,(ᒧᆞωᆞ).ᒧうーー=(〳ᆞωᆞ).〳にゃー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーー=(ᒧᆞωᆞ).ᒧうーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーー=(〳ᆞωᆞ).〳にゃーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーー=(ᒧᆞωᆞ).ᒧうーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーーー=(〳ᆞωᆞ).〳にゃーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーーー=(ᒧᆞωᆞ).ᒧうーーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーーー=(〳ᆞωᆞ).〳にゃーーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーーー=(ᒧᆞωᆞ).ᒧうーーー- -(〳ᆞωᆞ).〳にゃー,ー='',(ᒧᆞωᆞ).ᒧうーーー=!(ᒧᆞωᆞ).ᒧうー+ー,(〳ᆞωᆞ).〳にゃーーー=!(〳ᆞωᆞ).〳にゃー+ー,(ᒧᆞωᆞ).ᒧうーーー={這いよれ:!(〳ᆞωᆞ).〳にゃー}+ー,(〳ᆞωᆞ).〳にゃーーー=(ᒧᆞωᆞ).ᒧニャル子さん+ー,(ᆞωᆞᒪ)=(コᆞωᆞ)=(ᒧᆞωᆞ).ᒧうー,(ᒧᆞωᆞ).ᒧうーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)- -(ᒧᆞωᆞ).ᒧうーー-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃーー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)- -(ᒧᆞωᆞ).ᒧうーー-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃーー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃー-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃーー-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=/""ω""/+/\\ω\\/,(〳ᆞωᆞ).〳にゃーーーー=(ᒧᆞωᆞ).ᒧうーーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃー-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(ᒧᆞωᆞ).ᒧうーーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃーーー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー,(ᒧᆞωᆞ).ᒧうーーーーー=(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーーーーー =(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーー,(ᒧᆞωᆞ).ᒧうーーーーー=(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(〳ᆞωᆞ).〳にゃーーーー,(ᆞωᆞᒪ)=(コᆞωᆞ)=ー,(〳ᆞωᆞ).〳にゃーーーーー=(ᒧᆞωᆞ).ᒧうー[(ᆞωᆞᒪ)+(〳ᆞωᆞ).〳にゃーーーーー+(コᆞωᆞ)][(ᆞωᆞᒪ)+(〳ᆞωᆞ).〳にゃーーーーー+(コᆞωᆞ)],ᆞωᆞ=(ᒧᆞωᆞ).ᒧうー,(ᒧᆞωᆞ).ᒧうーーーーー=(〳ᆞωᆞ).〳にゃーーーーー(ᆞωᆞᒪ+(ᒧᆞωᆞ).ᒧうーーーーー+コᆞωᆞ)(ᆞωᆞ),(ᒧᆞωᆞ).ᒧうーーーーー=(〳ᆞωᆞ).〳にゃーーーーー(ᆞωᆞᒪ+(ᒧᆞωᆞ).ᒧうーーーーー+コᆞωᆞ)(ᆞωᆞ),(ᒧᆞωᆞ).ᒧうー=-!!(/ᆞωᆞ/).にゃー,(〳ᆞωᆞ).〳にゃー=- -!(ᒧᆞωᆞ).ᒧうー,(ᒧᆞωᆞ).ᒧうーー=(〳ᆞωᆞ).〳にゃー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーー=(ᒧᆞωᆞ).ᒧうーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーー=(〳ᆞωᆞ).〳にゃーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーー=(ᒧᆞωᆞ).ᒧうーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーーー=(〳ᆞωᆞ).〳にゃーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーーー=(ᒧᆞωᆞ).ᒧうーーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーーー=(〳ᆞωᆞ).〳にゃーーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーーー=(ᒧᆞωᆞ).ᒧうーーー- -(〳ᆞωᆞ).〳にゃー,(ᆞωᆞ))

を実行すると、たしかにソースコードの断片をみることができました。

FLAG_400{chaotically_obfuscated_js}

18:01 [Shell] command_not_found (200点)

$ lsを入力しても問題文通り、command not foundとなります。
/bin/以下にプログラムは残っているようなので、直接指定して実行してあげます。

$ /bin/cat flag.txt

FLAG_200{y0u_533m_70_kn0w_4b50lu73_p47h}

18:39 [Misc] kakezan (300点)

4つの数字のかけ算を30秒以内に13問解くとFLAGがもらえるようです。
僕には無理なので、問題が与えられたら勝手に解いてくれるスクリプトをRubyで書いて、実行しました。

require 'socket'
port = TCPSocket.open("kakezan.problem.cpctf.space",2197)

for i in 0..100 do
    str = port.gets()
    puts(str)
    str.match(/:\s(.+)\sx\s(.+)\sx\s(.+)\sx\s(.+)\s=/)
    res = $1.to_i * $2.to_i * $3.to_i * $4.to_i
    puts(res)
    port.puts(res)
end 

FLAG_300{y0u_4re_4_pr0fe5510n41_k4ke24n15t}

ちなみに作問者の想定解は、本当に4つの数字のかけ算を30秒以内に13問解くことらしいです。
そういえば実際に達成してるの見たことあるなあ…

18:51 [Forensics] #traP1yakudo (200点)

先に作問者の想定解を言っておくと、画像のEXIF情報を解析して位置情報からお店を割り出し、メニューを見ることでFLAGが分かるようになっています。

ただ、画像はどう見てもファミレスのメニュー、作問者がよく行くファミレスといえば…
そう、ガストであるということはネトストしていると分かってしまいます。

なのでこの問題は[Forensics]というよりは[OSINT]的な問題として解いてしまいました。

あとはガストのメニュー表から商品名を割り出して、English版メニューを見るだけ。

FLAG_200{pancake_with_strawberry_sauce}

19:11 [Forensics] Listen my music! (200点)

piano.wavというファイルが与えられますが、そのままではファイルが壊れているとエラーが出て聴くことができません。

そこでfileコマンドで情報を見てみると、これはMIDIファイルであることがわかります。

あとは、piano.wavpiano.midに直して過去にtraPの新歓でインストールしたMIDI編集ソフトで開くと…

FLAG_200{C4N_YOU_L15T3N_MY_MU51C_?}

19:23 [Forensics] unzip1st (90点)

zipinfoで中にFLAGが入っていることは分かるのですが、どうやってひらけばいいのかわかりません。

ヒントを開けてみると、

passがかかっていますが文字数が短いです

と書いてあるので、パスワードを総当たりで打ち込めばなんとか開くことができそうです。

fcrackzipというツールを使うと、簡単に総当たり攻撃をすることができます。

$ fcrackzip -c 1aA! -l 1-4 -u flag1st.zip

FLAG_100{P455w0rds_sh0u1d_be_long_ch4rac7ers}

19:30 競技終了

新入生の上位5位の表彰と、たまたまいた総合上位2人のインタビューをしたあとに、オンサイト会場にいた人たちがわからなかった問題の問題解説をしれくれました。

Binary問題言ってることは分かるんだけど、実際にバイナリ書き換えるところで躊躇してしまうので難しいなあという感じでした。

反省

これやっとけばもうちょっと点伸びただろうな〜というのをつらつら書いて行きます。

諦めるのが早すぎた

去年の反省として、時間をかけすぎたというのがあったのであまり深く考えずに別な問題を解くという方針にした結果、惜しいところまでいってるのに解けなかった問題が大量にあって後からぬわ〜〜〜てなってました。

例をあげると、

  • Unzip 3rd [Forensics] (300)
    • シグネチャKPPKに直してfile name sizeがおかしいのを09 00にするところまではやった
    • そこからファイル名が00 ... 00になっていたのを適当な名前をつけるだけでよかった
  • 4 color theorem [Misc] (300)
    • 画像がQRコードを表してるのは分かったし塗り分け方針もあってた
    • ただ途中までやって本当に合ってるのか分からなくなってやめてしまった
  • Password: C4 [Web] (300)
    • wasmファイルを落とすところまでやった
    • あとはstringsコマンドで解析するだけでよかった
  • StudentNumber [PPC] (200)
    • はい

などなど…
もう少し考えれば解けたかもなあという感じ。

今年も解けなかったStudentNumber

精進します…
(なんでこれCase2までACしたんだ…)

おしまい

来年も開催されるか分からないですが、来年もやるならちょこっと参加したいなあという感じです。

運営のみなさまお疲れ様でした。