C++ template fuckwittery

You're kidding, right?

(gdb) bt
#0  0xaf88f2e0 in std::lround<Fixed<long, 14> > (__x=51.35198974609375) at /usr/include/c++/4.5/tr1_impl/cmath:710
#1  0xaf88f2e8 in std::lround<Fixed<long, 14> > (__x=51.35198974609375) at /usr/include/c++/4.5/tr1_impl/cmath:710
#2  0xaf88f2e8 in std::lround<Fixed<long, 14> > (__x=51.35198974609375) at /usr/include/c++/4.5/tr1_impl/cmath:710
#3  0xaf88f2e8 in std::lround<Fixed<long, 14> > (__x=51.35198974609375) at /usr/include/c++/4.5/tr1_impl/cmath:710
#4  0xaf88f2e8 in std::lround<Fixed<long, 14> > (__x=51.35198974609375) at /usr/include/c++/4.5/tr1_impl/cmath:710
#5  0xaf88f2e8 in std::lround<Fixed<long, 14> > (__x=51.35198974609375) at /usr/include/c++/4.5/tr1_impl/cmath:710

This goes on for a few tens of thousands of stack frames. Time to open /usr/include/c++/4.5/tr1_impl/cmath:710, which has this little gem:

  template<typename _Tp>
    inline long
    lround(_Tp __x)
    {
      typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
      return lround(__type(__x));
    }

What happened? Fucked if I know (it's a bit hard to get to the bottom of the problem without being able to get to the bottom of the call stack, for starters; ought to figure out a better  way than hitting Enter screen after screen, with gdb asking if I really want to proceed).

Did someone define an std::lround? (A quick grep didn't show signs of that fuckwittery; though I found a couple of std::mins and std::maxes, leading to colorful consequences.)

Did someone define a template lround and did a using namespace std?

Did someone define an implicit casting operator that used to be called here, before this lround template appeared, and became a better match for the argument, whatever that means?

Fucked if I know.

I'm sure this lround business wasn't ever supposed to call itself, though it rather obviously can, depending on what the __gnu_cxx::__promote<_Tp>::__type does.

All that from trying to upgrade from g++ 4.2 to g++ 4.5 (and to gnu++0x – a C++0x flavor brought to you by GNU, enriched by GNU extensions such as strdup.) Oh the joys and safety of static binding – statically changing the meaning of your code with every compiler upgrade!

It's a good thing I rarely get to deal with C++ these days.

(Why upgrade to C++0x, a.k.a. C++11, a.k.a C++0xb? Lambdas, for one thing. Also future job interviews. Embrace C++11, or die trying.)

172 comments ↓

#1 Max Lybbert on 12.10.12 at 11:04 am

For what it's worth, it looks like the typedef uses GCC-specific machinery to do some kind of cast (my guess is to remove const and volatile, but that's only a guess). The last line looks like a recursive call, but I suspect it's meant to call an overloaded function that uses takes the promoted type chosen by the typedef.

My diagnosis is that the second function doesn't exist for long, so the thing gets stuck in a recursive loop. However, I can't figure out what value there is in rounding longs, they're integral types so they have no fractional part to round.

I suspect that this is a bug in GCC's library. I have a hard time believing that you'd call lround directly. Instead, I'm sure you called another function that erroneously calls lround.

#2 Vasilis Vasaitis on 12.10.12 at 12:19 pm

I don't have GCC 4.5, but what seems to be happening here is the following:

- libstdc++ has a few (>= 1) non-template lround() functions which handle some specific types.
- libstdc++ also has the generic, templated version shown above, which tries to promote the type it is given to one that's eventually handled by the non-template versions.

The diagnosis here would be to check what __promote does for your type; but it already looks like it's essentially the identity function. Which is the weird part; it should be doing something sensible or failing to compile.

In fact (so I got curious and starting digging around the web for the libstdc++4.5 header files), if you look at , that's exactly what's happening: __promote merely serves as identity, at least for types that __is_integer is not defined. This seems to be a bug, and it's been fixed in 4.7, where the generic version of __promote does not define __type at all. (And also in 4.7 the templated lround() simply calls __builtin_lround() and doesn't bother with any of this promoting chicanery).

