TROOPERS conference badge

  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.

Electronic badges are all the rage at IT security conferences these days. I think DEFCON started it all with badges made by Joe Grand, but there have been many others, like the Sputnik RFID tags at 25C3, the expandable bunny badges at Easter Hegg, Munich, by lilafisch and friends, and Travis Goodspeed's badge for The Next Hope.

I created 210 interactive badges for the TROOPERS11 IT-sec conference in Heidelberg last month. They feature some ethereal vintage vacuum glassware - IN-16 nixie tubes made at the Reflector factory in Saratov in the former USSR in 1989. I purchased them new-old-stock from some handy guys in Lithuania.

A video of the badge in action:


 

Each conference attendee starts on zero. As they unlock achievements at the con - like sending postcards to their families, meeting the speakers, unlocking the secret in the badge, attending my SMT soldering workshop, etc, attendees level-up. Those who reached the highest levels were entered into a prize draw to win hacker goodies. I designed this levelling-up concept to connect with the central themes of the TROOPERS conference - personal progression, education, and becoming better IT security professionals. Florian did an amazing job of weaving the badge and the game concept into the very fabric of the conference. 

The badge hangs around the neck from a CAT5 cable, rocking the network security image. Red for the speakers, green for everyone else. Here I am wearing the bare, prototype PCB. Have you any idea how difficult it is to find 750mm CAT5 cables? It's quite difficult.

As well as being the LANyard (sorry) the cable functions as the power switch, levelling-up mechanism, programming interface and debug output (and attack vector for intrepid hardware hackers!). When an attendee unlocked an achievement, he took his badge to the information desk where one of the organising staff would plug in a special dongle to update his score. The dongle is simply a TI Launchpad (MSP430G2231) with a CAT5 cable soldered on, running some custom firmware to transmit a magic byte over SPI to the badge.

The batteries and electronics are on the back of the badge. 

Design materials

You can download the design materials here . The hardware is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. The firmware is licensed under the GPLv3 . If you just want a quick look at the schematic, it's available separately here .

Circuit design

The badge is powered from two AA batteries. The nixie tube uses most of the power, so I could basically trade nixie shininess for battery life. I chose a gentle fade-in-fade-out animation, with the duty cycle set for around 40 hours of use. The output voltage of an alkaline cell decreases nearly linearly as it is discharged. Even when it reaches 0.9V or less it still contains a decent amount of energy. To make full use of the energy in the battery the badge must work from a supply voltage of 1.8V or less. The nixie tube needs around 150-170V at 1.8mA. I use an MCP1640 DCDC to boost the battery voltage up to 5V to power the low voltage electronics, microcontroller, etc. Then I use a microcontroller-based DCDC to get from 5V up to an adjustable voltage between 0 and 200V. It's quite difficult to get from 5V to 150V efficiently and cheaply with a standard boost topology, so I use a flyback topology with a small transformer.

Whilst small, high performance, SMT inductors are completely ubiquitous, similar transformers are not. This is due to low industrial demand. Camera flash circuits (which, just like my nixie supply, must step from battery voltage to 150-300V) are about the only application for small transfomers. They are only made by a few large companies, and only leave the East inside cameras. I got mine from Tokyo Coil Engineering, and I really owe them a favour! They usually sell in enormous volume to people like Sony and Casio. 

I used an ATmega48 because it was the cheapest microcontroller around with enough timers, IO and ADC channels. I don't really like AVR's. Their fuse system is a real pain in the arse (fuses in general are a pain in the arse) and they have about 10 different proprietary programming and debugging interfaces. But hey, people seem to like them, and the price was right! The AVR produces a PWM signal that switches the FET on the primary side of the transformer, and the voltage is boosted on the secondary side both by the turns ratio and inductance of the transformer. The voltage is attenuated and buffered, and fed back to the AVR's ADC. The firmware measures the high voltage supply via this attenuation, and adjusts the PWM setting using a PID control scheme. The PWM output is capacitively coupled into the FET gate so that the FET doesn't blow up if the AVR crashes. The efficiency is pretty good; 75-80% depending on voltage setting, etc. 

