åé¡
äŒç€Ÿã§ã¯Microsoft SQL Serverã䜿çšããŠããŸããããã®ããã«ããŒã¿ããŒã¹ã®ããã¯ã¢ãããè¡ãå¿ èŠããããšäºæ³ãããŸãããããã¯æåããŠããŸãã ããã¯æ¬¡ã®ããã«è¡ãããŸãã
- æåã®ã¹ã¯ãªããã¯ãå¿ èŠãªããŒã¿ããŒã¹ã®ããã¯ã¢ãããäœæããŸã
- 2çªç®ã®ã¹ã¯ãªããã¯ãããã¯ã¢ããã®ãããã©ã«ããŒã調ã¹ã7zipã§ã¢ãŒã«ã€ãããŸã
- 3çªç®ã®ã¹ã¯ãªããã¯ããããã®ããã¯ã¢ãããå€éšã¹ãã¬ãŒãžã«ä¿åããŸã
ç§ã®æèŠã§ã¯ãã¹ãŠãè«ççã§ããããã«æããŸãããããã«ã¯ããå¥åŠãªç¹ããããŸãã ãã°ããã®éããµãŒããŒäžã«ã¢ã¯ãã£ãã«ã¹ããŒã¹ãå æããŠãããã¡ã€ã«ãããããããããã®ãã¡ã€ã«ã¯äžèŠãšããŠåé€ãããŸãã ããããã¹ãŠæé©åãããã£ãã ããã«ãåœç€Ÿã«ã¯è£œåãããããã®ã¿ã¹ã¯ã®1ã€ã¯ããŒã¿ããŒã¹ãåæããããšã§ãããã¿ã¹ã¯ãæé©åããåæ§ã®ã³ãŒããéåžžã«äŸ¿å©ã§ãã
ãœãªã¥ãŒã·ã§ã³ãªãã·ã§ã³
SQLå§çž®ããã¯ã¢ãã
è¯ãã¢ã€ãã¢ã§ãããSQLã®ãã¹ãŠã®ããŒãžã§ã³ããµããŒãããŠããããã§ã¯ãªãããã®ããã¯ã¢ããã®ãµã€ãºã¯ãŸã æå°ã§ã¯ãããŸããã ãŸããã»ãšãã©ã®å Žåãããã¯ã¢ããã圹ã«ç«ããªããšããäºå®ãèæ ®ããŠãããå€ãã®å§çž®ãå¿ èŠã§ãã ããããå©äŸ¿æ§ã®é¢ã§çŽ æŽããããªãã·ã§ã³ã
Azureã§ã®ããã¯ã¢ãã
2012幎以éãSQL Serverã¯Azureã§ã®ããã¯ã¢ããããµããŒãããŠããŸãã ç¬èªã®ãµãŒãã¹ãURLãšããŠæå®ãããã®äžã§ãã¹ãŠãå®è¡ãããšããã¢ã€ãã¢ããããŸããã ããããéåžžã«è€éã§æ±ãæè¡ãç»å ŽããŸããã ãŸããSQLã®ããŒãžã§ã³ã¯ããªãæ°ããã¯ãã§ãã
ãã€ãå ã®ããã¯ã¢ãã
çŽ æŽãããã¢ã€ãã¢ã§ããã2005幎以éãSQLã¯ãµããŒããããªããªããŸããã
VDIçµç±ã®ããã¯ã¢ãã
ãã€ãã«ä»£ãããã€ã¯ããœããã®ç§å¯æè¡ã ãªãç§å¯ã§ããïŒ ãããŠããã®ããã¥ã¡ã³ããèŠã€ããŠãã ããã ããã¯å¥ã®ã¯ãšã¹ãã§ãã Microsoftã®Webãµã€ãã«ã¯ããã¥ã¡ã³ãããããŸãããããããããããã§ãããæ確ãªãã®ã¯ãããŸããã ããã¯VDIã«ã€ããŠã®ããã«èŠããŸãããVSSã«ã€ããŠã®ããã§ãã ããŸããŸãªãµã€ãã§ã®è»¢èŒãšè±ªè¯ãªäœ¿çšäŸããããŸãã
å®éãæãç解ããããããã¥ã¡ã³ãã¯ã ãã®ãªã³ã¯ã® chmãã¡ã€ã«ã«ãããŸã
ãã®ãã¹ãŠã®ããã¥ã¡ã³ãã®åŸãçŽç²ã«ãµãŒãã¹ãã¯ãããžã®ãããªæèŠããããŸãããã ä»ã«äœãèŠã€ãããŸããã§ããã ããã«ã2005幎ã®ããŒãžã§ã³ïŒ2000幎以éã§ããããã€ãã®å¶éã¯ãããŸãïŒä»¥éããã¹ãŠã®ãšãã£ã·ã§ã³ã§ãã¹ãŠã®SQLã«åãçµãã§ããŸãã
VDIã䜿çšãã
äœãããå¿ èŠã¯ãããŸããã圌ãã¯ããã¥ã¡ã³ããåããã¢ãŒãã£ãåããããã¥ã¡ã³ããé ããã°ãŒã°ã«ã§ãã®æè¡ãç 究ããããã«éããŸããã
ã¢ãŒãã£ã¯ããã¥ã¡ã³ããç 究ããŠããŸãã
ãã®æè¡ãæãã€ãããããããããã§ãããïŒ
- SQLã«ç»é²ãããä»®æ³ããã€ã¹
- ãã©ã¡ãŒã¿ã䜿çšããŠãã®ããã€ã¹ã«ããã¯ã¢ããã³ãã³ããäœæããŸã
- 䜿çšæ¹æ³ã«ã€ããŠãŠãŒã¶ãŒã«æ瀺ãæžããŸã
- ?????
- å©çïŒ
ããã¯è«ççã§ãããMicrosoftã¯ç°¡åãªæ¹æ³ãæ¢ããŠããŸããã 圌ãã¯æ¬¡ã®ã¹ããŒã ãæãã€ãã
- ã¯ã³ã¿ã€ã ããã€ã¹ãSQLã«ã©ã³ãã ãªååã§ç»é²ããŸãïŒéåžžã¯å šå¡ãã¬ã€ãã䜿çšããŸãïŒ
- SQLããã®ããŒã¿ãåŸ æ©ããŠããŸã
- åæã«ãå¥ã®ã¹ã¬ããã«ãã£ãŠãã®ããã€ã¹ãžã®ããã¯ã¢ãããäœæããŸãïŒèªåã§ååãçºæãããããç§ãã¡ã ããåŒã³åºãããšãã§ããŸãïŒ
- SQLããŒã¹ããããŒã¿ãååŸãã
- ãã¹ãŠãååŸããããã€ã¹ãéããŠãããŒã¿ããŒã¹ã®ããã¯ã¢ããã³ãã³ããçµäºããŸã
ãã¡ããããã¹ãŠããçŽ æŽããããCOMã§æžãããŠããã®ã§ã人çã¯èèã®ããã§ã¯ãªãã次ã®å¶éã§å³ä»ããããŠããŸãã
- SQLãšã¢ããªã±ãŒã·ã§ã³ã¯åããµãŒããŒäžã«ããå¿ èŠããããŸãïŒããããšããç°ãªãSQLã€ã³ã¹ã¿ã³ã¹ããµããŒããããŠããŸãïŒ
- SQLãŠãŒã¶ãŒã¯sysadminã§ãªããã°ãªããŸããïŒé©åºŠïŒ
- ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŠãããŠãŒã¶ãŒã¯ã管çè ãŸãã¯ã°ããŒãã«ãªããžã§ã¯ãã®äœæã®éæ³ã®æš©éãæã€ãŠãŒã¶ãŒã§ããå¿ èŠããããŸãã
æåŸã®ãã€ã³ãã¯ãã詳现ã§ããããã¥ã¡ã³ãã«ã¯æ¬¡ã®ãããªåäœãã¬ãŒãºããããŸãã
CreateExïŒããã³CreateïŒåŒã³åºãã¯ãã¯ã©ã€ã¢ã³ãããã»ã¹ã®ããã»ã¹ãã³ãã«ã®ã»ãã¥ãªãã£DACLãå€æŽããŸãã ãã®ãããããã»ã¹ãã³ãã«ã®ä»ã®å€æŽã¯ãCreateExã®åŒã³åºãã§ã·ãªã¢ã«åããå¿ èŠããããŸãã CreateExã¯ãCreateExãžã®ä»ã®åŒã³åºãã§ã·ãªã¢ã«åãããŸãããå€éšåŠçã§ã·ãªã¢ã«åããããšã¯ã§ããŸããã SQL ServerãµãŒãã¹ãå®è¡ããŠããã¢ã«ãŠã³ããžã®ã¢ã¯ã»ã¹ãèš±å¯ãããŸãã
ãã©ãŒã ã®å žåçãªãã¬ãŒãºïŒ æè ã®ããã«æãã ã ã€ãŸã ãã¹ãŠã®èšèã¯ç解ã§ããŸãããæå³ã¯ãããŸããã å®éãäžèšã§æžããããã«ã ã°ããŒãã«ãªããžã§ã¯ãã®äœææš©éãå¿ èŠã§ããããã¯ãããã©ã«ãã§ç®¡çè ããããã¯ãŒã¯ãµãŒãã¹ãããã³ããŒã«ã«ãµãŒãã¹ã䜿çšã§ããŸãã ã€ãŸã ååãšããŠããã¹ãŠã¯ãµãŒãã¹ããéå§ã§ããŸããã管çè ã¯éå§ã§ããŸããïŒéåžžãããã¯ã¢ãããäœæãããŠãŒã¶ãŒã¯ç®¡çè ã§ã¯ãããŸããïŒã ãã ããã°ã«ãŒãããªã·ãŒãä»ããŠããã³ãã«ã«ãã£ãŠæš©éãä»äžã§ããŸãïŒæå®ãããŠãŒã¶ãŒã«æš©éãä»äžãããŠãŒãã£ãªãã£ã§ã³ãã³ããäœæããŸãããã€ãŸãã管çè ã®äžã§çºè¡ãããããäœæ¥ãç¶è¡ã§ããŸãïŒã æ®å¿µãªããã圌ãã¯UACã«å¯ŸåŠã§ããŸããã§ããã 管çè ã®äžã§ããã°ã©ã ãæ瀺çã«å®è¡ããããšãå¿ããå Žåããããªãæ¹æ³ã§ãæš©å©ãååŸã§ããŸããã ãããã§ã¹ãã§ç®¡çè æš©éãå¿ èŠã§ããããšãæ瀺çã«ç€ºãããšã¯ã§ããŸããããååãšããŠãããã°ã©ã ã管çè ãšããŠäœ¿çšããããšã¯æ©èœããŸããã ãããŠãç§ã¯ãããã
ç§ãã¡ã¯ãããç解ããå ãžé²ã¿ãŸããã ã³ãŒãã®äžéšãæžããŠäœããã¹ããã詳现ã«ãã€ã³ãããããšã¯ããŸãããããã¯èª°ã«ãšã£ãŠãé¢çœããªãããã§ãã :)éåžžãGetCommandãCompleteCommandã®åœ¢åŒã®å®æçãªãµã€ã¯ã«ãããããã®éäžã§çµæãåŠçãããŸãã .NETã§ãã®COMã䜿çšãããšãã«åºãŠãããã¥ã¢ã³ã¹ã®äžéšã玹ä»ããŸãã
åæ
çãªäœè«
ç§ãã¡ãã©ã®ãããªãŠãŒãã£ãªãã£ãããããã£ãã®ããå®å
šã«å¿ããŠããŸããŸããïŒãããŠçµæãšããŠããŸããïŒã ããŒã¿ããŒã¹ãããã«ã¢ãŒã«ã€ãã«ããã¯ã¢ãããããã£ãã®ã§ãã ãã¬ãŒã³ããžãããŒã ãã¡ãããããããã®å埩ã§ãã ã€ãŸã ç¬èªã®ç¹å¥ãªãã¡ã€ã«åœ¢åŒã¯ãããŸããã ãã®ãŠãŒãã£ãªãã£ãªãã§ããã¯ã¢ãããã¢ã³ããã¯ããŠåŸ©å
ããããæ¢åã®ããã¯ã¢ãããããã¯ããŠãããŠãŒãã£ãªãã£ã§åŸ©å
ããããšãã§ããŸãã ãã¡ãããæåã®å埩ã§åé¡ãçºçããŸãããéåžžãå§çž®çšã®ãã¹ãŠã®ã©ã€ãã©ãªãŒã2GBãè¶
ãããã¡ã€ã«ããã€ãžã§ã¹ãããããã§ã¯ãããŸããããã®ããã7zipãšãã®ã©ãããŒSevenSipLibã§åæ¢ããŸãã ã ãã®çµæã7zãzipãbz2ãxzãgzã§ã¢ãŒã«ã€ãããæ©äŒãåŸãŸããã 確ãã«ããã®ã¢ãŒãã®7zipã¯COMã§ãæ©èœããŸã...ããã«ããããããªãåã³ãããããããŸããã
çŽ æŽããããšæããã
ã¯ãããã¹ãŠã.NETã§äœæããããšã«ããŸããã å®éãCOMã§ã®ããŒã·ã£ãªã³ã°ã¯éåžžã«èš±å®¹ããïŒã·ã¹ãã ã©ã€ãã©ãªã®ååã¯åºæ¬çã«COMã®ã©ãããŒã§ãïŒãåé¡ã¯ãªããšæãããŸããã ãããããããã¯ãã¹ãŠã®æ®µéã§æåéãçºçããŸããã
ãã®éšåã¯ããã§ã«ããã«ééãã人ã«ã¯ããããæããã§ãããééããŠããªã人ã«ã¯èå³æ·±ããããããŸããã
ãªããžã§ã¯ãã宣èšãããšããã¡ãœããã®ååã¯éèŠã§ã¯ãããŸãã
éèŠãªã®ã¯é åºã ãã§ãïŒããã¯DllImportå±æ§ãæã€WinAPIã¡ãœãããšã¯ç°ãªããŸãïŒã ã€ãŸã 誀ã£ãŠ2ã€ã®ã¡ãœãããå ŽæïŒç¹ã«CreateãCreateExãªã©ã®é¡äŒŒã®ã¡ãœããïŒã§æ··åããå Žåããã¹ãŠãæ©èœããŠããããã«èŠãããšãã«çŽ æŽããããšã©ãŒããã£ããã§ããŸãããã©ããããããããã§ã¯ãããŸããã
ããã«æ³šæããŠãã ããã
.NETãå®è¡ãã¹ããŒããŸã
COMã§ã¯ãã¡ãœããã¯éåžžHRESULTãè¿ããŸãã ãšã©ãŒã³ãŒãã ãŸãããŸãã¯ãã¹ãŠãé 調ã§ããã°ã0çªç®ã®ã³ãŒãã .NETã¯ãããå©çšãããŒã以å€ã®ã³ãŒãã®å Žåãæ¢ã«ã³ãŒããèŠãŠåŠçã§ããCOMExceptionãã¹ããŒããŸãã 䟿å©ããã«æããŸãããå®å šã§ã¯ãããŸããã ããã«ãå€ã.NETãæèŒãããµãŒããŒã®1ã€ã§ãé¡èãªãã°ãçºèŠãããŸããã ãã®å®è¡ãçºçãããšãïŒããšãã°ãããã¥ã¡ã³ãã«ãããšéåžžã¯éåžžã®ç¶æ ã§ãïŒãéããããã€ã¹ã«åãæ¿ãããšãExecutionEngineExceptionãèŽåœçãªã¢ããªã±ãŒã·ã§ã³ã¯ã©ãã·ã¥ã§ã¯ã©ãã·ã¥ããŸããã Googleã¯æŽæ°ããã°ã©ã ããœãªã¥ãŒã·ã§ã³ãšããŠã€ã³ã¹ããŒã«ããããšãææ¡ããŸããããäžè¬çã«ãããã¯ãŠãŒãã£ãªãã£ã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãªãããã次ã®ããã«åé¡ãåé¿ããŸããïŒãšã©ãŒãçºçããå Žåã«ã¢ã¯ã·ã§ã³ãã¹ããŒãããåã«ãšã©ãŒã³ãŒããè¿ãPreserveSigå±æ§ãåCOMã¡ãœããã«è¿œå ããŸããã ãã®å Žåãã²ã©ãåé¡ã¯çºçããŸããã§ããã ããŠãã³ãŒãã¯ããè«ççã«ãªããŸããã
STAThreadããã³MTAThread
.NETéçºè ã«ãšã£ãŠãããã¯ã¹ã¿ãžãªãMainã¡ãœããã«è¿œå ããäœããã®éæ³ã®å±æ§ã§ãã 誰ãããããäœã§ããããç解ããããšãããšããã®ã·ã³ãã«ãã§æ¬¡ã®ãšã¬ã¬ã³ããªããã¹ããåãåããŸãã
STAThreadAttributeã¯ãã¢ããªã±ãŒã·ã§ã³ã®COMã¹ã¬ããã¢ãã«ãã·ã³ã°ã«ã¹ã¬ããã¢ããŒãã¡ã³ãã§ããããšã瀺ããŸãã ãã®å±æ§ã¯ãWindowsãã©ãŒã ã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ãšã³ããªãã€ã³ãã«ååšããå¿ èŠããããŸãã çç¥ãããšãWindowsã³ã³ããŒãã³ããæ£ããæ©èœããªãå ŽåããããŸãã å±æ§ãååšããªãå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãã«ãã¹ã¬ããã¢ããŒãã¡ã³ãã¢ãã«ã䜿çšããŸãããããã¯Windowsãã©ãŒã ã§ã¯ãµããŒããããŠããŸããã
翻蚳ã®æå³ïŒç·ãããã¯å¿ èŠã§ãã
ãã¡ãããããã¯ãã¡ããå¿ èŠã§ããã¢ããªã±ãŒã·ã§ã³ãzipã§ã¢ãŒã«ã€ããããšããã¹ãŠãããŸããããŸããã7zã䜿çšããããšãããšããã¹ãŠããã³ã°ããŠããŸããŸãã åé¡ã¯äœã§ããïŒãããã®å±æ§ã¯æ¬åœã«äœãæå³ããŸããïŒ
ã€ãŸããæå³ã¯æ¬¡ã®ãšããã§ãã COMã¯ãããã«äœ¿çšã§ãããã«ãã¹ã¬ããã§ãã ã€ãŸã ããŸããŸãªãªããžã§ã¯ããããŸããŸãªã¹ããªãŒã ã§ããŒã¿ãåä¿¡ããã³è¿ããŸãã ããããkrivorukyã³ãŒãïŒãŸãã¯Windowsãã©ãŒã ïŒã¯ããã®ãããªè€éãªæŠå¿µããã¹ã¿ãŒã§ããªãããããã¹ãŠã®COMåŒã³åºããå éšãã¥ãŒã«ã©ããããåäžã®ã¹ã¬ããã§å®è¡ããŸãã ãã«ãã¹ã¬ããã®åé¡ã¯ãããŸããïŒ ããããæã ã¯å£®å€§ãªãããããã¯ã§ç«ã¡åŸçããŠããŸãã ããããããããã¯ã§ããããããããã¯ã.NETã®æ¬è³ªã®ã©ããã«ããããšãç解ããã®ã«ã©ããããã®è²»çšãããããŸãããïŒ
ãããã幞éãªããšã«ãã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ããããMTAThreadå±æ§ããã³ã°ãããŠèœã¡çããŸããã ãããããªãã«åããªãå Žå...ãããŠèŠãã¿ãŸãã åé¿çããããŸãã
ãªããžã§ã¯ãã®äœæã¯å¥åŠãªããšããããŸã
.NETã¯äŸ¿å©ãªã©ãããŒãäœæããããããªããžã§ã¯ãã®ã€ã³ã¹ã¿ã³ã¹åã¯ã·ã³ãã«ã§æçœã«èŠããŸãã
var obj = new ClientVirtualDeviceSet();
ãããŠã32ãããWindowsã§ãã¹ãŠãå®è¡ããããšãããŸã§ããã¹ãŠãæ©èœããŸããã ãããŠããªããžã§ã¯ãã®äœææã«åºãŸããã ããŒã¿åãšããŒã·ã£ãªã³ã°ã®åé¡ïŒé©åãªãµã€ãºã§ã¯ãªãïŒãæ³å®ããã®ã¯è«ççã§ãããããã¹ãŠãæ£åžžã§ããã 圌ãã¯åé¡ãäœã§ããããæ£ç¢ºã«èŠã€ããã CoCreateInstanceãä»ããŠå€ãè¯ãæ代ã«ãªããžã§ã¯ããäœæããŸããã
object comObject; var errorCode = CoCreateInstance( CLSID_MSSQL_ClientVirtualDeviceSet, IntPtr.Zero, CLSCTX_INPROC_SERVER, CLSID_MSSQL_ClientVirtualDeviceSet, out comObject);
ãã®ä»
ç§ã¯ãã¹ãŠã®ããããªããšãããŒã·ã£ãªã³ã°ãæ§é ã®æ£ããã¬ã€ã¢ãŠãã§èª¬æããŸãããååãšããŠããããã¯äžåºŠæãèµ·ããããŠããã觊ããããŸããã ãã€ã³ã¿ãåŠçããã®ãé£ããå Žåã¯ãIntPtrãæå®ãããã³ã§ç®çã®ã¿ã€ãã«å€æããŠãã ããã .NETã«é©åãªå±æ§ãéžæãããããç°¡åã§ã
çŽ7z
SevenZipSharpã«ã€ããŠããæ£ç¢ºã« ããã¯å®å šãªã©ãããŒïŒéåžžã«è¯ãïŒã§ããããã圌ã«ã€ããŠãã§ãã
æ··ä¹±ãæãå¯èœæ§ã®ããæåã®ããšã¯ãã©ã€ãã©ãªããã¡ã€ã«ïŒã¹ããªãŒã ã§ã¯ãªãïŒãæäœããããã«ç ãæŸãŸãããŠããããšã§ãã ã€ãŸã .NETã§ã¯ãã³ã³ãã¬ããµãŒã¯éåžžãæžã蟌ã¿å¯èœãªã¹ããªãŒã ã®ã©ãããŒã§ããããŠãŒã¶ãŒã¯ããã«æžã蟌ã¿ãå§çž®ãããããŒã¿ãå§çž®ããŠå éšã¹ããªãŒã ã«è»¢éããŸãã ããã«å¯ŸããŠãSevenZipSharpã§ã¯ãã¹ããªãŒã ããããŒã¿ãèªã¿åããå éšã¹ããªãŒã ã«æžã蟌ã¿ãŸãã äžè¬çã«SQLãããèªãã ãšããäºå®ãèæ ®ã«å ¥ãããšãã¢ã³ãã¯éåæã¹ããªãŒã ãããã¯ãã€ãã³ãã®åŠçã®æ¥œããæéãããããäžããŸãã...äžè¬çã«ãã¢ããã¥ã¢ã®ããã«:)
åã³ãã¡ã€ã«ã«é¢é£ãã2ã€ç®ã¯ãã©ã€ãã©ãªãå®éã«ããŸããŸãªæ¹åã§ã¹ããªãŒã ã«æ²¿ã£ãŠå®è¡ããããšã奜ããšããããšã§ããããã¯äžè¬çã«ã¯è¯ãããšã§ãããã¹ããªãŒã ãèš±å¯ããªãå ŽåïŒstdoutãªã©ïŒãåé¡ãå§ãŸããŸãã ååãšããŠãgzipãxzãgzipã7zã«ã€ããŠãããåé¿ããããšãã§ããŸããïŒãã®åŸãAnyaã¯ç§ãå«ãå§ããŸããïŒãããããzipã«ã¯å°é£ããããŸããã ãããŒæ§é ã§ã¯ãããèš±å¯ãããŠããŸããã stdinããã®èªã¿åãã§ã¯ããã«æªãããšã«ãå³æžé€šã¯ååãšããŠãããè¡ãããšãã§ããŸããã ãããŸã§ã®ãšããããã®æ©äŒããããããªããã°ãªãããstdinããã®éå§çž®ããã¯ã¢ããã®ã¿ãèªã¿åãæ©èœã®ã¿ãæ®ããŠããŸããã
ãŸãšã
ãã®ãã¹ãŠã®é åçãªæ¢æ±ã®åŸãå ã®ååãPackDbã§ãããŠãŒãã£ãªãã£ãååŸããŸããããã®ãŠãŒãã£ãªãã£ã¯ãããŒã¿ããŒã¹ãã¢ãŒã«ã€ãã«çŽæ¥ããã¯ã¢ãããããããã埩å ããããŒãã¹ãšããŠãäžæãã¡ã€ã«ãäœæããã«ããŒã¿ããŒã¹ãã³ããŒããŸãã ãªããããå¿ èŠãªã®ã§ããïŒ ãã¹ãããŒã¿ããŒã¹ã®å Žåãåç §ããŒã¿ããŒã¹ãæ°ããããŒã¿ããŒã¹ã«ã³ããŒããã¡ã€ã³ããŒã¿ããŒã¹ã«è§Šããã«ãã®ããŒã¿ããŒã¹ã§ãã¹ãããå¿ èŠãããå Žåã æš©å©ã®çºè¡ãããã¯ã¢ããã®æ£åœæ§ã®æ€èšŒãã¢ãŒã«ã€ãã䜿çšããªãå¯èœæ§ãªã©ãå¿ èŠããªããã°bakãã¡ã€ã«ãååŸããã ãã§ãã
ããããªãããã®æ¢æ±ãè¡ã£ããšããŠããããããªããç°åžžãªããã¯ã¢ãããäœããããªããããªãã¯èªåã§æ±ºããã ããããç§ã®æèŠã§ã¯ãããã¯éåžžã«ãããããä»äºã§ãã ãã¥ã¢ã³ã¹ãå€ãããŠããã¹ãŠãçŸãããªããŸããã