PageSourceSearch

http://www.causeofdeathwoman.com/contact

html causeofdeathwoman.com collected 2026-09-26 12:49:52 UTC 60,996 bytes, 1,115 lines download raw bytes

1
2/**
3* Note: This file may contain artifacts of previous malicious infection.
4* However, the dangerous code has been removed, and the file is now safe to use.
5*/
6
7/**
8 * @file
9 * Pathologic text filter for Drupal.
10 *
11 * This input filter attempts to make sure that link and image paths will
12 * always be correct, even when domain names change, content is moved from one
13 * server to another, the Clean URLs feature is toggled, etc.
14 */
15
16/**
17 * Implements hook_filter_info().
18 */
19function pathologic_filter_info() {
20  return array(
21    'pathologic' => array(
22      'title' => t('Correct URLs with Pathologic'),
23      'process callback' => '_pathologic_filter',
24      'settings callback' => '_pathologic_settings',
25      'default settings' => array(
26        'local_paths' => '',
27        'protocol_style' => 'full',
28      ),
29      // Set weight to 50 so that it will hopefully appear at the bottom of
30      // filter lists by default. 50 is the maximum value of the weight menu
31      // for each row in the filter table (the menu is hidden by JavaScript to
32      // use table row dragging instead when JS is enabled).
33      'weight' => 50,
34    )
35  );
36}
37
38/**
39 * Settings callback for Pathologic.
40 */
41function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) {
42  return array(
43    'reminder' => array(
44      '#type' => 'item',
45      '#title' => t('In most cases, Pathologic should be the <em>last</em> filter in the &ldquo;Filter processing order&rdquo; list.'),
46      '#weight' => -10,
47    ),
48    'protocol_style' => array(
49      '#type' => 'radios',
50      '#title' => t('Processed URL format'),
51      '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'],
52      '#options' => array(
53        'full' => t('Full URL (<code>http://example.com/foo/bar</code>)'),
54        'proto-rel' => t('Protocol relative URL (<code>//example.com/foo/bar</code>)'),
55        'path' => t('Path relative to server root (<code>/foo/bar</code>)'),
56      ),
57      '#description' => t('The <em>Full URL</em> option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the <em>Protocol relative URL</em> option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The <em>Path relative to server root</em> option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'),
58      '#weight' => 10,
59    ),
60    'local_paths' => array(
61      '#type' => 'textarea',
62      '#title' =>  t('All base paths for this site'),
63      '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'],
64        '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at <code>http://example.com/</code> but has a staging version at <code>http://dev.example.org/staging/</code>, you would enter both those URLs here. If confused, please read <a href="!docs">Pathologic&rsquo;s documentation</a> for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')),
65      '#weight' => 20,
66    ),
67  );
68}
69
70/**
71 * Pathologic filter callback.
72 *
73 * Previous versions of this module worked (or, rather, failed) under the
74 * assumption that $langcode contained the language code of the node. Sadly,
75 * this isn't the case.
76 * @see http://drupal.org/node/1812264
77 * However, it turns out that the language of the current node isn't as
78 * important as the language of the node we're linking to, and even then only
79 * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE
80 * FUTURE, ALBRIGHT.
81 *
82 * The below code uses the @ operator before parse_url() calls because in PHP
83 * 5.3.2 and earlier, parse_url() causes a warning of parsing fails. The @
84 * operator is usually a pretty strong indicator of code smell, but please don't
85 * judge me by it in this case; ordinarily, I despise its use, but I can't find
86 * a cleaner way to avoid this problem (using set_error_handler() could work,
87 * but I wouldn't call that "cleaner"). Fortunately, Drupal 8 will require at
88 * least PHP 5.3.5, so this mess doesn't have to spread into the D8 branch of
89 * Pathologic.
90 * @see https://drupal.org/node/2104849
91 *
92 * @todo Can we do the parsing of the local path settings somehow when the
93 * settings form is submitted instead of doing it here?
94 */
95function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) {
96  // Get the base URL and explode it into component parts. We add these parts
97  // to the exploded local paths settings later.
98  global $base_url;
99  $base_url_parts = @parse_url($base_url . '/');
100  // Since we have to do some gnarly processing even before we do the *really*
101  // gnarly processing, let's static save the settings - it'll speed things up
102  // if, for example, we're importing many nodes, and not slow things down too
103  // much if it's just a one-off. But since different input formats will have
104  // different settings, we build an array of settings, keyed by format ID.
105  $cached_settings = &drupal_static(__FUNCTION__, array());
106  if (!isset($cached_settings[$filter->format])) {
107    $filter->settings['local_paths_exploded'] = array();
108    if ($filter->settings['local_paths'] !== '') {
109      // Build an array of the exploded local paths for this format's settings.
110      // array_filter() below is filtering out items from the array which equal
111      // FALSE - so empty strings (which were causing problems.
112      // @see http://drupal.org/node/1727492
113      $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths'])));
114      foreach ($local_paths as $local) {
115        $parts = @parse_url($local);
116        // Okay, what the hellish "if" statement is doing below is checking to
117        // make sure we aren't about to add a path to our array of exploded
118        // local paths which matches the current "local" path. We consider it
119        // not a match, if…
120        // @todo: This is pretty horrible. Can this be simplified?
121        if (
122          (
123            // If this URI has a host, and…
124            isset($parts['host']) &&
125            (
126              // Either the host is different from the current host…
127              $parts['host'] !== $base_url_parts['host']
128              // Or, if the hosts are the same, but the paths are different…
129              // @see http://drupal.org/node/1875406
130              || (
131                // Noobs (like me): "xor" means "true if one or the other are
132                // true, but not both."
133                (isset($parts['path']) xor isset($base_url_parts['path']))
134                || (isset($parts['path']) && isset($base_url_parts['path']) && $parts['path']  !== $base_url_parts['path'])
135              )
136            )
137          ) ||
138          // Or…
139          (
140            // The URI doesn't have a host…
141            !isset($parts['host'])
142          ) &&
143          // And the path parts don't match (if either doesn't have a path
144          // part, they can't match)…
145          (
146            !isset($parts['path']) ||
147            !isset($base_url_parts['path']) ||
148            $parts['path'] !== $base_url_parts['path']
149          )
150        ) {
151          // Add it to the list.
152          $filter->settings['local_paths_exploded'][] = $parts;
153        }
154      }
155    }
156    // Now add local paths based on "this" server URL.
157    $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']);
158    $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']);
159    // We'll also just store the host part separately for easy access.
160    $filter->settings['base_url_host'] = $base_url_parts['host'];
161
162    $cached_settings[$filter->format] = $filter->settings;
163  }
164  // Get the language code for the text we're about to process.
165  $cached_settings['langcode'] = $langcode;
166  // And also take note of which settings in the settings array should apply.
167  $cached_settings['current_settings'] = &$cached_settings[$filter->format];
168
169  // Now that we have all of our settings prepared, attempt to process all
170  // paths in href, src, action or longdesc HTML attributes. The pattern below
171  // is not perfect, but the callback will do more checking to make sure the
172  // paths it receives make sense to operate upon, and just return the original
173  // paths if not.
174  return preg_replace_callback('~ (href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text);
175}
176
177/**
178 * Process and replace paths. preg_replace_callback() callback.
179 */
180function _pathologic_replace($matches) {
181  // Get the base path.
182  global $base_path;
183
184  // Get the settings for the filter. Since we can't pass extra parameters
185  // through to a callback called by preg_replace_callback(), there's basically
186  // three ways to do this that I can determine: use eval() and friends; abuse
187  // globals; or abuse drupal_static(). The latter is the least offensive, I
188  // guess… Note that we don't do the & thing here so that we can modify
189  // $cached_settings later and not have the changes be "permanent."
190  $cached_settings = drupal_static('_pathologic_filter');
191  // If it appears the path is a scheme-less URL, prepend a scheme to it.
192  // parse_url() cannot properly parse scheme-less URLs. Don't worry; if it
193  // looks like Pathologic can't handle the URL, it will return the scheme-less
194  // original.
195  // @see https://drupal.org/node/1617944
196  // @see https://drupal.org/node/2030789
197  if (strpos($matches[2], '//') === 0) {
198    if (isset($_SERVER['https']) && strtolower($_SERVER['https']) === 'on') {
199      $matches[2] = 'https:' . $matches[2];
200    }
201    else {
202      $matches[2] = 'http:' . $matches[2];
203    }
204  }
205  // Now parse the URL after reverting HTML character encoding.
206  // @see http://drupal.org/node/1672932
207  $original_url = htmlspecialchars_decode($matches[2]);
208  // …and parse the URL
209  $parts = @parse_url($original_url);
210  // Do some more early tests to see if we should just give up now.
211  if (
212    // If parse_url() failed, give up.
213    $parts === FALSE
214    || (
215      // If there's a scheme part and it doesn't look useful, bail out.
216      isset($parts['scheme'])
217      // We allow for the storage of permitted schemes in a variable, though we
218      // don't actually give the user any way to edit it at this point. This
219      // allows developers to set this array if they have unusual needs where
220      // they don't want Pathologic to trip over a URL with an unusual scheme.
221      // @see http://drupal.org/node/1834308
222      // "files" and "internal" are for Path Filter compatibility.
223      && !in_array($parts['scheme'], variable_get('pathologic_scheme_whitelist', array('http', 'https', 'files', 'internal')))
224    )
225    // Bail out if it looks like there's only a fragment part.
226    || (isset($parts['fragment']) && count($parts) === 1)
227  ) {
228    // Give up by "replacing" the original with the same.
229    return $matches[0];
230  }
231
232  if (isset($parts['path'])) {
233    // Undo possible URL encoding in the path.
234    // @see http://drupal.org/node/1672932
235    $parts['path'] = rawurldecode($parts['path']);
236  }
237  else {
238    $parts['path'] = '';
239  }
240
241  // Check to see if we're dealing with a file.
242  // @todo Should we still try to do path correction on these files too?
243  if (isset($parts['scheme']) && $parts['scheme'] === 'files') {
244    // Path Filter "files:" support. What we're basically going to do here is
245    // rebuild $parts from the full URL of the file.
246    $new_parts = @parse_url(file_create_url(file_default_scheme() . '://' . $parts['path']));
247    // If there were query parts from the original parsing, copy them over.
248    if (!empty($parts['query'])) {
249      $new_parts['query'] = $parts['query'];
250    }
251    $new_parts['path'] = rawurldecode($new_parts['path']);
252    $parts = $new_parts;
253    // Don't do language handling for file paths.
254    $cached_settings['is_file'] = TRUE;
255  }
256  else {
257    $cached_settings['is_file'] = FALSE;
258  }
259
260  // Let's also bail out of this doesn't look like a local path.
261  $found = FALSE;
262  // Cycle through local paths and find one with a host and a path that matches;
263  // or just a host if that's all we have; or just a starting path if that's
264  // what we have.
265  foreach ($cached_settings['current_settings']['local_paths_exploded'] as $exploded) {
266    // If a path is available in both…
267    if (isset($exploded['path']) && isset($parts['path'])
268      // And the paths match…
269      && strpos($parts['path'], $exploded['path']) === 0
270      // And either they have the same host, or both have no host…
271      && (
272        (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host'])
273        || (!isset($exploded['host']) && !isset($parts['host']))
274      )
275    ) {
276      // Remove the shared path from the path. This is because the "Also local"
277      // path was something like http://foo/bar and this URL is something like
278      // http://foo/bar/baz; or the "Also local" was something like /bar and
279      // this URL is something like /bar/baz. And we only care about the /baz
280      // part.
281      $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path']));
282      $found = TRUE;
283      // Break out of the foreach loop
284      break;
285    }
286    // Okay, we didn't match on path alone, or host and path together. Can we
287    // match on just host? Note that for this one we are looking for paths which
288    // are just hosts; not hosts with paths.
289    elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) {
290      // No further editing; just continue
291      $found = TRUE;
292      // Break out of foreach loop
293      break;
294    }
295    // Is this is a root-relative url (no host) that didn't match above?
296    // Allow a match if local path has no path,
297    // but don't "break" because we'd prefer to keep checking for a local url
298    // that might more fully match the beginning of our url's path
299    // e.g.: if our url is /foo/bar we'll mark this as a match for
300    // http://example.com but want to keep searching and would prefer a match
301    // to http://example.com/foo if that's configured as a local path
302    elseif (!isset($parts['host']) && (!isset($exploded['path']) || $exploded['path'] === $base_path)) {
303      $found = TRUE;
304    }
305  }
306
307  // If the path is not within the drupal root return original url, unchanged
308  if (!$found) {
309    return $matches[0];
310  }
311
312  // Okay, format the URL.
313  // If there's still a slash lingering at the start of the path, chop it off.
314  $parts['path'] = ltrim($parts['path'],'/');
315
316  // Examine the query part of the URL. Break it up and look through it; if it
317  // has a value for "q", we want to use that as our trimmed path, and remove it
318  // from the array. If any of its values are empty strings (that will be the
319  // case for "bar" if a string like "foo=3&bar&baz=4" is passed through
320  // parse_str()), replace them with NULL so that url() (or, more
321  // specifically, drupal_http_build_query()) can still handle it.
322  if (isset($parts['query'])) {
323    parse_str($parts['query'], $parts['qparts']);
324    foreach ($parts['qparts'] as $key => $value) {
325      if ($value === '') {
326        $parts['qparts'][$key] = NULL;
327      }
328      elseif ($key === 'q') {
329        $parts['path'] = $value;
330        unset($parts['qparts']['q']);
331      }
332    }
333  }
334  else {
335    $parts['qparts'] = NULL;
336  }
337
338  // If we don't have a path yet, bail out.
339  if (!isset($parts['path'])) {
340    return $matches[0];
341  }
342
343  // If we didn't previously identify this as a file, check to see if the file
344  // exists now that we have the correct path relative to DRUPAL_ROOT
345  if (!$cached_settings['is_file']) {
346    $cached_settings['is_file'] = !empty($parts['path']) && is_file(DRUPAL_ROOT . '/'. $parts['path']);
347  }
348
349  // Okay, deal with language stuff.
350  if ($cached_settings['is_file']) {
351    // If we're linking to a file, use a fake LANGUAGE_NONE language object.
352    // Otherwise, the path may get prefixed with the "current" language prefix
353    // (eg, /ja/misc/message-24-ok.png)
354    $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => '');
355  }
356  else {
357    // Let's see if we can split off a language prefix from the path.
358    if (module_exists('locale')) {
359      // Sometimes this file will be require_once-d by the locale module before
360      // this point, and sometimes not. We require_once it ourselves to be sure.
361      require_once DRUPAL_ROOT . '/includes/language.inc';
362      list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list());
363      if ($language_obj) {
364        $parts['path'] = $path;
365        $parts['language_obj'] = $language_obj;
366      }
367    }
368  }
369
370  // If we get to this point and $parts['path'] is now an empty string (which
371  // will be the case if the path was originally just "/"), then we
372  // want to link to <front>.
373  if ($parts['path'] === '') {
374    $parts['path'] = '<front>';
375  }
376  // Build the parameters we will send to url()
377  $url_params = array(
378    'path' => $parts['path'],
379    'options' => array(
380      'query' => $parts['qparts'],
381      'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL,
382      // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but
383      // not if it's 'path'.
384      'absolute' => $cached_settings['current_settings']['protocol_style'] !== 'path',
385      // If we seem to have found a language for the path, pass it along to
386      // url(). Otherwise, ignore the 'language' parameter.
387      'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL,
388      // A special parameter not actually used by url(), but we use it to see if
389      // an alter hook implementation wants us to just pass through the original
390      // URL.
391      'use_original' => FALSE,
392    ),
393  );
394
395  // Add the original URL to the parts array
396  $parts['original'] = $original_url;
397
398  // Now alter!
399  // @see http://drupal.org/node/1762022
400  drupal_alter('pathologic', $url_params, $parts, $cached_settings);
401
402  // If any of the alter hooks asked us to just pass along the original URL,
403  // then do so.
404  if ($url_params['options']['use_original']) {
405    return $matches[0];
406  }
407
408  // If the path is for a file and clean URLs are disabled, then the path that
409  // url() will create will have a q= query fragment, which won't work for
410  // files. To avoid that, we use this trick to temporarily turn clean URLs on.
411  // This is horrible, but it seems to be the sanest way to do this.
412  // @see http://drupal.org/node/1672430
413  // @todo Submit core patch allowing clean URLs to be toggled by option sent
414  // to url()?
415  if (!empty($cached_settings['is_file'])) {
416    $cached_settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']);
417    if (!$cached_settings['orig_clean_url']) {
418      $GLOBALS['conf']['clean_url'] = TRUE;
419    }
420  }
421
422  // Now for the url() call. Drumroll, please…
423  $url = url($url_params['path'], $url_params['options']);
424
425  // If we turned clean URLs on before to create a path to a file, turn them
426  // back off�.
427  if ($cached_settings['is_file'] && !$cached_settings['orig_clean_url']) {
428    $GLOBALS['conf']['clean_url'] = FALSE;
429  }
430
431  // If we need to create a protocol-relative URL, then convert the absolute
432  // URL we have now.
433  if ($cached_settings['current_settings']['protocol_style'] === 'proto-rel') {
434    // Now, what might have happened here is that url() returned a URL which
435    // isn't on "this" server due to a hook_url_outbound_alter() implementation.
436    // We don't want to convert the URL in that case. So what we're going to
437    // do is cycle through the local paths again and see if the host part of
438    // $url matches with the host of one of those, and only alter in that case.
439    $url_parts = @parse_url($url);
440    if (!empty($url_parts['host']) && $url_parts['host'] === $cached_settings['current_settings']['base_url_host']) {
441      $url = _pathologic_url_to_protocol_relative($url);
442    }
443  }
444
445  // Apply HTML character encoding, as is required for HTML attributes.
446  // @see http://drupal.org/node/1672932
447  $url = check_plain($url);
448  // $matches[1] will be the tag attribute; src, href, etc.
449  return " {$matches[1]}=\"{$url}";
450}
451
452/**
453 * Convert a full URL with a protocol to a protocol-relative URL.
454 *
455 * As the Drupal core url() function doesn't support protocol-relative URLs, we
456 * work around it by just creating a full URL and then running it through this
457 * to strip off the protocol.
458 *
459 * Though this is just a one-liner, it's placed in its own function so that it
460 * can be called independently from our test code.
461 */
462function _pathologic_url_to_protocol_relative($url) {
463  return preg_replace('~^https?://~', '//', $url);
464}
465<!DOCTYPE html PUBLIC "-//W3C//DTD HTML+RDFa 1.1//EN">�<!--[if IEMobile 7 ]><html class="iem7 no-js"><![endif]-->
466<!--[if lt IE 7 ]> <html class="ie6 no-js" lang="en" dir="ltr" version="HTML+RDFa 1.1"
467  xmlns:content="http://purl.org/rss/1.0/modules/content/"
468  xmlns:dc="http://purl.org/dc/terms/"
469  xmlns:foaf="http://xmlns.com/foaf/0.1/"
470  xmlns:og="http://ogp.me/ns#"
471  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
472  xmlns:sioc="http://rdfs.org/sioc/ns#"
473  xmlns:sioct="http://rdfs.org/sioc/types#"
474  xmlns:skos="http://www.w3.org/2004/02/skos/core#"
475  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
476  xmlns:fb="http://ogp.me/ns/fb#"
477  xmlns:article="http://ogp.me/ns/article#"
478  xmlns:book="http://ogp.me/ns/book#"
479  xmlns:profile="http://ogp.me/ns/profile#"
480  xmlns:video="http://ogp.me/ns/video#"> <![endif]-->
481<!--[if IE 7 ]>    <html class="ie7 no-js" lang="en" dir="ltr" version="HTML+RDFa 1.1"
482  xmlns:content="http://purl.org/rss/1.0/modules/content/"
483  xmlns:dc="http://purl.org/dc/terms/"
484  xmlns:foaf="http://xmlns.com/foaf/0.1/"
485  xmlns:og="http://ogp.me/ns#"
486  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
487  xmlns:sioc="http://rdfs.org/sioc/ns#"
488  xmlns:sioct="http://rdfs.org/sioc/types#"
489  xmlns:skos="http://www.w3.org/2004/02/skos/core#"
490  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
491  xmlns:fb="http://ogp.me/ns/fb#"
492  xmlns:article="http://ogp.me/ns/article#"
493  xmlns:book="http://ogp.me/ns/book#"
494  xmlns:profile="http://ogp.me/ns/profile#"
495  xmlns:video="http://ogp.me/ns/video#"> <![endif]-->
496<!--[if IE 8 ]>    <html class="ie8 no-js" lang="en" dir="ltr" version="HTML+RDFa 1.1"
497  xmlns:content="http://purl.org/rss/1.0/modules/content/"
498  xmlns:dc="http://purl.org/dc/terms/"
499  xmlns:foaf="http://xmlns.com/foaf/0.1/"
500  xmlns:og="http://ogp.me/ns#"
501  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
502  xmlns:sioc="http://rdfs.org/sioc/ns#"
503  xmlns:sioct="http://rdfs.org/sioc/types#"
504  xmlns:skos="http://www.w3.org/2004/02/skos/core#"
505  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
506  xmlns:fb="http://ogp.me/ns/fb#"
507  xmlns:article="http://ogp.me/ns/article#"
508  xmlns:book="http://ogp.me/ns/book#"
509  xmlns:profile="http://ogp.me/ns/profile#"
510  xmlns:video="http://ogp.me/ns/video#"> <![endif]-->
511<!--[if IE 9 ]>    <html class="ie9 no-js" lang="en" dir="ltr" version="HTML+RDFa 1.1"
512  xmlns:content="http://purl.org/rss/1.0/modules/content/"
513  xmlns:dc="http://purl.org/dc/terms/"
514  xmlns:foaf="http://xmlns.com/foaf/0.1/"
515  xmlns:og="http://ogp.me/ns#"
516  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
517  xmlns:sioc="http://rdfs.org/sioc/ns#"
518  xmlns:sioct="http://rdfs.org/sioc/types#"
519  xmlns:skos="http://www.w3.org/2004/02/skos/core#"
520  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
521  xmlns:fb="http://ogp.me/ns/fb#"
522  xmlns:article="http://ogp.me/ns/article#"
523  xmlns:book="http://ogp.me/ns/book#"
524  xmlns:profile="http://ogp.me/ns/profile#"
525  xmlns:video="http://ogp.me/ns/video#"> <![endif]-->
526<!--[if (gte IE 9)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en" dir="ltr" version="HTML+RDFa 1.1"
527  xmlns:content="http://purl.org/rss/1.0/modules/content/"
528  xmlns:dc="http://purl.org/dc/terms/"
529  xmlns:foaf="http://xmlns.com/foaf/0.1/"
530  xmlns:og="http://ogp.me/ns#"
531  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
532  xmlns:sioc="http://rdfs.org/sioc/ns#"
533  xmlns:sioct="http://rdfs.org/sioc/types#"
534  xmlns:skos="http://www.w3.org/2004/02/skos/core#"
535  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
536  xmlns:fb="http://ogp.me/ns/fb#"
537  xmlns:article="http://ogp.me/ns/article#"
538  xmlns:book="http://ogp.me/ns/book#"
539  xmlns:profile="http://ogp.me/ns/profile#"
540  xmlns:video="http://ogp.me/ns/video#"> <!--<![endif]-->
541<head profile="http://www.w3.org/1999/xhtml/vocab">
542  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
543<link type="text/plain" rel="author" href="http://www.causeofdeathwoman.com/humans.txt" />
544<link rel="shortlink" href="/node/564" />
545<link rel="canonical" href="/contact" />
546<meta name="description" content="The project is the work of Karin Alfredsson, Linda Forsell and Kerstin Weigl together with the Swedish Association of Women’s Shelters and Young Women’s Empowerment Centres, SKR." />
547<meta name="generator" content="Drupal 7 (http://drupal.org)" />
548<meta property="og:site_name" content="Cause of Death: Woman" />
549<meta property="og:type" content="article" />
550<meta property="og:url" content="http://www.causeofdeathwoman.com/contact" />
551<meta property="og:title" content="Contact" />
552<meta property="og:description" content="The project is the work of Karin Alfredsson, Linda Forsell and Kerstin Weigl together with the Swedish Association of Women’s Shelters and Young Women’s Empowerment Centres, SKR." />
553<meta property="og:image" content="/sites/default/themes/cod/img/codw-og-logo.png" />
554�
554<script src="/sites/default/themes/cod/js/libs/modernizr-2.0.6.min.js"></script>
554�<meta charset="utf-8">�<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">�<meta http-equiv="cleartype" content="on">  <title>Contact | Cause of Death: Woman</title>
555  <link type="text/css" rel="stylesheet" href="http://www.causeofdeathwoman.com/sites/default/files/css/css_YNKTD7lL0YzVbzlJPpflpiR2uOLBYAkbWxUhzivMQa0.css" media="all" />
556</head>
557<body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-564 page-type-page i18n-en" >
558  
559  <div id="fb-root"></div>
560<div id="page-wrapper">
561<div id="page" class="wrapper clearfix">
562
563  
564  <header id="header" role="banner">
565    <div id="logo">
566      <a href="/" title="Home" rel="home">
567        <img src="/sites/default/themes/cod/img/codw-logo.gif" width="490" height="80" alt="Home">
568      </a>
569    </div>
570    <!-- / #logo -->
571
572          <div id="top-nav">
573                  <div id="search">
574            <form class="search-form" role="search" action="/contact" method="post" id="custom-search-blocks-form-1" accept-charset="UTF-8"><div><div class="form-item form-type-textfield form-item-custom-search-blocks-form-1">
575  <label for="edit-custom-search-blocks-form-1--2">Search </label>
576 <input title="Enter the terms you wish to search for." class="custom-search-box form-text" placeholder="" type="text" id="edit-custom-search-blocks-form-1--2" name="custom_search_blocks_form_1" value="" size="15" maxlength="128" />
577</div>
578<input type="hidden" name="delta" value="1" />
579<input type="hidden" name="form_build_id" value="form-FSHajymfqKEh5T5rQv0M_SPa28HrXBpcsC91TrDGfvY" />
580<input type="hidden" name="form_id" value="custom_search_blocks_form_1" />
581<div class="form-actions form-wrapper" id="edit-actions"><input type="submit" id="edit-submit" name="op" value="Search" class="form-submit" /></div></div></form>          </div>
582          <!-- / #search -->
583        
584                  <ul id="top-nav-menu" class="menu">
585                          <li><a href="/contact" class="active">Contact</a></li>
586            
587                          <li><ul class="language-switcher-locale-url"><li class="en first active visuallyhidden"><a href="/contact" class="language-link active visuallyhidden" xml:lang="en">English</a></li>
588<li class="ru"><span class="language-link locale-untranslated" xml:lang="ru">Русский</span></li>
589<li class="sv last"><span class="language-link locale-untranslated" xml:lang="sv">Svenska</span></li>
590</ul></li>
591                      </ul>
592          <!-- / #top-nav-menu, .menu -->
593              </div>
594      <!-- / #top-nav -->
595    
596          <div id="navigation">
597                  <nav class="region-menu" role="navigation">
598            <a class="region-selector" role="presentation">
599              <div class="region-selector-text">Select a country</div>
600            </a>
601
602            <div class="region-selector-ie7">
603              <select id="region-selector-ie7-header">
604                <option value="#">Select a country</option>
605                <option value="/country/brazil">Brazil</option>
606                <option value="/country/dr-congo">DR Congo</option>
607                <option value="/country/egypt">Egypt</option>
608                <option value="/country/mexico">Mexico</option>
609                <option value="/country/pakistan">Pakistan</option>
610                <option value="/country/russia">Russia</option>
611                <option value="/country/south-africa">South Africa</option>
612                <option value="/country/spain">Spain</option>
613                <option value="/country/sweden">Sweden</option>
614                <option value="/country/usa">USA</option>
615              </select>
616            </div>
617            <!-- / .region-selector-ie7 -->
618
619            <div class="region-menu-content">
620                <!--<div class="region region-region-menu">-->
621    <section id="block-menu-block-6" class="block block-menu-block">
622
623            <h2 class="title">America</h2>
624      
625  <div class="block-content">
626    <div class="menu-block-wrapper menu-block-6 menu-name-menu-regions parent-mlid-470 menu-level-1">
627  <ul class="menu"><li class="first leaf menu-mlid-472"><a href="/country/brazil" title="">Brazil</a></li>
628<li class="leaf menu-mlid-475"><a href="/country/mexico" title="">Mexico</a></li>
629<li class="last leaf menu-mlid-479"><a href="/country/usa" title="">USA</a></li>
630</ul></div>
631  </div>
632</section>
633<!-- / #block-menu-block-6 --><section id="block-menu-block-5" class="block block-menu-block">
634
635            <h2 class="title">Africa</h2>
636      
637  <div class="block-content">
638    <div class="menu-block-wrapper menu-block-5 menu-name-menu-regions parent-mlid-468 menu-level-1">
639  <ul class="menu"><li class="first leaf menu-mlid-473"><a href="/country/dr-congo" title="">DR Congo</a></li>
640<li class="leaf menu-mlid-474"><a href="/country/egypt" title="">Egypt</a></li>
641<li class="last leaf menu-mlid-477"><a href="/country/south-africa" title="">South Africa</a></li>
642</ul></div>
643  </div>
644</section>
645<!-- / #block-menu-block-5 --><section id="block-menu-block-7" class="block block-menu-block">
646
647            <h2 class="title">Europe</h2>
648      
649  <div class="block-content">
650    <div class="menu-block-wrapper menu-block-7 menu-name-menu-regions parent-mlid-469 menu-level-1">
651  <ul class="menu"><li class="first leaf menu-mlid-480"><a href="/country/spain" title="">Spain</a></li>
652<li class="last leaf menu-mlid-478"><a href="/country/sweden" title="">Sweden</a></li>
653</ul></div>
654  </div>
655</section>
656<!-- / #block-menu-block-7 --><section id="block-menu-block-8" class="block block-menu-block">
657
658            <h2 class="title">Asia</h2>
659      
660  <div class="block-content">
661    <div class="menu-block-wrapper menu-block-8 menu-name-menu-regions parent-mlid-467 menu-level-1">
662  <ul class="menu"><li class="first leaf menu-mlid-466"><a href="/country/pakistan" title="">Pakistan</a></li>
663<li class="last leaf menu-mlid-476"><a href="/country/russia" title="">Russia</a></li>
664</ul></div>
665  </div>
666</section>
667<!-- / #block-menu-block-8 -->  <!--</div>-->
668  <!-- / region_menu -->
669              <div class="region-menu-content-close" role="presentation">Close</div>
670            </div>
671          </nav>
672          <!-- / #region-menu -->
673        
674                  <nav id="main-menu" role="navigation">
675              <!--<div class="region region-main-menu">-->
676    <section id="block-menu-block-1" class="block block-menu-block">
677
678        
679  <div class="block-content">
680    <div class="menu-block-wrapper menu-block-1 menu-name-main-menu parent-mlid-0 menu-level-1">
681  <ul class="menu"><li class="first leaf menu-mlid-482"><a href="/survivors" title="">Survivors</a></li>
682<li class="leaf menu-mlid-483"><a href="/killed" title="">Killed</a></li>
683<li class="leaf menu-mlid-481"><a href="/forces-for-change" title="">Forces for change</a></li>
684<li class="leaf menu-mlid-739"><a href="/quiz">Quiz</a></li>
685<li class="leaf menu-mlid-716"><a href="/press">Press</a></li>
686<li class="expanded menu-mlid-786"><a href="/course-material-0">Course Material</a><ul class="menu"><li class="first leaf menu-mlid-865"><a href="/arguments" title="">Arguments</a></li>
687<li class="leaf menu-mlid-868"><a href="/exhibition">Exhibition</a></li>
688<li class="leaf menu-mlid-866"><a href="/sayings" title="">Sayings</a></li>
689<li class="leaf menu-mlid-869"><a href="/course-material-basic">Course Material Basic</a></li>
690<li class="last leaf menu-mlid-870"><a href="/course-material-large" title="">Course Material Large</a></li>
691</ul></li>
692<li class="leaf menu-mlid-1279"><a href="/slideshows">Slideshows</a></li>
693<li class="last expanded menu-mlid-742"><a href="/about-the-project">About</a><ul class="menu"><li class="first leaf menu-mlid-671"><a href="/about-us">About us</a></li>
694<li class="leaf menu-mlid-855"><a href="/about-the-project" title="">About the project</a></li>
695<li class="leaf menu-mlid-856"><a href="/how-we-worked">How we worked</a></li>
696<li class="leaf menu-mlid-857"><a href="/karins-reflections" title="">Karin&#039;s reflections</a></li>
697<li class="leaf menu-mlid-858"><a href="/kerstins-reflections" title="">Kerstin&#039;s reflections</a></li>
698<li class="last leaf menu-mlid-859"><a href="/lindas-reflections" title="">Linda&#039;s reflections</a></li>
699</ul></li>
700</ul></div>
701  </div>
702</section>
703<!-- / #block-menu-block-1 -->  <!--</div>-->
704  <!-- / main_menu -->
705          </nav>
706          <!-- / #main-menu -->
707              </div>
708      <!-- / #navigation -->
709      </header>
710  <!-- / #header -->
711
712  <div id="main" class="clearfix">
713    <section id="content" role="main">
714      
715      
716        <!--<div class="region region-content">-->
717    <section id="block-system-main" class="block block-system">
718
719        
720  <div class="block-content">
721    <div class="panel-flexible panels-flexible-top_and_sidebar clearfix" >
722<div class="panel-flexible-inside panels-flexible-top_and_sidebar-inside">
723<div class="panels-flexible-row panels-flexible-row-top_and_sidebar-1 panels-flexible-row-first clearfix top-content">
724  <div class="inside panels-flexible-row-inside panels-flexible-row-top_and_sidebar-1-inside panels-flexible-row-inside-first clearfix">
725<div class="panels-flexible-region panels-flexible-region-top_and_sidebar-top_content panels-flexible-region-first panels-flexible-region-last top-content">
726  <div class="inside panels-flexible-region-inside panels-flexible-region-top_and_sidebar-top_content-inside panels-flexible-region-inside-first panels-flexible-region-inside-last">
727<div class="panel-pane pane-views pane-quote-or-fact" >
728  
729  
730  
731  <div class="pane-content">
732    <section id="views-id-quote_or_fact-block" class="view view-quote-or-fact view-id-quote_or_fact view-display-id-block view-dom-id-b512df33f55dff8bbf7c1b871fdd0cfa">
733    
734  
735  
736  
737      <section class="view-content">
738        <div class="views-row views-row-1 views-row-odd views-row-first views-row-last">
739      
740  <div class="views-field views-field-title">        <span class="field-content">“I asked my husband to forgive me for being raped.” </span>  </div>  
741  <div class="views-field views-field-field-quotee">        <div class="field-content">Faida, Bukavu, Congo</div>  </div>  </div>
742    </section>
743  
744  
745  
746  
747  
748</section>
749<!-- /#views-id-quote_or_fact-block -->  </div>
750
751  
752  </div>
753  </div>
754</div>
755  </div>
756</div>
757<div class="panels-flexible-row panels-flexible-row-top_and_sidebar-main-row panels-flexible-row-last clearfix mid-wrapper">
758  <div class="inside panels-flexible-row-inside panels-flexible-row-top_and_sidebar-main-row-inside panels-flexible-row-inside-last clearfix">
759<div class="panels-flexible-region panels-flexible-region-top_and_sidebar-center panels-flexible-region-first prose">
760  <div class="inside panels-flexible-region-inside panels-flexible-region-top_and_sidebar-center-inside panels-flexible-region-inside-first">
761<div class="panel-pane pane-node-title" >
762  
763  
764  
765  <div class="pane-content">
766    Contact  </div>
767
768  
769  </div>
770<div class="panel-separator"></div><div class="panel-pane pane-node-body small-prose" >
771  
772  
773  
774  <div class="pane-content">
775    <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-item even" property="content:encoded"><h3>The project is the work of Karin Alfredsson, Linda Forsell and Kerstin Weigl together with the Swedish Association of Women’s Shelters and Young Women’s Empowerment Centres, <span class="caps">SKR</span>.  Funding was received from, among others, the Swedish International Development Cooperation Agency (Sida) and the Sigrid Rausing Trust.</h3><p><strong>Karin Alfredsson</strong> (<a href="http://www.karinalfredsson.se" target="_blank">www.karinalfredsson.se</a>) has written articles, debate books and novels on the subject of violence against women all her life, many from an international perspective.  
</p><p><strong>Linda Forsell </strong>(<a href="http://www.lindaforsell.com" target="_blank">www.lindaforsell.com</a>) has had an exhibition on the subject of sex and gender which has been shown all over Sweden. She has travelled and worked around the world, including in Israel/Palestine, Georgia and East Africa. 

</p><p><strong>Kerstin Weigl</strong> has been awarded a prize for investigative journalism for a unique study of all the women who have died in Sweden as a result of violence in close relationships during the 2000s. The investigation was undertaken together with Kristina Edblom, for the Swedish newspaper Aftonbladet.</p><p><strong>Unizon</strong> represents over 140 women’s shelters, young women’s empowerment centres and other organisations working for an equal society free from violence. Unizon is not affiliated to any political party or religion. Read more at <a href="http://www.unizonjourer.se" target="_blank">www.unizonjourer.se</a></p><h3>Press contact:</h3><p>Nina Ljungberg<br />Press seceratary<br /><a href="mailto:[email protected]">[email protected]</a>
<br />Tel: +46 (0)8-6426401</p></div></div>  </div>
776
777  
778  </div>
779  </div>
780</div>
781<div class="panels-flexible-region panels-flexible-region-top_and_sidebar-right panels-flexible-region-last sidebar-right">
782  <div class="inside panels-flexible-region-inside panels-flexible-region-top_and_sidebar-right-inside panels-flexible-region-inside-last">
783<div class="panel-pane pane-views pane-sidebar-articles clearfix view-articles-horizontal" >
784  
785      <h2 class="pane-title">Survivor</h2>
786  
787  
788  <div class="pane-content">
789    <section id="views-id-sidebar_articles-block" class="view view-sidebar-articles view-id-sidebar_articles view-display-id-block view-dom-id-4c3eb8e7970f5f50c1ffd9adbf908670">
790    
791  
792  
793  
794      <section class="view-content">
795        <div class="views-row views-row-1 views-row-odd views-row-first">
796      
797  <div>        <div><a href="http://www.causeofdeathwoman.com/nyota"><div class="field-collection-view clearfix view-mode-teaser-small field-collection-view-final"><div class="entity entity-field-collection-item field-collection-item-field-sli
797des-collection clearfix" about="/field-collection/field-slides-collection/817" typeof="">
798  <div class="content">
799    <div class="field field-name-field-slideshow field-type-image field-label-hidden">
800  <div class="field-items">
801                  <div class="field-item even">
802          <img typeof="foaf:Image" src="http://www.causeofdeathwoman.com/sites/default/files/styles/small/public/kongo_survivor_nyota_1.jpg?itok=MRwESstP" width="177" height="118" />        </div>
803            </div>
804</div>
805  </div>
806</div>
807</div></a></div>  </div>  
808  <span>        <span><div class="term"><a href="/survivors" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Survivor</a>, <a href="/location/bukavu" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Bukavu</a>, <a href="/country/dr-congo" typeof="skos:Concept" property="rdfs:label skos:prefLabel">DR Congo</a></div></span>  </span>  
809  <div class="views-field views-field-title">        <h2 class="field-content"><a href="/nyota">Nyota</a></h2>  </div>  </div>
810  <div class="views-row views-row-2 views-row-even views-row-last">
811      
812  <div>        <div><a href="http://www.causeofdeathwoman.com/rosangela"><div class="field-collection-view clearfix view-mode-teaser-small field-collection-view-final"><div class="entity entity-field-collection-item field-collection-item-field-slides-collection clearfix" about="/field-collection/field-slides-collection/340" typeof="">
813  <div class="content">
814    <div class="field field-name-field-slideshow field-type-image field-label-hidden">
815  <div class="field-items">
816                  <div class="field-item even">
817          <img typeof="foaf:Image" src="http://www.causeofdeathwoman.com/sites/default/files/styles/small/public/brazil_survivor_rosangela_1.jpg?itok=oS-Qm49S" width="177" height="118" />        </div>
818            </div>
819</div>
820  </div>
821</div>
822</div></a></div>  </div>  
823  <span>        <span><div class="term"><a href="/survivors" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Survivor</a>, <a href="/location/sao-goncalo" typeof="skos:Concept" property="rdfs:label skos:prefLabel">São Gonçalo</a>, <a href="/country/brazil" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Brazil</a></div></span>  </span>  
824  <div class="views-field views-field-title">        <h2 class="field-content"><a href="/rosangela">Rosângela</a></h2>  </div>  </div>
825    </section>
826  
827      <nav class="pager"><div class="item-list"><ul class="pager"><li class="pager-previous first">&nbsp;</li>
828<li class="pager-next last"><a title="Go to next page" href="/contact?page=1">next ›</a></li>
829</ul></div></nav>
830  
831  
832  
833  
834</section>
835<!-- /#views-id-sidebar_articles-block -->  </div>
836
837  
838  </div>
839<div class="panel-separator"></div><div class="panel-pane pane-views pane-sidebar-articles clearfix view-articles-horizontal" >
840  
841      <h2 class="pane-title">Forces for Change</h2>
842  
843  
844  <div class="pane-content">
845    <section id="views-id-sidebar_articles-block" class="view view-sidebar-articles view-id-sidebar_articles view-display-id-block view-dom-id-8b026f14694af6d4387a6c05fb7e2f86">
846    
847  
848  
849  
850      <section class="view-content">
851        <div class="views-row views-row-1 views-row-odd views-row-first">
852      
853  <div>        <div><a href="http://www.causeofdeathwoman.com/the-project-for-equality"><div class="field-collection-view clearfix view-mode-teaser-small field-collection-view-final"><div class="entity entity-field-collection-item field-collection-item-field-slides-collection clearfix" about="/field-collection/field-slides-collection/1235" typeof="">
854  <div class="content">
855    <div class="field field-name-field-slideshow field-type-image field-label-hidden">
856  <div class="field-items">
857                  <div class="field-item even">
858          <img typeof="foaf:Image" src="http://www.causeofdeathwoman.com/sites/default/files/styles/small/public/kongo_changer_mathilde_muhindo.jpg?itok=qyDJH1YE" width="177" height="118" />        </div>
859            </div>
860</div>
861  </div>
862</div>
863</div></a></div>  </div>  
864  <span>        <span><div class="term"><a href="/forces-for-change" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Forces for Change</a>, <a href="/location/kivu" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Kivu</a>, <a href="/country/dr-congo" typeof="skos:Concept" property="rdfs:label skos:prefLabel">DR Congo</a></div></span>  </span>  
865  <div class="views-field views-field-title">        <h2 class="field-content"><a href="/the-project-for-equality">The Project for Equality</a></h2>  </div>  </div>
866  <div class="views-row views-row-2 views-row-even views-row-last">
867      
868  <div>        <div><a href="http://www.causeofdeathwoman.com/panzi-hospital"><div class="field-collection-view clearfix view-mode-teaser-small field-collection-view-final"><div class="entity entity-field-collection-item field-collection-item-field-slides-collection clearfix" about="/field-collection/field-slides-collection/1018" typeof="">
869  <div class="content">
870    <div class="field field-name-field-slideshow field-type-image field-label-hidden">
871  <div class="field-items">
872                  <div class="field-item even">
873          <img typeof="foaf:Image" src="http://www.causeofdeathwoman.com/sites/default/files/styles/small/public/kongo_changer_hospital_1.jpg?itok=10UlcsLu" width="177" height="118" />        </div>
874            </div>
875</div>
876  </div>
877</div>
878</div></a></div>  </div>  
879  <span>        <span><div class="term"><a href="/forces-for-change" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Forces for Change</a>, <a href="/location/bukavu" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Bukavu</a>, <a href="/country/dr-congo" typeof="skos:Concept" property="rdfs:label skos:prefLabel">DR Congo</a></div></span>  </span>  
880  <div class="views-field views-field-title">        <h2 class="field-content"><a href="/panzi-hospital">Panzi Hospital</a></h2>  </div>  </div>
881    </section>
882  
883      <nav class="pager"><div class="item-list"><ul class="pager"><li class="pager-previous first">&nbsp;</li>
884<li class="pager-next last"><a title="Go to next page" href="/contact?page=1">next ›</a></li>
885</ul></div></nav>
886  
887  
888  
889  
890</section>
891<!-- /#views-id-sidebar_articles-block -->  </div>
892
893  
894  </div>
895<div class="panel-separator"></div><div class="panel-pane pane-views pane-sidebar-articles clearfix view-articles-horizontal" >
896  
897      <h2 class="pane-title">Killed</h2>
898  
899  
900  <div class="pane-content">
901    <section id="views-id-sidebar_articles-block" class="view view-sidebar-articles view-id-sidebar_articles view-display-id-block view-dom-id-a14d6f6415e14d24ed0971a721446079">
902    
903  
904  
905  
906      <section class="view-content">
907        <div class="views-row views-row-1 views-row-odd views-row-first">
908      
909  <div>        <div><a href="http://www.causeofdeathwoman.com/maggie-wardle"><div class="field-collection-view clearfix view-mode-teaser-small field-collection-view-final"><div class="entity entity-field-collection-item field-collection-item-field-slides-collection clearfix" about="/field-collection/field-slides-collection/476" typeof="">
910  <div class="content">
911    <div class="field field-name-field-slideshow field-type-image field-label-hidden">
912  <div class="field-items">
913                  <div class="field-item even">
914          <img typeof="foaf:Image" src="http://www.causeofdeathwoman.com/sites/default/files/styles/small/public/usa_victim_maggie.jpg?itok=9CG9QYds" width="177" height="118" />        </div>
915            </div>
916</div>
917  </div>
918</div>
919</div></a></div>  </div>  
920  <span>        <span><div class="term"><a href="/killed" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Killed</a>, <a href="/location/kalamazoo-michigan" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Kalamazoo Michigan</a>, <a href="/country/usa" typeof="skos:Concept" property="rdfs:label skos:prefLabel">USA</a></div></span>  </span>  
921  <div class="views-field views-field-title">        <h2 class="field-content"><a href="/maggie-wardle">Maggie Wardle</a></h2>  </div>  </div>
922  <div class="views-row views-row-2 views-row-even views-row-last">
923      
924  <div>        <div><a href="http://www.causeofdeathwoman.com/eudy-simelane"><div class="field-collection-view clearfix view-mode-teaser-small field-collection-view-final"><div class="entity entity-field-collection-item field-collection-item-field-slides-collection clearfix" about="/field-collection/field-slides-collection/679" typeof="">
925  <div class="content">
926    <div class="field field-name-field-slideshow field-type-image field-label-hidden">
927  <div class="field-items">
928                  <div class="field-item even">
929          <img typeof="foaf:Image" src="http://www.causeofdeathwoman.com/sites/default/files/styles/small/public/southafrica_victim_eudy.jpg?itok=EcIWUH5h" width="177" height="118" />        </div>
930            </div>
931</div>
932  </div>
933</div>
934</div></a></div>  </div>  
935  <span>        <span><div class="term"><a href="/killed" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Killed</a>, <a href="/location/kwathema" typeof="skos:Concept" property="rdfs:label skos:prefLabel">KwaThema</a>, <a href="/country/south-africa" typeof="skos:Concept" property="rdfs:label skos:prefLabel">South Africa</a></div></span>  </span>  
936  <div class="views-field views-field-title">        <h2 class="field-content"><a href="/eudy-simelane">Eudy Simelane </a></h2>  </div>  </div>
937    </section>
938  
939      <nav class="pager"><div class="item-list"><ul class="pager"><li class="pager-previous first">&nbsp;</li>
940<li class="pager-next last"><a title="Go to next page" href="/contact?page=1">next ›</a></li>
941</ul></div></nav>
942  
943  
944  
945  
946</section>
947<!-- /#views-id-sidebar_articles-block -->  </div>
948
949  
950  </div>
951  </div>
952</div>
953  </div>
954</div>
955</div>
956</div>
957  </div>
958</section>
959<!-- / #block-system-main -->  <!--</div>-->
960  <!-- / content -->
961    </section>
962    <!-- / #content -->
963  </div>
964  <!-- / #main -->
965</div>
966<!-- / #page -->
967</div>
968<!-- / #page-wrapper -->
969
970<footer id="footer" class="clearfix" role="contentinfo">
971  <div class="wrapper">
972    <div id="footer-region">  <!--<div class="region region-footer">-->
973    <section id="block-menu-block-2" class="block block-menu-block">
974
975            <h2 class="title">Cause of Death: Woman</h2>
976      
977  <div class="block-content">
978    <div class="menu-block-wrapper menu-block-2 menu-name-menu-footer parent-mlid-771 menu-level-1">
979  <ul class="menu"><li class="first leaf menu-mlid-767"><a href="/survivors" title="">Survivors</a></li>
980<li class="leaf menu-mlid-765"><a href="/killed" title="">Killed</a></li>
981<li class="last leaf menu-mlid-768"><a href="/forces-for-change" title="">Forces for change</a></li>
982</ul></div>
983  </div>
984</section>
985<!-- / #block-menu-block-2 --><section id="block-menu-block-11" class="block block-menu-block">
986
987            <h2 class="title">Spread Cause of Death: Woman</h2>
988      
989  <div class="block-content">
990    <div class="menu-block-wrapper menu-block-11 menu-name-menu-footer parent-mlid-773 menu-level-1">
991  <ul class="menu"><li class="first leaf menu-mlid-774"><a href="/quiz" title="">Quiz</a></li>
992<li class="leaf menu-mlid-779"><a href="/course-material-0" title="">Course Material</a></li>
993<li class="last leaf menu-mlid-778"><a href="/exhibition">Exhibition</a></li>
994</ul></div>
995  </div>
996</section>
997<!-- / #block-menu-block-11 --><section id="block-menu-block-9" class="block block-menu-block">
998
999            <h2 class="title">About us</h2>
1000      
1001  <div class="block-content">
1002    <div class="menu-block-wrapper menu-block-9 menu-name-menu-footer parent-mlid-711 menu-level-1">
1003  <ul class="menu"><li class="first leaf menu-mlid-772"><a href="/press" title="">Press</a></li>
1004<li class="leaf menu-mlid-461"><a href="/about-the-project" title="">About the project</a></li>
1005<li class="last leaf active-trail active menu-mlid-782"><a href="/contact" class="active-trail active">Contact</a></li>
1006</ul></div>
1007  </div>
1008</section>
1009<!-- / #block-menu-block-9 -->  <!--</div>-->
1010  <!-- / footer -->
1011</div>
1012
1013          <nav class="region-menu" role="navigation">
1014        <a class="region-selector" role="presentation">
1015          <div class="region-selector-text">Select a country</div>
1016        </a>
1017
1018        <div class="region-menu-content">
1019            <!--<div class="region region-region-menu">-->
1020      <!--<div class="region region-region-menu">-->
1021    <section id="block-menu-block-6" class="block block-menu-block">
1022
1023            <h2 class="title">America</h2>
1024      
1025  <div class="block-content">
1026    <div class="menu-block-wrapper menu-block-6 menu-name-menu-regions parent-mlid-470 menu-level-1">
1027  <ul class="menu"><li class="first leaf menu-mlid-472"><a href="/country/brazil" title="">Brazil</a></li>
1028<li class="leaf menu-mlid-475"><a href="/country/mexico" title="">Mexico</a></li>
1029<li class="last leaf menu-mlid-479"><a href="/country/usa" title="">USA</a></li>
1030</ul></div>
1031  </div>
1032</section>
1033<!-- / #block-menu-block-6 --><section id="block-menu-block-5" class="block block-menu-block">
1034
1035            <h2 class="title">Africa</h2>
1036      
1037  <div class="block-content">
1038    <div class="menu-block-wrapper menu-block-5 menu-name-menu-regions parent-mlid-468 menu-level-1">
1039  <ul class="menu"><li class="first leaf menu-mlid-473"><a href="/country/dr-congo" title="">DR Congo</a></li>
1040<li class="leaf menu-mlid-474"><a href="/country/egypt" title="">Egypt</a></li>
1041<li class="last leaf menu-mlid-477"><a href="/country/south-africa" title="">South Africa</a></li>
1042</ul></div>
1043  </div>
1044</section>
1045<!-- / #block-menu-block-5 --><section id="block-menu-block-7" class="block block-menu-block">
1046
1047            <h2 class="title">Europe</h2>
1048      
1049  <div class="block-content">
1050    <div class="menu-block-wrapper menu-block-7 menu-name-menu-regions parent-mlid-469 menu-level-1">
1051  <ul class="menu"><li class="first leaf menu-mlid-480"><a href="/country/spain" title="">Spain</a></li>
1052<li class="last leaf menu-mlid-478"><a href="/country/sweden" title="">Sweden</a></li>
1053</ul></div>
1054  </div>
1055</section>
1056<!-- / #block-menu-block-7 --><section id="block-menu-block-8" class="block block-menu-block">
1057
1058            <h2 class="title">Asia</h2>
1059      
1060  <div class="block-content">
1061    <div class="menu-block-wrapper menu-block-8 menu-name-menu-regions parent-mlid-467 menu-level-1">
1062  <ul class="menu"><li class="first leaf menu-mlid-466"><a href="/country/pakistan" title="">Pakistan</a></li>
1063<li class="last leaf menu-mlid-476"><a href="/country/russia" title="">Russia</a></li>
1064</ul></div>
1065  </div>
1066</section>
1067<!-- / #block-menu-block-8 -->  <!--</div>-->
1068  <!-- / region_menu -->
1069  <!--</div>-->
1070  <!-- / region_menu -->
1071          <div class="region-menu-content-close" role="presentation">Close</div>
1072        </div>
1073      </nav>
1074      <!-- / #region-menu -->
1075    
1076    <div id="footer-skr"><a href="http://unizon.se"><img src="/sites/default/themes/cod/img/footer-logo-unizon.png" alt="Unizon" width="35" height="35"></a></div>
1077
1078    <div id="license">
1079      <p>
1080        <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><strong><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">Cause of Death: Woman</span></strong>
1080 is licensed under a Creative Commons BY-NC-ND 3.0 Unported License</a>.
1081      </p>
1082    </div>
1083    <!-- / #license -->
1084  </div>
1085</footer>
1086<!-- / #footer -->
1087
1088  
1088<script type="text/javascript" src="http://www.causeofdeathwoman.com/sites/default/files/js/js_oCVMDTeSNt-_QxknevWyf6yO5OzmME3AhRz3ggZgNtg.js"></script>
vendor: 1 bytes, line 1088
1088
1089<script type="text/javascript" src="http://www.causeofdeathwoman.com/sites/default/files/js/js_9PoCIpaBdXzAfwjeoO2ibi_TtEs6jMROpVOwk-_WIBw.js"></script>
vendor: 1 bytes, line 1089
1089
1090<script type="text/javascript" src="http://www.causeofdeathwoman.com/sites/default/files/js/js__bMgEeYJAAEmXGVHARejapI0cjvV-DC3taol00OOoMA.js"></script>
vendor: 1 bytes, line 1090
1090
1091<script type="text/javascript">
1092<!--//--><![CDATA[//><!--
vendor: 324 bytes, lines 1092-1093
1092
1093(function(i,s,o,g,r,a,m){i["GoogleAnalyticsObject"]=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,"script","//www.google-analytics.com/analytics.js","ga");ga("create", "
1093UA-29391000-1
vendor: 52 bytes, line 1093
1093", {"cookieDomain":"auto"});ga("send", "pageview");
1094//--><!]]>
1095</script>
vendor: 1 bytes, line 1095
1095
1096<script type="text/javascript" src="http://www.causeofdeathwoman.com/sites/default/files/js/js_kY_Pl8MfAHUp7404Oh1tALtBlh11v-czb7za_RVNcMA.js"></script>
vendor: 1 bytes, line 1096
1096
1097<script type="text/javascript">
1098<!--//--><![CDATA[//><!--
1099jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"cod","theme_token":"HcVxkyECOSvSdoUG6zRVW4Eoxk5aPNlIRcwiRzhlZFQ","jquery_version":"1.10","js":{"sites\/all\/modules\/jquery_update\/replace\/jquery\/1.10\/jquery.min.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/modules\/jquery_update\/replace\/ui\/external\/jquery.cookie.js":1,"sites\/all\/modules\/jquery_update\/replace\/misc\/jquery.form.min.js":1,"misc\/ajax.js":1,"sites\/all\/modules\/jquery_update\/js\/jquery_update.js":1,"sites\/all\/modules\/custom_search\/js\/custom_search.js":1,"sites\/all\/modules\/views\/js\/base.js":1,"misc\/progress.js":1,"sites\/all\/modules\/google_analytics\/googleanalytics.js":1,"sites\/all\/modules\/views\/js\/ajax_view.js":1,"0":1,"sites\/default\/themes\/cod\/js\/libs\/jquery.hoverIntent.minified.js":1,"sites\/default\/themes\/cod\/js\/codw.js":1,"sites\/default\/themes\/cod\/js\/codw.ru.js":1},"css":{"sites\/default\/themes\/kollegorna\/css\/reset.css":1,"modules\/search\/search.css":1,"sites\/all\/modules\/quiz\/quiz.css":1,"sites\/all\/modules\/logintoboggan\/logintoboggan.css":1,"modules\/user\/user.css":1,"modules\/node\/node.css":1,"sites\/all\/modules\/views\/css\/views.css":1,"modules\/locale\/locale.css":1,"sites\/all\/modules\/custom_search\/custom_search.css":1,"public:\/\/ctools\/css\/e86522ad0296cbcee26a24f9e2ff0082.css":1,"sites\/all\/modules\/panels\/plugins\/layouts\/flexible\/flexible.css":1,"sites\/all\/modules\/typogrify\/typogrify.css":1,"modules\/field\/theme\/field.css":1,"sites\/all\/modules\/date\/date_popup\/themes\/datepicker.1.7.css":1,"sites\/all\/modules\/date\/date_api\/date.css":1,"sites\/all\/modules\/oembed\/oembed.base.css":1,"sites\/all\/modules\/ctools\/css\/ctools.css":1,"sites\/all\/modules\/panels\/css\/panels.css":1,"sites\/all\/modules\/oembed\/oembed.theme.css":1,"modules\/system\/system.base.css":1,"modules\/system\/system.theme.css":1,"modules\/system\/system.messages.css":1,"sites\/default\/themes\/kollegorna\/css\/setup.css":1,"sites\/default\/themes\/cod\/css\/ie.css":1,"sites\/default\/themes\/cod\/css\/style.css":1}},"custom_search":{"form_target":"_self","solr":0},"views":{"ajax_path":"\/views\/ajax","ajaxViews":{"views_dom_id:4c3eb8e7970f5f50c1ffd9adbf908670":{"view_name":"sidebar_articles","view_display_id":"block","view_args":"survivor","view_path":"node\/564","view_base_path":null,"view_dom_id":"4c3eb8e7970f5f50c1ffd9adbf908670","pager_element":0},"views_dom_id:8b026f14694af6d4387a6c05fb7e2f86":{"view_name":"sidebar_articles","view_display_id":"block","view_args":"Forces for Change","view_path":"node\/564","view_base_path":null,"view_dom_id":"8b026f14694af6d4387a6c05fb7e2f86","pager_element":0},"views_dom_id:a14d6f6415e14d24ed0971a721446079":{"view_name":"sidebar_articles","view_display_id":"block","view_args":"killed","view_path":"node\/564","view_base_path":null,"view_dom_id":"a14d6f6415e14d24ed0971a721446079","pager_element":0}}},"better_exposed_filters":{"views":{"sidebar_articles":{"displays":{"block":{"filters":[]}}},"banner":{"displays":{"skr_banner":{"filters":[]}}},"quote_or_fact":{"displays":{"block":{"filters":[]}}}}},"googleanalytics":{"trackOutbound":1,"trackMailto":1,"trackDownload":1,"trackDownloadExtensions":"7z|aac|arc|arj|asf|asx|avi|bin|csv|doc(x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thmx|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls(x|m|b)?|xlt(x|m)|xlam|xml|z|zip"}});
1100//--><!]]>
1101</script>
1101
1102
1103  
1104  
1104<script>(function(d, s, id) {
1105    var js, fjs = d.getElementsByTagName(s)[0];
1106    if (d.getElementById(id)) return;
1107    js = d.createElement(s); js.id = id;
1108    js.src = "//connect.facebook.net/sv_SE/all.js#xfbml=1&appId=125638377515172";
1109    fjs.parentNode.insertBefore(js, fjs);
1110  }(document, 'script', 'facebook-jssdk'));</script>
1110
1111  
1112  
1112<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
1112
1113  </body>
1114</html>
1115<!-- Page cached by Boost @ 2026-09-26 13:49:28, expires @ 2026-09-26 14:04:28, lifetime 15 min -->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.