ãŸã第äžã«ãç§ã«ãšã£ãŠãSailfish OSã§ã®ãã®è©±ã¯2016幎4æ1æ¥ã«å§ãŸããŸããã åè«ã§ã¯ãªããåŸ ã¡ã«åŸ ã£ãŠãããã€ãè ã«æ±ããã®ã¯ãã®æ¥ã§ããã OSãæãäžããããã¥ã¢ã«ãèªã¿ããªã¿ã¯ã®èšäºãããã€ãå ¬éããå ¬åŒã¹ãã¢ã§æåã®ã¢ããªã±ãŒã·ã§ã³ãå ¬éããŸãã
äžåºŠãèªå® ã«åº§ã£ãŠHabrãèªãã§ãã»ã€ã«ãã£ãã·ã¥OSãµããŒã¹ã¯ãŒã«ã«ã€ããŠã®åç¥ãèŠãŠãããã«ããã«è¡ãããšã«æ±ºããŸããã æ°é±éåŸãç§ã¯ãã§ã«ã€ãããªã¹ã®ã¡ã€ã³ã¹ããªãŒãã§ãããŠãããŒã·ããã«ã€ã«ç«ã¡ãŸããã
åçã¯ã¯ãªãã¯å¯èœã§ãã
ãªããŠçŽ æµãªå Žæã ã£ãïŒ ãªããšéçºè ã®ã³ââãã¥ããã£ïŒ ä¿¡ããããªãã»ã©ã§ããïŒ ã¢ãšã ...ããŠãææ ãèã«çœ®ããŠãé çªã«åããŸãããã
7æ27æ¥
ç¥ãåãã®æ¥ãå ¥éã¹ããŒãã®æ¥ã宿æ³ã®æ¥ã§ãã...
å¿«é©ãªããã«ã«ãŒã ã«åå è ã決ããŸããïŒ
éšå±ã«ã¯ãã³ãŒãã£ã³ã°ã®ãã³ã¢ãéã®çãäŒæ©ã«å¿ èŠãªãã¹ãŠã®ãã®ããããŸããïŒããããã·ã£ã¯ãŒããšã¢ã³ã³ãããŒãã«ã ç§ã®éšå±ã§ã®å¯äžã®ããšã¯ã2èãš0èïŒïŒïŒã®æ€ åçšã®4ã€ã®ãã€ãã¹ã¿ã³ãã§ããã2ã€ã®ãäœåãªããã€ãã¹ã¿ã³ãã®äœ¿çšæ¹æ³ãæšæž¬ãããšæããŸãã
æ€
åããªãã£ãçç±
ã€ãããªã¹å€§åŠã®ä»£è¡šãç§ãã¡ã«èª¬æããããã«ããã®ãã£ã³ãã¹ã¯ãŸã åŠçã®ããã«å®å
šã«æºåãããŠããŸããã ããŒããããããç§ã¯ãã®ãããªãæªå®æãã«äœãã§ããã§ãããã
ç§ã¯é£äººãšç¹ã«å¹žéã§ãããå°æ¬ãããŠããå šå¡ãšäžç·ã«æ®ãããŸãããSailfishOS
ååŸ3æãŸã§ã«ãå šå¡ãè¬å 307ã«éãŸããå®éã«ç§ãã¡ã¯æ¬¡ã®48æéçããŸããã
玹ä»ã®ã¹ããŒããSailfish OSã«é¢ããäžè¬çãªèšèããã·ã¢ã§ã®å±æãããã³ãOpen Mobile Platformãã®åœ¹å²ãèããŸããã åŠé·ã¯ã€ãããªã¹ã§å匷ããããã«åŒã³ãããŸããã
ãã®åŸãããŒãããŒã¯æ¬¡ã®ããã«è©±ããŸããã
Alexander Kiselev - Sailfish OSãžã®VipNetãœãªã¥ãŒã·ã§ã³ã®åã蟌㿠ã 圌ãã¯ãäŒæ¥åžå Žã«éåžžã«äººæ°ã®ãããœãªã¥ãŒã·ã§ã³ã ãšèšããŸãã
Georgy Martirosov- å®å šãªè¡æãã©ãŠã¶ ã èå³æ·±ãããšã«ã圌ãã¯æ€çŽ¢ãè¡ããŸããããæçµçã«ã¯ãã©ãŠã¶ãäœæããŸãã...ãŸããå人çã«ã¯ãæšæºãã©ãŠã¶ã®ã©ã€ãã«ãSailfish OSã«ç»å Žãããã©ããã¯æ°ã«ããŸããã
Egor LevichevãAlexander Sergeantov - Sailfish OSãã©ãããã©ãŒã ã®Active Sync ã ãšãŠãé¢çœã人ã å®è£ ã®å質ã«é¢ããŠã¯ãéåžžã«å®å®ããŠåäœããå°éã®ããããªãŒã䜿ãæããããã¹ãŠãã·ã¹ãã ã«ãã€ãã£ãã«çµ±åããããAndroidãŠãŒã¶ãŒãããããŸããããšãŠãŒã¶ãŒããèããŸããã
ããŒã¿ãŒãã«ããã£ã¬ - ã¢ãã€ã«ãã€ã¡ã³ããã£ãã·ã¥ã¿ãŒããã«ïŒSailfish OSïŒ
å€æ¹ãç§ãã¡ã¯ã€ãããªã¹ã®è¡ã®ãã¢ãŒã«é£ããŠè¡ãããŸããã
ã€ãããªã¹ã«ã€ããŠ
èšäºããããããªãããã«ãç°¡åã«çããŸããéœåžã¯ãŸã çºå±ããŠãããçŸåšçŽ2,000人ã®äœæ°ãäœãã§ããŸãããå¿«é©ãªç掻ã«å¿
èŠãªãã®ã¯ãã¹ãŠæã£ãŠããŸãã ãã®ããããžã§ã¯ãããå°æ¥ã©ã®ãããªããšã«ã€ãªããããèŠãŠã¿ãŸããããã幞éãç¥ããã¡ã€ã³ãããã¯ã«æ»ããŸãã
7æ28æ¥ã29æ¥
ãã®æ¥ãããç·åŒµã¯ææ°é¢æ°çã«å¢å ãå§ããŸãïŒ
09.00ããè¬çŸ©ãå§ãŸããŸããã
Kirill Chuvilin ïŒã³ãã¥ããã£é¢ä¿ã®ãªãŒãã³ã¢ãã€ã«ãã©ãããã©ãŒã ã®ä»£è¡šã MaemoWorld.ruã®åµèšè ïŒ-Sailfish OS SDKã®æŠèŠ + Sailfish OS ã®ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã®éçºã«é¢ããã¯ãŒã¯ã·ã§ãã ã 圌ã¯ãSailfish OSã®ã€ã³ã¿ãŒãã§ã€ã¹ãæ£ããäœæããæ¹æ³ã«ã€ããŠãSDKã®æ©èœã«ã€ããŠè©±ããŸãããOSã¯ä»ã®OSãšæ¯èŒããŠæå©ã ããã§ãã
Andrey Vasiliev ïŒ FRUCTã®ä»£è¡šè ïŒ- ã¡ã€ã³ã®Sailfish OS APIã®æäœã«é¢ãããã¹ã¿ãŒã¯ã©ã¹ ã ããã¯ãGPSã®ããã«ããããŸããŸãªã»ã³ãµãŒã®å¶åŸ¡ãé³ã®åçãåçã®æ®åœ±æ¹æ³ã«é¢ããèå³æ·±ãã¬ããŒãã§ããã
Pavel Goryansky ïŒOpen Mobile Platformã®ä»£è¡šè ïŒ -Sailfish OSã®ããŒããŠã§ã¢é©å¿ ã Pavelã¯ããµããŒããããŠããªãããã€ã¹ã§Sailfish OSããååŸãããæ¹æ³ãããã«å¿ èŠãªãã®ãªã©ã«ã€ããŠè©±ããŸããã
Andrey Kozhevnikov ïŒå¥åCodeRusãã³ãã¥ããã£ä»£è¡šïŒ-
Petr Vytovtov ïŒå¥åOsanweãVkontakteã®ãã€ãã£ãã¯ã©ã€ã¢ã³ãã®éçºè ãWi-Fiãããã¯ãŒã¯ã¢ãã©ã€ã¶ãŒãã³ãã¥ããã£ä»£è¡šïŒ- é³å£°èªèãµãŒãã¹ã®æäœã«é¢ãããã¹ã¿ãŒã¯ã©ã¹ ã 圌ã¯ãSailfish OSã§Yandex Speechkitã䜿çšããæ¹æ³ã説æããŸããã
Alexey Andreev ïŒãµã³ã¯ãããã«ãã«ã¯ã®Sailfish OSããã«ãœã³ã®åè ã semiot.ruã®ã¡ã³ããŒïŒã¯ã IoTããã€ã¹ã®æäœã«é¢ãããã¹ã¿ãŒã¯ã©ã¹ã§ã ã ã»ãã³ãã£ãã¯Webãæ±ãããœãŠã«ã¡ã€ããã«åºäŒããŠããããã£ãã§ãã
19.30ã«ãããã«ãœã³ã®ã¢ã€ãã¢ã®ãã¬ãŒã³ããŒã·ã§ã³ãå§ãŸããŸããããã¡ããã次ã®ãããžã§ã¯ããå®è¡å¯èœã§ããããšãå€æããŸããã
FriendlyARMããŒã -Sailfish OSãéçºè åãã®ããŒãã«é©åããããããžã§ã¯ãã
MyFirstProgram -TRICãLego NXTãªã©ã®ã¹ããŒããã©ã³ãšãããããã¶ã€ããŒã®çžäºäœçšã®ããã®ããŒã«ãããã
ããããªãŒçµ±èš -ããããªãŒæ¶è²»ãç£èŠããããã®ãŠãŒãã£ãªãã£ã
GEO-location share-ããã€ã¹éã®äœçœ®ããŒã¿ã®äº€æã
ã®ã¿ãŒãã¥ãŒã㌠- ã®ã¿ãŒçšãã¥ãŒã㌠ã
CryptoFish-ãã¹ã¯ãŒãã§ãã¡ã€ã«ãæå·åããŸãã
éå€åè» -YandexããŒã¿ã«åºã¥ãåè»ã®ã¹ã±ãžã¥ãŒã«ã
å€©æ° -å Žæã«åºã¥ã倩æ°æ å ±ã
ãã©ãŒ -å¿çã²ãŒã ããã©ãŒãã«åºã¥ããããŒã«ãã¬ã€ã³ã°ã²ãŒã ã
AppCleaner-äžèŠãªããŒã¿ãšã¢ããªã±ãŒã·ã§ã³ã®åé€ã
WatchFox-ãŠãŒã¶ãŒã®ããŒã ã»ã¯ã·ã§ã³ã®æå·åã
CryptoContainer-ã³ã³ãããŒå ã®ãã¡ã€ã«ã®å®å šãªã¹ãã¬ãŒãžã
ã¿ã€ã ã©ãã¹ã¯ãåçããããªã®ã€ã³ã¿ãŒãã«æ®åœ±ã®ããã®ã¢ããªã±ãŒã·ã§ã³ã§ãã
ã¯ããä»æ¥ã¯æ¥é èŸãcryptoããä»ããããŒãã¯æµè¡ããŠããŸãããæ·±å»ãªããšã«ãå€ãã®äººãã»ãã¥ãªãã£ã®ãããã¯ãå¿é ããŠããŸããã
ç§ã®ããŒã ã¯ãããŒã«ãã¬ã€ã³ã°ã²ãŒã Killerã«åºã¥ããŠã²ãŒã ãäœæããããšã«ããŸããã å®è£ æ©èœã決å®ããŸããïŒ
-被害è ã¯ãµãŒããŒäžã§éžæãããŸãïŒããŒã ã¯Androidåãã®Killerã®äœæè ã®1人ãå«ããããããµãŒããŒã¯æ¢ã«æºåãã§ããŠããŸããïŒã
-ç ç²è ã®åçãšååãååŸããããã®Vkontakteã§ã®èŠæ±ãšæ¿èªã
-Bluetoothçµç±ã®ãã·ã§ãããã䜿çšããŠãç ç²è ããã殺ããã
-GPSã䜿çšããŠãããã°ã©ã ã¯Googleãããã§è¢«å®³è ã瀺ããŸãã
-ãã¬ã€ã€ãŒã®äœçœ®ã远跡ããããŒã¢ã³ã
äžè¬çã«ãèšç»ã¯çŽ æŽãããã£ã...
ç§ãã¡ããã£ãããšããŸãã¯ããã«ãœã³ã«åããªãã£ãããçŽ æŽãããçµéšãåŸãæ¹æ³
ç§ã®ããŒã ã§ã¯UIãæ åœããŠããã®ã§ãèšäºã®äžéšã圌ã«æ§ããŸãã ãŸãããã¹ãŠã®ããŒãžã®ããããã®ç»åïŒSailfish OSã§åããŠã£ã³ããŠããåŒã³åºãããæ¹æ³ïŒãšããããã®éãããã²ãŒãããæ¹æ³ãã¹ã±ããããŸããã
æåã®ãã¹ãã¯è¢«å®³è éžæããŒãžããå§ãŸããDialogã³ã³ããŒãã³ããããã«æãé©ããŠããŸãããSilicaãã¬ãŒã ã¯ãŒã¯ã®éçºè ã¯ãDialogããŒãžãã¢ããªã±ãŒã·ã§ã³ã®æåã®ããŒãžã§ãããšæ³å®ããŠããªãã£ãããã ã ãããã£ãŠãç§ã¯ã«ã³ãã³ã°ãããªããã°ãªããŸããã§ãããæåã®ããŒãžã¯DialogPageãžã®è¿ éãªç§»è¡ãè¡ããã空çœããŒãžã«ãªããŸãïŒç©ºçœããŒãžã¯éåžžã«ãã°ããæç»ãããããããŠãŒã¶ãŒã«ã¯ãã®ãããªãããªãã¯ãã¯è¡šç€ºãããŸããïŒã
æåã®ããŒãžã®ãœãŒã¹ã³ãŒãïŒ
import QtQuick 2.0 import Sailfish.Silica 1.0 import "../js/server_request.js" as ServerRequest Dialog { id: dialogFirstPage property string name: "" property string surname: "" property string imagePath: "../images/avatarUnknown.png" property string uniqueKey: "Waiting..." onAccepted: { console.log("accepted") // pageStack.push(Qt.resolvedUrl("SecondPage.qml"), { "name": name, "surname": surname, "imagePath": imagePath, "uniqueKey": uniqueKey}, PageStackAction.Animated) } onRejected: { console.log("declined") // pageStack.push(Qt.resolvedUrl("FirstPage.qml"), {}, PageStackAction.Immediate) // , "" ServerRequest.server_getNextRandomTargetId("34853940", callback_getNextRandomTargetId) } function callback_getNextRandomTargetId(responseText) { uniqueKey = responseText; } Column { anchors.fill: parent DialogHeader { acceptText: "Accept" cancelText: "Cancel" } Text { id: victimText width: parent.width horizontalAlignment: Text.Center color: Theme.highlightColor font.bold: true wrapMode: Text.Wrap font.pixelSize: Theme.fontSizeExtraLarge text: "Choose new victim:" } Image { id: avatar source: imagePath anchors.horizontalCenter: parent.horizontalCenter width: 400 height: 400 } Text { id: nameText width: parent.width horizontalAlignment: Text.Center color: Theme.highlightColor font.bold: false wrapMode: Text.Wrap font.pixelSize: Theme.fontSizeExtraLarge text: name } Text { id: surnameText width: parent.width horizontalAlignment: Text.Center color: Theme.highlightColor font.bold: false wrapMode: Text.Wrap font.pixelSize: Theme.fontSizeExtraLarge text: surname } Text { id: keyText width: parent.width horizontalAlignment: Text.Center color: Theme.highlightColor font.bold: false wrapMode: Text.Wrap font.pixelSize: Theme.fontSizeExtraLarge text: "Victim code:\n" + uniqueKey } } }
ãããªãã¯ãã®ãœãŒã¹ã³ãŒãïŒ
import QtQuick 2.0 import Sailfish.Silica 1.0 import "pages" ApplicationWindow { // , FirstEmptyPage.qml ( , ): initialPage: true ? Qt.createComponent(Qt.resolvedUrl("pages/FirstEmptyPage.qml")) : Qt.createComponent(Qt.resolvedUrl("pages/LoginPage.qml")) cover: Qt.resolvedUrl("cover/CoverPage.qml") allowedOrientations: Orientation.All _defaultPageOrientations: Orientation.All // : Component.onCompleted: { // immediate -> pageStack.push(Qt.resolvedUrl("pages/FirstPage.qml"), {}, PageStackAction.Immediate) } }
ãã®åŸããã¹ãŠãç°¡åã«ãªããVkontakteã§ã®èªèšŒã¯WebViewã䜿çšããŠè¡ãããŸããã
import QtQuick 2.0 import QtQuick.LocalStorage 2.0 import Sailfish.Silica 1.0 import "../js/auth.js" as AuthJS import "../js/storage.js" as StorageJS Dialog { id: loginPage function checkUrl(url) { if (AuthJS.checkUrl(url) !== 1) { console.log(AuthJS.accessToken) StorageJS.storeSettingsValue("access_token", AuthJS.accessToken) StorageJS.storeSettingsValue("user_id", AuthJS.userId) loginView.stop() loginPage.close() } } SilicaWebView { id: loginView anchors.fill: parent url: "https://oauth.vk.com/authorize?" + "client_id=4803503" + "&scope=messages,video,wall,audio,friends,photos,offline" + "&redirect_uri=https://oauth.vk.com/blank.html" + "&display=mobile" + "&response_type=token" onUrlChanged: checkUrl(url) } }
WebViewã®å®è£ ã§ã¯ãVK- Katã®ã¯ã©ã€ã¢ã³ãããã®ã³ãŒãã倧ãã«åœ¹ç«ã¡ãŸããã çŽ æŽãããã¢ããªã±ãŒã·ã§ã³ãäœæããŠãããèè ã«æè¬ããŸãïŒ
次ã«ããWantedãããŒãžããããŸããããã®å 容ã¯DialogPageã«ãã䌌ãŠããŸãããPullDownMenuã³ã³ããŒãã³ãã䜿çšããŠããããéããPullUpMenuã䜿çšããŠã匷å¶çµäºãããŸãã PullDownMenuããã³PullUpMenuã®äœ¿çšïŒ
import QtQuick 2.0 import Sailfish.Silica 1.0 Page { // ... // PullDownMenu PushUpMenu SilicaFlickable, SilicaListView SilicaGridView SilicaFlickable { anchors.fill: parent PullDownMenu { // : backgroundColor: "green" highlightColor: backgroundColor // option: quickSelect: true MenuItem { text: "Open map" onClicked: { console.log(qsTr("Option <Open map> clicked")) pageStack.push(Qt.resolvedUrl("MapPage.qml")) } } } contentHeight: column.height Column { // ... } PushUpMenu { backgroundColor: "red" highlightColor: backgroundColor quickSelect: true MenuItem { text: "Kill!" onClicked: { console.log(qsTr("Option <Kill!> clicked")) pageStack.push(Qt.resolvedUrl("EnterCodePage.qml"), {"uniqueKey": uniqueKey}) } } } } }
äžããäžã«ã¹ã¯ã€ããããšãããã«ãããŒãžã«å°éããŸãããæ®å¿µãªãããBluetoothãåŠçã§ããŸããã§ããããã®ããããµãŒããŒã被害è ã«äžæã®ã³ãŒããéä¿¡ããã殺人è ããã被害è ãç»é¢ããçŽæ¥èªã¿åããèªå® ã§å ¥åããå¿ èŠããããŸããã
ã³ãŒããæ£ãããªãå ŽåãååºŠå ¥åãè©Šã¿ãŸãããã以å€ã®å Žåã¯ãã殺人ããç¥çŠãã被害è éžæããŒãžã«ç§»åããŸãã
ãããã£ãŠãããã«ãœã³ã®çµãããŸã§ã«ãç§ãã¡ã«ã¯ããæéããããŸããã§ããã
-Vkontakteã§ã®åçãšè¢«å®³è ã®ååã®åãåããã
-Bluetoothçµç±ã®ãã·ã§ãããã䜿çšããŠãç ç²è ããã殺ããã
-ãã¬ã€ã€ãŒã®äœçœ®ã远跡ããããŒã¢ã³ã
ãŸãã圌ãã¯ã¢ããªã±ãŒã·ã§ã³ã®æé«ã®ãã¬ãŒã³ããŒã·ã§ã³ãæã£ãŠããŸããã§ãã...ããããç§ãã¡ã¯UIãæã£ãŠããŸãããå°ãªããšããç§ã¯æ¬åœã«èªãã«æã£ãŠããŸããïŒå°ãªããšããã€ããŒãªãã°ããããŸãã...ïŒã ç§ã«ãšã£ãŠå€§ããªåé²ã§ããã æ è¡ã®åã«ãéåžžã«åå§çãªããžãã¯ïŒããã£ã³ã¹ããªã©ïŒãæã€1-2ããŒãžã®ã¢ããªã±ãŒã·ã§ã³ããäœæã§ããŸããã§ãããã¢ããªã±ãŒã·ã§ã³ïŒ
ããã«ãœã³ã®åŸãç§ã¯ãã£ãšé¢çœããã«ãããŒãžããã°ã©ã ãäœæããèªåèªèº«ã®åŒ·ããæããŸããã
7æ29æ¥ã å€æ¹
ããã«ãœã³ãçµããåŸãç§ãã¡ã¯ããŒãªã³ã°ã¯ã©ãã«é£ããŠè¡ãããå šå¡ã宎äŒãã³ãã¥ãã±ãŒã·ã§ã³ãè³ãæäžããŸããã ããŠãªã³ã°ã®åŸãç§ãã¡ã¯é·ãéå°±å¯ãããããã«ãœã³ã®çµæã«ã€ããŠè°è«ããSailfish OSã«ã€ããŠèããå¿ãã話ããŸããã
7æ30æ¥
æé£åŸããã«ãäž»å¬è ã¯åå è ãšã»ã€ã«ãã£ãã·ã¥OSã®éçºã«å¯ŸããèŠæãã¢ã€ãã¢ã«ã€ããŠè©±ãåããŸããã ãããããå¥ãã§ã圌ãã¯ã人ã ã«åœŒããé£ããŠè¡ããŸããã-島ã®éœåžã¹ãŽã£ã€ãžã¹ã¯ãžã®é 足ãçµç¹ããŸããã æ¬åœã«çŽ æŽããããã¢ãŒã®åŸããããªããèšãæéã§ã-Sailfish OS Summer Schoolã¯çµäºããŸããã
ãããã«
ãã®é åçãªåéºã¯ãå°ãæ²ããã£ãã®ã§çµäºããŸããããåæã«ãç§ãåºäŒã£ãä¿¡ããããªãã»ã©èå³æ·±ã人ã ã®æ°ãç§ãåŸãææ ãçµéšã®æ°ã®èšæ¶ã«å¿ãæž©ãããªããŸããã ãããŠãã®äžçã¯ãªããŠé¢çœãã®ã§ãããïŒ ããªãã¯ããã«ãœã³ã«åã€ããšã¯ã§ããŸãããæãæåããæ¹æ³ã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ã®ãã¬ãŒã³ããŒã·ã§ã³ãä¿æããã倱ãããèŠè¿ãã«çŽ æŽãããçµéšãåŸããçµéšã¯åã£ããšããããã¯ããã«å€§ããã§ãïŒ
å šäœãšããŠãç§ã¯ãããç§ã®æ倧ã®IT趣å³ã«ãªããšåºãä¿¡ããŠå®¶ã«åž°ã£ãŠããŸããã
ããŒãã¹çªå·1
ãŸã ããã«ãœã³ã«åå ããŠããªã人ã®ããã®ããã€ãã®ãã³ãïŒ
-èããŠãå¯èœãªéãé«å質ã®ã¢ã€ãã¢/äœåãæ瀺ããå¹æçã«è©±ãã å€ãã¯æ¬åœã«ããã«äŸåããŠããŸãïŒïŒïŒ;
-èªåèªèº«ãšèŽè¡ã®ããã«ãæå°ããã³æ倧ã®ç®æšãæ確ã«è¿°ã¹ãŠãã ããã
ããŒãã¹çªå·2
ãã¹ãŠã®ããã©ãŒãã³ã¹ã®ãããªã
䟿å©ãªãªã³ã¯
» VKã®ã°ã«ãŒããžã®ãªã³ã¯ã
» é»å ±ã§ãã£ããéçºè ã
» ã¿ã€ã ã©ãã¹
» éå€é»è»
PSãã®èšäºã®æåã®ã¬ãã¥ãŒãšæ ¡æ£ãããŠãããå人ã«æè¬ããŸãã
UPDïŒãã®èšäºã§å ¬éãããŠããã³ãŒããå³å¯ã«åãåããªãã§ãã ãããããã«ãœã³ã§äœæããããã€ããŒãªä¿®æ£ãå ããŠå ¬éãããŠããŸããã¢ããªã±ãŒã·ã§ã³èªäœã¯éåžžã«ãã£ãããšéçºãããŸããããããªããŸãã ã ããããŸãscãããªãã§ãã ãã:)