๐• f B! L
ๆกˆไปถใƒปๆฑ‚ไบบๆ•ฐ 12,345ไปถ
ๆกˆไปถใ‚’ๆŽขใ™๏ผˆๆบ–ๅ‚™ไธญ๏ผ‰ ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’ๆŽขใ™๏ผˆๆบ–ๅ‚™ไธญ๏ผ‰ ใŠๅฝน็ซ‹ใกๆƒ…ๅ ฑ ใƒญใ‚ฐใ‚คใƒณ
ๆกˆไปถใƒปๆฑ‚ไบบๆ•ฐ 12,345ไปถ
Google Antigravityใ‚’ๆ—ฅๆœฌ่ชžๅŒ–ใ™ใ‚‹ๆ–นๆณ•๏ฝœ่จ€่ชž่จญๅฎšใƒปUIใƒญใƒผใ‚ซใƒฉใ‚คใ‚บใƒปๆ—ฅๆœฌ่ชžใƒ—ใƒญใƒณใƒ—ใƒˆใฎใ‚ณใƒ„

Google Antigravityใ‚’ๆ—ฅๆœฌ่ชžๅŒ–ใ™ใ‚‹ๆ–นๆณ•๏ฝœ่จ€่ชž่จญๅฎšใƒปUIใƒญใƒผใ‚ซใƒฉใ‚คใ‚บใƒปๆ—ฅๆœฌ่ชžใƒ—ใƒญใƒณใƒ—ใƒˆใฎใ‚ณใƒ„

Google Antigravityๆ—ฅๆœฌ่ชžๅŒ–GeminiAIใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐSESใ‚จใƒณใ‚ธใƒ‹ใ‚ข
็›ฎๆฌก
โšก 3็ง’ใงใ‚ใ‹ใ‚‹๏ผใ“ใฎ่จ˜ไบ‹ใฎใƒใ‚คใƒณใƒˆ
  • Antigravityใฏ็’ฐๅขƒๅค‰ๆ•ฐใจใ‚ณใƒณใƒ•ใ‚ฃใ‚ฐใง็ฐกๅ˜ใซๆ—ฅๆœฌ่ชžUIใซๅˆ‡ใ‚Šๆ›ฟใˆใ‚‰ใ‚Œใ‚‹
  • ๆ—ฅๆœฌ่ชžใƒ—ใƒญใƒณใƒ—ใƒˆใงใ‚‚้ซ˜็ฒพๅบฆใชใ‚ณใƒผใƒ‰็”ŸๆˆใŒๅฏ่ƒฝ๏ผˆใ‚ณใƒ„ใ‚’ๆŠผใ•ใˆใ‚Œใฐ่‹ฑ่ชžใจ้œ่‰ฒใชใ—๏ผ‰
  • ๆ–‡ๅญ—ๅŒ–ใ‘ใƒปใ‚จใƒณใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐๅ•้กŒใฎๅŽŸๅ› ใจๅฏพๅ‡ฆๆณ•ใ‚’็ถฒ็พ…็š„ใซ่งฃ่ชฌ

Antigravityๆ—ฅๆœฌ่ชžๅŒ–ใฎ่จญๅฎšใ‚นใƒ†ใƒƒใƒ—ใจๅŠนๆžœใฎใ‚คใƒณใƒ•ใ‚ฉใ‚ฐใƒฉใƒ•ใ‚ฃใƒƒใ‚ฏ

Google Antigravityใฏ่‹ฑ่ชžUIใŒใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใ™ใŒใ€ๆ—ฅๆœฌ่ชž็’ฐๅขƒใงใฎๅˆฉ็”จใซใ‚‚ๅฏพๅฟœใ—ใฆใ„ใพใ™ใ€‚่จ€่ชž่จญๅฎšใฎๅค‰ๆ›ดใ€ๆ—ฅๆœฌ่ชžใƒ—ใƒญใƒณใƒ—ใƒˆใฎๆ›ธใๆ–นใ€ๅ‡บๅŠ›ใฎๆ—ฅๆœฌ่ชžๅŒ–ใพใงใ€ใ“ใฎ่จ˜ไบ‹ใงใฏAntigravityใ‚’ๆ—ฅๆœฌ่ชžใงๅฟซ้ฉใซไฝฟใ†ใŸใ‚ใฎ่จญๅฎšใจๅฎŸ่ทตใƒ†ใ‚ฏใƒ‹ใƒƒใ‚ฏใ‚’ๅพนๅบ•่งฃ่ชฌใ—ใพใ™ใ€‚

ใพใ AntigravityใฎๅŸบๆœฌๆ“ไฝœใ‚’็Ÿฅใ‚‰ใชใ„ๆ–นใฏใ€ๅ…ˆใซEp.1๏ผšGoogle Antigravityไฝฟใ„ๆ–นๅ…ฅ้–€ใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚

Antigravityใฎ่จ€่ชž่จญๅฎšใ‚’ๆ—ฅๆœฌ่ชžใซๅค‰ๆ›ดใ™ใ‚‹ๆ–นๆณ•

