{"id":114,"date":"2015-12-22T11:06:15","date_gmt":"2015-12-22T11:06:15","guid":{"rendered":"http:\/\/demensdeum.com\/blog\/?p=114"},"modified":"2024-12-16T22:32:55","modified_gmt":"2024-12-16T19:32:55","slug":"%d0%ba%d0%b0%d0%ba-%d0%bc%d1%8b-%d0%b4%d0%b5%d0%bb%d0%b0%d0%bb%d0%b8-mad-racer","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/de\/2015\/12\/22\/%d0%ba%d0%b0%d0%ba-%d0%bc%d1%8b-%d0%b4%d0%b5%d0%bb%d0%b0%d0%bb%d0%b8-mad-racer\/","title":{"rendered":"Wie wir Mad Racer gemacht haben"},"content":{"rendered":"<p><em>Hallo lieber Leser. In dieser Notiz werde ich <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=mad.racer.free\" target=\"_blank\">meine Erfahrungen bei der Entwicklung des ersten Spiels f\u00fcr Android beschreiben Mobiltelefone<\/ a>. Viele Leute m\u00f6gen diese Geschichte, ich denke, sie muss ver\u00f6ffentlicht werden. Dies ist keine Erfolgsgeschichte, aber ich denke, dass sie vielen beginnenden Entwicklern ein Verst\u00e4ndnis daf\u00fcr vermitteln wird, wo sie anfangen sollen und was getan werden muss, um ein einfaches Spiel zu erstellen. Ich werde auf jeden Fall meine Fehler beschreiben und was h\u00e4tte besser gemacht werden k\u00f6nnen.<br \/><\/em><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Tank_Girl\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-116\" src=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/Hewl-Tanky-294x300.jpg\" alt=\"Hewl-Tanky\" width=\"294\" height=\"300\" srcset=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/Hewl-Tanky-294x300.jpg 294w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/Hewl-Tanky-147x150.jpg 147w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/Hewl-Tanky.jpg 300w\" sizes=\"auto, (max-width: 294px) 100vw, 294px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">Verzeih mir <span class=\"st\"><em>Jamie Hewlett<\/em> und Alan Martin<\/span>, ich poste gro\u00dfartige Kunst <a href= \u201ehttps :\/\/en.wikipedia.org\/wiki\/Tank_Girl\u201c target=\"_blank\">Tank Girl<\/a>ohne deren Erlaubnis<\/p>\n<p>Manchmal verf\u00e4llt man in einen Zustand, in dem man etwas erschaffen m\u00f6chte, so dass alle nach Luft schnappen, den Mund \u00f6ffnen und sagen: \u201eNa, du bist cool.\u201c Diese Geschichte passierte mir im Jahr 2011, als ich einen Ausschnitt aus dem Film \u201eTank Girl\u201c sah. hatte die Idee, ein Arcade-Spiel im Comic-Stil zu entwickeln.<br \/>Warum f\u00fcr Android und nicht f\u00fcr iOS? Der Grund ist einfach &#8211; Ich hatte weder einen Macintosh noch ein iPhone, aber ich hatte den gro\u00dfen Wunsch, Linux auf Mobiltelefonen zu unterst\u00fctzen. Damals mochte ich die FSF-Ideologie und Richard Matthew Stallman war mein Gott.<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/9sJUDx7iEJw\" width=\"420\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><br \/>\nLied der Linux-Hacker. Bevor Sie singen &#8211; Glaube an den Weltfrieden<\/p>\n<p style=\"text-align: left;\">Zum Zeitpunkt der Entwicklung war die neueste Version von Android 2.0, es war auch notwendig, die Unterst\u00fctzung f\u00fcr \u00e4ltere Versionen aufzugeben, da es viele 1.6-Benutzer gab. Viele Telefonhersteller haben nicht einmal Updates auf Version 2.0 ver\u00f6ffentlicht.<\/p>\n<p style=\"text-align: left;\">Ich habe sofort einen Zeitrahmen f\u00fcr die Umsetzung dieses Projekts festgelegt &#8211; einen Monat. W\u00e4hrend dieser Zeit musste ich meine Java-Kenntnisse verbessern, das Android SDK Eclipse studieren, dem Monster angesichts von OpenGL ES begegnen und es auf die Probe stellen. Auf der Grafikseite mussten wir etwa sechs f\u00fcr Mobiltelefone optimierte 3D-Modelle erstellen. Au\u00dferdem war es notwendig, das Projekt f\u00fcr Gold im Android Market (wie damals Google Play hie\u00df) freizugeben<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.jpct.net\/jpct-ae\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-120 aligncenter\" src=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/jpct_logo.png\" alt=\"jpct_logo\" width=\"200\" height=\"109\" \/><\/a><br \/>\n<a href=\"http:\/\/www.jpct.net\/jpct-ae\/\" target=\"_blank\">jPCT-AE<\/a> \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 3\u0434 \u0434\u0432\u0438\u0436\u043e\u043a \u0434\u043b\u044f \u0410\u043d\u0434\u0440\u043e\u0438\u0434\u0430<\/p>\n<p style=\"text-align: left;\">Da wenig Zeit zur Verf\u00fcgung stand, war es notwendig, eine fertige 3D-Engine auszuw\u00e4hlen. Es ist m\u00f6glich, eine eigene Engine von Grund auf zu erstellen, aber das ist nicht sehr produktiv, da das Testen und die Kompatibilit\u00e4t mit allen Ger\u00e4ten die meiste Zeit in Anspruch nehmen. Vor der Einf\u00fchrung von Unreal Engine, Unity, ThreeJS (HTML5) war JPCT-AE die f\u00fchrende Engine. Die Engine wurde als vorgefertigte Java-Bibliothek geliefert und unterst\u00fctzte \u00e4ltere Android-Versionen. Au\u00dferdem stellt sein Erfinder EgonOlsen auf Wunsch der Entwickler umgehend Support und Fehlerbehebungen bereit.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/demensdeum.com\/blog\/2015\/12\/19\/anthony\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-122\" src=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/antonHooligan-252x300.jpg\" alt=\"antonHooligan\" width=\"252\" height=\"300\" srcset=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/antonHooligan-252x300.jpg 252w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/antonHooligan-126x150.jpg 126w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/antonHooligan.jpg 300w\" sizes=\"auto, (max-width: 252px) 100vw, 252px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Das Personal entscheidet alles &#8211; Hooligan <a href=\"http:\/\/demensdeum.com\/blog\/2015\/12\/19\/anthony\/\" target=\"_blank\">Anton<\/a> stimmte zu, Musik f\u00fcr das Spiel zu schreiben. Ich habe seine Kreativit\u00e4t immer bewundert, seine Arbeit diente als Lokomotive f\u00fcr das gesamte Gameplay und zwang den Benutzer, bis zum letzten abgest\u00fcrzten Hubschrauber zu spielen.<\/p>\n<p style=\"text-align: left;\">Es gibt so viele Dinge zu tun, wo soll ich anfangen? Sie m\u00fcssen mit der Installation des Android SDK beginnen. Es verf\u00fcgt jetzt \u00fcber eine integrierte IDE &#8211; Android Studio. Damals wurden IDE und SDK jedoch separat bereitgestellt. Laut Dokumentation auf der Google-Website habe ich das Android SDK und Eclipse installiert. Au\u00dferdem wurden die notwendigen Pakete f\u00fcr Eclipse installiert, um die Zusammenstellung und den Start des Android-Emulators sicherzustellen. Eine Stunde sp\u00e4ter habe ich ein Testprojekt jpct-AE zusammengestellt:<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/WKOelV5EFOs\" width=\"420\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p style=\"text-align: left;\">Wow! Aber im Telefonemulator war alles sehr langsam. Daher wurde die Entscheidung getroffen, ein Telefon auf der Android-Plattform zu kaufen. Zu diesem Zweck wurde ein LG Optimus One P500 angeschafft. Seitdem habe ich keine hervorragenden Nokia-Tastentelefone auf der Symbian-Plattform mehr verwendet. Es gab Probleme beim Verbinden des Telefons mit Linux. Wenn sie immer noch auftreten, \u00fcberpr\u00fcfen Sie die udev-Einstellungen.<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/CW0DUg63lqU\" width=\"420\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><br \/>\nJobs zitiert Pablo Picasso<\/p>\n<p style=\"text-align: left;\">Als ich mir \u201eAlien Runner\u201c ansah, wurde mir klar, dass der Au\u00dferirdische durch ein Motorrad und zwei Punks durch eine Panzerfaust ersetzt werden kann, die Lichtung um ihn herum in eine Metropole verwandelt werden kann und der Nebel kann durch eine Nacht mit Balladen von Iron Maiden ersetzt werden.<\/ p><\/p>\n<p style=\"text-align: left;\">Wie erstelle ich 3D-Modelle? Ja, es ist ganz einfach: Sie \u00f6ffnen eine Lektion zum Erstellen von Low-Poly-Modellen auf Youtube und machen es. Der gesamte Prozess bestand darin, Projektionen in einem 3D-Editor zu skizzieren. Ich habe Zeichnungen eines Apache-Hubschraubers gefunden und ein Modell des Hubschraubers angefertigt. Die Texturen wurden aus offenen Quellen der US-Armee \u00fcbernommen.<\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-126 aligncenter\" src=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/McDONNELL_DOUGLAS_AH-64_APACHE-300x201.png\" alt=\"McDONNELL_DOUGLAS_AH-64_APACHE\" width=\"300\" height=\"201\" srcset=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/McDONNELL_DOUGLAS_AH-64_APACHE-300x201.png 300w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/McDONNELL_DOUGLAS_AH-64_APACHE-224x150.png 224w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/McDONNELL_DOUGLAS_AH-64_APACHE.png 574w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p style=\"text-align: left;\">Warum braucht man in einem Spiel mit zwei Punks und einer Panzerfaust einen Hubschrauber? Als ich den Prototypen gespielt habe, ist mir aufgefallen, dass der Spieler einfach stehen bleiben und Punkte sammeln konnte. Die ideale L\u00f6sung war ein Hubschrauber, der einfliegt und den Spieler mit U-Boot-Torpedos beschie\u00dft, sodass er nicht anhalten kann.<\/p>\n<p style=\"text-align: left;\">In mobilen Anwendungen und Spielen dieser Zeit war das Problem des Speichermangels akut, sowohl auf dem Telefon selbst als auch im RAM. Auch die Leistung war hervorragend. Ein ARM-Prozessor mit einer Frequenz von 300-500 MHz. Als Ergebnis von Tests auf den Handys von Freunden stellte sich heraus, dass das HTC halb so viel Videospeicher hatte wie das LG, 8 MB und 4 MB, weshalb das Spiel die Speichergrenzen \u00fcberschritt und nicht startete. Alle Ressourcen wurden so weit komprimiert, dass eine Bildrate von 30 Bildern pro Sekunde erreicht wurde und die M\u00f6glichkeit bestand, auf fast allem zu laufen.<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/B4KqJYDwxsk\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><br \/>\n<em>Nicht wiederholen!<\/em><\/p>\n<p style=\"text-align: left;\">Alien Runner wurde durch Tippen auf den Bildschirm gesteuert. Diese Art der Steuerung erschien mir unbequem, daher habe ich die Steuerung mithilfe eines Beschleunigungsmessers implementiert. Das hei\u00dft, Sie drehen das Telefon &#8211; Das Motorrad dreht. Es gefiel mir so gut, dass ich f\u00fcr die Mutigen sogar eine Ego-Perspektive hinzugef\u00fcgt habe.<\/p>\n<p style=\"text-align: left;\">Ich brauchte Unterst\u00fctzung vom Entwickler der jpct-AE-Engine, als ich sah, dass der Blackout vorne im Spiel verschwand. Dies geschah nach der Minimierung und Maximierung der Anwendung. Ich habe im jpct-AE-Forum ein Thema erstellt und innerhalb von zwei Tagen wurde das Problem behoben. Ich habe die korrigierte Version der Engine in das Spiel integriert.<\/p>\n<p style=\"text-align: left;\">Es stellte sich auch die Frage, wie man einen endlosen Vorrat an Maschinen umsetzen kann. F\u00fcr ein Handyspiel musste eine M\u00f6glichkeit gefunden werden, SCHNELL Autos zur Spielszene hinzuzuf\u00fcgen. Die M\u00f6glichkeit, vom langsamen Speicher oder von der SD-Karte zu laden, wurde sofort abgelehnt. Abhilfe schaffte ein Entwurfsmuster namens Object Pooling. Wenn ein Auto au\u00dfer Sichtweite geriet oder zerst\u00f6rt wurde, wurde es abgestellt und in dem Moment, in dem es notwendig war, ein neues Auto an den Anfang der Szene zu bringen &#8211; dann wurde es eingeschaltet und dort platziert.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=mad.racer.free\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-131 aligncenter\" src=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/android-market-300x190.jpg\" alt=\"android-market\" width=\"300\" height=\"190\" srcset=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/android-market.jpg 300w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/android-market-237x150.jpg 237w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Nun, der Tag der Ver\u00f6ffentlichung ist gekommen. Das Spiel wurde getestet, Freunden vorab gezeigt und nun stand es kurz davor, im Android Market mit Gold ausgezeichnet zu werden. Die Registrierung im Android Market kostet 20 US-Dollar und ist kostenpflichtig. Beschreibung und Screenshots hinzugef\u00fcgt. Und in diesem Moment wurde mir klar, dass ich ein Video aufnehmen musste.<\/p>\n<p style=\"text-align: left;\">Wie nehme ich ein Video f\u00fcr ein mobiles Projekt auf? Ist es wirklich m\u00f6glich, ein Mobiltelefon zu filmen und es dann zu posten? Die L\u00f6sung war interessant, ich habe einen Android-Emulator verwendet, das Spiel mit einer Bildrate von zwei Bildern pro Sekunde gespielt und alles, was auf dem Bildschirm passierte, mit einem Programm namens gtkDesktopRecorder aufgezeichnet. Mithilfe von VirtualDub wurde die Videogeschwindigkeit auf 30 Bilder pro Sekunde erh\u00f6ht. Dann im besten Videobearbeitungsprogramm &#8211; Windows Movie Maker Ich habe alle Sounds und Musik zum Spiel hinzugef\u00fcgt.<\/p>\n<p style=\"text-align: left;\">Jetzt kommt der Moment der Fehler. In die F\u00f6rderung des Projekts wurde nichts investiert, weder Aufwand noch Geld. <strong>Ich habe damals geglaubt, dass sich das Projekt nicht mehr durchsetzen w\u00fcrde<\/strong>. Das Spiel wurde Gold, ich habe im jpct-AE-Forum einen Thread \u00fcber Mad Racer erstellt. Ich habe in zwei Wochen 12 Installationen f\u00fcr einen Dollar bekommen. <em>Und schon am n\u00e4chsten Tag fand ich das Spiel kostenlos auf einer Reihe von Warez-Seiten erh\u00e4ltlich<\/em>.<\/p>\n<p style=\"text-align: left;\">Das FSF-Lied \u201eTeilen Sie die Software\u201c singen; Ich habe beschlossen, eine kostenlose Version mit Werbung zu erstellen. Das Spiel wurde in die Kategorie AdWare verschoben und unten erschien ein Werbebanner aus dem AdMob-Netzwerk. Die Integration in das Werbesystem verlief reibungslos. Innerhalb eines Monats wurde das Spiel auf zehntausend Ger\u00e4ten installiert. Ich habe 50 $ vom Werbenetzwerk erhalten.<\/p>\n<p style=\"text-align: left;\">Vergessen Sie im Allgemeinen nicht die Werbung, ich glaube, dass dies eine der Hauptausgaben f\u00fcr Ihr Projekt sein sollte.<\/p>\n<p style=\"text-align: left;\">Positiv m\u00f6chte ich anmerken, dass ich eine Stelle als iOS-Entwickler in einem der besten Unternehmen unserer Stadt erhalten habe. Und nat\u00fcrlich unsch\u00e4tzbare Erfahrung.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=mad.racer.free\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-21 aligncenter\" src=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/madracerLogo.png\" alt=\"madracerLogo\" width=\"300\" height=\"300\" srcset=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/madracerLogo.png 300w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2015\/12\/madracerLogo-150x150.png 150w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=mad.racer.free\" target=\"_blank\">Google Play<\/a><\/p>\n<p style=\"text-align: left;\">Wenn Ihnen der Artikel gefallen hat, ver\u00f6ffentlichen Sie ihn erneut auf VKontakte, Facebook)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hallo lieber Leser. In dieser Notiz werde ich meine Erfahrungen bei der Entwicklung des ersten Spiels f\u00fcr Android beschreiben Mobiltelefone. Viele Leute m\u00f6gen diese Geschichte, ich denke, sie muss ver\u00f6ffentlicht werden. Dies ist keine Erfolgsgeschichte, aber ich denke, dass sie vielen beginnenden Entwicklern ein Verst\u00e4ndnis daf\u00fcr vermitteln wird, wo sie anfangen sollen und was getan<a class=\"more-link\" href=\"https:\/\/demensdeum.com\/blog\/de\/2015\/12\/22\/%d0%ba%d0%b0%d0%ba-%d0%bc%d1%8b-%d0%b4%d0%b5%d0%bb%d0%b0%d0%bb%d0%b8-mad-racer\/\">Continue reading <span class=\"screen-reader-text\">&#8220;Wie wir Mad Racer gemacht haben&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[49,63],"tags":[17,14,15,13],"class_list":["post-114","post","type-post","status-publish","format-standard","hentry","category-blog","category-hottest","tag-company","tag-demensdeum","tag-development","tag-madracer","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"de","enabled_languages":["en","ru","zh","de","fr","ja","pt"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false}}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":92,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"predecessor-version":[{"id":4035,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/posts\/114\/revisions\/4035"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/tags?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}