 			return "media"
 		}
     }
+
+	var hashValue: Int {
+		return administration.hashValue ^ media.hashValue
+	}
 }
 
+func ==(lhs: Advertisement, rhs: Advertisement) -> Bool {
+	return lhs.administration == rhs.administration && lhs.media == rhs.media
+}
+

		self.pages = pages
		self.style = style
		self.media = media
    }
    
    var debugDescription: String {
        get { return "Administration = \(administration)\nFeeds = \(feeds)\nPages = \(pages)\nStyle = \(style)\nMedia = \(media)\n" }

import Foundation
import AWSDynamoDB

final class Advertisement: CustomDebugStringConvertible, Hashable
{
	static var ads = [String:Set<Advertisement>]()

	static func apropos(identifier: String, ofFeed feed: FeedCategory, inAdministration administration: String) -> [Advertisement]? {
		return ads[administration]?.filter { $0.apropos(identifier, ofFeed: feed) }