็’ฐๅขƒๅค‰ๆ•ฐใซใ‚ˆใ‚‹่จ€่ชž่จญๅฎš

Antigravityใฎ่กจ็คบ่จ€่ชžใฏใ€ใ‚ทใ‚นใƒ†ใƒ ใฎใƒญใ‚ฑใƒผใƒซ่จญๅฎšใจ็’ฐๅขƒๅค‰ๆ•ฐใงๅˆถๅพกใงใใพใ™ใ€‚ๆœ€ใ‚‚ใ‚ทใƒณใƒ—ใƒซใชๆ–นๆณ•ใฏใ€่ตทๅ‹•ๆ™‚ใซLANG็’ฐๅขƒๅค‰ๆ•ฐใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใ“ใจใงใ™ใ€‚

# ๆ—ฅๆœฌ่ชžใƒญใ‚ฑใƒผใƒซใ‚’่จญๅฎšใ—ใฆ่ตทๅ‹•
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8
antigravity

ใ‚ทใ‚งใƒซใฎ่จญๅฎšใƒ•ใ‚กใ‚คใƒซ๏ผˆ.bashrcใ‚„.zshrc๏ผ‰ใซ่ฟฝๅŠ ใ™ใ‚Œใฐใ€ๆฏŽๅ›žใฎๆŒ‡ๅฎšใŒไธ่ฆใซใชใ‚Šใพใ™ใ€‚

# ~/.zshrc ใซ่ฟฝๅŠ 
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

ใ‚ณใƒณใƒ•ใ‚ฃใ‚ฐใƒ•ใ‚กใ‚คใƒซใงใฎ่จ€่ชžๆŒ‡ๅฎš

Antigravityใฎ่จญๅฎšใƒ•ใ‚กใ‚คใƒซ๏ผˆ~/.antigravity/config.yaml๏ผ‰ใงใ‚‚่จ€่ชžใ‚’ๆŒ‡ๅฎšใงใใพใ™ใ€‚

# ~/.antigravity/config.yaml
language: ja
locale: ja_JP.UTF-8
response_language: ja  # AIใฎๅฟœ็ญ”่จ€่ชžใ‚’ๆ—ฅๆœฌ่ชžใซๅ›บๅฎš

ใ“ใฎ่จญๅฎšใซใ‚ˆใ‚Šใ€ใ‚จใƒฉใƒผใƒกใƒƒใ‚ปใƒผใ‚ธใƒปใƒ˜ใƒซใƒ—่กจ็คบใƒปAIใฎๅฟœ็ญ”ใŒใ™ในใฆๆ—ฅๆœฌ่ชžใซใชใ‚Šใพใ™ใ€‚

Google Cloud CLIใจใฎ่จ€่ชž็ตฑๅˆ

AntigravityใฏGoogle Cloud CLIใจ้€ฃๆบใ™ใ‚‹ใŸใ‚ใ€gcloudใฎ่จ€่ชž่จญๅฎšใ‚‚ๅˆใ‚ใ›ใฆใŠใใจ็ตฑไธ€ๆ„ŸใŒๅ‡บใพใ™ใ€‚

# gcloudใฎ่จ€่ชž่จญๅฎš
gcloud config set core/custom_ca_certs_file ""
gcloud config set accessibility/screen_reader false

# ใƒญใ‚ฑใƒผใƒซ็ตฑไธ€
gcloud config set core/account [email protected]
๐Ÿ’ก ใƒใ‚คใƒณใƒˆ

response_language: ja ใ‚’่จญๅฎšใ™ใ‚‹ใจใ€่‹ฑ่ชžใงใƒ—ใƒญใƒณใƒ—ใƒˆใ‚’ๆ›ธใ„ใฆใ‚‚ๅฟœ็ญ”ใฏๆ—ฅๆœฌ่ชžใง่ฟ”ใฃใฆใใพใ™ใ€‚ใƒใƒผใƒ ๅ†…ใง่จ€่ชžใ‚’็ตฑไธ€ใ—ใŸใ„ๅ ดๅˆใซไพฟๅˆฉใงใ™ใ€‚

UIใฎๆ—ฅๆœฌ่ชžใƒญใƒผใ‚ซใƒฉใ‚คใ‚บๆ‰‹้ †

ใ‚ฟใƒผใƒŸใƒŠใƒซใฎๆ–‡ๅญ—ใ‚ณใƒผใƒ‰่จญๅฎš

Antigravityใ‚’ๆ—ฅๆœฌ่ชžใงไฝฟใ†้š›ใ€ใ‚ฟใƒผใƒŸใƒŠใƒซๅดใฎๆ–‡ๅญ—ใ‚ณใƒผใƒ‰่จญๅฎšใ‚‚้‡่ฆใงใ™ใ€‚UTF-8ใŒๆญฃใ—ใ่จญๅฎšใ•ใ‚Œใฆใ„ใชใ„ใจใ€ๆ—ฅๆœฌ่ชžใŒๆ–‡ๅญ—ๅŒ–ใ‘ใ—ใพใ™ใ€‚