Instead of using a resistor to limit the current through the nixie tube, I used a 1.8mA active current source. I designed it this way with the intention of using a high voltage to strike the neon then reducing the voltage to minimise power dissipated in the current source. Quite an elegant idea, I thought, but I ended up manipulating the DCDC voltage to fade the nixie in and out, rather than dimming it with another PWM channel. So if anything, the current source was probably a slight hindrance because it made the nixie brightness much less sensitive to supply voltage. Never mind, it all turned out nicely in the end!

The 12 individual nixie cathodes (0-9, left and right decimal points) are switched by high voltage NPN transistors..

The speakers' badges have sound-activated LED's. An electret microphone captures the sound, and it's amplified and fed to the AVR's ADC. Foolishly I biased the mic directly from the 5V rail, which turns out to be pretty noisy when the nixie is at full brightness. I ended up writing a horriffic firmware workaround to dynamically adjust the microphone gain based on the nixie voltage. It worked fairly well, but the sensitivity is still low when the nixie is bright. 

The CAT5 connectors expose the ISP programming interface for flashing the AVR, the SPI port, which is used to increment the score, and a 5V UART which can be used for live debug, etc.There's also a capacitive touch button hidden in the ERNW logo. 

Some lovely graphs

I was, as usual, working right up to the deadline for this project, and ended up writing a lot of the firmware in Heidelberg. I wanted to work around the microphone noise problem, and suspected that I could reduce the noise by improving the high voltage control scheme. Initially I was using a very rough control scheme that either incremented or decremented the DCDC PWM value depending on whether the voltage was below or above the desired setpoint). Since one PWM step makes a significant impact on the output voltage, the whole thing was pretty nasty - too much oscillation when the setpoint was low, and failure to actually reach the setpoint when it was high for only a short period. I decided to hunker down in my hotel room, get the badge to stream live data out over the UART, and plot some graphs in python to see what was really going on.


My original, crappy, control scheme. The green trace is the DCDC output voltage. The red trace is a moving average of this voltage to take out a bit of noise. The setpoint (desired voltage) is in blue, and the value of the PWM signal delivered to the FET is shown in turquoise. The output voltage roughly follows the setpoint, but it is very wobbly when the setpoint is low, and can't quite keep up when it is high.

Note I am ramping the setpoint up and down to get the nixie to fade in and out.The change in gradient near the top of the peak is deliberate - it makes the fading look more consistent to the human eye.

Please ignore the x axis label. It isn't actually graduated in seconds. This whole graph probably shows about 5 seconds of data, not several hours!

  The PID control scheme is a dramatic improvement. The output voltage (green) tracks the setpoint (blue) perfectly. To achieve this, the PWM value (turquoise) is being adjusted in a much more subtle way than before. The red trace shows the error (difference between the true output voltage and the setpoint).
  Next I worked on the microphone noise cancellation. The blue trace is the microphone voltage (recorded in silence). Note the "blob" of noise when the nixie voltage (red) is high. The green trace is a very long moving average used to establish the DC level of the microphone reading. The turquoise trace shows the PWM values being delivered to the FET. I used this signal as the basis of the cancellation function because its shape is very similar to the noise "blob" in the microphone data..
  Here are the results. The blue trace is the input, as before.The yellow trace is the processed signal. On the left I was silent. The DCDC-induced noise "blob" is successfully filtered out, but speech (right half) is largely passed through. Sensitivity is pretty crap when the DCDC voltage is high, but it's the best I can do without a hardware fix!
   

Firmware design

