Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
0
280
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
5000万ダウンロードを超える漫画サービスを支えるログ基盤の設計開発の全て
ldf_tech
0
620
Android端末で実現するオンデバイスLLM 2025
ldf_tech
0
32
How LINE MANGA Uses ClickHouse for Real-Time AnalysisSolving Data Integration Challenges with ClickHouse
ldf_tech
0
300
会社紹介資料
ldf_tech
1
3.5k
SwiftSyntaxでUIKitとSwiftUIの使用率を完璧に計測できちゃう件について
ldf_tech
0
310
Kotlin 2.0が与えるAndroid開発の進化
ldf_tech
0
270
Road to Kotlin 〜10年続くPerl運用からの脱却〜
ldf_tech
0
78
Kotlin Collection関数をマスター
ldf_tech
1
490
マンガアプリのメモリ改善と解析方法
ldf_tech
0
68
Other Decks in Technology
See All in Technology
英語は話せません!それでも海外チームと信頼関係を作るため、対話を重ねた2ヶ月間のまなび
niioka_97
0
110
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
490
PLaMo2シリーズのvLLM実装 / PFN LLM セミナー
pfn
PRO
2
970
Goに育てられ開発者向けセキュリティ事業を立ち上げた僕が今向き合う、AI × セキュリティの最前線 / Go Conference 2025
flatt_security
0
350
Pure Goで体験するWasmの未来
askua
1
180
Flaky Testへの現実解をGoのプロポーザルから考える | Go Conference 2025
upamune
1
420
OpenAI gpt-oss ファインチューニング入門
kmotohas
2
950
SREとソフトウェア開発者の合同チームはどのようにS3のコストを削減したか?
muziyoshiz
1
100
生成AI_その前_に_マルチクラウド時代の信頼できるデータを支えるSnowflakeメタデータ活用術.pdf
cm_mikami
0
110
From Prompt to Product @ How to Web 2025, Bucharest, Romania
janwerner
0
120
「AI駆動PO」を考えてみる - 作る速さから価値のスループットへ:検査・適応で未来を開発 / AI-driven product owner. scrummat2025
yosuke_nagai
4
580
社内お問い合わせBotの仕組みと学び
nish01
0
120
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
54
3k
Docker and Python
trallard
46
3.6k
Site-Speed That Sticks
csswizardry
11
880
How to train your dragon (web standard)
notwaldorf
96
6.3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
A Modern Web Designer's Workflow
chriscoyier
697
190k
KATA
mclloyd
32
15k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
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.