macOS Terminal / iTerm2ใฎๅ ดๅˆ๏ผš

# ๆ–‡ๅญ—ใ‚ณใƒผใƒ‰็ขบ่ช
locale

# ๅ‡บๅŠ›ไพ‹๏ผˆๆญฃๅธธ๏ผ‰
# LANG=ja_JP.UTF-8
# LC_ALL=ja_JP.UTF-8

Windows Terminal / WSL2ใฎๅ ดๅˆ๏ผš

# WSL2ๅ†…ใง่จญๅฎš
sudo update-locale LANG=ja_JP.UTF-8
sudo locale-gen ja_JP.UTF-8

ใ‚คใƒณใ‚ฟใƒฉใ‚ฏใƒ†ใ‚ฃใƒ–ใƒขใƒผใƒ‰ใฎๆ—ฅๆœฌ่ชžๅฏพๅฟœ

Antigravityใฎใ‚คใƒณใ‚ฟใƒฉใ‚ฏใƒ†ใ‚ฃใƒ–ใƒขใƒผใƒ‰๏ผˆantigravity chat๏ผ‰ใงใฏใ€ๆ—ฅๆœฌ่ชžใฎๅ…ฅๅŠ›ใƒปๅ‡บๅŠ›ใŒใ‚ทใƒผใƒ ใƒฌใ‚นใซๅ‹•ไฝœใ—ใพใ™ใ€‚

# ใ‚คใƒณใ‚ฟใƒฉใ‚ฏใƒ†ใ‚ฃใƒ–ใƒขใƒผใƒ‰ใงๆ—ฅๆœฌ่ชžใ‚’ไฝฟใ†
antigravity chat --language ja

# ใƒ—ใƒญใƒณใƒ—ใƒˆไพ‹
> ใ“ใฎPythonใƒ•ใ‚กใ‚คใƒซใฎใ‚จใƒฉใƒผใƒใƒณใƒ‰ใƒชใƒณใ‚ฐใ‚’ๆ”นๅ–„ใ—ใฆใใ ใ•ใ„

VS Codeๆ‹กๅผตใจใฎ้€ฃๆบ

AntigravityใฎVS Codeๆ‹กๅผตๆฉŸ่ƒฝใ‚’ไฝฟใฃใฆใ„ใ‚‹ๅ ดๅˆใ€VS Code่‡ชไฝ“ใฎ่กจ็คบ่จ€่ชž่จญๅฎšใŒๅๆ˜ ใ•ใ‚Œใพใ™ใ€‚

// settings.json
{
  "antigravity.language": "ja",
  "antigravity.responseLanguage": "ja",
  "editor.fontFamily": "'Noto Sans JP', 'Source Code Pro', monospace"
}

ๆ—ฅๆœฌ่ชžใƒ•ใ‚ฉใƒณใƒˆใ‚’ๆ˜Ž็คบ็š„ใซๆŒ‡ๅฎšใ™ใ‚‹ใ“ใจใงใ€ใ‚ณใƒกใƒณใƒˆใ‚„ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆๅ†…ใฎๆ—ฅๆœฌ่ชž่กจ็คบใŒๅดฉใ‚Œใ‚‹ใฎใ‚’้˜ฒใ’ใพใ™ใ€‚

ๆ—ฅๆœฌ่ชžใƒ—ใƒญใƒณใƒ—ใƒˆใงๅŠนๆžœ็š„ใซใ‚ณใƒผใƒ‰ใ‚’็”Ÿๆˆใ™ใ‚‹ใ‚ณใƒ„

AntigravityใฏGeminiใƒขใƒ‡ใƒซใ‚’ๆญ่ผ‰ใ—ใฆใŠใ‚Šใ€ๆ—ฅๆœฌ่ชžใƒ—ใƒญใƒณใƒ—ใƒˆใธใฎ็†่งฃๅบฆใŒ้ซ˜ใ„ใฎใŒ็‰นๅพดใงใ™ใ€‚ใŸใ ใ—ใ€ใ‚ˆใ‚Š็ฒพๅบฆใฎ้ซ˜ใ„ๅ‡บๅŠ›ใ‚’ๅพ—ใ‚‹ใซใฏใ„ใใคใ‹ใฎใ‚ณใƒ„ใŒใ‚ใ‚Šใพใ™ใ€‚

ใ‚ณใƒ„1๏ผšๆŠ€่ก“็”จ่ชžใฏ่‹ฑ่ชžใฎใพใพๆฎ‹ใ™

# โŒ ใ‚ใพใ‚Š่‰ฏใใชใ„ไพ‹
> ใƒชใ‚ขใ‚ฏใƒˆใงใ‚นใƒ†ใƒผใƒˆ็ฎก็†ใ™ใ‚‹ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใ‚’ไฝœใฃใฆ

# โœ… ่‰ฏใ„ไพ‹
> Reactใงstate็ฎก็†ใ™ใ‚‹ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใ‚’ไฝœๆˆใ—ใฆใใ ใ•ใ„

ใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏๅใƒปใƒฉใ‚คใƒ–ใƒฉใƒชๅใƒปๆŠ€่ก“ๆฆ‚ๅฟตใฏ่‹ฑ่ชžใฎใพใพ่จ˜่ฟฐใ—ใŸๆ–นใŒใ€Geminiใฎ็†่งฃ็ฒพๅบฆใŒไธŠใŒใ‚Šใพใ™ใ€‚

ใ‚ณใƒ„2๏ผšๅ‡บๅŠ›ๅฝขๅผใ‚’ๆ˜Ž็คบใ™ใ‚‹

# ๅ…ทไฝ“็š„ใชๅ‡บๅŠ›ๆŒ‡็คบ
> FastAPIใงใƒฆใƒผใ‚ถใƒผ่ช่จผAPIใ‚’ไฝœๆˆใ—ใฆใใ ใ•ใ„
> - ใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆ: /auth/login, /auth/register
> - JWT่ช่จผใ‚’ไฝฟ็”จ
> - ใ‚ณใƒกใƒณใƒˆใฏๆ—ฅๆœฌ่ชžใง่จ˜่ฟฐ
> - ๅž‹ใƒ’ใƒณใƒˆใ‚’ๅฟ…ใšไป˜ใ‘ใ‚‹

ใ€Œใ‚ณใƒกใƒณใƒˆใฏๆ—ฅๆœฌ่ชžใงใ€ใจๆ˜Ž็คบใ™ใ‚‹ใ“ใจใงใ€็”Ÿๆˆใ‚ณใƒผใƒ‰ใฎใ‚ณใƒกใƒณใƒˆใŒๆ—ฅๆœฌ่ชžใซใชใ‚Šใพใ™ใ€‚

ใ‚ณใƒ„3๏ผšใ‚ณใƒณใƒ†ใ‚ญใ‚นใƒˆใ‚’ๅ…ˆใซๅ…ฑๆœ‰ใ™ใ‚‹

# ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎ่ƒŒๆ™ฏใ‚’ไผใˆใ‚‹
> ใ“ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฏSESไผๆฅญๅ‘ใ‘ใฎๅ‹คๆ€ ็ฎก็†ใ‚ทใ‚นใƒ†ใƒ ใงใ™ใ€‚
> ๆŠ€่ก“ใ‚นใ‚ฟใƒƒใ‚ฏ: Python 3.12, FastAPI, PostgreSQL
> ไปฅไธ‹ใฎใƒขใƒ‡ใƒซใ‚ฏใƒฉใ‚นใซใƒใƒชใƒ‡ใƒผใ‚ทใƒงใƒณใ‚’่ฟฝๅŠ ใ—ใฆใใ ใ•ใ„ใ€‚

AIใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐใƒ„ใƒผใƒซใฎใƒ—ใƒญใƒณใƒ—ใƒˆๆŠ€่ก“ใจๅŒๆง˜ใซใ€่ƒŒๆ™ฏๆƒ…ๅ ฑใ‚’ๅ…ˆใซไผใˆใ‚‹ใ“ใจใงๅ‡บๅŠ›็ฒพๅบฆใŒๅคงๅน…ใซๅ‘ไธŠใ—ใพใ™ใ€‚

ใ‚ณใƒ„4๏ผšAGENTS.mdใซๆ—ฅๆœฌ่ชžใƒซใƒผใƒซใ‚’่จ˜่ผ‰ใ™ใ‚‹

Antigravityใฏใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใƒซใƒผใƒˆใฎAGENTS.mdใ‚’่‡ชๅ‹•่ช่ญ˜ใ—ใพใ™ใ€‚ใ“ใ“ใซๆ—ฅๆœฌ่ชžใซ้–ขใ™ใ‚‹ใƒซใƒผใƒซใ‚’ๆ›ธใ„ใฆใŠใใจใ€ๆฏŽๅ›žๆŒ‡็คบใ™ใ‚‹ๅฟ…่ฆใŒใชใใชใ‚Šใพใ™ใ€‚

# AGENTS.md
## ใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐ่ฆ็ด„
- ใ‚ณใƒกใƒณใƒˆใฏๆ—ฅๆœฌ่ชžใง่จ˜่ฟฐใ™ใ‚‹ใ“ใจ
- ๅค‰ๆ•ฐๅใƒป้–ขๆ•ฐๅใฏ่‹ฑ่ชž๏ผˆcamelCase๏ผ‰
- ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒ†ใƒผใ‚ทใƒงใƒณๆ–‡ๅญ—ๅˆ—๏ผˆdocstring๏ผ‰ใฏๆ—ฅๆœฌ่ชž
- ใ‚จใƒฉใƒผใƒกใƒƒใ‚ปใƒผใ‚ธใฏๆ—ฅๆœฌ่ชžใจ่‹ฑ่ชžใ‚’ไฝต่จ˜

