Tuesday assorted links

by on February 13, 2018 at 11:42 am in Uncategorized | Permalink

1 Charbes A. February 13, 2018 at 11:57 am

#3 It has come to it?


2 Mulp February 13, 2018 at 4:13 pm

Like all liberal hellholes, DC is filled with millions of vacant homes with real estate prices so low you can buy a house for $100…

Woe to anyone moving to the heartland where the fantastic benefits of conservative GOP policies has flooded these States with so many immigrants a one bedroom house sells for one million dollars.


3 Hazel Meade February 13, 2018 at 10:56 pm

How have those conservative policies worked out for Detroit?


4 Axa February 13, 2018 at 11:57 am

#1: I never cared about ads until I had a capped 4G plan. Autoplay video ads can finish your monthly bandwidth very fast. https://www.techdirt.com/articles/20160317/09274333934/why-are-people-using-ad-blockers-ads-can-eat-up-to-79-mobile-data-allotments.shtml


5 Daniel Weber February 13, 2018 at 12:00 pm

2. Bitcoin is no longer useful as a method pf payment or money transfer, unless you fit in the very particular niche of needing to move a large block of money without a government looking over your shoulder.


6 Doug February 13, 2018 at 2:46 pm

Think of bitcoin as the equivalent of IMF drawing rights for the crypto economy. Nobody pays for a cup of coffee with IMF drawing rights. But among the constellation of currencies, bitcoin remains a very important peg of value.


7 Ray Lopez February 13, 2018 at 12:01 pm

If ad-blocking is so bad, why don’t websites do like Forbes and block ad-blocking brower add-ons? I skip Forbes because they ask me to do this, but am I in the majority?


8 leppa February 13, 2018 at 1:06 pm

Quite a few sites do that , asking you to take the AdBlocker off for their Sites .


9 8 February 13, 2018 at 2:09 pm

I think that’s the point made in the abstract, if I’m reading it correctly. I rarely go on sites that force me to whitelist them unless they have great content or use unobtrusive ads.

I often use incognito mode which disables the in-browser apps such as ad blocking. Some sites take forever to load, if at all, when the ads aren’t blocked.


10 jack February 13, 2018 at 2:52 pm

i skip Forbes for the same reason. I am dubious that Forbes offers value commensurate with time wasted on ads as they could not make a go of it by making people pay for their publication directly.


11 Ray Lopez February 13, 2018 at 3:35 pm

But, if you enable Ad-Block for this site, you can’t comment! 🙁 Hehe.


12 Taeyoung February 13, 2018 at 12:03 pm

Re: ad-blocking, there’s an equilibrium where ad-servers commit to policing their ads to prevent popups, weird scripts, and auto-playing videos/audio, and I disable my adblock as a result (or add them to a whitelist). It doesn’t look like that equilibrium is ever going to be reached, though.


13 Mark Thorson February 13, 2018 at 1:33 pm

I long ago disabled popups and javascript. I used to temporarily enable cookies to use certain websites like eBay and Amazon, but since they both wrecked their website designs I don’t use either, so I can’t remember the last time I enabled cookies. Google to their credit works just fine when searching with everything disabled. I do Google searches every day, and paid listings appear in the top and bottom of the search results but they do not bother me. Google has it right, like MR with the ads for Tyler’s books along the side.


14 rayward February 13, 2018 at 12:07 pm

1. “We conclude that ad blocking poses a threat to the ad-supported web.” Of course, I have mixed feelings about this. I know it’s just an illusion of free content, but even illusions have their place. On the other hand, if web sites no longer depended on manipulative advertising, wouldn’t that likely improve the quality of the content? I suppose it depends on the meaning of quality, but wouldn’t the end of the ad-supported web hit low quality content the most, as consumers of content are more likely to pay for quality content. What’s quality to me might not be considered quality to another. Also, would the end of the ad-supported web make consumers of content even more partisan, as partisans might pay for content that comports with their political views but not for content that doesn’t. On the other hand, web sites might become less partisan in order to attract more consumers of the content; maybe the hosts of the most partisan web sites might discover religion (and the economic advantage of less partisanship).


15 Anonymous February 13, 2018 at 1:28 pm

Eliminating ads would also remove a major avenue for soft-censorship by either advertisers themselves or groups boycotting advertisers for providing revenue to the wrong content producers.


