Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kotlin sealed classを用いた、 ユーザーターゲティングDSL(専用言語)と ...
Search
LINE Digital Frontier - TECH
June 22, 2024
Technology
1
310
Kotlin sealed classを用いた、 ユーザーターゲティングDSL(専用言語)と 実環境で秒間1,000万評価を行う処理系の事例紹介
「Kotlin Fest2024」の登壇資料です。
https://www.kotlinfest.dev/kotlin-fest-2024
LINE Digital Frontier - TECH
June 22, 2024
Tweet
Share
More Decks by LINE Digital Frontier - TECH
See All by LINE Digital Frontier - TECH
Kotlin言語仕様書へ招待 〜コード「なぜ」を読み解く〜
ldf_tech
0
850
累計5000万DLサービスの裏側 – LINEマンガのKotlinで挑む大規模 Server-side ETLの最適化
ldf_tech
1
300
5000万ダウンロードを超える漫画サービスを支えるログ基盤の設計開発の全て
ldf_tech
0
1.9k
Android端末で実現するオンデバイスLLM 2025
ldf_tech
0
45
How LINE MANGA Uses ClickHouse for Real-Time AnalysisSolving Data Integration Challenges with ClickHouse
ldf_tech
0
330
会社紹介資料
ldf_tech
1
4.1k
SwiftSyntaxでUIKitとSwiftUIの使用率を完璧に計測できちゃう件について
ldf_tech
0
340
Kotlin 2.0が与えるAndroid開発の進化
ldf_tech
0
280
Road to Kotlin 〜10年続くPerl運用からの脱却〜
ldf_tech
0
90
Other Decks in Technology
See All in Technology
品質のための共通認識
kakehashi
PRO
3
230
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
750
打 造 A I 驅 動 的 G i t H u b ⾃ 動 化 ⼯ 作 流 程
appleboy
0
230
因果AIへの招待
sshimizu2006
0
940
生成AIでテスト設計はどこまでできる? 「テスト粒度」を操るテーラリング術
shota_kusaba
0
630
生成AI時代の自動E2Eテスト運用とPlaywright実践知_引持力哉
legalontechnologies
PRO
0
210
LT登壇を続けたらポッドキャストに呼ばれた話
yamatai1212
0
120
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
270
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
100
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
190
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
小さな判断で育つ、大きな意思決定力 / 20251204 Takahiro Kinjo
shift_evolve
PRO
1
590
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Balancing Empowerment & Direction
lara
5
790
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
94
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
RailsConf 2023
tenderlove
30
1.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Transcript
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO ,PUMJOTFBMFEDMBTTΛ用͍ͨɺ ϢʔβʔλʔήςΟϯά%4-(専用言語)ͱ 実環境Ͱ秒間 万評価Λ行͏処理系ͷ事例紹介 CZ!LB[VLJ@NBUTVEB
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO lαʔϏεͷମݧΛύʔιφϥΠζ͠ɺڵຯͷ͋ΔίϯςϯπΛָ͠ΜͰ͏ͨΊʹɺ ֤छΫϦΤΠςΟϒʢόφʔɾϙοϓΞοϓʣͷλʔήςΟϯάʢCZɺੑผɺ04ɺFUDʣ͕͔ܽͤ·ͤΜɻ ࠷ॳݸผʹ࣮͢Δࣄ͕ଟ͍Ͱ͕͢ɺ࿐ग़໘ O ͱλʔήςΟϯά݅ N ͕૿͑ͨ߹ɺ
0 OYN ͷ࣮ɾϝϯςφϯείετ͕͔͔ͬͯ͠·͍ɺڞ௨Խ͕ඞཁͱͳΓ·͢ɻ ࠓճͷൃදɺ৽ن࡞͞Εͨڞ௨ 1MBUGPSN ্ʹ͓͚Δ՝ɿ ʰϚʔέλʔΛॳΊͱ͢Δશࣾһ͕ɺ Ϣʔβʔͷ݅ͦͷ "/%03/05ͷҙͷΈ߹ΘͤʹΑΔλʔήςΟϯάΛՄೳͱ͢ΔʱΛɺ ,PUMJOͰ࣮ͨ͠ :".-ϕʔεͷϢʔβʔλʔήςΟϯά%4-ʢಠࣗݴޠʣͱ ͦͷॲཧܥʹΑͬͯղܾͨ͠ࣄྫͷհͱͳΓ·͢ɻ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO "HFOEB • ಋೖ λʔήςΟϯά֓ཁͱɺղ͖͘՝ • :".-,PUMJOΛར༻ͨ͠ %4-
ͷ࣮ • • ·ͱΊ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO "HFOEB • λʔήςΟϯά֓ཁͱɺղ͖͘՝ • :".-,PUMJOΛར༻ͨ͠ %4- ͷ࣮
• • ·ͱΊ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO λʔήςΟϯάͱͭ·ΓͲ͏͍͏͜ͱ͔ r ͋ΔϚϯΨΞϓϦ։ൃͷݱ ΞϓϦʹىಈ࣌ϙοϓΞοϓػೳ͕ཉ͍͠ Ͱ͢ΑͶ τοϓը໘ʹόφʔग़͍ͨ͠ΑͶ Θ͔Γ·͢
όφʔ࡞ͷΈʢಡΜ͔ͩͲ͏͔ʣͰग़͚͍ͨ͠͠ͳ ࡞Γ·ͬͤ ىಈ࣌ϙοϓΞοϓΛಛఆͷϢʔβʔʢ$47 -JTUʣ ʹରͯ͠ͷΈग़͢Α͏ʹ͍ͨ͠ɻ ֦ு͠·͢ ϢʔβʔΛࢦఆʢ$47ʣͯ͠ 1VTI ௨ΛૹΔػೳ࡞Ζ͏ ͱΓ͋͑ͣ SZ ىಈ࣌ϙοϓΞοϓ࡞ΈࢦఆͰग़͍ͨ͠Μ͚ͩͲ ͦΖͦΖਏ͍ͧɻɻɻ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO ͭ·ΓͲ͏͍͏͜ͱ͔ʁ Banner Popup その他A B C ...
全表⽰ ✅ ✅ ✅ ✅ ✅ … 登録時期 ✅ ✅ ❌ ❌ ✅ … 課⾦履歴 ✅ ❌ ✅ ❌ ❌ … 閲覧履歴 ❌ ✅ ❌ ✅ ✅ … ID指定 ❌ ✅ ✅ ✅ ❌ … … … … … … … … 機能 ターゲティング条件
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO Banner Popup その他A B C ... 全表⽰
✅ ❌ ❌ ✅ ❌ … 登録時期 ✅ ✅ ❌ ❌ ✅ … 課⾦履歴 ✅ ❌ ✅ ❌ ❌ … 閲覧履歴 ❌ ✅ ❌ ✅ ✅ … ID指定 ❌ ✅ ✅ ✅ ❌ … … … … … … … … 機能 ターゲティング条件 ͭ·ΓͲ͏͍͏͜ͱ͔ʁ • ਏ͘ͳ͖ͬͯͨɻ • αʔϏεͷͬͯ͜͏͍͏ͷʂʁ • ͋Δఔڞ௨Խ͓͚ͯ͜͠͏ͳΒΜΖ͏ɻ • ͜ͷλʔήςΟϯάॲཧॏ͍ͷͰ 5PQ 1BHF Ͱͬͯཉ͘͠ͳ͍ FUD ͕ӡ༻ෛՙ εϐʔυ༏ઌʢʁʣͰɺ αʔϏε͕͢ΔͱͲ͏ͳΔͷ͔ɾɾɾʁ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO ͭ·ΓͲ͏͍͏͜ͱ͔ʁ ターゲティング条件 露出機能
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO &OHJOFFSJOHGPS4DBMF • ݸผʹ࣮͍ͯ͠ΔͱλʔήςΟϯάͷ࣮ɾϝϯςφϯείετ 𝑂 λʔήςΟϯάͷछྨ × 𝑂
ػೳͷ ~ 𝑂 𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝐺𝑟𝑜𝑤𝑡ℎ × 𝑂 𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝐺𝑟𝑜𝑤𝑡ℎ = 𝑂 𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝐺𝑟𝑜𝑤𝑡ℎ ! αʔϏεͷʹରͯ͠ͷίετ͕͔͔Δɺͱ͍͏͜ͱɻ ͜ΕΛղܾ͢Δඞཁ͕͋ͬͨɻ ࠷ॳʰͱ͍͑ͳΜͱ͔ͳΔͰ͠ΐʱͷൣғ͕ͩͬͨʜʜ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO 8)0 8& "3& • ͜ͷηογϣϯͰհͤͯ͘͞ͷ -*/&ϚϯΨ ͱ͍͏ɺ
ࠃ 5PQ4BMFTɺʹͳΔ͋Δ ΞϓϦͷαʔόʔαΠυࣄྫͱͳΓ·͢ • Λ͑Δӡ༻ͷੵΈॏͶ • ߴτϥϑΟοΫ • ສ 5BSHFUJOHTFD͕࣮ࡍʹඞཁ Apple: https://www.youtube.com/watch?v=aRKayW4LZCg
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO 13,PUMJO2VJ[ ग़தͰ͢
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO ϦϦʔε͔ΒΛӽ͑ΔΞϓϦͷ λʔήςΟϯά͕ ?ͩͬͨ߹ͷίετ 𝑂 λʔήςΟϯά࣮ͷτʔλϧίετ ~ 𝑂
ػೳͷ ⋅ 𝑂 λʔήςΟϯάͷछྨ ~ 𝑂 𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝐺𝑟𝑜𝑤𝑡ℎ ⋅ 𝑂 𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝐺𝑟𝑜𝑤𝑡ℎ = 𝑂 𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝐺𝑟𝑜𝑤𝑡ℎ ! = 𝑂 11 ͷϊϋͷੵΈॏͶ ! ͔Βͷ 11年 ! ͔Βͷ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO ສTFD ͷλʔήςΟϯάͰ࣮ߦ • ඵؒ ສ
TFDͷ "1* $BMM ͕͋ΔΘ͚Ͱͳ͍ɻ • "1*$BMMͷதͰɺ༷ʑͳλʔήςΟϯά͕ߦΘΕ͍ͯΔ • ྫɿ-*/& ϚϯΨͷىಈ࣌εΫϦʔϯ • Ϣʔβʔొʢ৽نʁطଘʁFUDʣຖʹɺը໘ߏΛม͑Δ • όφʔɾ1PQVQ ͻͱͭͻͱͭΛݟͤΔɾݟͤͳ͍ • ֤छ "# 5FTU • ։ൃྃػೳͷ (SBEVBM 3PMMPVU
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO ߹ܭ 5BSHFUJOH r TFD
1,000万/sec とはどれくらいか? = 1回の処理に 1ms かかってしまうとすると 1スレッドで秒間1000回しかターゲティングできず、 1万スレッドが必要。
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO ඵؒ ສճΛ͑Δ λʔήςΟϯάΛ࣮ݱ͢Δํ๏ • ٕज़ཁૉΛ "E5FDI
͔Βഈआ ˞ • 'VMMTDSBUDIͷ 1SJWBUF %.1 "VEJFODFཧʣΛ ,PUMJO Ͱ։ൃɾӡ༻ • શͯͷ "1* ϦΫΤετʹରͯ͠ɺ αϒϛϦඵͰ 6TFSͷ "VEJFODF(SPVQ*% 'MBH4FU Λฦ͢ • ͜ͷ 'MBH 4FUʹରͯ͠ɺλʔήςΟϯάΛద༻ ※ https://en.wikipedia.org/wiki/Data_management_platform etc
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO 1MBUGPSN͕͋Ε͜͏ͳΔ Targeting Patform (PrivateDMP+α) 𝑂 𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝐺𝑟𝑜𝑤𝑡ℎ
! 𝑂 𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝐺𝑟𝑜𝑤𝑡ℎ + 𝑂 𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝐺𝑟𝑜𝑤𝑡ℎ ~ 𝑂(𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝐺𝑟𝑜𝑤𝑡ℎ)
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO ߟྀ͖͢ϙΠϯτ *0'SFF ཁ • ʰ͜Ε৽نϢʔβʔʹग़͍ͨ͠ʱͱ ͍͏ͱ͖ʹɺग़͚͠ͷλΠϛϯάͰ
৽نϢʔβʔ͔Ͳ͏͔Λ %# ʹ͍ ߹ΘͤΔࣄͰ͖ͳ͍ 1,000万 ターゲティング /sec = 1回の処理に 1ms (1IO) かかってしまうと 1万スレッドが必要。 利⽤開始時期 バナー TargetingPlatform DB
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO -*/&ϚϯΨʹ͓͚Δɺ,PUMJO ্Ͱͷ λʔήςΟϯάͷղ͖ํ "1*ݺͼग़͠։࢝ͷλΠϛϯάͰɺ جຊใʢϢʔβʔ*%ͳͲʣʹՃ͑ͯɺ "VEJFODF(SPVQ*%
ͱݺΕΔ 'MBH 4FU Λ %.1͔Βશͯऔಘ͓ͯ͘͠ NT ྫɿ6TFS"GMBH< > ΫϦΤΠςΟϒʢόφʔɾ1PQVQFUDʣͷϦετ͕ɺ λʔήςΟϯάͱڞʹ༩͑ΒΕΔɻ • ྫɿ͜ͷόφʔΛ GMBHͷϢʔβʔʹදࣔ ϢʔβʔຖʹదͳϑΟϧλϦϯάΛίʔυͰߦ͏
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO λʔήςΟϯάΛͲ͏දݱ͢Δ͔ʁ • "/%03/05ΛؚΉλʔήςΟϯάΛ ʰσʔλʱʢʣͱͯ͠දݱ͍ͨ͠ ʹ/PU-PHJD$PEF • ਓؒͱϓϩάϥϜ͕ޡղແ͘ಡΈॻ͖Ͱ͖Δදݱܗࣜʢ%4-
ઐ༻ݴޠʣ͕ཉ͍͠ • Կނσʔλ %4- ͔ʁ • %#1SPUPDPMʹ҆ఆͯ͠ӬଓԽ 4FSJBMJ[F ग़དྷΔํ๏͕ඞཁ • ਓ͕ؒ "/%03/05ͷҙͷΈ߹ΘͤΛ $.4 ͔Βઃఆ͍ͨ͠ • ઃఆϑΝΠϧʢύϥϝʔλϑΝΠϧʣ্Ͱ׆༻͍ͨ͠
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO "HFOEB • ಋೖ λʔήςΟϯά֓ཁͱɺղ͖͘՝ • :".-,PUMJOΛར༻ͨ͠ %4-
ͷ࣮ • 4FSJBMJ[F%FTFSJBMJ[F 1BSTFS ࣮ • &WBMVBUJPOr ࣜධՁ • ·ͱΊ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO %4- 4FS%F 1BSTFS ࣮ • લఏɿ%4-
:".- ϕʔεͱͯ͠ɺ "/%03/05 ͷཧԋࢉࢠ͓Αͼ -FBG /PEF Ͱߏ͞ΕΔ • :".- ࠾༻ཧ༝ɿϋΠϥΠτͳͲΛطଘ &EJUPS .POBDP ʹཔΓ͍ͨ • ύʔε %FTFSJBMJ[F ӬଓԽ 4FSJBMJ[F Λ࣮͍ͨ͠ • ϕʔε ljackson-dataformat-yaml”
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO %4- ͷྫ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO %4- 1BSTF ΛՄೳͱ͢Δ+BDLTPOͷ QPMZNPSQIJTN ରԠ • :".-.BQQFS
ͰɺҎԼͷ༻ʹॻ͍͓ͯ͘ͱ ࠓճͷ %4- Λ ύʔεͰ͖ΔԼ४උ͕ग़དྷΔ • :".- /BUJWF ͷ 5ZQF 'JFME ΛແޮԽ FUD
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO "/%03/05ٴͼ -FBG $POEJUJPO Λ ࣔ͢ TFBMFEJOUFSGBDF EBUBDMBTT
• ΫϥεΛ͜͏ఆٛ • 5BSHFUJOH ͱݴ͏֓೦ʢ*OUFSGBDFʣ͕͋ͬͯ "/%03/05 ֤छܕ͕ 4VC5ZQF
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO "/%03/05ٴͼ -FBG $POEJUJPO Λ ࣔ͢ TFBMFEJOUFSGBDF EBUBDMBTT
• ΫϥεΛ͜͏ఆٛ • 5BSHFUJOH ͱݴ͏֓೦ʢ*OUFSGBDFʣ͕͋ͬͯ "/%03/05 ֤छܕ͕ 4VC5ZQF
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO %4-1BSTF3FTVMU
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO "HFOEB • ಋೖ λʔήςΟϯά֓ཁͱɺղ͖͘՝ • :".-,PUMJOΛར༻ͨ͠ %4-
ͷ࣮ • 4FSJBMJ[F%FTFSJBMJ[F 1BSTFS ࣮ • &WBMVBUJPOr ࣜධՁ • • ·ͱΊ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO %4-&WBMVBUJPO • Ϣʔβʔ Y λʔήςΟϯά ʹ #PPMFBOΛฦ͢
XIFOࣜͰذͯ͠ɺ ίϯύΠϧΤϥʔ͕ग़ͳ͘ͳΔ·ͰຒΊΔ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO *NQMFNFOUBUJPO
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO 5FTUJOH&WBMVBUJPO • %4- ͷධՁ͕ग़དྷͨ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO 'JMMUIF.JTTJOH1BSUT
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO "HFOEB • ಋೖ λʔήςΟϯά֓ཁͱɺղ͖͘՝ • :".-,PUMJOΛར༻ͨ͠ %4-
ͷ࣮ • • ύϑΥʔϚϯε • ֦ுੑ • ·ͱΊ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO 1FSGPSNBODF • ࠓճ 4MJEF Ͱհͨ͠ %4- ͷධՁ
TFD PO.#1.4JOHMF$PSF • ࣮ࡍͷෳαʔόʔɾෳ $PSF ڥͰɺ΄ ΅θϩͱݟͳͤΔίετ • *0'SFFධՁ͍ test summary: Benchmark Mode Cnt Score Error Units MyBenchmark.complexTargeting thrpt 5 150221873.429 ± 21629093.823 ops/s MyBenchmark.simpleTargeting thrpt 5 253614332.192 ± 642978.132 ops/s
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO 4FBMFEDMBTT $PNQJMFSΛར༻ͨ͠ ҆શͳ %4- ֦ு • %4-ͷ
-FBG5ZQF͕૿͑ͨ߹ɺ ,PUMJO$PNQJMFSʹ (VJEF ͞Ε ͯίϯύΠϧ͕௨Δ·ͰίʔυΛ ॻ͍͍͚࣮ͯ࿙Ε͕ͳ͍ • JT.BUDI5BSHFUJOH Λϝϯόؔʹ ͠ͳ͍ཧ༝ʁ • σʔλʹରͯ͠ 5BSHFUJOH Ҏ֎ʹ ༷ʑͳॲཧΛ͢Δඞཁ͕͋Γɺݟ௨͠ Λ֬อ͔ͨͬͨ͠ɻ • ྫʣDPOWFSU&MBTUJDTFBSDI2VFSZ
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO ·ͱΊ • ຊ 5PQ4BMFTʢʹͳΔ͋Δʣ ΞϓϦͷ 4FSWFS
Ͱॻ͔Ε͍ͯΔ • ສλʔήςΟϯάTFDΛ࣮ݱ͢Δ 1SJWBUF %.1 ͷج൫ Ͱॻ͚Δɻ • KBDLTPOEBUBCJOEZBNM Λར༻ͯ͠ :".- ্ͷ %4- Λ ʹ .BQQJOH 1BSTF Ͱ͖Δ r 4FS%F • %4- &WBMVBUJPO ͷ 4FBMFE $MBTT ͳΒ҆৺ɾ؆୯ r &WBM
,PUMJO'FTU -*/&%JHJUBM'SPOUJFS$PSQPSBUJPO End Of doc.