ๆ—ฅๆœฌ่ชžใ‚ณใƒกใƒณใƒˆใƒปใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ็”Ÿๆˆใฎใƒ†ใ‚ฏใƒ‹ใƒƒใ‚ฏ

docstringใฎๆ—ฅๆœฌ่ชž็”Ÿๆˆ

Antigravityใซๆ—ขๅญ˜ใ‚ณใƒผใƒ‰ใฎdocstringใ‚’ๆ—ฅๆœฌ่ชžใง็”Ÿๆˆใ•ใ›ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚

> ไปฅไธ‹ใฎ้–ขๆ•ฐใซGoogle Styleใฎdocstringใ‚’ๆ—ฅๆœฌ่ชžใง่ฟฝๅŠ ใ—ใฆใใ ใ•ใ„

็”Ÿๆˆไพ‹๏ผš

def calculate_unit_price(base_price: int, experience_years: int) -> int:
    """SESใ‚จใƒณใ‚ธใƒ‹ใ‚ขใฎๅ˜ไพกใ‚’่จˆ็ฎ—ใ™ใ‚‹ใ€‚

    ็ตŒ้จ“ๅนดๆ•ฐใจๅŸบๆœฌๅ˜ไพกใ‹ใ‚‰ใ€้ฉๆญฃใชๆœˆ้กๅ˜ไพกใ‚’็ฎ—ๅ‡บใ—ใพใ™ใ€‚
    3ๅนดไปฅไธŠใฎ็ตŒ้จ“ใง15%ใ€5ๅนดไปฅไธŠใง30%ใฎไธŠไน—ใ›ใŒ้ฉ็”จใ•ใ‚Œใพใ™ใ€‚

    Args:
        base_price: ๅŸบๆœฌๅ˜ไพก๏ผˆไธ‡ๅ††/ๆœˆ๏ผ‰
        experience_years: ็ตŒ้จ“ๅนดๆ•ฐ

    Returns:
        ็ฎ—ๅ‡บใ•ใ‚ŒใŸๆœˆ้กๅ˜ไพก๏ผˆไธ‡ๅ††๏ผ‰

    Raises:
        ValueError: base_priceใŒ0ไปฅไธ‹ใฎๅ ดๅˆ
    """
    if base_price <= 0:
        raise ValueError("ๅŸบๆœฌๅ˜ไพกใฏ1ไปฅไธŠใ‚’ๆŒ‡ๅฎšใ—ใฆใใ ใ•ใ„")
    
    multiplier = 1.0
    if experience_years >= 5:
        multiplier = 1.3
    elif experience_years >= 3:
        multiplier = 1.15
    
    return int(base_price * multiplier)

README.mdใฎๆ—ฅๆœฌ่ชžใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆ็”Ÿๆˆ

> ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใฎREADME.mdใ‚’ๆ—ฅๆœฌ่ชžใง็”Ÿๆˆใ—ใฆใใ ใ•ใ„
> ๅซใ‚ใ‚‹ๅ†…ๅฎน: ๆฆ‚่ฆใ€ใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ๆ‰‹้ †ใ€ไฝฟใ„ๆ–นใ€APIไป•ๆง˜ใ€ใ‚ณใƒณใƒˆใƒชใƒ“ใƒฅใƒผใ‚ทใƒงใƒณๆ–นๆณ•

Antigravityใฏใƒชใƒใ‚ธใƒˆใƒชๅ†…ใฎใ‚ณใƒผใƒ‰ใ‚’่‡ชๅ‹•ใง่ชญใฟๅ–ใ‚Šใ€ๆญฃ็ขบใชREADMEใ‚’ๆ—ฅๆœฌ่ชžใง็”Ÿๆˆใ—ใพใ™ใ€‚

ๆ—ฅๆœฌ่ชžใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงใฎๆดป็”จไบ‹ไพ‹

ไบ‹ไพ‹1๏ผšSESๅ‹คๆ€ ็ฎก็†ใ‚ทใ‚นใƒ†ใƒ ใฎ้–‹็™บ

SES็พๅ ดใงๅฎŸ้š›ใซAntigravityใ‚’ๆ—ฅๆœฌ่ชž็’ฐๅขƒใงๆดป็”จใ—ใŸไพ‹ใ‚’็ดนไป‹ใ—ใพใ™ใ€‚

# ๆ—ฅๆœฌ่ชžใงใƒ†ใƒผใƒ–ใƒซ่จญ่จˆใ‚’ๆŒ‡็คบ
> ไปฅไธ‹ใฎ่ฆไปถใงSQLAlchemyใƒขใƒ‡ใƒซใ‚’ไฝœๆˆใ—ใฆใใ ใ•ใ„๏ผš
> - ใƒ†ใƒผใƒ–ใƒซๅ: ๅ‹คๅ‹™ๅฎŸ็ธพ๏ผˆwork_records๏ผ‰
> - ใ‚ซใƒฉใƒ : ็คพๅ“กID, ๅ‹คๅ‹™ๆ—ฅ, ้–‹ๅง‹ๆ™‚ๅˆป, ็ต‚ไบ†ๆ™‚ๅˆป, ไผ‘ๆ†ฉๆ™‚้–“, ๅ‚™่€ƒ
> - ๆœˆๆฌก้›†่จˆใƒ“ใƒฅใƒผใ‚‚ไฝœๆˆ