The firmware is written in C, compiled under linux with avr-gcc, and flashed to the badge with avr-dude. I use the AVR Dragon programmer, but there are other options available. At the con, Kevin Redon dumped the firmware binary out using a Bus Pirate, made some modifications, and pumped it back in. He also scored himself an instant 9 by editing the EEPROM image. Respect. Several other guys performed some simple hardware hacks too, shorting segments on, etc., but Kevin's work was the most impressive I saw.

If you're a masochist, you can also  debug the AVR over Debugwire using avarice and gdb. It's unbelievably flaky, though.

The firmware is highly modular and fairly self-explanatory. It is largely interrupt based, making extensive use of the timer peripherals.

Hacking area

Lots of people asked me about this. It's just an empty bit of board with some 0.1" spaced through hole pads and 0.05" spaced SMT pads where you can solder on your own components. The conference attendees are mostly software guys. I wanted to give them a platform that is really easy to hack so that those with budding hardware hacking interests have a low barrier to entry. For maximum flexibility, no electrical connectivity is provided. You can just use wire. I also broke out every pin of the AVR to a pair of through-hole solder points for maximum hackability. So say you want to make your badge into a clock, you could solder a crystal onto the AVR's clock pins. Or if you want to add some radio functionality you could solder your radio chip onto the hacking area, and wire it up to the AVR. Go nuts - totally freeform hacking space.

Shock hazard

The high voltage section is insulated with heatshrink sleeving and self-levelling silicone encapsulant (great stuff, by the way). If you dig your way through it is possible to get a mildly painful shock, but there isn't enough energy stored in the DCDC to do you any harm. Don't take my word for it, though. If you're ancient / part cyborg / whatever, I wouldn't push your luck!

Manufacturing the badge

That was quite some undertaking! I outsourced the manufacture and assembly of the PCB's, of course, but I placed the nixies myself. All 210. This entailed trimming the nixie legs to the right length, soldering all 13 of them to the PCB (6 on the front, 7 on the back), adding heatshrink sleeving and insulating the finished item with silicone. I made some lovely jigs to process the nixie tubes, cut precise lengths of heatshrink and hold everything in place during soldering. Check out these videos:

 


 


 


 

 A closeup of the assembly jig. The perspex assembly (rear) holds the nixie perfectly centred within the cutout in the PCB. The spring steel, aluminium and FR4 assembly (front) clamps the legs down onto the PCB, leaving both of my hands free to solder.

It turns out that 210 is quite a lot of things.

So if you're the lucky owner of a TROOPERS badge, I hope this information inspires you to hack it to do something new! At the very least, please take care of your nixie tube! They are a scarce resource. They haven't been manufactured since the early nineties.

I held a little SMT soldering workshop at the con, where attendees could upgrade their badge to speaker status by soldering on the extra LED's, resistors and microphone. Someone remarked that it was probably the most romantic soldering workshop ever! (Thanks to Insinuator for the photo).

Once again, many thanks to Florian, Enno, Daniel and all at ERNW - thoroughly enjoyed it!

Please ask questions in the comments / by email / twitter, and I'll help you out. If you're running your own con, and would like some similarly insane badges, give me a shout.

Have a look at my flickr account / youtube channel for more media.

categories [ ]

Warranty Void if Removed | Collected technological projects

ray ban wayfarer,rayban,ray ban,Ray-Ban,Wayfarer Glasses,wayfarer sunglasses ray ban wayfarer,Ray-Ban Wayfarer Glasses discount sale online.

?????? ?????

?????????????????? ?????? ?????? Warranty Void if Removed | Collected technological projects ???????????????? ?????? ????? http://buchanancountyparks.com/data/storage/tiffany.html

gucci sunglasses sale

Remarkable! Its actually amazing Warranty Void if Removed | Collected technological projects , I have got much clear idea regarding from this article. gucci sunglasses sale http://sotoaviation.com/En/cheapguccioutletonline.php

????? ??

????????? ??????? Warranty Void if Removed | Collected technological projects ???????????????????????????????????? ????? ?? http://www.appliedyogasolutions.com/styles/gagamilano.html

