Sunday, January 25, 2009

Erlang style binary matching in Scala

Binary Patterns

Erlang programs typically read binary data into Binaries which are broadly equivalent to byte arrays in C family languages. These binary objects can then be matched by patterns in function definitions and case expressions using the bit syntax. A simple example which matches two 3 bit values and one 10 bit values is shown below:

case Header of <<Version:3, Type:3, Len:10>> -> ...

The bit syntax can also pack values into binaries and unpack them into variables. There are lots of options which control the size and type of the extracted variables: signed, little-endian etc.

By comparison working with bytes arrays in Java is much more cumbersome. You would typically wrap your byte array in a ByteArrayInputstream and DataInputStream for reading the built-in types, and for reading unusual numbers of bits you need to write your own bit fiddling code. If we had a BitStream class the previous example could be written like the following in Java:

The situation in Scala is pretty much the same as it doesn't have much of an IO library yet.Since it is possible to implement Erlang's party trick (actor concurrency) as a Scala library I thought it would be interesting to see if something approximating the bit syntax could be implemented in Scala.

Scala Pattern Matching

Scala has a quite rich pattern matching ability. The three most common uses of pattern matching in Scala are with constants/literals, with types, and with case classes. Matching literals or constants is pretty much the classic switch statement. Matching on types nicely replaces the if-instance-then-cast idiom from Java:

x match { case s:String => ... case i:Int => ...}

Case classes are used to model algebraic data types as are common in functional languages:

Obviously neither of these types of pattern matching will let us do bit syntax style matching. Luckily Scala has another mechanism for pattern matching: extractors. Extractors are objects with an unapply method which can return either Some[A] if it matchs or None if it doesn't. A simple example (from Programming In Scala) is an email address matcher:

But of course this won't work. All extractors know about is the value passed to the unapply method. They know nothing about the context in which it was called, or any nested patterns.So any chance of exactly copying the Erlang syntax is scuppered. But if we are willing to allow the definition of the pattern in a different place to its use then we can still achieve something.

Underlying implementation

To start with I'll assume a BitStream class that wraps a byte array. I won't go into the details as it is not very exciting (and my bit fiddling expertise isn't all that). We then need some classes to represent the various data types we want to pull out.

Remaining is a special case that will match any number of bytes that lets us match arbitrary length byte arrays. Obviously we would need a bunch more types for this to be a useful API.So, on to matching with these classes. It is not too difficult to take a sequence of BitPart instances, apply them to a BitStream, and return None if they don't match or Some[Array[Any]] if they do.

I'm omitting the implementation again, because it is a bit long and not overly interesting.It is possibly to write extractors that return a variable number of items but that is not really what we want to do here as we could make a mistake between the pattern definition and use. Also we've lost the type safety and so would need to stick type annotations on all the pattern variables: annoying and error prone.

A little clunky maybe, but getting there. As you might have guessed from the BitMatch3 name we need a different extractor for each number of elements. This is the same as Tuples in Scala which are defined with up to 22 elements. It is a common limitation in statically typed languages which could possibly be overcome with Lisp style macros or C++ templates.Along with all these classes I created an object with a bunch of overloaded methods to hide them, so that the end user doesn't have to use the ugly names with numbers in.

Patterns can be nested so, for example, in the case above we could have(assuming an IPAddress extractor):

ttl, proto, hdrChkSum, IPAddress(127,0,0,1), destIP, restDgram)

Which would only match datagrams from localhost.

Wrap-up

Erlang bit syntax is compiled, and so is supposedly quite fast, whereas this Scala implementation involves a fair bit of boxing and allocation, so I couldn't recommend it for the core of your high performance server, but for occasional network or file tasks it is a pretty neat solution.This implementation works on byte arrays, because that is pretty much what Erlang does, and going by Programming Erlang it is common practise to read a whole file into one big binary. I wouldn't normally want to do that, so pattern matching that worked on lazy list (scala.Stream) wrapper around an InputStream wold be nice to have. The tricky part in that is managing when earlier parts of the Stream are garbage collected as you could end up holding on to the whole file anyway.Extractors are a very cool part of the Scala language and it is nice to see how easy it is to imitate features of other language.

116 comments:

I haven't tested it, and I don't have the code to hand right now, but I would expect to to be around 10x slower than the usual Java way of doing it. All the boxing of primitives and putting stuff into arrays and tuples is a big overhead. It could probably be made faster by manually "inlining" the matching method into the 20 extractor methods :)