ๆ—ฅๆœฌ่ชžใง่ฆไปถใ‚’ไผใˆใฆใ‚‚ใ€ใƒ†ใƒผใƒ–ใƒซๅใƒปใ‚ซใƒฉใƒ ๅใฏ้ฉๅˆ‡ใช่‹ฑ่ชžใง็”Ÿๆˆใ•ใ‚Œใ€ใ‚ณใƒกใƒณใƒˆใฏๆ—ฅๆœฌ่ชžใงไป˜ไธŽใ•ใ‚Œใพใ™ใ€‚

ไบ‹ไพ‹2๏ผšๆ—ขๅญ˜ใ‚ณใƒผใƒ‰ใฎๆ—ฅๆœฌ่ชžใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆๅŒ–

่‹ฑ่ชžใงๆ›ธใ‹ใ‚ŒใŸๆ—ขๅญ˜ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใ‚’ๆ—ฅๆœฌ่ชžๅŒ–ใ™ใ‚‹ๅ ดๅˆใซใ‚‚ใ€AntigravityใฏๅจๅŠ›ใ‚’็™บๆฎใ—ใพใ™ใ€‚

> ใ“ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎๅ…จใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ใ‚’ๅˆ†ๆžใ—ใฆใ€
> ๆ—ฅๆœฌ่ชžใฎๆŠ€่ก“ไป•ๆง˜ๆ›ธใ‚’Markdownๅฝขๅผใงไฝœๆˆใ—ใฆใใ ใ•ใ„

SESใ‚จใƒณใ‚ธใƒ‹ใ‚ขใฎใ‚ญใƒฃใƒชใ‚ขใ‚ฌใ‚คใƒ‰ใงใ‚‚่งฆใ‚Œใฆใ„ใพใ™ใŒใ€ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆไฝœๆˆใ‚นใ‚ญใƒซใฏSESๅ˜ไพกใซ็›ด็ตใ—ใพใ™ใ€‚AIใƒ„ใƒผใƒซใ‚’ๆดป็”จใ—ใฆๅŠน็އๅŒ–ใ—ใพใ—ใ‚‡ใ†ใ€‚

ไบ‹ไพ‹3๏ผšๆ—ฅๆœฌ่ชžใƒ†ใ‚นใƒˆใ‚ฑใƒผใ‚นใฎ่‡ชๅ‹•็”Ÿๆˆ

> ใ“ใฎ้–ขๆ•ฐใฎใƒ†ใ‚นใƒˆใ‚ฑใƒผใ‚นใ‚’pytestใงไฝœๆˆใ—ใฆใใ ใ•ใ„
> ใƒ†ใ‚นใƒˆๅใจใ‚ณใƒกใƒณใƒˆใฏๆ—ฅๆœฌ่ชžใงใ€assertๆ–‡ใฎใƒกใƒƒใ‚ปใƒผใ‚ธใ‚‚ๆ—ฅๆœฌ่ชžใซใ—ใฆใใ ใ•ใ„
class TestCalculateUnitPrice:
    """SESๅ˜ไพก่จˆ็ฎ—ใฎใƒ†ใ‚นใƒˆใ‚ฏใƒฉใ‚น"""

    def test_ๅŸบๆœฌๅ˜ไพกใŒๆญฃใ—ใ่จˆ็ฎ—ใ•ใ‚Œใ‚‹(self):
        """็ตŒ้จ“ๅนดๆ•ฐ0ๅนดใฎๅ ดๅˆใ€ๅŸบๆœฌๅ˜ไพกใŒใใฎใพใพ่ฟ”ใ‚‹"""
        assert calculate_unit_price(60, 0) == 60

    def test_3ๅนดไปฅไธŠใง15ใƒ‘ใƒผใ‚ปใƒณใƒˆไธŠไน—ใ›(self):
        """็ตŒ้จ“3ๅนดไปฅไธŠใง1.15ๅ€ใฎๅ˜ไพกใซใชใ‚‹"""
        assert calculate_unit_price(60, 3) == 69

    def test_ไธๆญฃใชๅŸบๆœฌๅ˜ไพกใงใ‚จใƒฉใƒผ(self):
        """ๅŸบๆœฌๅ˜ไพกใŒ0ไปฅไธ‹ใฎๅ ดๅˆใซValueErrorใŒ็™บ็”Ÿใ™ใ‚‹"""
        with pytest.raises(ValueError, match="ๅŸบๆœฌๅ˜ไพกใฏ1ไปฅไธŠ"):
            calculate_unit_price(0, 5)

ใƒˆใƒฉใƒ–ใƒซใ‚ทใƒฅใƒผใƒ†ใ‚ฃใƒณใ‚ฐ๏ผšๆ–‡ๅญ—ๅŒ–ใ‘ใƒปใ‚จใƒณใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐๅ•้กŒ

