Search Results

Search found 29495 results on 1180 pages for 'cross site scripting'.

Page 836/1180 | < Previous Page | 832 833 834 835 836 837 838 839 840 841 842 843  | Next Page >

  • &lt;%: %&gt;, HtmlEncode, IHtmlString and MvcHtmlString

    - by Shaun
    One of my colleague and friend, Robin is playing and struggling with the ASP.NET MVC 2 on a project these days while I’m struggling with a annoying client. Since it’s his first time to use ASP.NET MVC he was meetings with a lot of problem and I was very happy to share my experience to him. Yesterday he asked me when he attempted to insert a <br /> element into his page he found that the page was rendered like this which is bad. He found his <br /> was shown as a part of the string rather than creating a new line. After checked a bit in his code I found that it’s because he utilized a new ASP.NET markup supported in .NET 4.0 – “<%: %>”. If you have been using ASP.NET MVC 1 or in .NET 3.5 world it would be very common that using <%= %> to show something on the page from the backend code. But when you do it you must ensure that the string that are going to be displayed should be Html-safe, which means all the Html markups must be encoded. Otherwise this might cause an XSS (cross-site scripting) problem. So that you’d better use the code like this below to display anything on the page. In .NET 4.0 Microsoft introduced a new markup to solve this problem which is <%: %>. It will encode the content automatically so that you will no need to check and verify your code manually for the XSS issue mentioned below. But this also means that it will encode all things, include the Html element you want to be rendered. So I changed his code like this and it worked well. After helped him solved this problem and finished a spreadsheet for my boring project I considered a bit more on the <%: %>. Since it will encode all thing why it renders correctly when we use “<%: Html.TextBox(“name”) %>” to show a text box? As you know the Html.TextBox will render a “<input name="name" id="name" type="text"/>” element on the page. If <%: %> will encode everything it should not display a text box. So I dig into the source code of the MVC and found some comments in the class MvcHtmlString. 1: // In ASP.NET 4, a new syntax <%: %> is being introduced in WebForms pages, where <%: expression %> is equivalent to 2: // <%= HttpUtility.HtmlEncode(expression) %>. The intent of this is to reduce common causes of XSS vulnerabilities 3: // in WebForms pages (WebForms views in the case of MVC). This involves the addition of an interface 4: // System.Web.IHtmlString and a static method overload System.Web.HttpUtility::HtmlEncode(object). The interface 5: // definition is roughly: 6: // public interface IHtmlString { 7: // string ToHtmlString(); 8: // } 9: // And the HtmlEncode(object) logic is roughly: 10: // - If the input argument is an IHtmlString, return argument.ToHtmlString(), 11: // - Otherwise, return HtmlEncode(Convert.ToString(argument)). 12: // 13: // Unfortunately this has the effect that calling <%: Html.SomeHelper() %> in an MVC application running on .NET 4 14: // will end up encoding output that is already HTML-safe. As a result, we're changing out HTML helpers to return 15: // MvcHtmlString where appropriate. <%= Html.SomeHelper() %> will continue to work in both .NET 3.5 and .NET 4, but 16: // changing the return types to MvcHtmlString has the added benefit that <%: Html.SomeHelper() %> will also work 17: // properly in .NET 4 rather than resulting in a double-encoded output. MVC developers in .NET 4 will then be able 18: // to use the <%: %> syntax almost everywhere instead of having to remember where to use <%= %> and where to use 19: // <%: %>. This should help developers craft more secure web applications by default. 20: // 21: // To create an MvcHtmlString, use the static Create() method instead of calling the protected constructor. The comment said the encoding rule of the <%: %> would be: If the type of the content is IHtmlString it will NOT encode since the IHtmlString indicates that it’s Html-safe. Otherwise it will use HtmlEncode to encode the content. If we check the return type of the Html.TextBox method we will find that it’s MvcHtmlString, which was implemented the IHtmlString interface dynamically. That is the reason why the “<input name="name" id="name" type="text"/>” was not encoded by <%: %>. So if we want to tell ASP.NET MVC, or I should say the ASP.NET runtime that the content is Html-safe and no need, or should not be encoded we can convert the content into IHtmlString. So another resolution would be like this. Also we can create an extension method as well for better developing experience. 1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Web; 5: using System.Web.Mvc; 6:  7: namespace ShaunXu.Blogs.IHtmlStringIssue 8: { 9: public static class Helpers 10: { 11: public static MvcHtmlString IsHtmlSafe(this string content) 12: { 13: return MvcHtmlString.Create(content); 14: } 15: } 16: } Then the view would be like this. And the page rendered correctly.         Summary In this post I explained a bit about the new markup in .NET 4.0 – <%: %> and its usage. I also explained a bit about how to control the page content, whether it should be encoded or not. We can see the ASP.NET MVC gives us more points to control the web pages.   Hope this helps, Shaun All documents and related graphics, codes are provided "AS IS" without warranty of any kind. Copyright © Shaun Ziyan Xu. This work is licensed under the Creative Commons License.

    Read the article

  • High Lock Wait ratio in MySQL

    - by FunkyChicken
    on my site I log every pageview (date,ip,referrer,page,etc) in a simple mysql table. This table gets very little selects (3 per minute), but a lot of inserts. (about 100 per second) Today I changed this table from an InnoDB table to a MEMORY table, this made sense to me to prevent unnecessary hard disk IO. I also prune this table once per minute, to make sure it never get's too big. -- Performance wise, things are running fine. But I noticed that while running tuning-primer, that my Current Lock Wait ratio is quite high. Current Lock Wait ratio = 1 : 561 My question: Should I worry about this Lock Wait Ratio? And is there something I can change in my my.cnf to improve things so that the lock wait ratio isn't so high?

    Read the article

  • BIG IP - HTTPS Health Monitor setup

    - by djo
    I have a Web site that we have setup a health monitoring pages so we can take our servers in and out of the Big-IP as we see fit. Now we have just moved onto Big-IP and the issue I have hit is that you setup Health Monitors for port 80 and 443, now the 80 check works fine but when I to get the 443 check to look at our file it fails. Now I am aware as I am hitting the this page on the IP address over HTTPS is going to cause a cert error but I would have guessed that BIG-Ip would have been setup just to accept the cert and carry on with the check. Is what I am wanting to do possible? Also is there a way of just using a HTTP monitor for HTTPS? Because if port 80 has stopped sending traffic then if i use the same monitor for 443 it will stop traffic to that. Any help would be great! Thanks

    Read the article

  • Data breakpoints to find points where data gets broken

    - by raccoon_tim
    When working with a large code base, finding reasons for bizarre bugs can often be like finding a needle in a hay stack. Finding out why an object gets corrupted without no apparent reason can be quite daunting, especially when it seems to happen randomly and totally out of context. Scenario Take the following scenario as an example. You have defined the a class that contains an array of characters that is 256 characters long. You now implement a method for filling this buffer with a string passed as an argument. At this point you mistakenly expect the buffer to be 256 characters long. At some point you notice that you require another character buffer and you add that after the previous one in the class definition. You now figure that you don’t need the 256 characters that the first member can hold and you shorten that to 128 to conserve space. At this point you should start thinking that you also have to modify the method defined above to safeguard against buffer overflow. It so happens, however, that in this not so perfect world this does not cross your mind. Buffer overflow is one of the most frequent sources for errors in a piece of software and often one of the most difficult ones to detect, especially when data is read from an outside source. Many mass copy functions provided by the C run-time provide versions that have boundary checking (defined with the _s suffix) but they can not guard against hard coded buffer lengths that at some point get changed. Finding the bug Getting back to the scenario, you’re now wondering why does the second string get modified with data that makes no sense at all. Luckily, Visual Studio provides you with a tool to help you with finding just these kinds of errors. It’s called data breakpoints. To add a data breakpoint, you first run your application in debug mode or attach to it in the usual way, and then go to Debug, select New Breakpoint and New Data Breakpoint. In the popup that opens, you can type in the memory address and the amount of bytes you wish to monitor. You can also use an expression here, but it’s often difficult to come up with an expression for data in an object allocated on the heap when not in the context of a certain stack frame. There are a couple of things to note about data breakpoints, however. First of all, Visual Studio supports a maximum of four data breakpoints at any given time. Another important thing to notice is that some C run-time functions modify memory in kernel space which does not trigger the data breakpoint. For instance, calling ReadFile on a buffer that is monitored by a data breakpoint will not trigger the breakpoint. The application will now break at the address you specified it to. Often you might immediately spot the issue but the very least this feature can do is point you in the right direction in search for the real reason why the memory gets inadvertently modified. Conclusions Data breakpoints are a great feature, especially when doing a lot of low level operations where multiple locations modify the same data. With the exception of some special cases, like kernel memory modification, you can use it whenever you need to check when memory at a certain location gets changed on purpose or inadvertently.

    Read the article

  • Step 2 of instructions is not clear to me

    - by Albert Frye
    I want to make a bootable USB stick. I run the UUI. I see the instructions on this site: http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows Step 1 says: Select "Ubuntu Desktop Edition" from the dropdown list Okay, so the actual title of the drop down box is: Select a "Linux Distribution" from the dropdown to put on your USB I am pretty new to computers. 67 years old. Live alone. Bought my first computer 3 months ago. So I will have to assume that when the instructions say "Ubuntu Desktop Edition", that means the same thing as "Linux Distribution". Okay, No big leap there. So far, so good . . . . . . . So I pick the very first selection: Ubuntu 13.10 Desktop i386 I'm not sure why there are so many choices, but I'm guessing I'm pretty safe with the first one. It's for a Toshiba Satellite laptop 64 bit Windows 7. Okay, now for step 2: The instructions say: Click 'Browse' and open the downloaded ISO file. The message in the window just before the "Browse" button says: Browse to your ubuntu-13.10*desktop*i386.iso -- Okay, so where's that file? So I click "Browse" and start looking for that file. It is nowhere to be found. So where the heck is it?

    Read the article

  • Missing launcher after 12.04 upgrade

    - by Preston Zacharias
    I recently upgraded to ubuntu 12.04 and after doing some updates and such my application launcher and title bars (for window dialogues) are missing. Basically the entire unity GUI is missing! Not sure what happened so I installed gnome 3 and it was missing a launcher too, but did have title bars. In addition the bar found at the top that lets you know what's open and allows gnome extensions to be displayed is not interactive. I can't click, right click, alt + click (right or left), alt + super click (right or left) anywhere! I even installed an application menu from the gnome site and it is not interactive either. However, since there is no way to launch applications i have to use terminal and if i minimize an app it will disappear completely. Then i decided to try unity 2D and it is incredibly messed up. Black background, launcher is there but icons and top bar while on desktop are completely distorted. They're not just pixalated; they're all sorts of funky colors and when i open something from unity 2d launcher it will show it's opened in the launcher but nothing appears on my screen. When trying to view videos on youtube the video is distorted and looks just as unity 2d does. Strange enough: the audio works fine, just not videos. Pictures loads, but not ads that stream video. Any suggestions to get my launcher and the unity GUI back? I tried reinstalling gnome, unity 3d, and unity 2d from terminal. no change. also reinstalled unity desktop and tried resetting it: nothing happened.

    Read the article

  • Any good method for mounting Hadoop HDFS from another system?

    - by Beel
    I want to mount the Cloudera Hadoop as a Linux file system over the LAN. As a setup, I already have the hadoop cluster running on a set of Ubuntu machines. But now I need to be able to use it as a normal file system from a Fedora system over the LAN. I tried FUSe but two things: 1. Cloudera says FUSE loses data (click here for that comment by a Cloudera employee on the official Cloudera support site) 2. I've had no success making it work the way we want As a point of clarification, I am using Hadoop ONLY for the file system, not for its other capabilities.

    Read the article

  • Pick Up BioShock and Bioshock 2 for Price of a Big Mac Meal

    - by Jason Fitzpatrick
    Pre-ordering just opened on the third-installment of the highly-acclaimed horror-survival game series BioShock, BioShock Infinite. As part of the pre-order promotions, you can pick up a bundled copy of BioShock and BioShock 2 for a song. For the unfamiliar, BioShock is an atmospheric first-person-shooter backed up by an incredible storyline set in the underwater utopian-turned-dystopian city of Rapture. BioShock 2 continues the story in Rapture and the upcoming release (Febuary 2013) of BioShock Infinite takes place in the same game universe but fifty years before the events of the first two installments. If that seems like the kind of game you could dig into, Amazon has the Windows-platform version of BioShock and BioShock 2 bundled together for a scant $7.49–81% off the Steam and general retail price. The best part about the promotion is you can either download the games from Amazon or, for those of you that use Steam, you can simply plug the game product key into Steam. You can read more about the both the original two games and the upcoming release at the official BioShock site. BioShock Dual Pack [via Geeks Are Sexy] How Hackers Can Disguise Malicious Programs With Fake File Extensions Can Dust Actually Damage My Computer? What To Do If You Get a Virus on Your Computer

    Read the article

  • Client can't reach my production webserver. It's their ISP's fault, but now what?

    - by MikeN
    I have a customer in Michigan who can't access my production SaaS webserver that is hosted on Slicehost. All other companies across the US/Canada/Europe have no problem reaching the site. This problem is occuring intermittantly, and Slicehost customer service says it's a problem with the client's ISP. I got the IP address of my client, and ping'ing that IP address from my PROD server fails, but ping'ing the IP address from my dev box or our seperate blog server (also hosted on slicehost) works. How do I debug a problem like this? I asked the client to reach out to their local ISP and ask about this problem. A traceroute shows that the packets are getting stopped on a Comcast Michigan node which is the client's ISP. Is there anything I can do additionally to fix this problem for my client?

    Read the article

  • IT Journal database

    - by SysPrep2010
    Hello everyone, I just wanted to talk about this. This could help you in your IT career. I have been keeping an IT journal with me at all times. I write down problems and then the solutionss. OMG it has been great. For one site I work at I had an DFS issue and another place I work for had the same issue and it helped me out alot. So Just wanted to talk about it.

    Read the article

  • Best practice, or generally best way to set up web-hosting server, permissions, etc.

    - by Jagot
    Hi, I'm about to set up a server upon which a friend and I will be hosting web sites, and I'll be using Debian. I've set up a LAMP solution many times just to using for local testing purposes, but never for actual production use. I was wondering what are the best practices are in terms of setting the server up, in reference specifically to accessing the web root directory. A couple of the options I have seen: Set up a single user account on the server for us both to use and use a virtual host to point to the somewhere in the home directory, e.g. /home/webdev/www. Set each of us up a user account, and grant permissions in some way to /var/www (What would be the best way? Set up a new group?) I want to get this right when I first set this up as there won't be any going back for a while once our first site is up and running. Appreciate any guidance in advance.

    Read the article

  • Sharepoint 2007 Event ID 6482

    - by Dave M
    Our two server SharePoint 2007 SP2 farm has an issue. Event ID 6482 appears in the Application log of the Web front end many times a day. Often many time a minute. The full error is from Office SharePoint Server Event Type: Error Event Source: Office SharePoint Server Event Category: Office Server Shared Services Event ID: 6482 Date: 11/12/2009 Time: 3:05:22 PM User: N/A Computer: XXXXXX Description: Application Server Administration job failed for service instance Microsoft.Office.Server.Search.Administration.SearchServiceInstance (36a9b7ef-59aa-4f94-8887-8bf7b56f2f91). Reason: Error during encryption or decryption. System error code 0. Techinal Support Details: System.ArgumentException: Error during encryption or decryption. System error code 0. at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.SynchronizeDefaultContentSource(IDictionary applications) at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Synchronize() at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob) For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. The SharePoint site appears to be functioning normally and Search returns expected results. Any suggestions would be appreciated

    Read the article

  • What is the type/classification/term for an PC headset that does not go over the head or back of the

    - by FMFF
    How do I search in the leading auction site for the PC headset(earpiece + microphone) that does not have a band to go around or over your head - instead it is entirely like a cable, with the microphone attached in one of the wires leading from the ear piece? How is it called? I'm not talking about Bluetooth wireless headsets. I have one from Plantronics I got years ago, which they stopped making and I want another one, but don't know how to search. Simply searching for HeadSet or similar terms, brings mostly the newer ones which I don't want. Thank you.

    Read the article

  • Self-serv advertising service

    - by Mystere Man
    I am seeking a self-serv advertising service for my websites, but I have a few restrictions that seem to make what i'm looking for hard to find. Specifically, I want to place "advertise here" links on my pages and allow end-users to purchase advertising on that site, page, and location. These ads will not be part of a national network. Supports multi-tenancy - That is, I have a number of domains using the same "web application" but with customized content per domain. When a customer wants to advertise on a given domain, then the ads will only appear on that domain and on that page of the domain (even though the page name may be the same across multiple domains). Supports fixed ad prices, not just CPC. I need monthly and quarterly pricing regardless of performance. Integrates with OpenX and other ad networks, so that if there is no self-serv on a given zone, it will use national advertising or direct advertising. Shiny Ads has much of this, but i'm looking for alternatives, as their prices are a bit crazy (20%) and can only do PayPal.

    Read the article

  • Good firefox extension to download .flv flash video?

    - by Tamás Szelei
    I'm looking for a decent flash video downloader for Firefox. There are tons of them. I'd like to use it for a custom site with some random flash video player, not Youtube. How can it be accomplished? Edit: None of these methods you guys suggested worked so far; I looked up various places where the temporary file might end up - it just doesn't. It is indeed a flash player, but it seems like it's not caching - is that possible?

    Read the article

  • How can I make a Prism webapp look like Firefox to a website? (user agent spoofing)

    - by Alex Aaron Goven
    I thought it would be cool to use Mozilla's Prism to create a webapp for min.us, but drag and drop is disallowed because the site doesn't see the program as Firefox, Chrome or Safari, those of which are apparently the only browsers allowed to do drag and drop for fear that something will be horribly broken. I'm pretty sure Prism runs on the same engine as Firefox, yet I wouldn't doubt it if Prism is running on an older version since it's kind of a forgotten beta. Anyways, like the title says, I want to be able to make Prism webapps appear look like Firefox to websites to unlock awesome features. Also, if it can only be done with Fluid, then I answers regarding that will be fine. I'm not sure what engine it's running though.

    Read the article

  • Storage setup for large files

    - by Mecca
    I need to store over 200TB of data (all types, biggest being video files) and be able to access it over a local network. The files will be accessed for editing or searches. I don't need versioning, but a setup that would keep me safe from harddrive failures would be nice. Right now the content is on different harddrives, some external drives, some regular. I don't exclude the possibility of buying new/extra drives if necessary. If they will ever be exposed to the web, it wont be to the public, but just a couple of people. I have no idea what to buy to make this happen. I see some NAS solutions over the internet like this http://www.bestbuy.com/site/a/2266043.p?id=1218317764591&skuId=2266043 but the storage is not enough, plus it doesn't seem to be scalable. What do you recommend? Thanks

    Read the article

  • Why doesn't the Gtalk plugin work in Firefox 3.6 betas? [closed]

    - by etlovett
    I've done a quick Google search, Bugzilla search, and glanced at Google's site for the GTalk plugin, but I can't find an answer, so I thought I'd pose the question here: On OS X, in the Firefox 3.6 betas (I'm now on beta 5, but it's been happening since at least beta 3), the GTalk plugin doesn't work for me. I've been completely unable to use video chat in GChat, which forces me to open Firefox 3.5 whenever I want to use it. This happens even after I uninstall/reinstall the GTalk plugin. Anyone know why this is happening?

    Read the article

  • How do you create a virtual directory in Mac Snow Leopard?

    - by johnny
    I am using the server admin tool for the web and see where I can create sites with the +. I thought that was creating virtual directory but it doesn't seem to be. I need a site that uses port 80 but is like http://myserver/myvirtual instead of http://myserver which is what this one with the + does. how do I make a virtual directory with the tool like in IIS? Thank you. edit: how can I put a bounty on this?

    Read the article

  • Why can't I reconnect to my Philips SHB9000 bluetooth headset?

    - by Thomas Eyde
    When I connected my Philips SHB9000 bluetooth to my Windows 7 (64 bit) for the very first time, it worked well. I had to manually change the default playback device, but otherwise it worked. Then, when I start up my computer from standby, it's nearly random when I can reconnect or not. My last option is to remove the bluetooth device and reconnect it. But now, even that doesn't work. The sad thing is, this used to work better on Windows 7 beta. Windows Update has a new driver which fails to install. Searching for this driver yields nothing. I thought all vendors had an official site for their drivers? Well, Philips seems to have none. If there is no answer to this problem, my advice is to NOT buy this headset. It's good looking, the sound is nice, but what need do we have from that if we can't use the bloody device?

    Read the article

  • Would form keys reduce the amount of spam we receive?

    - by David Wilkins
    I work for a company that has an online store, and we constantly have to deal with a lot of spam product reviews, and bogus customer accounts. These are all created by automated systems and are more of a nuisance than anything. What I am thinking of (in lieu of captcha, which can be broken) is adding a sort of form key solution to all relevant forms. I know for certain some of the spammers are using XRumer, and I know they seldom request a page before sending us the form data (Is this the definition of CSRF?) so I would think that tying a key to each requested form would at least stem the tide. I also know the spammers are lazy and don't check their work, or they would see that we have never posted a spam review, and they have never gained any revenue from our site. Would this succeed in significantly reducing the volume of spam product reviews and customer account creations we are seeing? EDIT: To clarify what I mean by "Form Keys": I am referring to creating a unique identifier (or "key") that will be used as an invisible, static form field. This key will also be stored either in the database (relative to the user session) or in a cookie variable. When the form's target gets a request, the key must be validated for the form's data to be processed. Those pesky bots won't have the key because they don't load the javascript that generates the form (they just send a blind request to the target) and even if they did load the javascript once, they'd only have one valid key, and I'm not sure they even use cookies.

    Read the article

  • Distribute Windows (XP or 7) as virtual appliance

    - by User32
    I'm looking at ways that may be possible to distribute a Microsoft Windows (e.g. 7) virtual appliance (such as VMWare image) pre-configured and installed with a large application of mine. Is this possible? If not, is it perhaps best to ask clients to perform a virtual appliance installation on their site and then install my application via a script of some sort? For these kinds of scenarios I see that open source OSes are heavily used, but in my case I cannot use Linux or any other open source OS due to some requirements.

    Read the article

  • Bust Out these 13 Spooky Games for Halloween

    - by Jason Fitzpatrick
    Looking for a suitably spooky board game for Halloween? This roundup includes everything from the light-hearted to the dark and challenging. Over at GeekDad they’ve rounded up 13 horror/Halloween themed board games to help you fill your holiday board gaming quota. The list includes classics like the in-depth and atmospheric Arkham Horror to more recent and kid-friendly GeistesBlitz. Although we think their list is rock solid and includes some great titles, we’re disappointed to see that Witch of Salem, a great lighter-weight alternative to Arkham Horror for those nights you want some cooperative H.P. Lovecraft inspired play without the massive setup and game length, didn’t make the list. To check out the full GeekDad list hit up the link below, for more boardgame-centric reading we highly recommend the excellent board gaming site BoardgameGeek. 13 Spooky Board Games for Your Halloween Game Night [GeekDad] What Is the Purpose of the “Do Not Cover This Hole” Hole on Hard Drives? How To Log Into The Desktop, Add a Start Menu, and Disable Hot Corners in Windows 8 HTG Explains: Why You Shouldn’t Use a Task Killer On Android

    Read the article

  • 504 Gateway Timeout on server clusters

    - by Sixfoot Studio
    Hi All, Here's our scenario: We're running three websites on three web servers hosted on virtual machines running the following: IIS6 Win 2003 Standard Edition Oracle 10g Sitefinity 3.7 We do not have constant control over these servers and something's gone wrong in the interim in that we're getting constant 504 Gateway Timeouts. The other thing that's happening is that if you hit one of the sites, that site is trying to pull themes from one of the sites App_Themes folder in Sitefinity, which of course should not be happening at all. If someone has any ideas on why this should suddenly have started happening I would appreciate it. Many thanks

    Read the article

  • Logging full network connection like in browser

    - by pokemarine
    Can I set my browser or download a special application to log/download everything that is going through network while browsing a site? When I open a website in Firefox, it downloads the files to temporary folders, but I need everything, and by everything I mean full Ajax request logging, image downloading...etc Every file that is downloaded while browsing sites (and not temporary, I need them later, so It should log and categorize it somehow). Otherwise: I want to automatically save everything you can see in the browser's network tab (after pressing F12) and not just the response, also need the information about what it sent and what it got back.

    Read the article

< Previous Page | 832 833 834 835 836 837 838 839 840 841 842 843  | Next Page >