I know this is an old post, but a question concerning inefficiency and the boxing/unboxing: why is it necessary? What would it take to build a low-level bit matching library in Scala that was as efficient and clean as Erlang? Given the performance cost of (de)serialization in terms of cache-misses, it seams to me that binary/bitstream matching is one of Erlang's hidden gems (maybe a real advantage?).

[b][url=http://www.uggsclearancemall.co.uk/]www.uggsclearancemall.co.uk[/url][/b] In the analyze of economics the sociologist can see just how much integration and synthesis exists among sociology, culture, and economics. Each and every place has an impact on one another. An economic occasion are unable to not come about without the need of some kind of sociological and cultural impression subsequent.

[b][url=http://www.uggsclearancemall.co.uk/]ugg boots[/url][/b] If you like, you may velocity a participating co-conspirator to the corona or just for the treatment of keyfob. As months pass, the neonate grows and turns into simpatico with strangers. Adrianna Shopper Red Leather Tote Bag This incredible red leather woven satchel is in superstar position.

[b][url=http://www.bestlouisvuittonbags.co.uk/]www.bestlouisvuittonbags.co.uk[/url][/b] For individuals who can or don wish to do that, a card won't ever do the job. For people who possess the individual character that allows the correct meaning of to be practiced, a card is yet another software to become employed although shifting alongside the route of everyday living. Technology for that sake of technologies can be a no starter and misses what daily life is about.

[b][url=http://www.uggsbootsoutletmall.co.uk/]ugg boots[/url][/b] Specialist web marketers weren't lying once they claimed that posting advertising and marketing could be the critical to achieve the web arena. This incredible tool offer numerous huge benefits for anyone persons who are executing the procedure suitable. These benefits contain more exposure within the on the net arena, far better site score, expert status, and huge site visitors.

[b][url=http://www.uggsclearancemall.co.uk/]www.uggsclearancemall.co.uk[/url][/b] You can place them on for do the job, when experiencing, searching, partying and for primary use. For that explanation, these sneakers have acquired enormous popularity. On the time you buy a pair of sneakers it's possible you'll position them on in a variety of circumstances and therefore make the most efficient inside of your earnings.

pay day loans http://www.2applyforcash.com/ watWaivit best online payday loans tameserhags [url=http://www.2applyforcash.com]no fax payday loans online[/url] Instant Payday Loans Online Here was a way to earn the money i needed for what i wanted to do for others - but a copywriter uses examiner!!!

Heya fantastic website! Does running a blog like this require a large amount of work? I've absolutely no expertise in coding however I was hoping to start my own blog soon. Anyway, if you have any recommendations or tips for new blog owners please share. I understand this is off subject but I just wanted to ask. Many thanks!

[url=http://onlinesneakers.webnode.fr]isabel marant sneakers[/url]锘縮elections are overwhelming, specifically for somebody that is new to the spor of golft.Faviana makes a fabulous ivory-colored, espejto isabel marant one shoulder dress inspired by Sarah Jessica Parker's gown in the Sex and the City Movie, which is totally stunning and much like the costly designer original.It is more expensive yet much easier and much more convenient in comparison with looking for a private party.After you catch your breath and stop cursing your erstwhile partner, stop to consider these important threshold questions about partnership disputes.The main isabel marant denim event runs from April 28th through May 1st.Additionally, Boutiques are typically not locked into specific lodging options so they may be able to isabel marant booties sale offer condos, hotels, r.[url=http://lvhandbagstore.blinkweb.com]louis vuitton wallets[/url] ?verage beach front location.Since this leather case is fairly stain and water resistant, there is no need for you to worry about getting any hard stains on it.Slip resistant covers can be produced by materials such as polypropylene or polyethylene and sometimes a combination of both; that combination is also known as olefin fiber.It is embroidered with yellow flowers, the dress looks gorgeous and can be worn louis vuitton bags fro any event.With a hogan of ankle length slim trousers and a sweater vest, these pumps make your louis vuitton clothes look work perfect.Hogan has been very successful from the very beginning as it has understood the need of the modern men.Clarks Ladies’ Adore Yours A ladies’ with louis vuitton artsy a more subtle sense o.[url=http://sneakersshop.blinkweb.com]isabel marant boots[/url] 锘縣ese money issues will require that each party conduct an accounting and explain why they think the accounting favors isabel marant denim their case.Put your club between marant sneakers them and swing.Gentlemen prefer blondes; apparently they also prefer long hair, according to Tam谩s Bereczkei, PhD, professor of psychology at the University of P茅cs in Hungary.In today鈥檚 world where games like snooker, which doesn鈥檛 cost much money to setup are widely being isabel marant watch used to earn money.Even though we all want to avoid bias, it sometimes pops up, especially when your application isn't one of the absolute top-tier ones.Instructors at Arizona golf school will teach you how to read and play with the wind, improving your golf score when the wind is trying to play ag. [url=http://lvhandbagstore.blinkweb.com]lvhandbagstore.blinkweb.com[/url]

Hello! I know this is kind of off topic but I was wondering if you knew where I could get a captcha plugin for my comment form?I'm using the same blog platform as yours and I'm having trouble finding one?

Hello there! I know this is somewhat off topic but I was wondering if you knew where I could get a captcha plugin for my comment form?I'm using the same blog platform as yours and I'm having problems finding one? Thanks a lot!

Thanks for your personal marvelous posting! I actually enjoyed reading it, you happen to be a great author.I will always bookmark your blog and may come back someday.I want to encourage you to continue your great posts, have a nice morning!

Hiya! Quick question that's totally off topic. Do you know how to make your site mobile friendly? My website looks weird when browsing from my iphone4. I'm trying to find a template or plugin that might be able to fix this problem.If you have any suggestions, please share. Cheers!

[url=http://www.fly2book.com/forum/forum.php?mod=viewthread&tid=4988]beats studio[/url] completely in 2005 when this provider has got the first Jabra wireless bluetooth wireless headset generally when poker hands-Free communicating. so that as of the existing spare time, Jabra is always the high and even leading lender involved with Jabra wireless headsets all over the world. provided that 2005, tag heuer has produced a lot of Jabra wireless bluetooth headsets with some other criteria together with aspects.

[url=http://www.michelleweddingday.com/thread-348682-1-1.html]beats by dre headphones[/url] let alone your child bodyweight, individuals mwhenths including flawed feasting made drunk that toll my body system. experienced been in a age 10 attire that's why pointed out. but then, for the reason that days mailbox I received a married relationship call between a good ex - fe college roomie mary. "far grotesque misconception is available associated with the mystics about this claim that they can have u. s,usa that includes god. lacking went by through unearthly technique and consequently having simply a mistaken view behind everything fin is, they cannot grasp how you can high most of the pitch is simply. due to if the pair were absolutely u. s,usa along with god, They are worthy of the strength of oplagt furthermore.

http://www.beatsbydrepad.com cinemax has an appropriate limitation, which is they need a wide number of confirms at this instant, And they only have one nights channel. I sense you are we became packed generally there a bit more. But discussion, citizens are wanting if employed start petitions. You need other people to like so esteem you, while you will be more severe to your own. you possess some figure weak points you are typically able to compensate for them. You have large unwanted dimension that you'll have not turned in your favor.

A role-playing game (RPG) is a game by which players assume the roles of characters in a fictional setting.Learning new things are always better for the brains both for the young people as well as for the adults. The music can be catchy, and they range from an 80s-style tune for Mickey's Lab to a suspenseful final battle them for Pete. You can use it to immediately look for a good spot to position it. This game is located on a Hugh variety of free online games websites with a lot of different versions within the game, some classics and some are pretty brand-new and up-to-date.

Hi! Someone in my Facebook group shared this site with us so I came to check it out.I'm definitely loving the information. I'm book-marking and will be tweeting this to my followers! Excellent blog and outstanding style and design.

[url=http://www.ddkkk.com/forum.php?mod=viewthread&tid=1064884]hermes bags birkin[/url] Pettersen in order to ugg boot sneakers on settlement product on top of a plantation and is able to make butter the earlier plan, with the set up. Ugg start projects the actual affirms might strange available for Norwegians not that you can spend money inside saves. Use the potency of goal. usually, you can get deeper varied shoes for ladies online and there is ugg price a great many of websitesBut individuals in recent years offer understand better the large wave stirred over when cut price ugg hunter boots in nova scotia UGG in neuro-scientific form. at times a lot of ugg trainer inexpensive related to stars misplaced in serious adore doing use of all these convenient being. not considered ugg of-area too far back, A then simply just certain degree of trainer product or service as normal reserved for readers countrywide holiday throw open inside the picture. any model was most Ugg shoe, A title prominent merely readers individual savored the nice and comfy, cozy cells lining in the boots.

[url=http://forum.hct.com.tw/discuz_ucenter/home/space.php?uid=25001&do=blog&id=22992]hermes birkin replica uk[/url] after that we may come on your most sexy amongst feet put with regards to the stiletto heel. it's not only about locating top and yet about making exclusive ugg shoe sales extremely exclusive girl affirmation. you're going to enjoy my desing coupled with discover low priced uggs us among Dansko Tyra could every last day shoes or boots. along side it go accessibility specials plain onAndoff of.

If people want to purchase any product so every bit of detail is offered on website.Ones button-work and added 'hardware' bits to bag are developed from brass.They are generally acknowledged on sky private boats also and runabouts.The machines started its company almost 150 rice and started by selling travelers suitcases. http://ravenvision.ca/orchidshowforum/profile.

You will find all around regarding.5 thousand traumas annually (in accordance the new U. It is important for a greater heel shoe for well fitted.This tells the viewers that happen to be significant about a stand-up comedy operate. It will come in four colors,which provide a wide range to find. http://annievadivas.com/star/guestbookcomment/louis-vuitton-bags-fixed-hiring-top-notch?nocache=1

Attractive portion of content. I simply stumbled upon your site and in accession capital to claim that I get actually loved account your blog posts. Anyway I'll be subscribing in your feeds and even I fulfillment you get right of entry to persistently rapidly.

We have invested in Dye Sublimation print technology to allow us the creativity and versatility to produce a tremendous range of products and you can use the online stick it quotes book technology, too.If your business name leaves no visible space today so that everyone feels included.

Can I simply just say what a comfort to discover an individual who truly understands what they're discussing on the net. You definitely understand how to bring a problem to light and make it important. More people ought to read this and understand this side of your story. I can't believe you are not more popular since you surely have the gift.

Consequently fresh coffee also solid ground and / or bean . . . a lot of different coffee machines ability by means of ESE level of caffeine coffee pods (an apartment cd / dvd along with land fruit over separate out card). Tea is intended while in the espresso maker from forcing surrounding 2 ounces with difficulties because of strongly filled perfectly surfaces coffee beans coffee bean.

You may want to prevent the nominal remove. Might not put in a climate bonnet with respect to Continuous hourly.

When forget to absolutely love it, you precisely is not for you to do it. Bvlgari Men Use a huge refreshing place originating from a outdoors combine. meilleure caractristique signifiant magasinage durante li . Twine less, and usually cabled Web are undoubtedly for sale for many a good surcharge. http://wiki.gpl-devices.org/index.php/User:LourdesY3

They want intense power grids applications that makes grease produced by raw fruit and as well think about. As a way to lose weight occur gradually and therefore funds preserve falling.Look for models that that has a variety effect designs we are able to more accuracy because canning a number of products: really good models that surely have pulse,healthy smoothie, mix, chop in conjunction with other modalities.PSP Mixer be comprised of a lot Film prime quality flicks downloads!Every aspect of that this craftsmanship is also distinctive.

Long afterwards lots of wrappings happen to be extracted and after all of the other materials have most certainly been saved, your health and energy levels shall be bearing you.Blendtec merchandise comprise warranty for system along with floor (Four years) generally, installation wingtip sword (long time to come!). How the smoothie and as a result liquid help establish your very own ab muscles look and feel more proportionate, saving an probing for processed food additionally that offer you energy. Required . , which it sustains you see, the survive for enzymes this also add appeal to measurably better digestive system.

Applying for a quickcashmoneyloan can activity meet these conditions Every applier must be nonmigratory of UK. payday loansYou power have nonheritable bit of a bad commendation some purported arrangement and economically beardown. At Need day loan today, we place for direct cash up to $1500 which repay then you will more often than not be hot for compensable an improver penalisation to the investor. Here, we put shortened term cash loans up to 100 to 1500 hereby the supple payment fundamental measure.However, late defrayal may defaults, CCJs, financial condition and andifferent commendation issues as well. In todays modern-day world, attractive of day loans Georgia can adopt medium of exchange to fix up all of your imperative necessities.

You can helpfulness this service, if you are a national of to look later your many pressing unfinished bills accurate on time.pay day loansOn the other hand, the orthodox amount of money of finances will elevation a loan help is also not easy.

Borrower should have lasting UK demeanour and should be find my loan qualifications.If maybe you were fortune from manual labour your main loan matters with a act of you just are necessary to do is to hunt for a appropriate loaner.The idea loan is sometimes allocated problem, which is payment more than you make. Those who are insolvent, failure or troubled due to is light on the sack of the consumer.tax cash loans are authorised only which are high for these loans.

Keep in mind if you are fascinated to get able to entree fast cash loans scorn your bad recognition tag. A record book contains many life-sustaining info like material body number,possessor name of the vehicle, actual the past heaps of the grouping in need of currency.

You actually ensure it is seem really easy with your presentation but I to uncover this make a difference to be in fact one particular issue that I feel I would by no means recognize. It seems as well complicated and incredibly extensive for me.I'm having a appear Nice weblog appropriate right here! Also your internet site so considerably up very rapidly! What host are you the usage of? Am i able to get the associate hyperlink for your host? I wish my web web site loaded up as quickly as yours.

I do consider all the ideas you have offered in your post.They are very convincing and can certainly work.Still, the posts are very quick for starters. May you please prolong them a bit from next time?

This design is incredible! You definitely know how to keep a reader entertained.Between your wit and your videos, I was almost moved to start my own blog (well, almost...HaHa!) Fantastic job. I really loved what you had to say, and more than that, how you presented it. Too cool!

Web site two or three are almost always reamer breed juice machines regarding citrus fruit. Accredited multi-goal system this may thank, churn, neck enthusiast butters and extrude pasta.Frequently particularly represented and most likely the cost far from others just under individuals with a 1 hour calendar year assurance.

[b][url=http://www.medigitalpress.com/]Cheap Oakley Sunglasses[/url] [/b] Hey there! I've been following your web site for a long time now and finally got the bravery to go ahead and give you a shout out from Humble Texas! Just wanted to say keep up the good job!

[b][url=http://www.timhelmen.com/]Replica Oakley Sunglasses[/url] [/b] Terrific work! This is the kind of info that are supposed to be shared across the web. Shame on Google for no longer positioning this publish higher! Come on over and discuss with my site . Thanks =)

[b][url=http://www.medigitalpress.com/]Discount Oakley Sunglasses[/url] [/b] Good day! I could have sworn I've visited this web site before but after browsing through a few of the articles I realized it's new to me. Anyways, I'm certainly happy I stumbled upon it and I'll be book-marking it and checking back frequently!

[b][url=http://www.grnbuildersinc.com/]Fake Oakley Sunglasses[/url] [/b] Thank you for the good writeup. It in fact was a amusement account it. Look advanced to far added agreeable from you! However, how can we communicate?

[b][url=http://www.resorthomesgalveston.com/]Fake Oakleys[/url] [/b] My coder is trying to persuade me to move to .net from PHP. I have always disliked the idea because of the expenses. But he's tryiong none the less. I've been using Movable-type on numerous websites for about a year and am nervous about switching to another platform. I have heard excellent things about blogengine.net. Is there a way I can import all my wordpress posts into it? Any kind of help would be really appreciated!

[b][url=http://www.premiumcorporateawards.com/]Fake Oakleys[/url] [/b] I am not sure where you're getting your information, but good topic. I needs to spend some time learning more or understanding more. Thanks for great info I was looking for this info for my mission.

[b][url=http://www.grnbuildersinc.com/]Fake Oakleys[/url] [/b] Hello, i think that i saw you visited my site so i came to ¡°return the favor¡±.I am attempting to find things to improve my website!I suppose its ok to use a few of your ideas!!\

[b][url=http://www.timhelmen.com/]Fake Oakleys[/url] [/b] Hi would you mind sharing which blog platform you're working with? I'm looking to start my own blog soon but I'm having a difficult time selecting between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design seems different then most blogs and I'm looking for something completely unique. P.S My apologies for being off-topic but I had to ask!

[b][url=http://www.ameliasports.com/]Replica Oakley Sunglasses[/url] [/b] I love what you guys are up too. This sort of clever work and exposure! Keep up the good works guys I've included you guys to my own blogroll.

[b][url=http://www.medigitalpress.com/]Discount Oakley Sunglasses[/url] [/b] Hi there! Someone in my Myspace group shared this website with us so I came to give it a look. I'm definitely loving the information. I'm book-marking and will be tweeting this to my followers! Outstanding blog and amazing design and style.

[b][url=http://www.medigitalpress.com/]Discount Oakley Sunglasses[/url] [/b] Its such as you read my thoughts! You appear to know so much approximately this, such as you wrote the e book in it or something. I feel that you just could do with some % to pressure the message house a little bit, however instead of that, that is great blog. A fantastic read. I will certainly be back.

[b][url=http://www.timhelmen.com/]Replica Oakley Sunglasses[/url] [/b] I've been browsing online greater than three hours nowadays, yet I never found any attention-grabbing article like yours. It's lovely value enough for me. In my opinion, if all web owners and bloggers made excellent content as you did, the web will probably be much more useful than ever before.

[b][url=http://www.grnbuildersinc.com/]Fake Oakley Sunglasses[/url] [/b] Everyone loves what you guys are usually up too. This type of clever work and exposure! Keep up the superb works guys I've added you guys to my own blogroll.

[b][url=http://www.nocandyasses.com/]Fake Oakley Sunglasses[/url] [/b] I've been surfing online more than 3 hours lately, but I never discovered any attention-grabbing article like yours. It is lovely price sufficient for me. In my opinion, if all webmasters and bloggers made good content material as you probably did, the web might be much more helpful than ever before.

[b][url=http://www.medigitalpress.com/]Oakley Sunglasses Cheap[/url] [/b] I am curious to find out what blog platform you are using? I'm experiencing some minor security problems with my latest site and I'd like to find something more safe. Do you have any solutions?

[b][url=http://www.grnbuildersinc.com/]Cheap Oakley Sunglasses[/url] [/b] Its such as you read my thoughts! You seem to grasp a lot about this, like you wrote the ebook in it or something. I think that you just can do with some % to drive the message house a bit, but other than that, this is wonderful blog. A great read. I'll certainly be back.

[b][url=http://www.ameliasports.com/]Replica Oakley Sunglasses[/url] [/b] I'll right away grasp your rss as I can't in finding your email subscription hyperlink or e-newsletter service. Do you have any? Please let me recognize so that I may just subscribe. Thanks.

[b][url=http://www.nocandyasses.com/]Replica Oakley Sunglasses[/url] [/b] Howdy! This article couldn't be written any better! Reading through this post reminds me of my previous roommate! He constantly kept preaching about this. I am going to send this article to him. Fairly certain he's going to have a great read. I appreciate you for sharing!

[b][url=http://www.adeanphotography.com/]Oakley Sunglasses Sale[/url] [/b] I want to to thank you for this fantastic read!! I definitely enjoyed every little bit of it. I have you saved as a favorite to check out new stuff you post¡­

clicks here Many people claim that it was one of the best decisions of their lives, as their pets are healthy and well due to that decision. We have very active communities on Twitter and Facebook, and most recently have been recognized for our Pinterest presence.

Long under wear is made from materials that perhaps may be able to inhale and. Shelter would later give his imprint Wildstorm to DC, even he remains content director.This situation should be Is generally there anything similar I can do for you?Although they a lot more personalised, it normally requires longer to investigate the results. http://myturbonet.com/groups/waverlylittleleaguefootball/wiki/fc3b0/A_Quick_History_Of_Various_Designer_Brands.html

The rule of thumb, is, the tail should sit directly on the crease of your bum.You have for 2,200 of well-maintained waterways to experience.Shelter would later sell his imprint Wildstorm to DC, even he remains editorial director. Do you have to organise training for your staff member?http://www.familylinkmobile.com/index.php?option=com_blog&view=comments&pid=296667&Itemid=0

Yet, there seems in order to really be some defensiveness about the mission.

Consider some of the objectives of this survey?Line-code of dazzling stripes soon is to the brand of the manufacturer.It will all take place every the Freemasons' Hall, Covent Garden, living in London. http://www.simulationgame.jp/cms/userinfo.php?uid=9630

Repositories are online computers containing various software programs. After that needs to be put on a Blu-ray disk run and in order to be known Any game released.Also, search by song, artist, album or genre.