ใ‚ˆใใ‚ใ‚‹ๅ•้กŒใจๅฏพๅ‡ฆๆณ•

โš ๏ธ ๆ—ฅๆœฌ่ชž้–ข้€ฃใงใ‚ˆใใ‚ใ‚‹ใƒˆใƒฉใƒ–ใƒซ
็—‡็ŠถๅŽŸๅ› ๅฏพๅ‡ฆๆณ•
ๆ—ฅๆœฌ่ชžใŒ???ใง่กจ็คบใ•ใ‚Œใ‚‹ใƒญใ‚ฑใƒผใƒซๆœช่จญๅฎšexport LANG=ja_JP.UTF-8
ๅ‡บๅŠ›ใŒ้€”ไธญใงๅˆ‡ใ‚Œใ‚‹ใƒˆใƒผใ‚ฏใƒณไธŠ้™--max-tokens 8192 ใ‚’ๆŒ‡ๅฎš
ใ‚ณใƒกใƒณใƒˆใŒ่‹ฑ่ชžใซใชใ‚‹่จ€่ชžๆŒ‡็คบใชใ—response_language: ja ใ‚’่จญๅฎš
ใƒ•ใ‚กใ‚คใƒซๅ‡บๅŠ›ใงๆ–‡ๅญ—ๅŒ–ใ‘BOMไป˜ใUTF-8--encoding utf-8 ใ‚’ๆŒ‡ๅฎš
ๅ…จ่ง’ใ‚นใƒšใƒผใ‚นใงใ‚จใƒฉใƒผๆง‹ๆ–‡ใ‚จใƒฉใƒผใ‚จใƒ‡ใ‚ฃใ‚ฟใงๅ…จ่ง’ใ‚นใƒšใƒผใ‚นๅฏ่ฆ–ๅŒ–

Pythonใƒ•ใ‚กใ‚คใƒซใฎใ‚จใƒณใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐๆŒ‡ๅฎš

AntigravityใŒ็”Ÿๆˆใ™ใ‚‹Pythonใƒ•ใ‚กใ‚คใƒซใงๆ–‡ๅญ—ๅŒ–ใ‘ใŒ่ตทใใ‚‹ๅ ดๅˆใ€ใƒ•ใ‚กใ‚คใƒซๅ…ˆ้ ญใฎใ‚จใƒณใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐๅฎฃ่จ€ใ‚’็ขบ่ชใ—ใพใ™ใ€‚

# -*- coding: utf-8 -*-
"""ๆ—ฅๆœฌ่ชžใ‚ณใƒกใƒณใƒˆใ‚’ๅซใ‚€ใƒขใ‚ธใƒฅใƒผใƒซ"""

Python 3ใงใฏUTF-8ใŒใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใ™ใŒใ€ใƒฌใ‚ฌใ‚ทใƒผใ‚ทใ‚นใƒ†ใƒ ใจใฎ้€ฃๆบๆ™‚ใซใฏๆ˜Ž็คบ็š„ใชๆŒ‡ๅฎšใŒๅฟ…่ฆใชๅ ดๅˆใŒใ‚ใ‚Šใพใ™ใ€‚

Git้€ฃๆบๆ™‚ใฎๆ—ฅๆœฌ่ชžใƒ•ใ‚กใ‚คใƒซๅๅ•้กŒ

# Git ใงๆ—ฅๆœฌ่ชžใƒ•ใ‚กใ‚คใƒซๅใ‚’ๆญฃใ—ใ่กจ็คบ
git config --global core.quotepath false

# ใ‚ณใƒŸใƒƒใƒˆใƒกใƒƒใ‚ปใƒผใ‚ธใฎๆ–‡ๅญ—ๅŒ–ใ‘้˜ฒๆญข
git config --global i18n.commitEncoding utf-8
git config --global i18n.logOutputEncoding utf-8

ใƒญใ‚ฐๅ‡บๅŠ›ใฎๆ—ฅๆœฌ่ชžๅฏพๅฟœ

Antigravityใฎใƒญใ‚ฐใซๆ—ฅๆœฌ่ชžใŒๅซใพใ‚Œใ‚‹ๅ ดๅˆใ€ใƒญใ‚ฐใƒ•ใ‚กใ‚คใƒซใฎๆ–‡ๅญ—ใ‚ณใƒผใƒ‰ใ‚‚็ขบ่ชใ—ใพใ—ใ‚‡ใ†ใ€‚

# ใƒญใ‚ฐใฎๆ–‡ๅญ—ใ‚ณใƒผใƒ‰ใ‚’็ขบ่ช
file ~/.antigravity/logs/latest.log

# UTF-8ใงใชใ‘ใ‚Œใฐๅค‰ๆ›
iconv -f SHIFT_JIS -t UTF-8 input.log > output.log

ใพใจใ‚๏ผšAntigravityใ‚’ๆ—ฅๆœฌ่ชžใงๆœ€ๅคง้™ๆดป็”จใ—ใ‚ˆใ†