#3 Vasilis Vasaitis on 12.10.12 at 12:21 pm

Last paragraph should read: "[...] if you look at ext/type_traits.h, [...]" (looks like your blog code strips anything in angle brackets, which is probably a good idea, but still…)

#4 Z.T. on 12.10.12 at 12:38 pm

Did you try GCC 4.7? Did you try clang 3.2? Even if they can't generate assembly for your arch, they might be useful as static analyzers.

#5 yossi kreinin on 12.10.12 at 1:40 pm

Is 4.7 known to be much better than 4.5? I'm open to experimenting.

#6 A on 12.13.12 at 2:09 pm

I bet you already know the "explanation" for what's actually happening at the compiler/library level here, but for the benefit of *anyone* who feels confused, here's my amateur take on it:

The standard library defines lround(float), lround(double), and lround(long double). It also defines a template function lround(T), as pasted in your post, whose job is to promote the T parameter to a new, more appropriate type __type and then call lround(__type) on the promoted value.

How is this new type "__type" determined? Well, if the original type was an integral type, the new type is "double". Otherwise, __promote is a no-op. Here's the code:

http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.3/a02061.html#l00161
00164 template<typename _Tp, bool = std::__is_integer::__value>
00165 struct __promote
00166 { typedef double __type; };
00167
00168 template
00169 struct __promote
00170 { typedef _Tp __type; };

Now, in Yossi's code, he's calling lround() on a value of type Fixed<long,14>. Presumably the Fixed type has an overloaded conversion "operator double()" or the like, and the original programmer expected that lround(fixedval) would be evaluated as lround(double(fixedval)). Unfortunately, GNU's library isn't playing along.

One workaround would be to insert the explicit cast everywhere lround() is called. Another (better?) workaround would be to provide your own overload or specialization of lround(), and make sure it's visible in all files where lround is called. Yet another (much much worse!) workaround would be to specialize std::__is_integer for your Fixed type.

In libc++, this library bug has been fixed by writing clearer code in the first place: std::lround<T> is enabled only for integral types, using the clever (TOO clever, I'm sure Yossi will say) "enable_if" construct.

template
inline _LIBCPP_INLINE_VISIBILITY
typename enable_if<is_integral::value, long>::type
lround(_A1 __x) {return lround((double)__x);}

#7 David on 12.14.12 at 9:31 am

can you put post here the definition of Fixed, as well as what promote does to it ?

#8 Yossi Kreinin on 12.15.12 at 1:47 am

@A: you have rather thorough knowledge of this shit. I remember when I used to have rather thorough knowledge of this shit myself. I sure hope the process of interacting with the various new versions of gcc and their C++11 support will not force me to thoroughly learn this shit again. enable_if… fuck_me.

@David: no, that would be too embarrassing. The upshot is that it has an operator float and an operator double, I think – implicit casts because C++98 doesn't have an explicit cast, only explicit constructors, and now it's a bit too late to change the thousands of casts in user code to explicit ones. As to what promote does to it – I think that the recursion above demonstrates that promote does nothing to it, or rather it's an identity function, if you can call this shit a function.

#9 Thomas Jürges on 12.19.12 at 2:31 pm

Unpaged output in gdb?

Enter "set pagination off" in gdb or add it to ${HOME}/.gdbinit for automatic execution. Then welcome the gazillions of identical lines of back trace. ;-)

#10 Yossi Kreinin on 12.21.12 at 11:57 pm

@Thomas: aha! set pagination off. Maybe it's worth adding to the company-wide .gdbinit… I wonder what happens under TUI and to what extent cmd.exe can scroll through the output though…

#11 Zhou Feng on 12.28.12 at 1:27 am

C++ is a cuntful language. When it is nice and dripping there is no better place to be, but when those mucus membranes dry up, it will tear the skin off your dick.

I generally avoid the use of templates at all costs. I find them objectionable.

#12 EschewPanache on 10.16.13 at 12:54 pm

I am still laughing! I have been calling myself a programmer for 30+ years (reference to another blog) and can still learn things right here!
Particularly that last bit about avoiding templates!
Thanks, folks!
carl.