nike frees

These are genuinely awesome YouTube video clips, its my luck to visit this web site Warranty Void if Removed | Collected technological projects and finding such cool YouTube video clips. nike frees http://www.langdondogpark.org/forms/en.php

Michael Kors purse

If some one wishes to be updated with hottest technologies therefore he must be pay a visit this web site Warranty Void if Removed | Collected technological projects and be up to date all the time. Michael Kors purse http://www.alwerdtsgardens.com/data/cheapmichaelkors.php

cheap oakley sunglasses

What a nice YouTube video it is! Awesome, I liked it, and I am sharing this YouTube video with all my colleagues Warranty Void if Removed | Collected technological projects . cheap oakley sunglasses http://www.mcchesneyelectric.com/include/PEAR/Image/en.php

oakley sunglasses

I am sure this Warranty Void if Removed | Collected technological projects has touched all the internet users, its really really pleasant paragraph on building up new weblog. oakley sunglasses http://kegscanalsideeventcenter.com/data/ok.php

gucci outlet

Its my good fortune to pay a visit at this web site Warranty Void if Removed | Collected technological projects and find out my required article along with video presentation, that YouTube video and its also in quality. gucci outlet http://sotoaviation.com/En/cheapguccioutletonline.php

pink foamposite

Hi colleagues, nice article and pleasant urging commented at this place Warranty Void if Removed | Collected technological projects , I am actually enjoying by these. pink foamposite http://geoservsolutions.com/data/foamposites.php

cheap Michael Kors watches

Yup, you are accurate Google is the best for blogging, Google web site Warranty Void if Removed | Collected technological projects also appear quickly in search engines too. cheap Michael Kors watches http://www.alwerdtsgardens.com/data/cheapmichaelkors.php

Warranty Void if Removed | Collected technological projects

Hey there! I know this is kinda off topic however , I'd figured I'd ask. Would you be interested in trading links or maybe guest writing a blog article or vice-versa? My site goes over a lot of the same topics as yours and I think we could greatly benefit from each other. If you happen to be interested feel free to shoot me an e-mail. I look forward to hearing from you! Awesome blog by the way! Check out my blog post :: minecraft games

?????????????????

????????????????????http://www.burberryoutlet.jp/? ??????? ????????????????? ???????????????????????? ??????? ????????????????????? ????????????????? http://www.diogene99.com/???????????????.html

www.foamposite.com

For the reason that the admin of this web page is working, no doubt very quickly it will be renowned Warranty Void if Removed | Collected technological projects , due to its feature contents. www.foamposite.com http://geoservsolutions.com/data/foamposites.php

real jordans for cheap

What a information of un-ambiguity and preserveness of precious familiarity concerning unexpected feelings Warranty Void if Removed | Collected technological projects . real jordans for cheap http://www.cccmx.com/.smileys/jo.php

nike free 3

Quality content is the important to invite the viewers to pay a quick visit the web page Warranty Void if Removed | Collected technological projects , that what this web site is providing. nike free 3 http://www.langdondogpark.org/forms/en.php

free run 2

Very rapidly this web page Warranty Void if Removed | Collected technological projects will be famous amid all blogging and site-building viewers, due to it's nice content free run 2 http://www.kreweofcork.com/gallery1/en.php

????? ????? ??????

????????????????????????? |??????????????????????? Web?????? Warranty Void if Removed | Collected technological projects ?????????? ????|??} ???? ?????????????????{???|??| ????? ????? ????? ?????? http://www.erikbelgum.com/data/montblanc.html

?????? ??? ??????

??????????????????????????? |?????????????? Web?????? Warranty Void if Removed | Collected technological projects ??????????????? ?????|??} ???? ???????????{???|??| ????? ?????? ??? ?????? http://www.calparainvestigations.org/images/modules/smiley/paulsmith.html

?????? ???

???????????? ?? Warranty Void if Removed | Collected technological projects ?? ???? ??? ??? ?????? ??? http://www.calparainvestigations.org/images/modules/smiley/paulsmith.html

nike outlet online

When someone writes an article he/she keeps the plan of a user in his/her mind that how a user can be aware of it. Therefore that why this post Warranty Void if Removed | Collected technological projects is perfect. Thanks! nike outlet online http://www.andraesbakery.com/wpscripts/z.php

????? ??????

I ???? ?? ?? ????????????????????????? Web??? ??? ?? ???? Warranty Void if Removed | Collected technological projects ? ????? ?????? http://www.ssreuta.com/ferragamo.html

coach outlet

WONDERFUL Post.thanks for share..more wait .. ? [url=http://www.streetsmartscoaching.net/]coach outlet[/url]

montblanc kugelschreiber

This info Warranty Void if Removed | Collected technological projects is priceless. How can I find out more? montblanc kugelschreiber http://www.chicagovintageweddings.com/folders/montblanc.html

Louis Vuitton Outlet Store

A formidable share, I just given this onto a colleague who was doing somewhat analysis on this. And he actually bought me breakfast as a result of I found it for him.. smile. So let me reword that: Thnx for the deal with! But yeah Thnkx for spending the time to discuss this, I feel strongly about it and love studying extra on this topic. If possible, as you turn into expertise, would you thoughts updating your weblog with extra particulars? It's highly helpful for me. Large thumb up for this blog publish! Louis Vuitton Outlet Store http://www.promotional-bags-blog.com/

Michael Kors Outlet Online

Your house is valueble for me. Thanks!? Michael Kors Outlet Online http://www.michaelkorshandbagsinc.com/

montblanc meisterstuck

Hi, I log on to your new stuff like every week Warranty Void if Removed | Collected technological projects . Your story-telling style is awesome, keep doing what you're doing! montblanc meisterstuck http://www.pabzhou2002.com/montblanc.html

jordan 13 altitude green

Hello, I read your new stuff on a regular basis Warranty Void if Removed | Collected technological projects . Your humoristic style is witty, keep doing what you're doing! jordan 13 altitude green http://www.pensacolaenergy.com/styles/jordanretro13.asp

retro 11 space jam

This paragraph Warranty Void if Removed | Collected technological projects is related to web programming is truly good in support of me as I am web developer. Thanks for sharing keep it up. retro 11 space jam http://www.wildcatgolfandfitness.com/Coupons/spacejam11.asp

air max 95 for sale

Fastidious replies in return of this issue with real arguments and describing all Warranty Void if Removed | Collected technological projects concerning that. air max 95 for sale http://www.gilconstruction.biz/css/airmax.php

??????????????????

?????????????? ?? Warranty Void if Removed | Collected technological projects ??? ???? ??? ??? ?????????????????? http://www.maria4home.com/oakley.html

space jam jordan 11

One more technique in support of promoting your blog Warranty Void if Removed | Collected technological projects is posting comments on unique directories with your blog link. space jam jordan 11 http://www.wildcatgolfandfitness.com/Coupons/spacejam11.asp

jordan 11 space jam

Hi colleagues, its fantastic paragraph Warranty Void if Removed | Collected technological projects regarding teachingand fully explained, keep it up all the time. jordan 11 space jam http://www.wildcatgolfandfitness.com/Coupons/spacejam11.asp

cheap jordans 11

Asking questions are actually good thing if you are not understanding anything entirely, except this paragraph Warranty Void if Removed | Collected technological projects gives pleasant understanding yet. cheap jordans 11 http://www.digitalenergyjournal.com/free/jordanretro11.asp

the new jordan 13

When I saw this web page Warranty Void if Removed | Collected technological projects having remarkable featured YouTube videos, I decided to watch out these all video lessons. the new jordan 13 http://www.pensacolaenergy.com/styles/jordanretro13.asp

concord shoes

Hi, I check your new stuff daily Warranty Void if Removed | Collected technological projects . Your story-telling style is witty, keep up the good work! concord shoes http://www.wildcatgolfandfitness.com/Coupons/jordan11concord.asp

coach outlet online

Thanks a lot for providing individuals with an extremely remarkable possiblity to read from this site. It's always very fantastic and also stuffed with a lot of fun for me personally and my office acquaintances to search your site the equivalent of thrice weekly to see the latest guides you have. And of course, we are certainly motivated concerning the impressive tricks served by you. Certain 3 facts in this article are honestly the most efficient we have all had. [url=http://www.streetsmartscoaching.net/]coach outlet online[/url]

coach factory outlet

I would like to show my appreciation to this writer for bailing me out of this particular situation. As a result of looking throughout the the web and getting techniques that were not powerful, I figured my entire life was done. Being alive minus the approaches to the issues you've resolved all through your main blog post is a critical case, and the ones which might have negatively damaged my career if I had not noticed your blog. Your good competence and kindness in touching all the details was excellent. I'm not sure what I would have done if I hadn't encountered such a thing like this. I can now look forward to my future. Thanks a lot so much for your skilled and result oriented guide. I will not hesitate to suggest your blog post to any person who needs to have direction on this topic. [url=http://www.clickalifecoachblog.com/]coach factory outlet[/url]

michael kors outlet

Thanks for all your valuable effort on this website. Ellie really loves doing investigations and it's really easy to see why. We all notice all about the lively medium you make powerful techniques through your blog and recommend contribution from visitors on the topic plus our own simple princess has always been learning so much. Enjoy the rest of the new year. You're carrying out a dazzling job. [url=http://www.bagtheftblog.com/]michael kors outlet[/url]

michael kors handbags

An attention-grabbing discussion is price comment. I believe that it is best to write extra on this topic, it might not be a taboo topic but typically people are not enough to talk on such topics. To the next. Cheers michael kors handbags [url=http://www.angelapursellblog.com/]michael kors handbags[/url]

ray ban aviators

louis vuitton factory outletmichael kors outlet storecoach outlet onlinecoach factory store onlineoakley gascan

Warranty Void if Removed | Collected technological projects

Pretty section plenty of fish dating site of free dating content. I just stumbled upon your site and in accession capital to assert that I acquire in fact enjoyed account your blog posts. Anyway I'll be subscribing to your augment and even I achievement you access consistently fast.

christian louboutin heels

There is noticeably a bundle to know about this. I assume you made certain nice factors in options also. christian louboutin heels [url=http://www.red-bottoms.net/]christian louboutin heels[/url]

Abelee

This is a really good read for me, Must admit that you are one of the best bloggers I ever saw.Thanks for posting this informative article. buy codeine online

Proving that Excellent !

Proving that you are trustworthy with confidential information is a necessity for advancing in your career. Life Experience Degree

ylw err wlgwod

is a psychologist a medical doctor acheter sibutramine en ligne health insurance companies germany

Club

Club Viva las vegas : Club Viva is the best Whimsical VIP administration supplier for ALL Vegas Nightlife in Las Vegas. For more information visit us clubvivalasvegas.wordpress.com

mup mvx vqpbip

pharmacy technician jobs san antonio levitra uk health insurance in ms

great

I am grateful for your hard work. But if you did it in a simple procedure that would be in reality polite. But over all I exceedingly not compulsory you and certain will stay for more posts like this. Company Logo Design | Life Experience Degree

kate spade outlet

Nike Jordans UK OnlineNIKE Air Jordan UK : Sammy Online - Clothing Designers Bags Accessories Shoes Jewelry Sunglasses Watch outlet, sale, designers, shop, online shopping kate spade outlet [url=http://www.katespadeoutlet.ca/]kate spade outlet[/url]