Google Antigravityใฏใ€้ฉๅˆ‡ใช่จญๅฎšใ‚’่กŒใˆใฐๆ—ฅๆœฌ่ชž็’ฐๅขƒใงใ‚‚ใ‚นใƒˆใƒฌใ‚นใชใๅˆฉ็”จใงใใพใ™ใ€‚ใƒใ‚คใƒณใƒˆใ‚’ๆŒฏใ‚Š่ฟ”ใ‚Šใพใ—ใ‚‡ใ†ใ€‚

๐Ÿ“‹ ๆ—ฅๆœฌ่ชžๅŒ–ใฎใƒใ‚งใƒƒใ‚ฏใƒชใ‚นใƒˆ
  1. โœ… LANG=ja_JP.UTF-8 ใ‚’็’ฐๅขƒๅค‰ๆ•ฐใซ่จญๅฎš
  2. โœ… config.yaml ใง response_language: ja ใ‚’ๆŒ‡ๅฎš
  3. โœ… AGENTS.md ใซๆ—ฅๆœฌ่ชžใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐ่ฆ็ด„ใ‚’่จ˜่ผ‰
  4. โœ… ๆŠ€่ก“็”จ่ชžใฏ่‹ฑ่ชžใฎใพใพใ€่ชฌๆ˜Žใฏๆ—ฅๆœฌ่ชžใงใƒ—ใƒญใƒณใƒ—ใƒˆใ‚’ๆ›ธใ
  5. โœ… Gitใฎๆ–‡ๅญ—ใ‚ณใƒผใƒ‰่จญๅฎšใ‚’็ขบ่ช

AIใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐใƒ„ใƒผใƒซใ‚’ๆ—ฅๆœฌ่ชžใงไฝฟใ„ใ“ใชใ™ใ“ใจใฏใ€SES็พๅ ดใงใฎ็”Ÿ็”ฃๆ€งๅ‘ไธŠใจๅทฎๅˆฅๅŒ–ใซใคใชใŒใ‚Šใพใ™ใ€‚AIใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐใƒ„ใƒผใƒซใฎๆฏ”่ผƒ่จ˜ไบ‹ใ‚‚ๅ‚่€ƒใซใ—ใชใŒใ‚‰ใ€่‡ชๅˆ†ใฎใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผใซๆœ€้ฉใชใƒ„ใƒผใƒซใจ่จญๅฎšใ‚’่ฆ‹ใคใ‘ใฆใใ ใ•ใ„ใ€‚

๐Ÿ“š SES BASE ใงใ‚ญใƒฃใƒชใ‚ขใ‚ขใƒƒใƒ—ใซๅฝน็ซ‹ใคๆƒ…ๅ ฑใ‚’็™บไฟกไธญ๏ผ

SESใ‚จใƒณใ‚ธใƒ‹ใ‚ขใฎใŸใ‚ใฎๅ˜ไพกไบคๆธ‰ใƒปใ‚นใ‚ญใƒซใ‚ขใƒƒใƒ—ใƒป่ปข่ทใ‚ฌใ‚คใƒ‰ใ‚’ๅคšๆ•ฐๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚

SES BASE ใƒˆใƒƒใƒ—ใธ โ†’

Link1 Link2 Link3

ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚

SESๆกˆไปถใ‚’ใŠๆŽขใ—ใงใ™ใ‹๏ผŸ

SES่จ˜ไบ‹ใ‚’ใ‚‚ใฃใจ่ชญใ‚€ โ†’
๐Ÿ—๏ธ

SES BASE ็ทจ้›†้•ท

SESๆฅญ็•Œๆญด10ๅนดไปฅไธŠใฎใƒกใƒณใƒใƒผใŒๅœจ็ฑใ™ใ‚‹็ทจ้›†ใƒใƒผใƒ ใ€‚SESไผๆฅญใงใฎๅ–ถๆฅญใƒปใ‚จใƒณใ‚ธใƒ‹ใ‚ข็ตŒ้จ“ใ€ใƒ•ใƒชใƒผใƒฉใƒณใ‚น็‹ฌ็ซ‹็ตŒ้จ“ใ‚’ๆŒใคใƒกใƒณใƒใƒผใŒใ€ๆฅญ็•Œใฎใƒชใ‚ขใƒซใชๆƒ…ๅ ฑใ‚’ใŠๅฑŠใ‘ใ—ใพใ™ใ€‚

๐Ÿ“Š ๆฅญ็•Œใƒ‡ใƒผใ‚ฟใซๅŸบใฅใ่จ˜ไบ‹ๅˆถไฝœ ๐Ÿ” IPAใƒป็ตŒๆธˆ็”ฃๆฅญ็œใƒ‡ใƒผใ‚ฟๅ‚็…ง ๐Ÿ’ผ SESๅฎŸๅ‹™็ตŒ้จ“่€…ใŒๅŸท็ญ†ใƒป็›ฃไฟฎ