#13 mathrick on 01.27.14 at 4:39 am

@A: “How is this new type "__type" determined? Well, if the original type was an integral type, the new type is "double".”

Assuming that's accurate, who the hell rounds long to long by converting it to double!? Is that one of those mythical "smart compilers" which make templates "as performant as hand-written code"?

#14 battlefield 1 esp on 05.15.19 at 3:28 pm

You got yourself a new rader.

#15 fortnite aimbot download on 05.16.19 at 12:34 pm

This does interest me

#16 aimbot fortnite on 05.16.19 at 4:28 pm

Some truly interesting article on this web site , appreciate it for contribution.

#17 nonsensediamond on 05.17.19 at 6:41 am

Enjoyed reading through this, very good stuff, thankyou .

#18 fallout 76 hacks on 05.17.19 at 10:08 am

I enjoying, will read more. Cheers!

#19 red dead redemption 2 digital key resale on 05.17.19 at 3:19 pm

Ha, here from yahoo, this is what i was looking for.

#20 redline v3.0 on 05.17.19 at 6:22 pm

Some truly wonderful article on this web site , appreciate it for contribution.

#21 Teofila Alveraz on 05.18.19 at 4:30 am

In my opinion, yosefk.com does a great job of handling subjects of this kind. While frequently intentionally polemic, the information is in the main well-written and stimulating.

#22 chaturbate hack cheat engine 2018 on 05.18.19 at 7:48 am