16 Anonymous February 13, 2018 at 12:11 pm

1. I am not in this business, but surely there is a technological war going on. 1st generation ads were easy for 1st generation blockers to spot. Ads become more integrated and organic over time. Ultimately ads look like sidebar content that you’d need an AI to spot?


17 fizzle February 13, 2018 at 12:17 pm

That used to be possible, and a long time ago I worked for a content site that sold and hosted (and sometimes designed) creative for clients. Now, in practice, you have to be big enough to be hosting your own ad market to fully integrate advertising to the point blockers can’t spot it. Facebook can do it. Google could, but has chosen to remain mostly blockable. Basically nobody smaller can, at this point.

I simply don’t use Facebook and block their IP space on my home network and my phone. I keep Google at arms-length; I use some services for convenience and with sufficient protection, but ensure I am not dependent on them for anything.


18 Anonymous February 13, 2018 at 12:23 pm

Not the whole ad market, just a server side connection to pre-render pages from an ad market?


19 fizzle February 13, 2018 at 12:32 pm

It doesn’t work that way. Your browser makes connections to the adtech vendor(s); images, code and related assets are sent from wherever the high-bidder for your attention hosts their creative. It never passes through the server you requested the visible page from.


20 Anonymous February 13, 2018 at 12:39 pm

I used to be in the business. The decision of “client or server side” is made early in the process. It is base architecture, but it is a decision.

If no one is out there building a content management system with server side (stealth) ad insertion, they should be. Certainly all that metadata is available to servers who request it by the same APIs.

Dollars laying in the street.

21 Anonymous February 13, 2018 at 12:52 pm

Hells, you could render the page on the server and send it down as SVG. Good luck reading that, ad blockers.

22 fillze February 13, 2018 at 12:54 pm

I’m not sure what you’re thinking of, I’m guessing some particular bit of software. Perhaps an old Doubleclick “house ads” vs. “Network ads” distinction (I can’t recall what they called things.)

And sure, current adtech markets “allow” you to serve house ads (here, meaning ads served from your systems rather than someone else’s, not meaning ads for your own site/product). Nobody runs house ads because they have to sell them, which costs more at small scale than the ads are worth.

23 fillze February 13, 2018 at 1:00 pm

SVG is generally really easy to parse. You have the same issues with Javascript you have anywhere else, but SVG is just text.

But let me help you out: the equilibrium you’re looking for is infomercials, where the content is the ad. Salon and many other sites run those.

But the problem is not being clever in your delivery in order to deliver ads past blockers, the problem is the way the market is structured, and the technical accommodations to make the market work.

24 Anonymous February 13, 2018 at 4:12 pm

Thanks for the help, but keep in mind that XML can be famously unreadable. There is no reason, for instance, that words need be delivered in sentence order.

25 John Mansfield February 13, 2018 at 12:35 pm

This distinction reminds me of the radio ads read live by the DJs and flow with the other stuff they were saying before and after the ad. There are other ads that are pre-recorded by the DJs that are not integrated so seamlessly, but still sound more at home (and less like a signal to switch the station) than standard ads not custom produced by the station’s usual on-air voices.


26 fizzle February 13, 2018 at 12:11 pm

I’m doing my part to kill the adtech/surveillance-supported web. You should too! I recommend JS Blocker as well – fine-grained control over javascript nastiness.

Kill it dead.


27 Anonymous February 13, 2018 at 12:12 pm

I am wealthy in bandwidth, and generic in behaviour, so I feel no need to be miserly or clandestine.


28 Ray Lopez February 13, 2018 at 12:17 pm

You have a first world problem, Anonymous. You must have fiber optic. In the Philippines, in the provinces, you get data capped (daily limits) and after the first two hours after midnight you get dial-up modem speeds; even here in Manila, where I am now, 1.5 Mbps is generous (with frequent lag, and drops to zero). Paying for higher bandwidth does not mean you get it, so nobody pays for extra bw. Call centers might be an exception; I suspect the PH government works with them to allocate them adequate bandwidth. The best SE Asia country, aside from South Korea, might be Thailand, where I would get 3-5 Mbps at times.


29 Anonymous February 13, 2018 at 12:22 pm

Oops, answer slipped below.


30 fizzle February 13, 2018 at 12:21 pm