I am glad to be one of the visitors on this great website (:, appreciate it for posting .

#23 forza horizon 4 license key on 05.18.19 at 2:40 pm

Great stuff to Read, glad that yandex brought me here, Keep Up awsome Work

#24 mining simulator codes 2019 on 05.19.19 at 6:39 am

I dugg some of you post as I thought they were very beneficial invaluable

#25 smutstone on 05.20.19 at 11:19 am

This is nice!

#26 redline v3.0 on 05.21.19 at 6:48 am

Appreciate it for this howling post, I am glad I observed this internet site on yahoo.

#27 free fire hack version unlimited diamond on 05.21.19 at 4:02 pm

Ha, here from google, this is what i was browsing for.

#28 nonsense diamond on 05.22.19 at 5:52 pm

I like this site, because so much useful stuff on here : D.

#29 krunker hacks on 05.23.19 at 6:10 am

I’m impressed, I have to admit. Genuinely rarely should i encounter a weblog that’s both educative and entertaining, and let me tell you, you may have hit the nail about the head. Your idea is outstanding; the problem is an element that insufficient persons are speaking intelligently about. I am delighted we came across this during my look for something with this.

#30 bitcoin adder v.1.3.00 free download on 05.23.19 at 9:48 am

I must say, as a lot as I enjoyed reading what you had to say, I couldnt help but lose interest after a while.

#31 vn hax on 05.23.19 at 6:33 pm

I’m impressed, I have to admit. Genuinely rarely should i encounter a weblog that’s both educative and entertaining, and let me tell you, you may have hit the nail about the head. Your idea is outstanding; the problem is an element that insufficient persons are speaking intelligently about. I am delighted we came across this during my look for something with this.

#32 eternity.cc v9 on 05.24.19 at 7:21 am

Very interesting points you have remarked, appreciate it for putting up.

#33 ispoofer pogo activate seriale on 05.24.19 at 5:44 pm

Great, bing took me stright here. thanks btw for info. Cheers!

#34 cheats for hempire game on 05.26.19 at 6:14 am

Cheers, i really think i will be back to your website

#35 iobit uninstaller 7.5 key on 05.26.19 at 9:01 am

Intresting, will come back here once in a while.

#36 smart defrag 6.2 serial key on 05.26.19 at 3:20 pm

Enjoyed reading through this, very good stuff, thankyou .

#37 resetter epson l1110 on 05.26.19 at 5:55 pm

This does interest me

#38 sims 4 seasons free code on 05.27.19 at 7:12 am

Good Day, glad that i saw on this in google. Thanks!

#39 rust hacks on 05.27.19 at 7:46 pm

stays on topic and states valid points. Thank you.

#40 strucid hacks on 05.28.19 at 10:04 am

I dugg some of you post as I thought they were very beneficial invaluable

#41 expressvpn key on 05.28.19 at 7:07 pm

Enjoyed reading through this, very good stuff, thankyou .

#42 how to get help in windows 10 on 05.29.19 at 5:45 am

I love what you guys are up too. This sort of clever work and coverage!

Keep up the amazing works guys I've added you guys to our blogroll.

#43 ispoofer license key on 05.29.19 at 8:19 am

I like this site, because so much useful stuff on here : D.

#44 gamefly free trial on 05.29.19 at 10:49 am

Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet
my newest twitter updates. I've been looking for a plug-in like this for quite some time
and was hoping maybe you would have some experience with something like this.
Please let me know if you run into anything.
I truly enjoy reading your blog and I look forward to your new updates.

#45 aimbot free download fortnite on 05.29.19 at 12:18 pm

Hi, happy that i saw on this in bing. Thanks!

#46 gamefly free trial on 05.29.19 at 3:30 pm

Howdy! This is kind of off topic but I need some help from an established blog.
Is it very hard to set up your own blog? I'm not very
techincal but I can figure things out pretty fast.
I'm thinking about creating my own but I'm not sure where to start.

Do you have any tips or suggestions? Many thanks

#47 redline v3.0 on 05.29.19 at 4:46 pm

I am glad to be one of the visitors on this great website (:, appreciate it for posting .

#48 vn hax on 05.30.19 at 5:58 am

Intresting, will come back here later too.

#49 gamefly free trial on 05.30.19 at 5:12 pm

I read this post fully on the topic of the resemblance of most recent and preceding technologies,
it's remarkable article.

#50 Cortez Flakne on 05.30.19 at 5:38 pm

Quite a good read. I just now passed this on 5/30/2019 to a colleague who's been involved in some work of his own on the topic. To show his appreciation, they just bought me lunch! So, let me express my gratitude by saying: Thanks for the meal!

#51 xbox one mods free download on 05.31.19 at 12:32 pm

Intresting, will come back here more often.

#52 fortnite aimbot download on 05.31.19 at 3:16 pm

Ha, here from yahoo, this is what i was browsing for.

#53 gamefly free trial on 06.01.19 at 1:58 am

I'm not sure where you're getting your info, 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.

#54 gamefly free trial on 06.01.19 at 1:13 pm

Hi there, all is going fine here and ofcourse every one is sharing data, that's truly excellent, keep up writing.

#55 mpl pro on 06.01.19 at 6:16 pm

Just wanna input on few general things, The website layout is perfect, the articles is very superb : D.

#56 hacks counter blox script on 06.02.19 at 6:22 am

bing brought me here. Cheers!

#57 gamefly free trial on 06.02.19 at 4:05 pm

This excellent website definitely has all of the info I needed concerning
this subject and didn't know who to ask.

#58 protosmasher download on 06.03.19 at 10:11 am

Awesome, this is what I was searching for in google

#59 gamefly free trial on 06.03.19 at 3:33 pm

fantastic publish, very informative. I'm wondering why the
other experts of this sector do not notice this.
You should continue your writing. I'm confident, you have a great readers' base already!

#60 gamefly free trial on 06.03.19 at 5:33 pm

Do you have a spam problem on this blog; I also am a blogger,
and I was curious about your situation; we have developed some nice
procedures and we are looking to trade techniques with others, be
sure to shoot me an e-mail if interested.

#61 gamefly free trial on 06.06.19 at 2:01 am

Hi to every body, it's my first go to see of this web site;
this website consists of awesome and actually excellent information in support of visitors.

#62 gamefly free trial on 06.06.19 at 2:43 pm

This article is truly a good one it helps new the
web people, who are wishing for blogging.

#63 gamefly free trial on 06.06.19 at 9:04 pm

Attractive section of content. I just stumbled upon your site and in accession capital to assert
that I acquire actually enjoyed account your blog posts.
Any way I will be subscribing to your feeds and even I achievement you access consistently rapidly.

#64 gamefly free trial on 06.06.19 at 9:30 pm

Informative article, exactly what I was looking for.

#65 ps4 games on 06.08.19 at 5:17 am

Every weekend i used to pay a quick visit this web site, as i wish for enjoyment, as
this this website conations genuinely pleasant funny stuff too.

#66 playstation 4 best games ever made 2019 on 06.12.19 at 7:24 pm

Wonderful blog! I found it while browsing on Yahoo News.
Do you have any tips on how to get listed in Yahoo News?
I've been trying for a while but I never seem to get there!

Thank you

#67 quest bars cheap on 06.15.19 at 6:53 am

Please let me know if you're looking for a author for your site.
You have some really great articles and I believe I would be
a good asset. If you ever want to take some of the load
off, I'd really like to write some material for your
blog in exchange for a link back to mine. Please send me an email if
interested. Many thanks!

#68 quest bars on 06.16.19 at 6:56 pm

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

#69 roblox script executor on 06.16.19 at 8:09 pm

Cheers, i really think i will be back to your website

#70 krunker aimbot on 06.16.19 at 11:27 pm

Hello, here from yahoo, me enjoyng this, will come back soon.

#71 http://tinyurl.com/y2vubbmu on 06.17.19 at 2:57 pm

Howdy! This is kind of off topic but I need some advice
from an established blog. Is it hard to set up your own blog?
I'm not very techincal but I can figure things out
pretty quick. I'm thinking about creating my own but I'm not sure where to
begin. Do you have any points or suggestions? Cheers

#72 Kelwhanda on 06.18.19 at 4:53 am

Dove Acquistare Cialis Sicuro Kamagra Insuficiencia Cardiaca Purity Solutions Tadalafil Review [url=http://ausgsm.com][/url] Side Effect Of Amoxicillin

#73 proxo key generator on 06.19.19 at 8:18 am

Me enjoying, will read more. Cheers!

#74 proxo key on 06.19.19 at 9:29 am

Great stuff to check out, glad that duckduck brought me here, Keep Up cool job

#75 RebAbsola on 06.20.19 at 8:01 am

Vpxl Pill Store Viagra Cialis Wirkung [url=http://xbmeds.com][/url] Priligy Omeopatico

#76 vn hax on 06.20.19 at 5:23 pm

Great, this is what I was browsing for in google

#77 vn hax download on 06.20.19 at 6:23 pm

Respect to website author , some wonderful entropy.

#78 nonsense diamond download on 06.21.19 at 6:35 am

Great stuff to check out, glad that yandex led me here, Keep Up awsome job

#79 nonsense diamond on 06.21.19 at 7:36 am

I’m impressed, I have to admit. Genuinely rarely should i encounter a weblog that’s both educative and entertaining, and let me tell you, you may have hit the nail about the head. Your idea is outstanding; the problem is an element that insufficient persons are speaking intelligently about. I am delighted we came across this during my look for something with this.

#80 plenty of fish dating site on 06.21.19 at 11:22 pm

Keep this going please, great job!

#81 badoo superpowers free on 06.23.19 at 4:07 pm

Ni hao, i really think i will be back to your page

#82 badoo superpowers free on 06.23.19 at 5:03 pm

Hello, yahoo lead me here, keep up good work.

#83 gmod hacks on 06.24.19 at 2:12 pm

I consider something really special in this site.

#84 gmod hacks on 06.24.19 at 3:07 pm

I like this website its a master peace ! Glad I found this on google .

#85 free online Q & A on 06.25.19 at 3:58 am

Appreciate it for this howling post, I am glad I observed this internet site on yahoo.

#86 free online Q & A on 06.25.19 at 4:57 am

I like this site, useful stuff on here : D.

#87 geometry dash 2.11 download on 06.25.19 at 6:53 pm

You got yourself a new follower.

#88 qureka pro apk on 06.25.19 at 7:48 pm

I love reading through and I believe this website got some genuinely utilitarian stuff on it! .

#89 krunker aimbot on 06.26.19 at 5:32 am

Thanks for this site. I definitely agree with what you are saying.

#90 skisploit on 06.26.19 at 6:27 am

I like this article, because so much useful stuff on here : D.

#91 eebest8 fiverr on 06.26.19 at 6:38 pm

"Because the admin of this web site is working, no uncertainty very quickly it will be well-known, due to its feature contents."

#92 ispoofer on 06.27.19 at 5:03 am

Yeah bookmaking this wasn’t a risky decision outstanding post! .

#93 ispoofer key on 06.27.19 at 5:54 am

I like this website its a master peace ! Glad I found this on google .

#94 synapse x serial key free on 06.27.19 at 7:49 pm

I consider something really special in this site.

#95 synapse x serial key on 06.27.19 at 8:42 pm

You got yourself a new follower.

#96 strucid aimbot script on 06.28.19 at 6:21 am

You got yourself a new rader.

#97 strucid hacks on 06.28.19 at 7:16 am

Great, google took me stright here. thanks btw for post. Cheers!

#98 advanced systemcare 11.5 on 06.28.19 at 12:45 pm

Found this on MSN and I’m happy I did. Well written website.

#99 advanced systemcare 11.5 on 06.28.19 at 1:23 pm

You got yourself a new rader.

#100 zee 5 hack on 06.29.19 at 8:02 am

I like this website its a master peace ! Glad I found this on google .

#101 cryptotab hack script free download 2019 on 06.29.19 at 8:28 am

Some truly wow article on this web site , appreciate it for contribution.

#102 Kelwhanda on 06.29.19 at 8:51 am

Online Pharmacy Cheap Retin A Real Viagra Pills Cheapest [url=http://elc4sa.com]viagra[/url] Secure Ordering Fluoxetine Medication Internet Free Shipping Overnight Shippingprozac Canada Cildentifil For Sale

#103 cryptotab hack script free download on 06.29.19 at 2:23 pm

I like this site, useful stuff on here : D.

#104 cryptotab hack script free download on 06.29.19 at 2:49 pm

I’m impressed, I have to admit. Genuinely rarely should i encounter a weblog that’s both educative and entertaining, and let me tell you, you may have hit the nail about the head. Your idea is outstanding; the problem is an element that insufficient persons are speaking intelligently about. I am delighted we came across this during my look for something with this.

#105 deep freeze 8.37 on 07.01.19 at 8:21 am

I truly enjoy looking through on this web site , it holds superb content .

#106 golf clash always perfect shot on 07.01.19 at 9:00 am

I was looking at some of your articles on this site and I believe this internet site is really instructive! Keep on posting .

#107 RebAbsola on 07.01.19 at 11:17 am

Propecia De Dolor Testicular Viagra 100mg Buy [url=http://priliorder.com]dapoxetine on line[/url] Keflex Athletic Performance Cialis Se Puede Tomar Con Alcohol

#108 codes for mining simulator 2019 on 07.01.19 at 7:08 pm

Awesome, this is what I was browsing for in yahoo

#109 codes for mining simulator 2019 on 07.01.19 at 7:46 pm

google bring me here. Cheers!

#110 tinyurl.com on 07.01.19 at 7:56 pm

My spouse and I stumbled over here different web page and thought I should check things
out. I like what I see so i am just following you. Look forward to
looking into your web page yet again.

#111 escape from tarkov cheats and hacks on 07.02.19 at 6:58 am

I conceive you have mentioned some very interesting details , appreciate it for the post.

#112 free cheats for rust on 07.02.19 at 7:40 am

I love reading through and I believe this website got some genuinely utilitarian stuff on it! .

#113 nonsense diamond on 07.02.19 at 12:33 pm

Very interesting points you have remarked, appreciate it for putting up.

#114 redline v3.0 on 07.02.19 at 1:11 pm

I simply must tell you that you have an excellent and unique web that I really enjoyed reading.

#115 vn hax download on 07.03.19 at 6:39 am

Just wanna input on few general things, The website layout is perfect, the articles is very superb : D.

#116 vn hack on 07.03.19 at 7:19 am

bing took me here. Cheers!

#117 cyberhackid on 07.03.19 at 6:37 pm

I must say got into this article. I found it to be interesting and loaded with unique points of view.

#118 cyberhackid on 07.03.19 at 7:15 pm

Hello, happy that i saw on this in google. Thanks!

#119 prison life hacks on 07.04.19 at 6:34 am

This is awesome!

#120 vehicle simulator script on 07.04.19 at 7:15 am

Cheers, great stuff, Me like.

#121 types of seo on 07.04.19 at 2:49 pm

Parasite backlink SEO works well :)

#122 subbot on 07.04.19 at 6:21 pm

Some truly interesting content on this web site , appreciate it for contribution.

#123 phantom forces hack on 07.04.19 at 7:02 pm

I enjoying, will read more. Thanks!

#124 open dego file on 07.05.19 at 6:34 am

Enjoyed examining this, very good stuff, thanks .

#125 dego pubg hack on 07.05.19 at 7:16 am

Intresting, will come back here once in a while.

#126 erdas foundation 2015 on 07.05.19 at 6:47 pm

I simply must tell you that you have an excellent and unique site that I must say enjoyed reading.

#127 erdas foundation 2015 on 07.05.19 at 7:30 pm

Ha, here from google, this is what i was browsing for.

#128 synapse x roblox on 07.06.19 at 6:23 am

I like this website its a master peace ! Glad I found this on google .

#129 synapse x roblox on 07.06.19 at 6:51 am

Enjoyed examining this, very good stuff, thanks .

#130 Eddie Sherdon on 07.06.19 at 10:18 am

The next phase of the puzzle is to find out the order of the pyramid. This is your third confidential lead! 517232125

#131 gx tool uc hack app download on 07.06.19 at 10:38 am

Thanks for this web. I definitely agree with what you are saying.

#132 gx tool uc hack on 07.06.19 at 11:03 am

Great stuff to check out, glad that bing led me here, Keep Up awsome job

#133 rekordbox torrent on 07.06.19 at 8:38 pm

I like this page, useful stuff on here : D.

#134 rekordbox torrent download on 07.06.19 at 10:10 pm

I love reading through and I believe this website got some genuinely utilitarian stuff on it! .

#135 license key for black ops 4 on 07.07.19 at 7:32 am

Thank You for this.

#136 license key call of duty black ops 4 free on 07.07.19 at 8:30 am

Some truly cool stuff on this web site , appreciate it for contribution.

#137 spyhunter 5.4.2.101 crack on 07.08.19 at 7:35 am

Just wanna input on few general things, The website layout is perfect, the articles is very superb : D.

#138 spyhunter 5.4.2.101 portable on 07.08.19 at 8:34 am

I must say, as a lot as I enjoyed reading what you had to say, I couldnt help but lose interest after a while.

#139 roblox fps unlocker on 07.09.19 at 9:10 am

I really enjoy examining on this page , it has got good stuff .

#140 quest bars cheap 2019 coupon on 07.09.19 at 9:40 am

Thank you for some other great article. The place else may just anyone get that kind of information in such an ideal way of writing?
I have a presentation subsequent week, and I am at the search for such info.

#141 roblox fps unlocker download on 07.09.19 at 10:09 am

I have interest in this, thanks.

#142 quest bars on 07.11.19 at 2:55 am

You could certainly see your skills within the work you write.
The world hopes for even more passionate writers such as you who are not afraid to mention how they believe.
Always go after your heart.

#143 plenty of fish dating site on 07.15.19 at 9:10 am

you're truly a good webmaster. The website loading velocity is incredible.

It kind of feels that you're doing any distinctive trick.
Furthermore, The contents are masterwork. you've done a wonderful
activity in this topic!

#144 legal porno on 07.15.19 at 11:59 pm

great advice you give

#145 how to get help in windows 10 on 07.16.19 at 1:04 pm

I was suggested this blog by means of my cousin. I am
not sure whether or not this post is written by way
of him as nobody else recognize such targeted approximately my difficulty.
You're wonderful! Thank you!

#146 how to get help in windows 10 on 07.17.19 at 7:47 am

Thanks in favor of sharing such a nice thought,
piece of writing is nice, thats why i have read it fully

#147 how to get help in windows 10 on 07.17.19 at 11:46 pm

Hi to every single one, it's really a good for me to go to
see this web page, it includes important Information.

#148 plenty of fish dating site on 07.18.19 at 4:26 pm

Excellent post. I was checking constantly this blog and I am impressed!
Very helpful info specially the last part :) I care for such information much.
I was seeking this certain info for a long time. Thank you and good luck.

#149 margaret on 07.19.19 at 1:47 am

you are so great

#150 Buy Drugs Online on 07.19.19 at 2:51 am

This blog is amazing! Thank you.

#151 plenty of fish dating site on 07.19.19 at 9:52 am

WOW just what I was searching for. Came here by searching for plenty of
fish dating site

#152 plenty of fish dating site on 07.19.19 at 12:12 pm

I think this is among the most important info for me. And i'm
glad reading your article. But want to remark on some
general things, The site style is great, the articles is really excellent :
D. Good job, cheers

#153 how to get help in windows 10 on 07.20.19 at 3:52 pm

I like what you guys are up too. This kind
of clever work and coverage! Keep up the excellent works guys I've added you guys to blogroll.

#154 how to get help in windows 10 on 07.21.19 at 6:56 am

These are in fact fantastic ideas in concerning blogging.
You have touched some good factors here. Any way keep up wrinting.

#155 prodigy hacked on 07.21.19 at 2:07 pm

Cheers, great stuff, I like.

#156 prodigy hacked on 07.21.19 at 2:53 pm

Thank You for this.

#157 how to get help in windows 10 on 07.22.19 at 1:53 am

Simply wish to say your article is as astonishing. The clarity in your
post is simply cool and i could assume you're an expert on this subject.
Fine with your permission allow me to grab your RSS feed to keep updated
with forthcoming post. Thanks a million and please carry on the enjoyable
work.

#158 acid swapper download on 07.23.19 at 11:40 am

Thanks for this web. I definitely agree with what you are saying.

#159 plenty of fish dating site on 07.23.19 at 12:46 pm

Its like you read my mind! You seem to know so much about this, like you wrote
the book in it or something. I think that you could do with
a few pics to drive the message home a bit, but other than that, this is excellent blog.
A fantastic read. I'll certainly be back.

#160 evogame net wifi on 07.23.19 at 12:51 pm

I am not rattling great with English but I get hold this really easygoing to read .

#161 date cohgar on 07.23.19 at 10:42 pm

I am 43 years old and a mother this helped me!

#162 plenty of fish dating site on 07.24.19 at 3:36 am

Howdy! Do you know if they make any plugins to protect
against hackers? I'm kinda paranoid about losing everything I've
worked hard on. Any suggestions?

#163 natalielise on 07.24.19 at 10:36 am

hello!,I like your writing very so much! proportion we keep up a
correspondence more approximately your article on AOL?
I need a specialist on this house to resolve my problem.
Maybe that's you! Taking a look forward to look you. pof natalielise

#164 adb.com file scavenger 5.3 crack on 07.24.19 at 12:07 pm

Enjoyed examining this, very good stuff, thanks .

#165 adb.com file scavenger 5.3 crack on 07.24.19 at 1:14 pm

I dugg some of you post as I thought they were very beneficial invaluable

#166 plenty of fish dating site on 07.25.19 at 12:26 pm

Hmm it appears like your site ate my first comment (it was extremely
long) so I guess I'll just sum it up what I submitted and say,
I'm thoroughly enjoying your blog. I too am an aspiring blog blogger but I'm still new to
the whole thing. Do you have any tips for beginner blog writers?
I'd really appreciate it.

#167 ezfrags on 07.25.19 at 1:40 pm

I like this website its a master peace ! Glad I found this on google .

#168 Kelwhanda on 07.25.19 at 2:54 pm

Levitra Medicament En Baisse What Is Keflex Combigan [url=http://cheapvia25mg.com]online pharmacy[/url] Amoxicillin Make A Full Dose

#169 ezfrags on 07.25.19 at 3:03 pm

I conceive you have mentioned some very interesting details , appreciate it for the post.

#170 ezfrags on 07.26.19 at 2:43 pm

I am not rattling great with English but I get hold this really easygoing to read .

#171 skisploit on 07.26.19 at 4:10 pm

This does interest me

#172 RebAbsola on 07.26.19 at 4:37 pm

Buy Generic Celexa Online Precio Levitra Tabletas [url=http://cialtadalaf.com]cialis cheapest online prices[/url] Bystolic Online Pharmacy Brand Levitra Online Pharmacy