It isn’t just about bandwidth. The ad markets are terrible malware vectors as well. Spectre-derived attacks are starting to show up in ads, for instance. Other Javascript-driven, ad-delivered attacks go after browser and OS bugs, and I think folks have here have probably seen news stories about bitcoin miners.

Adtech essentially provides a menu for malware authors to choose their “customer” profiles.

But hey, you don’t have to believe some random person on the internet. The Lawfare folks agree with me: https://www.lawfareblog.com/spectre-advertising-meltdown-what-you-need-know


31 Anonymous February 13, 2018 at 12:25 pm

That is a real problem, but I would have browsers, and the w3c address it.

The conventional web should be designed for user security.


32 fizzle February 13, 2018 at 12:29 pm

Yeah, well, there is “should”, and there is “is”.

Note that Chrome is built by the largest adtech company on the planet. I’m not saying Google wants malware on their platform, but their interests are not really well-aligned with yours.

But it is like anything else; you either protect yourself, or you don’t.

33 Anonymous February 13, 2018 at 12:34 pm

Is Google really misaligned with a random and generic reader/shopper? I would say not, especially given the Google v Amazon tension.

Or perhaps I should say Prime members should stop pretending they want privacy.

34 Ray Lopez February 13, 2018 at 12:30 pm

@fizzle – it never ceases to amaze me how clever virus writers are, the state-sponsored kind (and I code for fun in ASP.NET among other languages, not javascript). How these guys manage to defeat / DNS poison the server is beyond me –perhaps packet sniffing using Wireshark with a server connected inbetween the target and the host?– as I thought server stuff was signed/encrypted (Silverlight was not, but I would think the other stuff is). How air gap malware can work is true James Bond stuff (https://en.wikipedia.org/wiki/Air_gap_malware).


35 fizzle February 13, 2018 at 12:36 pm

No DNS poisoning, packet sniffing or other actual hacking is required. Those ads are submitted for placement, and based on the bidding selected to be shown to users. There is no code signing involved with ads. There’s no mechanism for it.

Now at least some adtech vendors do review creative, but remember it has significant Javscript components. Code can be clever, but it is even easier to just change some element of the chain of Javascript dependencies that gets sent to the browser after it goes live.

People imagine there is a lot of security and assurance that simply isn’t there.

36 albatross February 13, 2018 at 4:03 pm


The ad networks often serve up malware, and always violate privacy as a basic part of their business. And yet, we pretty-much have no idea how else to fund most of the web, especially news/information sites where I might want to read one article linked by someone else once in awhile, but where it wouldn’t make sense to subscribe.


37 Peter February 13, 2018 at 4:49 pm

@fizzle – “The ad markets are terrible malware vectors as well.” That is exactly the reason I block ads. I used to sympathize with content creators needing to pay for their sites, but once the ad networks became a vector for malware, I felt no guilt whatsoever blocking all ads. When ad networks do a better job of vetting their advertisers, they can get my eyeballs back. (Not that I ever clicked on a web-based ad anyway).


38 Daniel Weber February 13, 2018 at 12:32 pm

I recommend JS Blocker as well – fine-grained control over javascript nastiness.

This is what gets my goat about people who say “I block ads because of security!”

If you were really concerned about security, you would be blocking JS everywhere using a tool like you recommended. It’s much better at blocking malware, and kills ads only as a side effect of that mission.

Instead, people run adblockers which continue to allow all sorts of JS nastiness to run.


39 fizzle February 13, 2018 at 12:37 pm

You simply don’t know what you’re talking about.


40 Daniel Weber February 13, 2018 at 12:45 pm

Well, I’m convinced.


41 albatross February 13, 2018 at 4:03 pm

A lot of sites basically break without support for JS, unfortunately.


42 Daniel Weber February 13, 2018 at 7:15 pm

Which is a great hassle, yes. Security often comes at a price.


43 anon February 13, 2018 at 12:15 pm


It is poorly written, and rambling, and don’t waste your time. The WaPo must have money to burn to publish that kind of crap. Oh, wait….


44 Ray Lopez February 13, 2018 at 12:18 pm

I thought it was a harmless “human interest” story, I suspect written by a tyro journalist, it wasn’t that bad, though I did not finish it.


45 Anonymous February 13, 2018 at 12:21 pm

I admit first world problems. My cable company tells me that I can’t have my totally sufficient 20 mbps because 50 is the new minimum. Then I can’t have 50 because 100 is the new minimum.

Keeps my bill from ever dropping in the face of Nielsen’s Law.


46 chrisare February 13, 2018 at 12:47 pm

More annoying than ads now are autoplay video content on sites like ESPN.com.


47 Matthew February 13, 2018 at 12:52 pm

(1) Ad blocking is borderline essential. I make my parents run it, not because ads are annoying, but because Google appears to have no standards and will accept any scam artists ads onto its network. I know an ad model is essential to media, but not like this. The cost of having good content shouldn’t be having your house taken away by some reverse mortgage scam.

I don’t know it Tyler has other ads (because I block them), but the ones I see are the ones done right: plugs for books he likes and books he’s written.


48 Hazel Meade February 13, 2018 at 11:01 pm

What funny is that I gets ads for stuff I’ve already purchased. I’ll spend a week researching what couch to buy, buy a couch, and then for the next year, I have to deal with ads for couches, and by the same websites I looked at already. I already bought a couch! You should try to predict what I’ll want NEXT! Show me some furniture websites I don’t already know about!


49 BT Reynolds February 13, 2018 at 12:55 pm

“We conclude that ad blocking poses a threat to the ad-supported web.”

No, ads themselves pose a threat to the ad-supported web.

I don’t mind ads, actually. It’s just when they slow my browser to a crawl or blare an unwanted video out of nowhere that I have to block them.


50 Not peaked yet February 13, 2018 at 1:01 pm

#6. I think it is unlikely we are at “peak Olympics” because the pool of athletes who ever play most Olympic sports remains small. The article focuses on speed skating. I just tried and failed to get a reasonable estimate of how many people participate in speed skating. I am confident it is order(s) of magnitude smaller than the number of people who participate even in other aerobic sports (where you might discover top-level talent).

It recalls your discussion a few weeks back about which professions successfully attract talent, in which you identified highly-paid professional sports. I agree, and would note that the “highly-paid” part is critical. Most Olympic athletes aren’t highly paid. For good reason, I expect the most physically gifted male athletes in the US are more likely to end up in football or basketball, where they can make millions. I write all of this from a US perspective — but the argument is only stronger if you consider the incredible amount of untapped athletic talent in developing countries. Or, with respect to the winter Olympics, in countries where there is no winter and thus, hardly any winter sports participation.

It is possible that the Olympics could decline in popularity, and the obscure (and less obscure) sports included may never see the influx in participation needed to raise the level of performance. In that sense, I suppose, we may be at something like a peak. However, that strikes me as a result of economics and culture, and not because we’ve actually hit the limit of human performance.


51 Judah Benjamin Hur February 13, 2018 at 4:22 pm

The idea that professional basketball players are great athletes is sheer nonsense. The average NBA basketball player is 6 foot 7 inches. That means he’s in the 99.952th percentile. Whatever talent basketball attracts due to popularity it excludes many times over because of extreme height requirements. Of course, now someone will mention Spud Webb.

It sounds nuts, but basketball would be amazing if there was a height limit of around 6′ 1″ or 6′ 2″ Instead it’s a sport of mostly freakishly tall individuals of adequate athletic ability. Combine the athletic ability of a typical NFL player with the height of a basketball player and you get a LeBron James.


52 Ted Craig February 13, 2018 at 4:55 pm

Speaking for the freakishly tsll, people like you underestimate how difficult it is to maneuver an extra large human body. NBA players are amazing because they can make those 6’7″ bodies move like they are 6’1″.


53 Judah Benjamin Hur February 13, 2018 at 7:14 pm

“Speaking for the freakishly tsll, people like you underestimate how difficult it is to maneuver an extra large human body. NBA players are amazing because they can make those 6’7″ bodies move like they are 6’1″.”

If that’s what you find amazing, the NBA is perfect for you. I just think there’s probably something better in the other 99.95% of the population. All things being equal, I’d prefer a sport that showcases athletes like Jim Thorpe. Basketball is selecting first and foremost for extreme height. The sad thing is that there are professional basketball players who can’t even shoot a basketball as well a mediocre high school player. It’s almost like an F1 driver who needed to drive an automatic car.


54 Mark Thorson February 13, 2018 at 7:25 pm

My dad said that when he was a kid (1930’s) you’d often have a really tall guy on a basketball team, and you’d station him near the opposing basket. He’d just stand there like some sort of cretin until you got the ball and pass it to him, and he’d put it in the basket. I suppose basketball was a less important sport in those days. Nowdays, they’re all tall and rather good athletes.


55 Triclops February 13, 2018 at 5:44 pm

This is a fantastically wrong comment.
Go sit courtside at a game with even the worst NBA team, and you will see athletes that are twice your size though much faster and more athletic than you can imagine.
Prognosticating about their athletic ability from your perch inside a bar through a TV screen is misleading.
Some of the 7ft+ guys look like stiffs, but not many.
There are several 6’5+ HOF NFL Tight Ends who were solid, but not special, college basketball players. I wouldn’t call them stiffs, either.


56 Judah Benjamin Hur February 13, 2018 at 6:53 pm

“Go sit courtside at a game with even the worst NBA team, and you will see athletes that are twice your size though much faster and more athletic than you can imagine.”

That’s not the point. The point is that there are lots of 6’1″ basketball players that are vastly superior than most NBA players in every way EXCEPT for height . If you desire seeing very tall men compete, basketball is your sport. I have no doubt that if violists were required to be 6’ 7″ and it paid well enough, you would find giant violinists much better “than you can imagine.” You’re just wasting a whole lot of superior talent.


57 Ted Craig February 13, 2018 at 7:06 pm

” vastly superior than most NBA players in every way”

I seriously doubt that, but if you can offer any proof, I’d be interested to see it.

58 triclops41 February 13, 2018 at 7:56 pm

“The idea that professional basketball players are great athletes is sheer nonsense.”

My point is that the above statement is nonsense. There is a watertight argument that the NBA selects for height to some detriment of overall athleticism. Your post didn’t make that argument. Maybe you were thinking along those lines and some hyperbole slipped in, fair enough. The argument then shrinks down to, “I think the NBA selects for height too strongly for my taste”. There is nothing wrong with that preference, either.
I don’t mind that the NFL, especially in the last 10 years, selects QBs for intelligence and coordination at the expense of durability and speed, but I acknowledge it is just a preference. Other people may like their QBs tougher and more athletic. I also don’t mind that some receivers and TEs are taller and not as fast or strong as others in their position. But if you don’t like that, I don’t see a problem with that either.

59 triclops41 February 13, 2018 at 8:11 pm

The NBA selects for height because the teams are concerned with effectiveness over aesthetics. A skilled tall person will beat a similarly skilled short person almost every time. So if you desire seeing the most effective basketball players, you will have to look at lots of tall athletes, and a few tall stiffs.
If being 6’7 made one a more effective violinist, your analogy would make sense.

There are a lot of 6’2 and under leagues you can go watch already. And I am sure some of the best of those leagues have a faster average running speed, or higher average vertical jump than in the NBA

60 Judah Benjamin Hur February 14, 2018 at 12:23 am

triclops41 February 13, 2018 at 7:56 pm
“My point is that the above statement is nonsense. There is a watertight argument that the NBA selects for height to some detriment of overall athleticism. ”

The problem is that you and others fail to recognize the extent of the bias. It’s not “some,” it’s overwhelming. It’s not like intelligence and QBs (as you mention), more like intelligence and astrophysicists. I wouldn’t want to limit the professional athletic pool to people capable of being astrophysicists.

61 Judah Benjamin Hur February 13, 2018 at 7:42 pm

6′ 7″ is about as rare as an IQ of over 150. Imagine a sport that selected for an average IQ of 150. You’re not going to get the fastest, strongest, or most agile. It would be kind of fun, though. Tackle chess, anyone?


62 Ted Craig February 13, 2018 at 8:04 pm

No, you’re going to get the fastest, strongest, most agile and tallest. Height is an extra trait.


63 blades February 14, 2018 at 12:35 pm

such a league exists. It’s called the WNBA.


64 Barkley Rosser February 13, 2018 at 1:07 pm

I agree #3 is poorly written, but I fail to see how it shows that D.C. is a “nightmare.” So there are a whole of conferences about a whole lot of things, some of them kind of oddball, poorly described by this article. Why is having lots of conferences a nightmare? I thought you were for having lots of choice available on cultural and intellectual fronts ,Tyler. Is this set of conferences so beneath the pale that it constitutes a “nightmare”? Really?


65 blades February 13, 2018 at 1:32 pm

#3. Made me laugh, often. So, actually pretty well written. Yeah, i did notice one typo.


66 Quigley February 13, 2018 at 10:55 pm

Agree, it was friggin hilarious. Not poorly written at all.


67 Anonymous February 13, 2018 at 1:44 pm

It feels like #2 ought to reflect poorly on the Visa network, since Bitcoin is literally designed to take a lot of work. But I’m probably underestimating the scope of Visa


68 Sigivald February 13, 2018 at 1:51 pm

#1: Impacted sites provide less content over time, providing corroboration for the mechanism. Effects on revenue are compounded; ad blocking reduces visits, and remaining visitors blocking ads do not generate revenue. We conclude that ad blocking poses a threat to the ad-supported web.


They brought it on themselves; I ad-block and ad-blockers are on by default because “the ad-supported web” was gleefully user-hostile and provided no real content anyway, and generally remains so.

Sites with high quality and decent ads can ask me to whitelist, and I often will.

However: “Your revenue model is not an obligation on my part”, nor is your desire to make money publishing. Earn my respect first.


69 T.H. February 13, 2018 at 2:13 pm

#3: Didn’t have time to listen to the whole cast, naturally, but I’m not sure where the factor of 25 came from. Visa’s corporate social responsibility report (https://usa.visa.com/dam/VCOM/download/corporate-responsibility/visa-2016-corporate-responsibility-report.pdf) indicates they used ~700TJ from 2009-2016. Round that to 25 Gigawatt hours per year, and compare it to bitcoin’s estimated 32 Terrawatt hours. In absolute terms more than a factor of a thousand. In terms of power per transaction it’s positively nauseating.


70 clamence February 13, 2018 at 9:25 pm



71 Crowder's molyneux February 13, 2018 at 2:25 pm

“1. Ad-blocking really matters.”

You’re telling me that websites want to show me ads, but youtube tells me all the videos I watch are de-monetized because businesses don’t want to advertise on them.

Who’s right?


72 Paul February 13, 2018 at 2:32 pm

3. He is a good writer. Reminds me of Michael Lewis.


73 jack February 13, 2018 at 3:01 pm

#1, People block ads because they are uninformative and waste the reader’s time, Weird to think that you should sell products by annoying people. That is the nice thing about Amazon — the information is generally useful and helps you find what you want.


74 Roger Stevens February 13, 2018 at 3:13 pm

ADP blocked 34 ads on MR.


75 Moelicious February 13, 2018 at 3:17 pm

5. This article really could have used photos of the wares being made


76 Dick the Butcher February 13, 2018 at 3:20 pm

What Olympics?


77 albigensian February 13, 2018 at 4:04 pm

It’s not only the “free” Web that’s supported by ads, but all those mobile apps as well.

Of course, these ads are far better protected against blocking than something delivered through a browser, but (as a thought experiment, at least) what would happen if users could block ads delivered by apps? Would users become willing to pay something for apps if the choice wasn’t paid-but-ad-free vs. free-but-ad-supported but paid (perhaps after a trial period) vs. nothing?


78 Ted Craig February 13, 2018 at 5:06 pm

6. Here’s Tyler linking to the same story prior to London in 2012:


79 Ted Craig February 13, 2018 at 5:07 pm

Not the exact same story, of course.


80 Les Cargill February 13, 2018 at 7:07 pm

#1 : “We conclude that ad blocking poses a threat to the ad-supported web.”



81 Hazel Meade February 13, 2018 at 10:53 pm

#1. I’m a big fan of revealed preferences. If people don’t want to see ads and that makes ad supported websites die, so be it. If they want free content and enough of them are willing to put up with ads to see it, so be it. The market will find an equilibrium at some point where peoples revealed preferences are optimally satisfied.


82 Cmc February 15, 2018 at 1:38 am

You are using the term ‘revealed preferences’ where you simply mean preferences.

I is easy to think of a scenario where the what we observe as a preference is in fact not reflective of true preferences. If, say, an increase in ad blocking by 5% lead to a decrease in traffic of 10%, all else equal, then it is not reflective of true preference.


83 Cmc February 14, 2018 at 8:37 am

40x times? Is that 40 times times?


Leave a Comment

Previous post:

Next post: