mirror of
https://github.com/nextcloud/android.git
synced 2024-11-25 14:45:47 +03:00
2718 lines
No EOL
207 KiB
HTML
2718 lines
No EOL
207 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<!-- saved from url=(0041)http://tools.ietf.org/html/rfc6352#page-7 -->
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head profile="http://dublincore.org/documents/2008/08/04/dc-html/"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="robots" content="index,follow"><meta name="creator" content="rfcmarkup version 1.96"><link rel="schema.DC" href="http://purl.org/dc/elements/1.1/"><meta name="DC.Identifier" content="urn:ietf:rfc:6352"><meta name="DC.Description.Abstract" content="This document defines extensions to the Web Distributed Authoring and\nVersioning (WebDAV) protocol to specify a standard way of accessing,\nmanaging, and sharing contact information based on the vCard format.\n[STANDARDS-TRACK]"><meta name="DC.Creator" content="Cyrus Daboo <cyrus@daboo.name>"><meta name="DC.Date.Issued" content="August, 2011"><meta name="DC.Title" content="CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)"><link rel="icon" href="http://tools.ietf.org/images/rfc.png" type="image/png"><link rel="shortcut icon" href="http://tools.ietf.org/images/rfc.png" type="image/png"><title>RFC 6352 - CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)</title> <style type="text/css">body{margin:0px 8px;font-size:1em;}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-weight:bold;line-height:0pt;display:inline;white-space:pre;font-family:monospace;font-size:1em;font-weight:bold;}pre{font-size:1em;margin-top:0px;margin-bottom:0px;}.pre{white-space:pre;font-family:monospace;}.header{font-weight:bold;}.newpage{page-break-before:always;}.invisible{text-decoration:none;color:white;}@media print{body{font-size:10.5pt;}h1,h2,h3,h4,h5,h6{font-size:10.5pt;}a:link,a:visited{color:inherit;text-decoration:none;}.noprint{display:none;}}@media screen{.grey,.grey a:link,.grey a:visited{color:#777;}.docinfo{background-color:#EEE;}.top{border-top:7px solid #EEE;}.bgwhite{background-color:white;}.bgred{background-color:#F44;}.bggrey{background-color:#666;}.bgbrown{background-color:#840;}.bgorange{background-color:#FA0;}.bgyellow{background-color:#EE0;}.bgmagenta{background-color:#F4F;}.bgblue{background-color:#66F;}.bgcyan{background-color:#4DD;}.bggreen{background-color:#4F4;}.legend{font-size:90%;}.cplate{font-size:70%;border:solid grey 1px;}}</style> <!--[if IE]><style>
|
|
body {
|
|
font-size: 13px;
|
|
margin: 10px 10px;
|
|
}
|
|
</style> <![endif]--><script type="text/javascript"><!--
|
|
function addHeaderTags() {
|
|
var spans = document.getElementsByTagName("span");
|
|
for (var i=0; i < spans.length; i++) {
|
|
var elem = spans[i];
|
|
if (elem) {
|
|
var level = elem.getAttribute("class");
|
|
if (level == "h1" || level == "h2" || level == "h3" || level == "h4" || level == "h5" || level == "h6") {
|
|
elem.innerHTML = "<"+level+">"+elem.innerHTML+"</"+level+">";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var legend_html = "Colour legend:<br /> <table> <tr><td>Unknown:</td> <td><span class='cplate bgwhite'> </span></td></tr> <tr><td>Draft:</td> <td><span class='cplate bgred'> </span></td></tr> <tr><td>Informational:</td> <td><span class='cplate bgorange'> </span></td></tr> <tr><td>Experimental:</td> <td><span class='cplate bgyellow'> </span></td></tr> <tr><td>Best Common Practice:</td><td><span class='cplate bgmagenta'> </span></td></tr> <tr><td>Proposed Standard:</td><td><span class='cplate bgblue'> </span></td></tr> <tr><td>Draft Standard:</td> <td><span class='cplate bgcyan'> </span></td></tr> <tr><td>Standard:</td> <td><span class='cplate bggreen'> </span></td></tr> <tr><td>Historic:</td> <td><span class='cplate bggrey'> </span></td></tr> <tr><td>Obsolete:</td> <td><span class='cplate bgbrown'> </span></td></tr> </table>";
|
|
function showElem(id) {
|
|
var elem = document.getElementById(id);
|
|
elem.innerHTML = eval(id+"_html");
|
|
elem.style.visibility='visible';
|
|
}
|
|
function hideElem(id) {
|
|
var elem = document.getElementById(id);
|
|
elem.style.visibility='hidden';
|
|
elem.innerHTML = "";
|
|
}
|
|
// -->
|
|
</script> </head><body onload="addHeaderTags()"><div style="height: 13px;"><div onmouseover="this.style.cursor='pointer';" onclick="showElem('legend');" onmouseout="hideElem('legend')" style="height: 6px; position: absolute;" class="pre noprint docinfo bgblue" title="Click for colour legend."></div><div id="legend" class="docinfo noprint pre legend" style="position:absolute; top: 4px; left: 4ex; visibility:hidden; background-color: white; padding: 4px 9px 5px 7px; border: solid #345 1px; " onmouseover="showElem('legend');" onmouseout="hideElem('legend');"></div></div><span class="pre noprint docinfo top">[<a href="http://tools.ietf.org/html/" title="Document search and retrieval page">Docs</a>] [<a href="http://tools.ietf.org/rfc/rfc6352.txt" title="Plaintext version of this document">txt</a>|<a href="http://tools.ietf.org/pdf/rfc6352" title="PDF version of this document">pdf</a>] [<a href="http://tools.ietf.org/html/draft-ietf-vcarddav-carddav" title="draft-ietf-vcarddav-carddav">draft-ietf-vcardd...</a>] [<a href="http://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=rfc6352" title="Inline diff (wdiff)">Diff1</a>] [<a href="http://tools.ietf.org/rfcdiff?url2=rfc6352" title="Side-by-side diff">Diff2</a>] </span><br><span class="pre noprint docinfo"></span><br><span class="pre noprint docinfo">PROPOSED STANDARD</span><br><span class="pre noprint docinfo"></span><br><pre>Internet Engineering Task Force (IETF) C. Daboo
|
|
Request for Comments: 6352 Apple
|
|
Category: Standards Track August 2011
|
|
ISSN: 2070-1721
|
|
|
|
|
|
<span class="h1"><h1>CardDAV: vCard Extensions to</h1></span>
|
|
<span class="h1"><h1>Web Distributed Authoring and Versioning (WebDAV)</h1></span>
|
|
|
|
Abstract
|
|
|
|
This document defines extensions to the Web Distributed Authoring and
|
|
Versioning (WebDAV) protocol to specify a standard way of accessing,
|
|
managing, and sharing contact information based on the vCard format.
|
|
|
|
Status of This Memo
|
|
|
|
This is an Internet Standards Track document.
|
|
|
|
This document is a product of the Internet Engineering Task Force
|
|
(IETF). It represents the consensus of the IETF community. It has
|
|
received public review and has been approved for publication by the
|
|
Internet Engineering Steering Group (IESG). Further information on
|
|
Internet Standards is available in <a href="http://tools.ietf.org/html/rfc5741#section-2">Section 2 of RFC 5741</a>.
|
|
|
|
Information about the current status of this document, any errata,
|
|
and how to provide feedback on it may be obtained at
|
|
<a href="http://www.rfc-editor.org/info/rfc6352">http://www.rfc-editor.org/info/rfc6352</a>.
|
|
|
|
Copyright Notice
|
|
|
|
Copyright (c) 2011 IETF Trust and the persons identified as the
|
|
document authors. All rights reserved.
|
|
|
|
This document is subject to <a href="http://tools.ietf.org/html/bcp78">BCP 78</a> and the IETF Trust's Legal
|
|
Provisions Relating to IETF Documents
|
|
(<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) in effect on the date of
|
|
publication of this document. Please review these documents
|
|
carefully, as they describe your rights and restrictions with respect
|
|
to this document. Code Components extracted from this document must
|
|
include Simplified BSD License text as described in <a href="http://tools.ietf.org/html/rfc6352#section-4">Section 4</a>.e of
|
|
the Trust Legal Provisions and are provided without warranty as
|
|
described in the Simplified BSD License.
|
|
|
|
This document may contain material from IETF Documents or IETF
|
|
Contributions published or made publicly available before November
|
|
10, 2008. The person(s) controlling the copyright in some of this
|
|
material may not have granted the IETF Trust the right to allow
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 1]</span>
|
|
</pre><pre class="newpage"><a name="page-2" id="page-2" href="http://tools.ietf.org/html/rfc6352#page-2" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
modifications of such material outside the IETF Standards Process.
|
|
Without obtaining an adequate license from the person(s) controlling
|
|
the copyright in such materials, this document may not be modified
|
|
outside the IETF Standards Process, and derivative works of it may
|
|
not be created outside the IETF Standards Process, except to format
|
|
it for publication as an RFC or to translate it into languages other
|
|
than English.
|
|
|
|
Table of Contents
|
|
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-1">1</a>. Introduction and Overview . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-4">4</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-2">2</a>. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-5">5</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-3">3</a>. Requirements Overview . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-6">6</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-4">4</a>. Address Book Data Model . . . . . . . . . . . . . . . . . . . <a href="./rfc6352-CardDAV-Spec_files/rfc6352-CardDAV-Spec.html">7</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-4.1">4.1</a>. Address Book Server . . . . . . . . . . . . . . . . . . . <a href="./rfc6352-CardDAV-Spec_files/rfc6352-CardDAV-Spec.html">7</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-5">5</a>. Address Book Resources . . . . . . . . . . . . . . . . . . . . <a href="./rfc6352-CardDAV-Spec_files/rfc6352-CardDAV-Spec.html">7</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-5.1">5.1</a>. Address Object Resources . . . . . . . . . . . . . . . . . <a href="./rfc6352-CardDAV-Spec_files/rfc6352-CardDAV-Spec.html">7</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-5.1.1">5.1.1</a>. Data Type Conversion . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-8">8</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-5.1.1.1">5.1.1.1</a>. Additional Precondition for GET . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-8">8</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-5.2">5.2</a>. Address Book Collections . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-9">9</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6">6</a>. Address Book Feature . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-10">10</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.1">6.1</a>. Address Book Support . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-10">10</a>
|
|
6.1.1. Example: Using OPTIONS for the Discovery of
|
|
Support for CardDAV . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-10">10</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.2">6.2</a>. Address Book Properties . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-10">10</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.2.1">6.2.1</a>. CARDDAV:addressbook-description Property . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-10">10</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.2.2">6.2.2</a>. CARDDAV:supported-address-data Property . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-11">11</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.2.3">6.2.3</a>. CARDDAV:max-resource-size Property . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-12">12</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.3">6.3</a>. Creating Resources . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-13">13</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.3.1">6.3.1</a>. Extended MKCOL Method . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-13">13</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.3.1.1">6.3.1.1</a>. Example - Successful MKCOL Request . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-14">14</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.3.2">6.3.2</a>. Creating Address Object Resources . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-15">15</a>
|
|
6.3.2.1. Additional Preconditions for PUT, COPY, and
|
|
MOVE . . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-16">16</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.3.2.2">6.3.2.2</a>. Non-Standard vCard Properties and Parameters . . . <a href="http://tools.ietf.org/html/rfc6352#page-17">17</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.3.2.3">6.3.2.3</a>. Address Object Resource Entity Tag . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-18">18</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-7">7</a>. Address Book Access Control . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-18">18</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-7.1">7.1</a>. Additional Principal Properties . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-18">18</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-7.1.1">7.1.1</a>. CARDDAV:addressbook-home-set Property . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-19">19</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-7.1.2">7.1.2</a>. CARDDAV:principal-address Property . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-19">19</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8">8</a>. Address Book Reports . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-20">20</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.1">8.1</a>. REPORT Method . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-20">20</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.2">8.2</a>. Ordinary Collections . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-21">21</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.3">8.3</a>. Searching Text: Collations . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-21">21</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.3.1">8.3.1</a>. CARDDAV:supported-collation-set Property . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-22">22</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.4">8.4</a>. Partial Retrieval . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-23">23</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.5">8.5</a>. Non-Standard Properties and Parameters . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-23">23</a>
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 2]</span>
|
|
</pre><pre class="newpage"><a name="page-3" id="page-3" href="http://tools.ietf.org/html/rfc6352#page-3" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.6">8.6</a>. CARDDAV:addressbook-query Report . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-23">23</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.6.1">8.6.1</a>. Limiting Results . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-25">25</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.6.2">8.6.2</a>. Truncation of Results . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-25">25</a>
|
|
8.6.3. Example: Partial Retrieval of vCards Matching
|
|
NICKNAME . . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-26">26</a>
|
|
8.6.4. Example: Partial Retrieval of vCards Matching a
|
|
Full Name or Email Address . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-27">27</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.6.5">8.6.5</a>. Example: Truncated Results . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-29">29</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.7">8.7</a>. CARDDAV:addressbook-multiget Report . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-31">31</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.7.1">8.7.1</a>. Example: CARDDAV:addressbook-multiget Report . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-32">32</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.7.2">8.7.2</a>. Example: CARDDAV:addressbook-multiget Report . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-33">33</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-9">9</a>. Client Guidelines . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-34">34</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-9.1">9.1</a>. Restrict the Properties Returned . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-34">34</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-9.2">9.2</a>. Avoiding Lost Updates . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-35">35</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-9.3">9.3</a>. Client Configuration . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-35">35</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-9.4">9.4</a>. Finding Other Users' Address Books . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-35">35</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10">10</a>. XML Element Definitions . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-36">36</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.1">10.1</a>. CARDDAV:addressbook XML Element . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-36">36</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.2">10.2</a>. CARDDAV:supported-collation XML Element . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-36">36</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.3">10.3</a>. CARDDAV:addressbook-query XML Element . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-37">37</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.4">10.4</a>. CARDDAV:address-data XML Element . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-37">37</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.4.1">10.4.1</a>. CARDDAV:allprop XML Element . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-39">39</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.4.2">10.4.2</a>. CARDDAV:prop XML Element . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-39">39</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.5">10.5</a>. CARDDAV:filter XML Element . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-40">40</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.5.1">10.5.1</a>. CARDDAV:prop-filter XML Element . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-40">40</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.5.2">10.5.2</a>. CARDDAV:param-filter XML Element . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-41">41</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.5.3">10.5.3</a>. CARDDAV:is-not-defined XML Element . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-42">42</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.5.4">10.5.4</a>. CARDDAV:text-match XML Element . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-42">42</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.6">10.6</a>. CARDDAV:limit XML Element . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-43">43</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.6.1">10.6.1</a>. CARDDAV:nresults XML Element . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-44">44</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.7">10.7</a>. CARDDAV:addressbook-multiget XML Element . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-44">44</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-11">11</a>. Service Discovery via SRV Records . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-45">45</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-12">12</a>. Internationalization Considerations . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-45">45</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-13">13</a>. Security Considerations . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-45">45</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-14">14</a>. IANA Consideration . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-46">46</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-14.1">14.1</a>. Namespace Registration . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-46">46</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-15">15</a>. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-46">46</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-16">16</a>. References . . . . . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-47">47</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-16.1">16.1</a>. Normative References . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-47">47</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-16.2">16.2</a>. Informative References . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-48">48</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 3]</span>
|
|
</pre><pre class="newpage"><a name="page-4" id="page-4" href="http://tools.ietf.org/html/rfc6352#page-4" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<span class="h2"><h2><a name="section-1">1</a>. Introduction and Overview</h2></span>
|
|
|
|
Address books containing contact information are a key component of
|
|
personal information management tools, such as email, calendaring and
|
|
scheduling, and instant messaging clients. To date several protocols
|
|
have been used for remote access to contact data, including the
|
|
Lightweight Directory Access Protocol (LDAP) [<a href="http://tools.ietf.org/html/rfc4510" title=""Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map"">RFC4510</a>], Internet
|
|
Message Support Protocol [<a href="http://tools.ietf.org/html/rfc6352#ref-IMSP" title=""IMSP - Internet Message Support Protocol"">IMSP</a>], and Application Configuration Access
|
|
Protocol (ACAP) [<a href="http://tools.ietf.org/html/rfc2244" title=""ACAP -- Application Configuration Access Protocol"">RFC2244</a>], together with SyncML used for
|
|
synchronization of such data.
|
|
|
|
WebDAV [<a href="http://tools.ietf.org/html/rfc4918" title=""HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)"">RFC4918</a>] offers a number of advantages as a framework or
|
|
basis for address book access and management. Most of these
|
|
advantages boil down to a significant reduction in the costs of
|
|
design, implementation, interoperability testing, and deployment.
|
|
|
|
The key features of address book support with WebDAV are:
|
|
|
|
1. Ability to use multiple address books with hierarchical layout.
|
|
|
|
2. Ability to control access to individual address books and address
|
|
entries as per WebDAV Access Control List (ACL) [<a href="http://tools.ietf.org/html/rfc3744" title=""Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol"">RFC3744</a>].
|
|
|
|
3. Principal collections can be used to enumerate and query other
|
|
users on the system as per WebDAV ACL [<a href="http://tools.ietf.org/html/rfc3744" title=""Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol"">RFC3744</a>].
|
|
|
|
4. Server-side searching of address data, avoiding the need for
|
|
clients to download an entire address book in order to do a quick
|
|
address 'expansion' operation.
|
|
|
|
5. Well-defined internationalization support through WebDAV's use of
|
|
XML.
|
|
|
|
6. Use of vCards [<a href="http://tools.ietf.org/html/rfc2426" title=""vCard MIME Directory Profile"">RFC2426</a>] for well-defined address schema to
|
|
enhance client interoperability.
|
|
|
|
7. Many limited clients (e.g., mobile devices) contain an HTTP stack
|
|
that makes implementing WebDAV much easier than other protocols.
|
|
|
|
The key disadvantage of address book support in WebDAV is:
|
|
|
|
1. Lack of change notification. Many of the alternative protocols
|
|
also lack this ability. However, an extension for push
|
|
notifications could easily be developed.
|
|
|
|
vCard is a MIME directory profile aimed at encapsulating personal
|
|
addressing and contact information about people. The specification
|
|
of vCard was originally done by the Versit consortium, with a
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 4]</span>
|
|
</pre><pre class="newpage"><a name="page-5" id="page-5" href="http://tools.ietf.org/html/rfc6352#page-5" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
subsequent 3.0 version standardized by the IETF [<a href="http://tools.ietf.org/html/rfc2426" title=""vCard MIME Directory Profile"">RFC2426</a>]. vCard is
|
|
in widespread use in email clients and mobile devices as a means of
|
|
encapsulating address information for transport via email or for
|
|
import/export and synchronization operations.
|
|
|
|
An update to vCard -- vCard v4 -- is currently being developed
|
|
[<a href="http://tools.ietf.org/html/rfc6350" title=""vCard Format Specification"">RFC6350</a>] and is compatible with this specification.
|
|
|
|
<span class="h2"><h2><a name="section-2">2</a>. Conventions</h2></span>
|
|
|
|
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
|
document are to be interpreted as described in [<a href="http://tools.ietf.org/html/rfc2119" title=""Key words for use in RFCs to Indicate Requirement Levels"">RFC2119</a>].
|
|
|
|
The term "protected" is used in the Conformance field of property
|
|
definitions as defined in <a href="http://tools.ietf.org/html/rfc4918#section-15">Section 15 of [RFC4918]</a>.
|
|
|
|
This document uses XML DTD fragments ([<a href="http://tools.ietf.org/html/rfc6352#ref-W3C.REC-xml-20081126">W3C.REC-xml-20081126</a>], <a href="http://tools.ietf.org/html/rfc6352#section-3.2">Section</a>
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-3.2">3.2</a>) as a purely notational convention. WebDAV request and response
|
|
bodies cannot be validated by a DTD due to the specific extensibility
|
|
rules defined in <a href="http://tools.ietf.org/html/rfc4918#section-17">Section 17 of [RFC4918]</a> and due to the fact that all
|
|
XML elements defined by that specification use the XML namespace name
|
|
"DAV:". In particular:
|
|
|
|
1. Element names use the "DAV:" namespace.
|
|
|
|
2. Element ordering is irrelevant unless explicitly stated.
|
|
|
|
3. Extension elements (elements not already defined as valid child
|
|
elements) may be added anywhere, except when explicitly stated
|
|
otherwise.
|
|
|
|
4. Extension attributes (attributes not already defined as valid for
|
|
this element) may be added anywhere, except when explicitly
|
|
stated otherwise.
|
|
|
|
The namespace "urn:ietf:params:xml:ns:carddav" is reserved for the
|
|
XML elements defined in this specification, its revisions, and
|
|
related CardDAV specifications. XML elements defined by individual
|
|
implementations MUST NOT use the "urn:ietf:params:xml:ns:carddav"
|
|
namespace, and instead should use a namespace that they control.
|
|
|
|
When XML element types in the namespaces "DAV:" and
|
|
"urn:ietf:params:xml:ns:carddav" are referenced in this document
|
|
outside of the context of an XML fragment, the strings "DAV:" and
|
|
"CARDDAV:" will be prefixed to the element types, respectively.
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 5]</span>
|
|
</pre><pre class="newpage"><a name="page-6" id="page-6" href="http://tools.ietf.org/html/rfc6352#page-6" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
This document inherits, and sometimes extends, DTD productions from
|
|
<a href="http://tools.ietf.org/html/rfc4918#section-14">Section 14 of [RFC4918]</a>.
|
|
|
|
Also, note that some CardDAV XML element names are identical to
|
|
WebDAV XML element names, though their namespace differs. Care must
|
|
be taken not to confuse the two sets of names.
|
|
|
|
<span class="h2"><h2><a name="section-3">3</a>. Requirements Overview</h2></span>
|
|
|
|
This section lists what functionality is required of a CardDAV
|
|
server. To advertise support for CardDAV, a server:
|
|
|
|
o MUST support vCard v3 [<a href="http://tools.ietf.org/html/rfc2426" title=""vCard MIME Directory Profile"">RFC2426</a>] as a media type for the address
|
|
object resource format;
|
|
|
|
o MUST support WebDAV Class 3 [<a href="http://tools.ietf.org/html/rfc4918" title=""HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)"">RFC4918</a>];
|
|
|
|
o MUST support WebDAV ACL [<a href="http://tools.ietf.org/html/rfc3744" title=""Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol"">RFC3744</a>];
|
|
|
|
o MUST support secure transport as defined in [<a href="http://tools.ietf.org/html/rfc2818" title=""HTTP Over TLS"">RFC2818</a>] using
|
|
Transport Layer Security (TLS) [<a href="http://tools.ietf.org/html/rfc5246" title=""The Transport Layer Security (TLS) Protocol Version 1.2"">RFC5246</a>] and using the certificate
|
|
validation procedures described in [<a href="http://tools.ietf.org/html/rfc5280" title=""Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile"">RFC5280</a>];
|
|
|
|
o MUST support ETags [<a href="http://tools.ietf.org/html/rfc2616" title=""Hypertext Transfer Protocol -- HTTP/1.1"">RFC2616</a>] with additional requirements
|
|
specified in <a href="http://tools.ietf.org/html/rfc6352#section-6.3.2.3">Section 6.3.2.3</a> of this document;
|
|
|
|
o MUST support all address book reports defined in <a href="http://tools.ietf.org/html/rfc6352#section-8">Section 8</a> of this
|
|
document; and
|
|
|
|
o MUST advertise support on all address book collections and address
|
|
object resources for the address book reports in the
|
|
DAV:supported-report-set property, as defined in Versioning
|
|
Extensions to WebDAV [<a href="http://tools.ietf.org/html/rfc3253" title=""Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning)"">RFC3253</a>].
|
|
|
|
In addition, a server:
|
|
|
|
o SHOULD support vCard v4 [<a href="http://tools.ietf.org/html/rfc6350" title=""vCard Format Specification"">RFC6350</a>] as a media type for the address
|
|
object resource format;
|
|
|
|
o SHOULD support the extended MKCOL method [<a href="http://tools.ietf.org/html/rfc5689" title=""Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV)"">RFC5689</a>] to create
|
|
address book collections as defined in <a href="http://tools.ietf.org/html/rfc6352#section-6.3.1">Section 6.3.1</a> of this
|
|
document.
|
|
|
|
o SHOULD support the DAV:current-user-principal-URL property as
|
|
defined in [<a href="http://tools.ietf.org/html/rfc5397" title=""WebDAV Current Principal Extension"">RFC5397</a>] to give clients a fast way to locate user
|
|
principals.
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 6]</span>
|
|
</pre><pre class="newpage"><a name="page-7" id="page-7" href="./rfc6352-CardDAV-Spec_files/rfc6352-CardDAV-Spec.html" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<span class="h2"><h2><a name="section-4">4</a>. Address Book Data Model</h2></span>
|
|
|
|
As a brief overview, a CardDAV address book is modeled as a WebDAV
|
|
collection with a well-defined structure; each of these address book
|
|
collections contains a number of resources representing address
|
|
objects as their direct child resources. Each resource representing
|
|
an address object is called an "address object resource". Each
|
|
address object resource and each address book collection can be
|
|
individually locked and have individual WebDAV properties.
|
|
Requirements derived from this model are provided in Sections <a href="http://tools.ietf.org/html/rfc6352#section-5.1">5.1</a> and
|
|
5.2.
|
|
|
|
<span class="h3"><h3><a name="section-4.1">4.1</a>. Address Book Server</h3></span>
|
|
|
|
A CardDAV server is an address-aware engine combined with a WebDAV
|
|
server. The server may include address data in some parts of its URL
|
|
namespace and non-address data in other parts.
|
|
|
|
A WebDAV server can advertise itself as a CardDAV server if it
|
|
supports the functionality defined in this specification at any point
|
|
within the root of its repository. That might mean that address data
|
|
is spread throughout the repository and mixed with non-address data
|
|
in nearby collections (e.g., address data may be found in /lisa/
|
|
addressbook/ as well as in /bernard/addressbook/, and non-address
|
|
data in /lisa/calendars/). Or, it might mean that address data can
|
|
be found only in certain sections of the repository (e.g.,
|
|
/addressbooks/user/). Address book features are only required in the
|
|
repository sections that are or contain address objects. So, a
|
|
repository confining address data to the /carddav/ collection would
|
|
only need to support the CardDAV required features within that
|
|
collection.
|
|
|
|
The CardDAV server is the canonical location for address data and
|
|
state information. Clients may submit requests to change data or
|
|
download data. Clients may store address objects offline and attempt
|
|
to synchronize at a later time. Address data on the server can
|
|
change between the time of last synchronization and when attempting
|
|
an update, as address book collections may be shared and accessible
|
|
via multiple clients. Entity tags and locking help this work.
|
|
|
|
<span class="h2"><h2><a name="section-5">5</a>. Address Book Resources</h2></span>
|
|
|
|
<span class="h3"><h3><a name="section-5.1">5.1</a>. Address Object Resources</h3></span>
|
|
|
|
This specification uses vCard as the default format for address or
|
|
contact information being stored on the server. However, this
|
|
specification does allow other formats for address data provided that
|
|
the server advertises support for those additional formats as
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 7]</span>
|
|
</pre><pre class="newpage"><a name="page-8" id="page-8" href="http://tools.ietf.org/html/rfc6352#page-8" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
described below. The requirements in this section pertain to vCard
|
|
address data or formats that follow the semantics of vCard data.
|
|
|
|
Address object resources contained in address book collections MUST
|
|
contain a single vCard component only.
|
|
|
|
vCard components in an address book collection MUST have a UID
|
|
property value that MUST be unique in the scope of the address book
|
|
collection in which it is contained.
|
|
|
|
<span class="h4"><h4><a name="section-5.1.1">5.1.1</a>. Data Type Conversion</h4></span>
|
|
|
|
Servers might support more than one primary media type for address
|
|
object resources, for example, vCard v3.0 and vCard v4.0. In such
|
|
cases, servers have to accept all media types that they advertise via
|
|
the CARDDAV:supported-address-data WebDAV property (see
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.2.2">Section 6.2.2</a>).
|
|
|
|
However, clients can use standard HTTP content negotiation behavior
|
|
(the Accept request header defined in <a href="http://tools.ietf.org/html/rfc2616#section-14.1">Section 14.1 of [RFC2616]</a>) to
|
|
request that an address object resource's data be returned in a
|
|
specific media type format. For example, a client merely capable of
|
|
handling vCard v3.0 would only want to have address object resources
|
|
returned in v3.0 format.
|
|
|
|
Additionally, REPORT requests, defined later in this specification,
|
|
allow for the return of address object resource data within an XML
|
|
response body. Again, the client can use content negotiation to
|
|
request that data be returned in a specific media type by specifying
|
|
appropriate attributes on the CARDDAV:address-data XML element used
|
|
in the request body (see <a href="http://tools.ietf.org/html/rfc6352#section-10.4">Section 10.4</a>).
|
|
|
|
In some cases, it might not be possible for a server to convert from
|
|
one media type to another. When that happens, the server MUST return
|
|
the CARDDAV:supported-address-data-conversion precondition (see
|
|
below) in the response body (when the failure to convert applies to
|
|
the entire response) or use that same precondition code in the
|
|
DAV:response XML element in the response for the targeted address
|
|
object resource when one of the REPORTs defined below is used. See
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-8.7.2">Section 8.7.2</a> for an example of this.
|
|
|
|
<span class="h5"><h5><a name="section-5.1.1.1">5.1.1.1</a>. Additional Precondition for GET</h5></span>
|
|
|
|
This specification creates additional preconditions for the GET
|
|
method.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 8]</span>
|
|
</pre><pre class="newpage"><a name="page-9" id="page-9" href="http://tools.ietf.org/html/rfc6352#page-9" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
The new precondition is:
|
|
|
|
(CARDDAV:supported-address-data-conversion): The resource targeted
|
|
by the GET request can be converted to the media type specified in
|
|
the Accept request header included with the request.
|
|
|
|
<span class="h3"><h3><a name="section-5.2">5.2</a>. Address Book Collections</h3></span>
|
|
|
|
Address book collections appear to clients as a WebDAV collection
|
|
resource, identified by a URL. An address book collection MUST
|
|
report the DAV:collection and CARDDAV:addressbook XML elements in the
|
|
value of the DAV:resourcetype property. The element type declaration
|
|
for CARDDAV:addressbook is:
|
|
|
|
<!ELEMENT addressbook EMPTY>
|
|
|
|
An address book collection can be created through provisioning (e.g.,
|
|
automatically created when a user's account is provisioned), or it
|
|
can be created with the extended MKCOL method (see <a href="http://tools.ietf.org/html/rfc6352#section-6.3.1">Section 6.3.1</a>).
|
|
This can be used by a user to create additional address books (e.g.,
|
|
"soccer team members") or for users to share an address book (e.g.,
|
|
"sales team contacts"). However, note that this document doesn't
|
|
define what extra address book collections are for. Users must rely
|
|
on non-standard cues to find out what an address book collection is
|
|
for, or use the CARDDAV:addressbook-description property defined in
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-6.2.1">Section 6.2.1</a> to provide such a cue.
|
|
|
|
The following restrictions are applied to the resources within an
|
|
address book collection:
|
|
|
|
a. Address book collections MUST only contain address object
|
|
resources and collections that are not address book collections.
|
|
That is, the only "top-level" non-collection resources allowed in
|
|
an address book collection are address object resources. This
|
|
ensures that address book clients do not have to deal with non-
|
|
address data in an address book collection, though they do have
|
|
to distinguish between address object resources and collections
|
|
when using standard WebDAV techniques to examine the contents of
|
|
a collection.
|
|
|
|
b. Collections contained in address book collections MUST NOT
|
|
contain address book collections at any depth. That is,
|
|
"nesting" of address book collections within other address book
|
|
collections at any depth is not allowed. This specification does
|
|
not define how collections contained in an address book
|
|
collection are used or how they relate to any address object
|
|
resources contained in the address book collection.
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 9]</span>
|
|
</pre><pre class="newpage"><a name="page-10" id="page-10" href="http://tools.ietf.org/html/rfc6352#page-10" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Multiple address book collections MAY be children of the same
|
|
collection.
|
|
|
|
<span class="h2"><h2><a name="section-6">6</a>. Address Book Feature</h2></span>
|
|
|
|
<span class="h3"><h3><a name="section-6.1">6.1</a>. Address Book Support</h3></span>
|
|
|
|
A server supporting the features described in this document MUST
|
|
include "addressbook" as a field in the DAV response header from an
|
|
OPTIONS request on any resource that supports any address book
|
|
properties, reports, or methods. A value of "addressbook" in the DAV
|
|
response header MUST indicate that the server supports all MUST level
|
|
requirements and REQUIRED features specified in this document.
|
|
|
|
<span class="h4"><h4><a name="section-6.1.1">6.1.1</a>. Example: Using OPTIONS for the Discovery of Support for CardDAV</h4></span>
|
|
|
|
>> Request <<
|
|
|
|
OPTIONS /addressbooks/users/ HTTP/1.1
|
|
Host: addressbook.example.com
|
|
|
|
>> Response <<
|
|
|
|
HTTP/1.1 200 OK
|
|
Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, COPY, MOVE
|
|
Allow: MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, REPORT, ACL
|
|
DAV: 1, 2, 3, access-control, addressbook
|
|
DAV: extended-mkcol
|
|
Date: Sat, 11 Nov 2006 09:32:12 GMT
|
|
Content-Length: 0
|
|
|
|
In this example, the OPTIONS response indicates that the server
|
|
supports CardDAV in this namespace; therefore, the '/addressbooks/
|
|
users/' collection may be used as a parent for address book
|
|
collections as the extended MKCOL method is available and as a
|
|
possible target for REPORT requests for address book reports.
|
|
|
|
<span class="h3"><h3><a name="section-6.2">6.2</a>. Address Book Properties</h3></span>
|
|
|
|
<span class="h4"><h4><a name="section-6.2.1">6.2.1</a>. CARDDAV:addressbook-description Property</h4></span>
|
|
|
|
Name: addressbook-description
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Provides a human-readable description of the address book
|
|
collection.
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 10]</span>
|
|
</pre><pre class="newpage"><a name="page-11" id="page-11" href="http://tools.ietf.org/html/rfc6352#page-11" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Value: Any text.
|
|
|
|
Protected: SHOULD NOT be protected so that users can specify a
|
|
description.
|
|
|
|
COPY/MOVE behavior: This property value SHOULD be preserved in COPY
|
|
and MOVE operations.
|
|
|
|
allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
|
|
request.
|
|
|
|
Description: This property contains a description of the address
|
|
book collection that is suitable for presentation to a user. The
|
|
xml:lang attribute can be used to add a language tag for the value
|
|
of this property.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT addressbook-description (#PCDATA)>
|
|
<!-- PCDATA value: string -->
|
|
|
|
Example:
|
|
|
|
<C:addressbook-description xml:lang="fr-CA"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav"
|
|
>Adresses de Oliver Daboo</C:addressbook-description>
|
|
|
|
<span class="h4"><h4><a name="section-6.2.2">6.2.2</a>. CARDDAV:supported-address-data Property</h4></span>
|
|
|
|
Name: supported-address-data
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Specifies what media types are allowed for address object
|
|
resources in an address book collection.
|
|
|
|
Protected: MUST be protected as it indicates the level of support
|
|
provided by the server.
|
|
|
|
COPY/MOVE behavior: This property value MUST be preserved in COPY
|
|
and MOVE operations.
|
|
|
|
allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
|
|
request.
|
|
|
|
Description: The CARDDAV:supported-address-data property is used to
|
|
specify the media type supported for the address object resources
|
|
contained in a given address book collection (e.g., vCard version
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 11]</span>
|
|
</pre><pre class="newpage"><a name="page-12" id="page-12" href="http://tools.ietf.org/html/rfc6352#page-12" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
3.0). Any attempt by the client to store address object resources
|
|
with a media type not listed in this property MUST result in an
|
|
error, with the CARDDAV:supported-address-data precondition
|
|
(<a href="http://tools.ietf.org/html/rfc6352#section-6.3.2.1">Section 6.3.2.1</a>) being violated. In the absence of this
|
|
property, the server MUST only accept data with the media type
|
|
"text/vcard" and vCard version 3.0, and clients can assume that is
|
|
all the server will accept.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT supported-address-data (address-data-type+)>
|
|
|
|
<!ELEMENT address-data-type EMPTY>
|
|
<!ATTLIST address-data-type content-type CDATA "text/vcard"
|
|
version CDATA "3.0">
|
|
<!-- content-type value: a MIME media type -->
|
|
<!-- version value: a version string -->
|
|
|
|
Example:
|
|
|
|
<C:supported-address-data
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<C:address-data-type content-type="text/vcard" version="3.0"/>
|
|
</C:supported-address-data>
|
|
|
|
<span class="h4"><h4><a name="section-6.2.3">6.2.3</a>. CARDDAV:max-resource-size Property</h4></span>
|
|
|
|
Name: max-resource-size
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Provides a numeric value indicating the maximum size in
|
|
octets of a resource that the server is willing to accept when an
|
|
address object resource is stored in an address book collection.
|
|
|
|
Value: Any text representing a numeric value.
|
|
|
|
Protected: MUST be protected as it indicates limits provided by the
|
|
server.
|
|
|
|
COPY/MOVE behavior: This property value MUST be preserved in COPY
|
|
and MOVE operations.
|
|
|
|
allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
|
|
request.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 12]</span>
|
|
</pre><pre class="newpage"><a name="page-13" id="page-13" href="http://tools.ietf.org/html/rfc6352#page-13" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Description: The CARDDAV:max-resource-size is used to specify a
|
|
numeric value that represents the maximum size in octets that the
|
|
server is willing to accept when an address object resource is
|
|
stored in an address book collection. Any attempt to store an
|
|
address book object resource exceeding this size MUST result in an
|
|
error, with the CARDDAV:max-resource-size precondition
|
|
(<a href="http://tools.ietf.org/html/rfc6352#section-6.3.2.1">Section 6.3.2.1</a>) being violated. In the absence of this
|
|
property, the client can assume that the server will allow storing
|
|
a resource of any reasonable size.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT max-resource-size (#PCDATA)>
|
|
<!-- PCDATA value: a numeric value (positive decimal integer) -->
|
|
|
|
Example:
|
|
|
|
<C:max-resource-size xmlns:C="urn:ietf:params:xml:ns:carddav"
|
|
>102400</C:max-resource-size>
|
|
|
|
<span class="h3"><h3><a name="section-6.3">6.3</a>. Creating Resources</h3></span>
|
|
|
|
Address book collections and address object resources may be created
|
|
by either a CardDAV client or the CardDAV server. This specification
|
|
defines restrictions and a data model that both clients and servers
|
|
MUST adhere to when manipulating such address data.
|
|
|
|
<span class="h4"><h4><a name="section-6.3.1">6.3.1</a>. Extended MKCOL Method</h4></span>
|
|
|
|
An HTTP request using the extended MKCOL method [<a href="http://tools.ietf.org/html/rfc5689" title=""Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV)"">RFC5689</a>] can be used
|
|
to create a new address book collection resource. A server MAY
|
|
restrict address book collection creation to particular collections.
|
|
|
|
To create an address book, the client sends an extended MKCOL request
|
|
to the server and in the body of the request sets the
|
|
DAV:resourcetype property to the resource type for an address book
|
|
collection as defined in <a href="http://tools.ietf.org/html/rfc6352#section-5.2">Section 5.2</a>.
|
|
|
|
Support for creating address books on the server is only RECOMMENDED
|
|
and not REQUIRED because some address book stores only support one
|
|
address book per user (or principal), and those are typically pre-
|
|
created for each account. However, servers and clients are strongly
|
|
encouraged to support address book creation whenever possible to
|
|
allow users to create multiple address book collections to help
|
|
organize their data better.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 13]</span>
|
|
</pre><pre class="newpage"><a name="page-14" id="page-14" href="http://tools.ietf.org/html/rfc6352#page-14" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
The DAV:displayname property can be used for a human-readable name of
|
|
the address book. Clients can either specify the value of the
|
|
DAV:displayname property in the request body of the extended MKCOL
|
|
request or, alternatively, issue a PROPPATCH request to change the
|
|
DAV:displayname property to the appropriate value immediately after
|
|
using the extended MKCOL request. When displaying address book
|
|
collections to users, clients SHOULD check the DAV:displayname
|
|
property and use that value as the name of the address book. In the
|
|
event that the DAV:displayname property is not set, the client MAY
|
|
use the last part of the address book collection URI as the name;
|
|
however, that path segment may be "opaque" and not represent any
|
|
meaningful human-readable text.
|
|
|
|
<span class="h5"><h5><a name="section-6.3.1.1">6.3.1.1</a>. Example - Successful MKCOL Request</h5></span>
|
|
|
|
This example creates an address book collection called /home/lisa/
|
|
addressbook/ on the server addressbook.example.com with specific
|
|
values for the properties DAV:resourcetype, DAV:displayname, and
|
|
CARDDAV:addressbook-description.
|
|
|
|
>> Request <<
|
|
|
|
MKCOL /home/lisa/addressbook/ HTTP/1.1
|
|
Host: addressbook.example.com
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<D:mkcol xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:set>
|
|
<D:prop>
|
|
<D:resourcetype>
|
|
<D:collection/>
|
|
<C:addressbook/>
|
|
</D:resourcetype>
|
|
<D:displayname>Lisa's Contacts</D:displayname>
|
|
<C:addressbook-description xml:lang="en"
|
|
>My primary address book.</C:addressbook-description>
|
|
</D:prop>
|
|
</D:set>
|
|
</D:mkcol>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 14]</span>
|
|
</pre><pre class="newpage"><a name="page-15" id="page-15" href="http://tools.ietf.org/html/rfc6352#page-15" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
>> Response <<
|
|
|
|
HTTP/1.1 201 Created
|
|
Cache-Control: no-cache
|
|
Date: Sat, 11 Nov 2006 09:32:12 GMT
|
|
Content-Type: application/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<D:mkcol-response xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:propstat>
|
|
<D:prop>
|
|
<D:resourcetype/>
|
|
<D:displayname/>
|
|
<C:addressbook-description/>
|
|
</D:prop>
|
|
<D:status>HTTP/1.1 200 OK</D:status>
|
|
</D:propstat>
|
|
</D:mkcol-response>
|
|
|
|
<span class="h4"><h4><a name="section-6.3.2">6.3.2</a>. Creating Address Object Resources</h4></span>
|
|
|
|
Clients populate address book collections with address object
|
|
resources. The URL for each address object resource is entirely
|
|
arbitrary and does not need to bear a specific relationship (but
|
|
might) to the address object resource's vCard properties or other
|
|
metadata. New address object resources MUST be created with a PUT
|
|
request targeted at an unmapped URI. A PUT request targeted at a
|
|
mapped URI updates an existing address object resource.
|
|
|
|
When servers create new resources, it's not hard for the server to
|
|
choose a unique URL. It's slightly tougher for clients, because a
|
|
client might not want to examine all resources in the collection and
|
|
might not want to lock the entire collection to ensure that a new one
|
|
isn't created with a name collision. However, there is an HTTP
|
|
feature to mitigate this. If the client intends to create a new
|
|
address resource, the client SHOULD use the HTTP header "If-None-
|
|
Match: *" on the PUT request. The Request-URI on the PUT request
|
|
MUST include the target collection, where the resource is to be
|
|
created, plus the name of the resource in the last path segment. The
|
|
"If-None-Match" header ensures that the client will not inadvertently
|
|
overwrite an existing resource even if the last path segment turned
|
|
out to already be used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 15]</span>
|
|
</pre><pre class="newpage"><a name="page-16" id="page-16" href="http://tools.ietf.org/html/rfc6352#page-16" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
>> Request <<
|
|
|
|
PUT /lisa/addressbook/newvcard.vcf HTTP/1.1
|
|
If-None-Match: *
|
|
Host: addressbook.example.com
|
|
Content-Type: text/vcard
|
|
Content-Length: xxx
|
|
|
|
BEGIN:VCARD
|
|
VERSION:3.0
|
|
FN:Cyrus Daboo
|
|
N:Daboo;Cyrus
|
|
ADR;TYPE=POSTAL:;2822 Email HQ;Suite 2821;RFCVille;PA;15213;USA
|
|
EMAIL;TYPE=INTERNET,PREF:cyrus@example.com
|
|
NICKNAME:me
|
|
NOTE:Example VCard.
|
|
ORG:Self Employed
|
|
TEL;TYPE=WORK,VOICE:412 605 0499
|
|
TEL;TYPE=FAX:412 605 0705
|
|
URL:http://www.example.com
|
|
UID:1234-5678-9000-1
|
|
END:VCARD
|
|
|
|
>> Response <<
|
|
|
|
HTTP/1.1 201 Created
|
|
Date: Thu, 02 Sep 2004 16:53:32 GMT
|
|
Content-Length: 0
|
|
ETag: "123456789-000-111"
|
|
|
|
The request to change an existing address object resource without
|
|
overwriting a change made on the server uses a specific ETag in an
|
|
"If-Match" header, rather than the "If-None-Match" header.
|
|
|
|
File names for vCards are commonly suffixed by ".vcf", and clients
|
|
may choose to use the same convention for URLs.
|
|
|
|
<span class="h5"><h5><a name="section-6.3.2.1">6.3.2.1</a>. Additional Preconditions for PUT, COPY, and MOVE</h5></span>
|
|
|
|
This specification creates additional preconditions for the PUT,
|
|
COPY, and MOVE methods. These preconditions apply:
|
|
|
|
o When a PUT operation of an address object resource into an address
|
|
book collection occurs.
|
|
|
|
o When a COPY or MOVE operation of an address object resource into
|
|
an address book collection occurs.
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 16]</span>
|
|
</pre><pre class="newpage"><a name="page-17" id="page-17" href="http://tools.ietf.org/html/rfc6352#page-17" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
The new preconditions are:
|
|
|
|
(CARDDAV:supported-address-data): The resource submitted in the
|
|
PUT request, or targeted by a COPY or MOVE request, MUST be a
|
|
supported media type (i.e., vCard) for address object resources.
|
|
|
|
(CARDDAV:valid-address-data): The resource submitted in the PUT
|
|
request, or targeted by a COPY or MOVE request, MUST be valid data
|
|
for the media type being specified (i.e., MUST contain valid vCard
|
|
data).
|
|
|
|
(CARDDAV:no-uid-conflict): The resource submitted in the PUT
|
|
request, or targeted by a COPY or MOVE request, MUST NOT specify a
|
|
vCard UID property value already in use in the targeted address
|
|
book collection or overwrite an existing address object resource
|
|
with one that has a different UID property value. Servers SHOULD
|
|
report the URL of the resource that is already making use of the
|
|
same UID property value in the DAV:href element.
|
|
|
|
<!ELEMENT no-uid-conflict (DAV:href)>
|
|
|
|
(CARDDAV:addressbook-collection-location-ok): In a COPY or MOVE
|
|
request, when the Request-URI is an address book collection, the
|
|
URI targeted by the Destination HTTP Request header MUST identify
|
|
a location where an address book collection can be created.
|
|
|
|
(CARDDAV:max-resource-size): The resource submitted in the PUT
|
|
request, or targeted by a COPY or MOVE request, MUST have a size
|
|
in octets less than or equal to the value of the
|
|
CARDDAV:max-resource-size property value (<a href="http://tools.ietf.org/html/rfc6352#section-6.2.3">Section 6.2.3</a>) on the
|
|
address book collection where the resource will be stored.
|
|
|
|
<span class="h5"><h5><a name="section-6.3.2.2">6.3.2.2</a>. Non-Standard vCard Properties and Parameters</h5></span>
|
|
|
|
vCard provides a "standard mechanism for doing non-standard things".
|
|
This extension support allows implementers to make use of non-
|
|
standard vCard properties and parameters whose names are prefixed
|
|
with the text "X-".
|
|
|
|
Servers MUST support the use of non-standard properties and
|
|
parameters in address object resources stored via the PUT method.
|
|
|
|
Servers may need to enforce rules for their own "private" properties
|
|
or parameters, so servers MAY reject any attempt by the client to
|
|
change those or use values for those outside of any restrictions the
|
|
server may have. A server SHOULD ensure that any "private"
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 17]</span>
|
|
</pre><pre class="newpage"><a name="page-18" id="page-18" href="http://tools.ietf.org/html/rfc6352#page-18" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
properties or parameters it uses follow the convention of including a
|
|
vendor ID in the "X-" name, as described in <a href="http://tools.ietf.org/html/rfc2426#section-3.8">Section 3.8 of [RFC2426]</a>,
|
|
e.g., "X-ABC-PRIVATE".
|
|
|
|
<span class="h5"><h5><a name="section-6.3.2.3">6.3.2.3</a>. Address Object Resource Entity Tag</h5></span>
|
|
|
|
The DAV:getetag property MUST be defined and set to a strong entity
|
|
tag on all address object resources.
|
|
|
|
A response to a GET request targeted at an address object resource
|
|
MUST contain an ETag response header field indicating the current
|
|
value of the strong entity tag of the address object resource.
|
|
|
|
Servers SHOULD return a strong entity tag (ETag header) in a PUT
|
|
response when the stored address object resource is equivalent by
|
|
octet equality to the address object resource submitted in the body
|
|
of the PUT request. This allows clients to reliably use the returned
|
|
strong entity tag for data synchronization purposes. For instance,
|
|
the client can do a PROPFIND request on the stored address object
|
|
resource, have the DAV:getetag property returned, compare that value
|
|
with the strong entity tag it received on the PUT response, and know
|
|
that if they are equal, then the address object resource on the
|
|
server has not been changed.
|
|
|
|
In the case where the data stored by a server as a result of a PUT
|
|
request is not equivalent by octet equality to the submitted address
|
|
object resource, the behavior of the ETag response header is not
|
|
specified here, with the exception that a strong entity tag MUST NOT
|
|
be returned in the response. As a result, a client may need to
|
|
retrieve the modified address object resource (and ETag) as a basis
|
|
for further changes, rather than use the address object resource it
|
|
had sent with the PUT request.
|
|
|
|
<span class="h2"><h2><a name="section-7">7</a>. Address Book Access Control</h2></span>
|
|
|
|
CardDAV servers MUST support and adhere to the requirements of WebDAV
|
|
ACL [<a href="http://tools.ietf.org/html/rfc3744" title=""Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol"">RFC3744</a>]. WebDAV ACL provides a framework for an extensible set
|
|
of privileges that can be applied to WebDAV collections and ordinary
|
|
resources.
|
|
|
|
<span class="h3"><h3><a name="section-7.1">7.1</a>. Additional Principal Properties</h3></span>
|
|
|
|
This section defines additional properties for WebDAV principal
|
|
resources as defined in [<a href="http://tools.ietf.org/html/rfc3744" title=""Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol"">RFC3744</a>].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 18]</span>
|
|
</pre><pre class="newpage"><a name="page-19" id="page-19" href="http://tools.ietf.org/html/rfc6352#page-19" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<span class="h4"><h4><a name="section-7.1.1">7.1.1</a>. CARDDAV:addressbook-home-set Property</h4></span>
|
|
|
|
Name: addressbook-home-set
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Identifies the URL of any WebDAV collections that contain
|
|
address book collections owned by the associated principal
|
|
resource.
|
|
|
|
Protected: MAY be protected if the server has fixed locations in
|
|
which address books are created.
|
|
|
|
COPY/MOVE behavior: This property value MUST be preserved in COPY
|
|
and MOVE operations.
|
|
|
|
allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
|
|
request.
|
|
|
|
Description: The CARDDAV:addressbook-home-set property is meant to
|
|
allow users to easily find the address book collections owned by
|
|
the principal. Typically, users will group all the address book
|
|
collections that they own under a common collection. This
|
|
property specifies the URL of collections that are either address
|
|
book collections or ordinary collections that have child or
|
|
descendant address book collections owned by the principal.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT addressbook-home-set (DAV:href*)>
|
|
|
|
Example:
|
|
|
|
<C:addressbook-home-set xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:href>/bernard/addresses/</D:href>
|
|
</C:addressbook-home-set>
|
|
|
|
<span class="h4"><h4><a name="section-7.1.2">7.1.2</a>. CARDDAV:principal-address Property</h4></span>
|
|
|
|
Name: principal-address
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Identifies the URL of an address object resource that
|
|
corresponds to the user represented by the principal.
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 19]</span>
|
|
</pre><pre class="newpage"><a name="page-20" id="page-20" href="http://tools.ietf.org/html/rfc6352#page-20" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Protected: MAY be protected if the server provides a fixed location
|
|
for principal addresses.
|
|
|
|
COPY/MOVE behavior: This property value MUST be preserved in COPY
|
|
and MOVE operations.
|
|
|
|
allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
|
|
request.
|
|
|
|
Description: The CARDDAV:principal-address property is meant to
|
|
allow users to easily find contact information for users
|
|
represented by principals on the system. This property specifies
|
|
the URL of the resource containing the corresponding contact
|
|
information. The resource could be an address object resource in
|
|
an address book collection, or it could be a resource in a
|
|
"regular" collection.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT principal-address (DAV:href)>
|
|
|
|
Example:
|
|
|
|
<C:principal-address xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:href>/system/cyrus.vcf</D:href>
|
|
</C:principal-address>
|
|
|
|
<span class="h2"><h2><a name="section-8">8</a>. Address Book Reports</h2></span>
|
|
|
|
This section defines the reports that CardDAV servers MUST support on
|
|
address book collections and address object resources.
|
|
|
|
CardDAV servers MUST advertise support for these reports on all
|
|
address book collections and address object resources with the
|
|
DAV:supported-report-set property defined in <a href="http://tools.ietf.org/html/rfc3253#section-3.1.5">Section 3.1.5 of
|
|
[RFC3253]</a>. CardDAV servers MAY also advertise support for these
|
|
reports on ordinary collections.
|
|
|
|
Some of these reports allow address data (from possibly multiple
|
|
resources) to be returned.
|
|
|
|
<span class="h3"><h3><a name="section-8.1">8.1</a>. REPORT Method</h3></span>
|
|
|
|
The REPORT method (defined in <a href="http://tools.ietf.org/html/rfc3253#section-3.6">Section 3.6 of [RFC3253]</a>) provides an
|
|
extensible mechanism for obtaining information about a resource.
|
|
Unlike the PROPFIND method, which returns the value of one or more
|
|
named properties, the REPORT method can involve more complex
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 20]</span>
|
|
</pre><pre class="newpage"><a name="page-21" id="page-21" href="http://tools.ietf.org/html/rfc6352#page-21" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
processing. REPORT is valuable in cases where the server has access
|
|
to all of the information needed to perform the complex request (such
|
|
as a query), and where it would require multiple requests for the
|
|
client to retrieve the information needed to perform the same
|
|
request.
|
|
|
|
A server that supports this specification MUST support the
|
|
DAV:expand-property report (defined in <a href="http://tools.ietf.org/html/rfc3253#section-3.8">Section 3.8 of [RFC3253]</a>).
|
|
|
|
<span class="h3"><h3><a name="section-8.2">8.2</a>. Ordinary Collections</h3></span>
|
|
|
|
Servers MAY support the reports defined in this document on ordinary
|
|
collections (collections that are not address book collections) in
|
|
addition to address book collections or address object resources. In
|
|
computing responses to the reports on ordinary collections, servers
|
|
MUST only consider address object resources contained in address book
|
|
collections that are targeted by the REPORT based on the value of the
|
|
Depth request header.
|
|
|
|
<span class="h3"><h3><a name="section-8.3">8.3</a>. Searching Text: Collations</h3></span>
|
|
|
|
Some of the reports defined in this section do text matches of
|
|
character strings provided by the client and compared to stored
|
|
address data. Since vCard data is by default encoded in the UTF-8
|
|
charset and may include characters outside of the US-ASCII charset
|
|
range in some property and parameter values, there is a need to
|
|
ensure that text matching follows well-defined rules.
|
|
|
|
To deal with this, this specification makes use of the IANA Collation
|
|
Registry defined in [<a href="http://tools.ietf.org/html/rfc4790" title=""Internet Application Protocol Collation Registry"">RFC4790</a>] to specify collations that may be used
|
|
to carry out the text comparison operations with a well-defined rule.
|
|
|
|
Collations supported by the server MUST support "equality" and
|
|
"substring" match operations as per <a href="http://tools.ietf.org/html/rfc4790#section-4.2">[RFC4790], Section 4.2</a>, including
|
|
the "prefix" and "suffix" options for "substring" matching. CardDAV
|
|
uses these match options for "equals", "contains", "starts-with", and
|
|
"ends-with" match operations.
|
|
|
|
CardDAV servers are REQUIRED to support the "i;ascii-casemap"
|
|
[<a href="http://tools.ietf.org/html/rfc4790" title=""Internet Application Protocol Collation Registry"">RFC4790</a>] and "i;unicode-casemap" [<a href="http://tools.ietf.org/html/rfc5051" title=""i;unicode-casemap - Simple Unicode Collation Algorithm"">RFC5051</a>] collations and MAY
|
|
support other collations.
|
|
|
|
Servers MUST advertise the set of collations that they support via
|
|
the CARDDAV:supported-collation-set property defined on any resource
|
|
that supports reports that use collations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 21]</span>
|
|
</pre><pre class="newpage"><a name="page-22" id="page-22" href="http://tools.ietf.org/html/rfc6352#page-22" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
In the absence of a collation explicitly specified by the client, or
|
|
if the client specifies the "default" collation identifier (as
|
|
defined in <a href="http://tools.ietf.org/html/rfc4790#section-3.1">[RFC4790], Section 3.1</a>), the server MUST default to using
|
|
"i;unicode-casemap" as the collation.
|
|
|
|
Wildcards (as defined in <a href="http://tools.ietf.org/html/rfc4790#section-3.2">[RFC4790], Section 3.2</a>) MUST NOT be used in
|
|
the collation identifier.
|
|
|
|
If the client chooses a collation not supported by the server, the
|
|
server MUST respond with a CARDDAV:supported-collation precondition
|
|
error response.
|
|
|
|
<span class="h4"><h4><a name="section-8.3.1">8.3.1</a>. CARDDAV:supported-collation-set Property</h4></span>
|
|
|
|
Name: supported-collation-set
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Identifies the set of collations supported by the server
|
|
for text matching operations.
|
|
|
|
Protected: MUST be protected as it indicates support provided by the
|
|
server.
|
|
|
|
COPY/MOVE behavior: This property value MUST be preserved in COPY
|
|
and MOVE operations.
|
|
|
|
allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
|
|
request.
|
|
|
|
Description: The CARDDAV:supported-collation-set property contains
|
|
two or more CARDDAV:supported-collation elements that specify the
|
|
identifiers of the collations supported by the server.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT supported-collation-set (
|
|
supported-collation
|
|
supported-collation
|
|
supported-collation*)>
|
|
<!-- Both "i;ascii-casemap" and "i;unicode-casemap"
|
|
will be present -->
|
|
|
|
<!ELEMENT supported-collation (#PCDATA)>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 22]</span>
|
|
</pre><pre class="newpage"><a name="page-23" id="page-23" href="http://tools.ietf.org/html/rfc6352#page-23" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Example:
|
|
|
|
<C:supported-collation-set
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<C:supported-collation>i;ascii-casemap</C:supported-collation>
|
|
<C:supported-collation>i;octet</C:supported-collation>
|
|
<C:supported-collation>i;unicode-casemap</C:supported-collation>
|
|
</C:supported-collation-set>
|
|
|
|
<span class="h3"><h3><a name="section-8.4">8.4</a>. Partial Retrieval</h3></span>
|
|
|
|
Some address book reports defined in this document allow partial
|
|
retrieval of address object resources. A CardDAV client can specify
|
|
what information to return in the body of an address book REPORT
|
|
request.
|
|
|
|
A CardDAV client can request particular WebDAV property values, all
|
|
WebDAV property values, or a list of the names of the resource's
|
|
WebDAV properties. A CardDAV client can also request address data to
|
|
be returned and whether all vCard properties should be returned or
|
|
only particular ones. See CARDDAV:address-data in <a href="http://tools.ietf.org/html/rfc6352#section-10.4">Section 10.4</a>.
|
|
|
|
<span class="h3"><h3><a name="section-8.5">8.5</a>. Non-Standard Properties and Parameters</h3></span>
|
|
|
|
Servers MUST support the use of non-standard vCard property or
|
|
parameter names in the CARDDAV:address-data XML element in address
|
|
book REPORT requests to allow clients to request that non-standard
|
|
properties and parameters be returned in the address data provided in
|
|
the response.
|
|
|
|
Servers MAY support the use of non-standard vCard property or
|
|
parameter names in the CARDDAV:prop-filter and CARDDAV:param-filter
|
|
XML elements specified in the CARDDAV:filter XML element of address
|
|
book REPORT requests.
|
|
|
|
Servers MUST fail with the CARDDAV:supported-filter precondition if
|
|
an address book REPORT request uses a CARDDAV:prop-filter or
|
|
CARDDAV:param-filter XML element that makes reference to a non-
|
|
standard vCard property or parameter name on which the server does
|
|
not support queries.
|
|
|
|
<span class="h3"><h3><a name="section-8.6">8.6</a>. CARDDAV:addressbook-query Report</h3></span>
|
|
|
|
The CARDDAV:addressbook-query REPORT performs a search for all
|
|
address object resources that match a specified filter. The response
|
|
of this report will contain all the WebDAV properties and address
|
|
object resource data specified in the request. In the case of the
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 23]</span>
|
|
</pre><pre class="newpage"><a name="page-24" id="page-24" href="http://tools.ietf.org/html/rfc6352#page-24" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
CARDDAV:address-data XML element, one can explicitly specify the
|
|
vCard properties that should be returned in the address object
|
|
resource data that matches the filter.
|
|
|
|
The format of this report is modeled on the PROPFIND method. The
|
|
request and response bodies of the CARDDAV:addressbook-query report
|
|
use XML elements that are also used by PROPFIND. In particular, the
|
|
request can include XML elements to request WebDAV properties to be
|
|
returned. When that occurs, the response should follow the same
|
|
behavior as PROPFIND with respect to the DAV:multistatus response
|
|
elements used to return specific WebDAV property results. For
|
|
instance, a request to retrieve the value of a WebDAV property that
|
|
does not exist is an error and MUST be noted with a response XML
|
|
element that contains a 404 (Not Found) status value.
|
|
|
|
Support for the CARDDAV:addressbook-query REPORT is REQUIRED.
|
|
|
|
Marshalling:
|
|
|
|
The request body MUST be a CARDDAV:addressbook-query XML element
|
|
as defined in <a href="http://tools.ietf.org/html/rfc6352#section-10.3">Section 10.3</a>.
|
|
|
|
The request MUST include a Depth header. The scope of the query
|
|
is determined by the value of the Depth header. For example, to
|
|
query all address object resources in an address book collection,
|
|
the REPORT would use the address book collection as the Request-
|
|
URI and specify a Depth of 1 or infinity.
|
|
|
|
The response body for a successful request MUST be a
|
|
DAV:multistatus XML element (i.e., the response uses the same
|
|
format as the response for PROPFIND). In the case where there are
|
|
no response elements, the returned DAV:multistatus XML element is
|
|
empty.
|
|
|
|
The response body for a successful CARDDAV:addressbook-query
|
|
REPORT request MUST contain a DAV:response element for each
|
|
address object that matched the search filter. Address data is
|
|
returned in the CARDDAV:address-data XML element inside the
|
|
DAV:propstat XML element.
|
|
|
|
Preconditions:
|
|
|
|
(CARDDAV:supported-address-data): The attributes "content-type"
|
|
and "version" of the CARDDAV:address-data XML element (see
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.4">Section 10.4</a>) specify a media type supported by the server for
|
|
address object resources.
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 24]</span>
|
|
</pre><pre class="newpage"><a name="page-25" id="page-25" href="http://tools.ietf.org/html/rfc6352#page-25" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
(CARDDAV:supported-filter): The CARDDAV:prop-filter (see
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.5.1">Section 10.5.1</a>) and CARDDAV:param-filter (see <a href="http://tools.ietf.org/html/rfc6352#section-10.5.2">Section 10.5.2</a>) XML
|
|
elements used in the CARDDAV:filter XML element (see <a href="http://tools.ietf.org/html/rfc6352#section-10.5">Section 10.5</a>)
|
|
in the REPORT request only make reference to vCard properties and
|
|
parameters for which queries are supported by the server. That
|
|
is, if the CARDDAV:filter element attempts to reference an
|
|
unsupported vCard property or parameter, this precondition is
|
|
violated. A server SHOULD report the CARDDAV:prop-filter or
|
|
CARDDAV:param-filter for which it does not provide support.
|
|
|
|
<!ELEMENT supported-filter (prop-filter*,
|
|
param-filter*)>
|
|
|
|
(CARDDAV:supported-collation): Any XML attribute specifying a
|
|
collation MUST specify a collation supported by the server as
|
|
described in <a href="http://tools.ietf.org/html/rfc6352#section-8.3">Section 8.3</a>.
|
|
|
|
Postconditions:
|
|
|
|
(DAV:number-of-matches-within-limits): The number of matching
|
|
address object resources must fall within server-specific,
|
|
predefined limits. For example, this condition might be triggered
|
|
if a search specification would cause the return of an extremely
|
|
large number of responses.
|
|
|
|
<span class="h4"><h4><a name="section-8.6.1">8.6.1</a>. Limiting Results</h4></span>
|
|
|
|
A client can limit the number of results returned by the server
|
|
through use of the CARDDAV:limit element in the request body. This
|
|
is useful when clients are only interested in a few matches or only
|
|
have limited space to display results to users and thus don't need
|
|
the overhead of receiving more than that. When the results are
|
|
truncated by the server, the server MUST follow the rules below for
|
|
indicating a result set truncation to the client.
|
|
|
|
<span class="h4"><h4><a name="section-8.6.2">8.6.2</a>. Truncation of Results</h4></span>
|
|
|
|
A server MAY limit the number of resources in a response, for
|
|
example, to limit the amount of work expended in processing a query,
|
|
or as the result of an explicit limit set by the client. If the
|
|
result set is truncated because of such a limit, the response MUST
|
|
use status code 207 (Multi-Status), return a DAV:multistatus response
|
|
body, and indicate a status of 507 (Insufficient Storage) for the
|
|
Request-URI. That DAV:response element SHOULD include a DAV:error
|
|
element with the DAV:number-of-matches-within-limits precondition, as
|
|
defined in <a href="http://tools.ietf.org/html/rfc3744#section-9.2">[RFC3744], Section 9.2</a>.
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 25]</span>
|
|
</pre><pre class="newpage"><a name="page-26" id="page-26" href="http://tools.ietf.org/html/rfc6352#page-26" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
The server SHOULD also include the partial results in additional
|
|
DAV:response elements. If a client-requested limit is being applied,
|
|
the 507 response for the Request-URI MUST NOT be included in
|
|
calculating the limit (e.g., if the client requests that only a
|
|
single result be returned, and multiple matches are present, then the
|
|
DAV:multistatus response will include one DAV:response for the
|
|
matching resource and one DAV:response for the 507 status on the
|
|
Request-URI).
|
|
|
|
<span class="h4"><h4><a name="section-8.6.3">8.6.3</a>. Example: Partial Retrieval of vCards Matching NICKNAME</h4></span>
|
|
|
|
In this example, the client requests that the server search for
|
|
address object resources that contain a NICKNAME property whose value
|
|
equals some specific text and return specific vCard properties for
|
|
those vCards found. In addition, the DAV:getetag property is also
|
|
requested and returned as part of the response.
|
|
|
|
>> Request <<
|
|
|
|
REPORT /home/bernard/addressbook/ HTTP/1.1
|
|
Host: addressbook.example.com
|
|
Depth: 1
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<C:addressbook-query xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:prop>
|
|
<D:getetag/>
|
|
<C:address-data>
|
|
<C:prop name="VERSION"/>
|
|
<C:prop name="UID"/>
|
|
<C:prop name="NICKNAME"/>
|
|
<C:prop name="EMAIL"/>
|
|
<C:prop name="FN"/>
|
|
</C:address-data>
|
|
</D:prop>
|
|
<C:filter>
|
|
<C:prop-filter name="NICKNAME">
|
|
<C:text-match collation="i;unicode-casemap"
|
|
match-type="equals"
|
|
>me</C:text-match>
|
|
</C:prop-filter>
|
|
</C:filter>
|
|
</C:addressbook-query>
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 26]</span>
|
|
</pre><pre class="newpage"><a name="page-27" id="page-27" href="http://tools.ietf.org/html/rfc6352#page-27" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
>> Response <<
|
|
|
|
HTTP/1.1 207 Multi-Status
|
|
Date: Sat, 11 Nov 2006 09:32:12 GMT
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<D:multistatus xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:response>
|
|
<D:href>/home/bernard/addressbook/v102.vcf</D:href>
|
|
<D:propstat>
|
|
<D:prop>
|
|
<D:getetag>"23ba4d-ff11fb"</D:getetag>
|
|
<C:address-data>BEGIN:VCARD
|
|
VERSION:3.0
|
|
NICKNAME:me
|
|
UID:34222-232@example.com
|
|
FN:Cyrus Daboo
|
|
EMAIL:daboo@example.com
|
|
END:VCARD
|
|
</C:address-data>
|
|
</D:prop>
|
|
<D:status>HTTP/1.1 200 OK</D:status>
|
|
</D:propstat>
|
|
</D:response>
|
|
</D:multistatus>
|
|
|
|
<span class="h4"><h4><a name="section-8.6.4">8.6.4</a>. Example: Partial Retrieval of vCards Matching a Full Name or</h4></span>
|
|
Email Address
|
|
|
|
In this example, the client requests that the server search for
|
|
address object resources that contain a FN property whose value
|
|
contains some specific text or that contain an EMAIL property whose
|
|
value contains other text and return specific vCard properties for
|
|
those vCards found. In addition, the DAV:getetag property is also
|
|
requested and returned as part of the response.
|
|
|
|
>> Request <<
|
|
|
|
REPORT /home/bernard/addressbook/ HTTP/1.1
|
|
Host: addressbook.example.com
|
|
Depth: 1
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 27]</span>
|
|
</pre><pre class="newpage"><a name="page-28" id="page-28" href="http://tools.ietf.org/html/rfc6352#page-28" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<C:addressbook-query xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:prop>
|
|
<D:getetag/>
|
|
<C:address-data>
|
|
<C:prop name="VERSION"/>
|
|
<C:prop name="UID"/>
|
|
<C:prop name="NICKNAME"/>
|
|
<C:prop name="EMAIL"/>
|
|
<C:prop name="FN"/>
|
|
</C:address-data>
|
|
</D:prop>
|
|
<C:filter test="anyof">
|
|
<C:prop-filter name="FN">
|
|
<C:text-match collation="i;unicode-casemap"
|
|
match-type="contains"
|
|
>daboo</C:text-match>
|
|
</C:prop-filter>
|
|
<C:prop-filter name="EMAIL">
|
|
<C:text-match collation="i;unicode-casemap"
|
|
match-type="contains"
|
|
>daboo</C:text-match>
|
|
</C:prop-filter>
|
|
</C:filter>
|
|
</C:addressbook-query>
|
|
|
|
>> Response <<
|
|
|
|
HTTP/1.1 207 Multi-Status
|
|
Date: Sat, 11 Nov 2006 09:32:12 GMT
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<D:multistatus xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:response>
|
|
<D:href>/home/bernard/addressbook/v102.vcf</D:href>
|
|
<D:propstat>
|
|
<D:prop>
|
|
<D:getetag>"23ba4d-ff11fb"</D:getetag>
|
|
<C:address-data>BEGIN:VCARD
|
|
VERSION:3.0
|
|
NICKNAME:me
|
|
UID:34222-232@example.com
|
|
FN:David Boo
|
|
EMAIL:daboo@example.com
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 28]</span>
|
|
</pre><pre class="newpage"><a name="page-29" id="page-29" href="http://tools.ietf.org/html/rfc6352#page-29" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
END:VCARD
|
|
</C:address-data>
|
|
</D:prop>
|
|
<D:status>HTTP/1.1 200 OK</D:status>
|
|
</D:propstat>
|
|
</D:response>
|
|
<D:response>
|
|
<D:href>/home/bernard/addressbook/v104.vcf</D:href>
|
|
<D:propstat>
|
|
<D:prop>
|
|
<D:getetag>"23ba4d-ff11fc"</D:getetag>
|
|
<C:address-data>BEGIN:VCARD
|
|
VERSION:3.0
|
|
NICKNAME:oliver
|
|
UID:34222-23222@example.com
|
|
FN:Oliver Daboo
|
|
EMAIL:oliver@example.com
|
|
END:VCARD
|
|
</C:address-data>
|
|
</D:prop>
|
|
<D:status>HTTP/1.1 200 OK</D:status>
|
|
</D:propstat>
|
|
</D:response>
|
|
</D:multistatus>
|
|
|
|
<span class="h4"><h4><a name="section-8.6.5">8.6.5</a>. Example: Truncated Results</h4></span>
|
|
|
|
In this example, the client requests that the server search for
|
|
address object resources that contain a FN property whose value
|
|
contains some specific text and return the DAV:getetag property for
|
|
two results only. The server response includes a 507 status for the
|
|
Request-URI indicating that there were more than two resources that
|
|
matched the query, but that the server truncated the result set as
|
|
requested by the client.
|
|
|
|
>> Request <<
|
|
|
|
REPORT /home/bernard/addressbook/ HTTP/1.1
|
|
Host: addressbook.example.com
|
|
Depth: 1
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<C:addressbook-query xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 29]</span>
|
|
</pre><pre class="newpage"><a name="page-30" id="page-30" href="http://tools.ietf.org/html/rfc6352#page-30" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<D:prop>
|
|
<D:getetag/>
|
|
</D:prop>
|
|
<C:filter test="anyof">
|
|
<C:prop-filter name="FN">
|
|
<C:text-match collation="i;unicode-casemap"
|
|
match-type="contains"
|
|
>daboo</C:text-match>
|
|
</C:prop-filter>
|
|
</C:filter>
|
|
<C:limit>
|
|
<C:nresults>2</C:nresults>
|
|
</C:limit>
|
|
</C:addressbook-query>
|
|
|
|
>> Response <<
|
|
|
|
HTTP/1.1 207 Multi-Status
|
|
Date: Sat, 11 Nov 2006 09:32:12 GMT
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<D:multistatus xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:response>
|
|
<D:href>/home/bernard/addressbook/</D:href>
|
|
<D:status>HTTP/1.1 507 Insufficient Storage</D:status>
|
|
<D:error><D:number-of-matches-within-limits/></D:error>
|
|
<D:responsedescription xml:lang="en">
|
|
Only two matching records were returned
|
|
</D:responsedescription>
|
|
</D:response>
|
|
<D:response>
|
|
<D:href>/home/bernard/addressbook/v102.vcf</D:href>
|
|
<D:propstat>
|
|
<D:prop>
|
|
<D:getetag>"23ba4d-ff11fb"</D:getetag>
|
|
</D:prop>
|
|
<D:status>HTTP/1.1 200 OK</D:status>
|
|
</D:propstat>
|
|
</D:response>
|
|
<D:response>
|
|
<D:href>/home/bernard/addressbook/v104.vcf</D:href>
|
|
<D:propstat>
|
|
<D:prop>
|
|
<D:getetag>"23ba4d-ff11fc"</D:getetag>
|
|
</D:prop>
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 30]</span>
|
|
</pre><pre class="newpage"><a name="page-31" id="page-31" href="http://tools.ietf.org/html/rfc6352#page-31" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<D:status>HTTP/1.1 200 OK</D:status>
|
|
</D:propstat>
|
|
</D:response>
|
|
</D:multistatus>
|
|
|
|
<span class="h3"><h3><a name="section-8.7">8.7</a>. CARDDAV:addressbook-multiget Report</h3></span>
|
|
|
|
The CARDDAV:addressbook-multiget REPORT is used to retrieve specific
|
|
address object resources from within a collection, if the Request-URI
|
|
is a collection, or to retrieve a specific address object resource,
|
|
if the Request-URI is an address object resource. This report is
|
|
similar to the CARDDAV:addressbook-query REPORT (see <a href="http://tools.ietf.org/html/rfc6352#section-8.6">Section 8.6</a>),
|
|
except that it takes a list of DAV:href elements instead of a
|
|
CARDDAV:filter element to determine which address object resources to
|
|
return.
|
|
|
|
Support for the addressbook-multiget REPORT is REQUIRED.
|
|
|
|
Marshalling:
|
|
|
|
The request body MUST be a CARDDAV:addressbook-multiget XML
|
|
element (see <a href="http://tools.ietf.org/html/rfc6352#section-10.7">Section 10.7</a>), which MUST contain at least one
|
|
DAV:href XML element and one optional CARDDAV:address-data element
|
|
as defined in <a href="http://tools.ietf.org/html/rfc6352#section-10.4">Section 10.4</a>. If DAV:href elements are present, the
|
|
scope of the request is the set of resources identified by these
|
|
elements, which all need to be members (not necessarily internal
|
|
members) of the resource identified by the Request-URI.
|
|
Otherwise, the scope is the resource identified by the Request-URI
|
|
itself.
|
|
|
|
The request MUST include a Depth: 0 header; however, the actual
|
|
scope of the REPORT is determined as described above.
|
|
|
|
The response body for a successful request MUST be a
|
|
DAV:multistatus XML element.
|
|
|
|
The response body for a successful CARDDAV:addressbook-multiget
|
|
REPORT request MUST contain a DAV:response element for each
|
|
address object resource referenced by the provided set of DAV:href
|
|
elements. Address data is returned in the CARDDAV:address-data
|
|
element inside the DAV:prop element.
|
|
|
|
In the case of an error accessing any of the provided DAV:href
|
|
resources, the server MUST return the appropriate error status
|
|
code in the DAV:status element of the corresponding DAV:response
|
|
element.
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 31]</span>
|
|
</pre><pre class="newpage"><a name="page-32" id="page-32" href="http://tools.ietf.org/html/rfc6352#page-32" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Preconditions:
|
|
|
|
(CARDDAV:supported-address-data): The attributes "content-type"
|
|
and "version" of the CARDDAV:address-data XML elements (see
|
|
<a href="http://tools.ietf.org/html/rfc6352#section-10.4">Section 10.4</a>) specify a media type supported by the server for
|
|
address object resources.
|
|
|
|
Postconditions:
|
|
|
|
None.
|
|
|
|
<span class="h4"><h4><a name="section-8.7.1">8.7.1</a>. Example: CARDDAV:addressbook-multiget Report</h4></span>
|
|
|
|
In this example, the client requests the server to return specific
|
|
vCard properties of the address components referenced by specific
|
|
URIs. In addition, the DAV:getetag property is also requested and
|
|
returned as part of the response. Note that, in this example, the
|
|
resource at
|
|
http://addressbook.example.com/home/bernard/addressbook/vcf1.vcf does
|
|
not exist, resulting in an error status response.
|
|
|
|
>> Request <<
|
|
|
|
REPORT /home/bernard/addressbook/ HTTP/1.1
|
|
Host: addressbook.example.com
|
|
Depth: 1
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<C:addressbook-multiget xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:prop>
|
|
<D:getetag/>
|
|
<C:address-data>
|
|
<C:prop name="VERSION"/>
|
|
<C:prop name="UID"/>
|
|
<C:prop name="NICKNAME"/>
|
|
<C:prop name="EMAIL"/>
|
|
<C:prop name="FN"/>
|
|
</C:address-data>
|
|
</D:prop>
|
|
<D:href>/home/bernard/addressbook/vcf102.vcf</D:href>
|
|
<D:href>/home/bernard/addressbook/vcf1.vcf</D:href>
|
|
</C:addressbook-multiget>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 32]</span>
|
|
</pre><pre class="newpage"><a name="page-33" id="page-33" href="http://tools.ietf.org/html/rfc6352#page-33" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
>> Response <<
|
|
|
|
HTTP/1.1 207 Multi-Status
|
|
Date: Sat, 11 Nov 2006 09:32:12 GMT
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<D:multistatus xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:response>
|
|
<D:href>/home/bernard/addressbook/vcf102.vcf</D:href>
|
|
<D:propstat>
|
|
<D:prop>
|
|
<D:getetag>"23ba4d-ff11fb"</D:getetag>
|
|
<C:address-data>BEGIN:VCARD
|
|
VERSION:3.0
|
|
NICKNAME:me
|
|
UID:34222-232@example.com
|
|
FN:Cyrus Daboo
|
|
EMAIL:daboo@example.com
|
|
END:VCARD
|
|
</C:address-data>
|
|
</D:prop>
|
|
<D:status>HTTP/1.1 200 OK</D:status>
|
|
</D:propstat>
|
|
</D:response>
|
|
<D:response>
|
|
<D:href>/home/bernard/addressbook/vcf1.vcf</D:href>
|
|
<D:status>HTTP/1.1 404 Resource not found</D:status>
|
|
</D:response>
|
|
</D:multistatus>
|
|
|
|
<span class="h4"><h4><a name="section-8.7.2">8.7.2</a>. Example: CARDDAV:addressbook-multiget Report</h4></span>
|
|
|
|
In this example, the client requests the server to return vCard v4.0
|
|
data of the address components referenced by specific URIs. In
|
|
addition, the DAV:getetag property is also requested and returned as
|
|
part of the response. Note that, in this example, the resource at
|
|
http://addressbook.example.com/home/bernard/addressbook/vcf3.vcf
|
|
exists but in a media type format that the server is unable to
|
|
convert, resulting in an error status response.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 33]</span>
|
|
</pre><pre class="newpage"><a name="page-34" id="page-34" href="http://tools.ietf.org/html/rfc6352#page-34" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
>> Request <<
|
|
|
|
REPORT /home/bernard/addressbook/ HTTP/1.1
|
|
Host: addressbook.example.com
|
|
Depth: 1
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<C:addressbook-multiget xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:prop>
|
|
<D:getetag/>
|
|
<C:address-data content-type='text/vcard' version='4.0'/>
|
|
</D:prop>
|
|
<D:href>/home/bernard/addressbook/vcf3.vcf</D:href>
|
|
</C:addressbook-multiget>
|
|
|
|
>> Response <<
|
|
|
|
HTTP/1.1 207 Multi-Status
|
|
Date: Sat, 11 Nov 2006 09:32:12 GMT
|
|
Content-Type: text/xml; charset="utf-8"
|
|
Content-Length: xxxx
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<D:multistatus xmlns:D="DAV:"
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav">
|
|
<D:response>
|
|
<D:href>/home/bernard/addressbook/vcf3.vcf</D:href>
|
|
<D:status>HTTP/1.1 415 Unsupported Media Type</D:status>
|
|
<D:error><C:supported-address-data-conversion/></D:error>
|
|
<D:responsedescription>Unable to convert from vCard v3.0
|
|
to vCard v4.0</D:responsedescription>
|
|
</D:response>
|
|
</D:multistatus>
|
|
|
|
<span class="h2"><h2><a name="section-9">9</a>. Client Guidelines</h2></span>
|
|
|
|
<span class="h3"><h3><a name="section-9.1">9.1</a>. Restrict the Properties Returned</h3></span>
|
|
|
|
Clients may not need all the properties in a vCard object when
|
|
presenting information to the user, or looking up specific items for
|
|
their email address, for example. Since some property data can be
|
|
large (e.g., PHOTO or SOUND with in-line content) clients can choose
|
|
to ignore those by only requesting the specific items it knows it
|
|
will use, through use of the CARDDAV:address-data XML element in the
|
|
relevant reports.
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 34]</span>
|
|
</pre><pre class="newpage"><a name="page-35" id="page-35" href="http://tools.ietf.org/html/rfc6352#page-35" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
However, if a client needs to make a change to a vCard, it can only
|
|
change the entire vCard data via a PUT request. There is no way to
|
|
incrementally make a change to a set of properties within a vCard
|
|
object resource. As a result, the client will have to cache the
|
|
entire set of properties on a resource that is being changed.
|
|
|
|
<span class="h3"><h3><a name="section-9.2">9.2</a>. Avoiding Lost Updates</h3></span>
|
|
|
|
When resources are accessed by multiple clients, the possibility of
|
|
clients overwriting each other's changes exists. To alleviate this,
|
|
clients SHOULD use the If-Match request header on PUT requests with
|
|
the ETag of the previously retrieved resource data to check whether
|
|
the resource was modified since it was previously retrieved. If a
|
|
precondition failure occurs, clients need to reload the resource and
|
|
go through their own merge or conflict resolution process before
|
|
writing back the data (again using the If-Match check).
|
|
|
|
<span class="h3"><h3><a name="section-9.3">9.3</a>. Client Configuration</h3></span>
|
|
|
|
When CardDAV clients need to be configured, the key piece of
|
|
information that they require is the principal-URL of the user whose
|
|
address book information is desired. Servers SHOULD support the
|
|
DAV:current-user-principal-URL property as defined in [<a href="http://tools.ietf.org/html/rfc5397" title=""WebDAV Current Principal Extension"">RFC5397</a>] to
|
|
give clients a fast way to locate user principals.
|
|
|
|
Given support for SRV records (<a href="http://tools.ietf.org/html/rfc6352#section-11">Section 11</a>) and DAV:current-user-
|
|
principal-URL [<a href="http://tools.ietf.org/html/rfc5397" title=""WebDAV Current Principal Extension"">RFC5397</a>], users only need enter a user identifier,
|
|
host name, and password to configure their client. The client would
|
|
take the host name and do an SRV lookup to locate the CardDAV server,
|
|
then execute an authenticated PROPFIND on the root/resource looking
|
|
for the DAV:current-user-principal-URL property. The value returned
|
|
gives the client direct access to the user's principal-URL and from
|
|
there all the related CardDAV properties needed to locate address
|
|
books.
|
|
|
|
<span class="h3"><h3><a name="section-9.4">9.4</a>. Finding Other Users' Address Books</h3></span>
|
|
|
|
For use cases of address book sharing, one might wish to find the
|
|
address book belonging to another user. To find other users' address
|
|
books on the same server, the DAV:principal-property-search REPORT
|
|
[<a href="http://tools.ietf.org/html/rfc3744" title=""Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol"">RFC3744</a>] can be used to search principals for matching properties
|
|
and return specified properties for the matching principal resources.
|
|
To search for an address book owned by a user named "Laurie", the
|
|
REPORT request body would look like this:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 35]</span>
|
|
</pre><pre class="newpage"><a name="page-36" id="page-36" href="http://tools.ietf.org/html/rfc6352#page-36" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<D:principal-property-search xmlns:D="DAV:">
|
|
<D:property-search>
|
|
<D:prop>
|
|
<D:displayname/>
|
|
</D:prop>
|
|
<D:match>Laurie</D:match>
|
|
</D:property-search>
|
|
<D:prop>
|
|
<C:addressbook-home-set
|
|
xmlns:C="urn:ietf:params:xml:ns:carddav"/>
|
|
<D:displayname/>
|
|
</D:prop>
|
|
</D:principal-property-search>
|
|
|
|
The server performs a case-sensitive or caseless search for a
|
|
matching string subset of "Laurie" within the DAV:displayname
|
|
property. Thus, the server might return "Laurie Dusseault", "Laurier
|
|
Desruisseaux", or "Wilfrid Laurier" all as matching DAV:displayname
|
|
values, and the address books for each of these.
|
|
|
|
<span class="h2"><h2><a name="section-10">10</a>. XML Element Definitions</h2></span>
|
|
|
|
<span class="h3"><h3><a name="section-10.1">10.1</a>. CARDDAV:addressbook XML Element</h3></span>
|
|
|
|
Name: addressbook
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Specifies the resource type of an address book collection.
|
|
|
|
Description: See <a href="http://tools.ietf.org/html/rfc6352#section-5.2">Section 5.2</a>.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT addressbook EMPTY>
|
|
|
|
<span class="h3"><h3><a name="section-10.2">10.2</a>. CARDDAV:supported-collation XML Element</h3></span>
|
|
|
|
Name: supported-collation
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Identifies a single collation via its collation identifier
|
|
as defined by [<a href="http://tools.ietf.org/html/rfc4790" title=""Internet Application Protocol Collation Registry"">RFC4790</a>].
|
|
|
|
Description: The CARDDAV:supported-collation contains the text of a
|
|
collation identifier as described in <a href="http://tools.ietf.org/html/rfc6352#section-8.3.1">Section 8.3.1</a>.
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 36]</span>
|
|
</pre><pre class="newpage"><a name="page-37" id="page-37" href="http://tools.ietf.org/html/rfc6352#page-37" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT supported-collation (#PCDATA)>
|
|
<!-- PCDATA value: collation identifier -->
|
|
|
|
<span class="h3"><h3><a name="section-10.3">10.3</a>. CARDDAV:addressbook-query XML Element</h3></span>
|
|
|
|
Name: addressbook-query
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Defines a report for querying address book data
|
|
|
|
Description: See <a href="http://tools.ietf.org/html/rfc6352#section-8.6">Section 8.6</a>.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT addressbook-query ((DAV:allprop |
|
|
DAV:propname |
|
|
DAV:prop)?, filter, limit?)>
|
|
|
|
<span class="h3"><h3><a name="section-10.4">10.4</a>. CARDDAV:address-data XML Element</h3></span>
|
|
|
|
Name: address-data
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Specifies one of the following:
|
|
|
|
1. The parts of an address object resource that should be
|
|
returned by a given address book REPORT request, and the media
|
|
type and version for the returned data; or
|
|
|
|
2. The content of an address object resource in a response to an
|
|
address book REPORT request.
|
|
|
|
Description: When used in an address book REPORT request, the
|
|
CARDDAV:address-data XML element specifies which parts of address
|
|
object resources need to be returned in the response. If the
|
|
CARDDAV:address-data XML element doesn't contain any CARDDAV:prop
|
|
elements, address object resources will be returned in their
|
|
entirety. Additionally, a media type and version can be specified
|
|
to request that the server return the data in that format if
|
|
possible.
|
|
|
|
Finally, when used in an address book REPORT response, the
|
|
CARDDAV:address-data XML element specifies the content of an
|
|
address object resource. Given that XML parsers normalize the
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 37]</span>
|
|
</pre><pre class="newpage"><a name="page-38" id="page-38" href="http://tools.ietf.org/html/rfc6352#page-38" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
two-character sequence CRLF (US-ASCII decimal 13 and US-ASCII
|
|
decimal 10) to a single LF character (US-ASCII decimal 10), the CR
|
|
character (US-ASCII decimal 13) MAY be omitted in address object
|
|
resources specified in the CARDDAV:address-data XML element.
|
|
Furthermore, address object resources specified in the
|
|
CARDDAV:address-data XML element MAY be invalid per their media
|
|
type specification if the CARDDAV:address-data XML element part of
|
|
the address book REPORT request did not specify required vCard
|
|
properties (e.g., UID, etc.) or specified a CARDDAV:prop XML
|
|
element with the "novalue" attribute set to "yes".
|
|
|
|
Note: The CARDDAV:address-data XML element is specified in requests
|
|
and responses inside the DAV:prop XML element as if it were a
|
|
WebDAV property. However, the CARDDAV:address-data XML element is
|
|
not a WebDAV property and as such it is not returned in PROPFIND
|
|
responses nor used in PROPPATCH requests.
|
|
|
|
Note: The address data embedded within the CARDDAV:address-data XML
|
|
element MUST follow the standard XML character data encoding
|
|
rules, including use of &lt;, &gt;, &amp; etc., entity encoding or
|
|
the use of a <![CDATA[ ... ]]> construct. In the latter case, the
|
|
vCard data cannot contain the character sequence "]]>", which is
|
|
the end delimiter for the CDATA section.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT address-data (allprop | prop*)>
|
|
|
|
when nested in the DAV:prop XML element in an address book
|
|
REPORT request to specify which parts of address object
|
|
resources should be returned in the response;
|
|
|
|
<!ELEMENT address-data (#PCDATA)>
|
|
<!-- PCDATA value: address data -->
|
|
|
|
when nested in the DAV:prop XML element in an address book
|
|
REPORT response to specify the content of a returned
|
|
address object resource.
|
|
|
|
<!ATTLIST address-data content-type CDATA "text/vcard"
|
|
version CDATA "3.0">
|
|
<!-- content-type value: a MIME media type -->
|
|
<!-- version value: a version string -->
|
|
|
|
attributes can be used on each variant of the
|
|
CALDAV:address-data XML element.
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 38]</span>
|
|
</pre><pre class="newpage"><a name="page-39" id="page-39" href="http://tools.ietf.org/html/rfc6352#page-39" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<span class="h4"><h4><a name="section-10.4.1">10.4.1</a>. CARDDAV:allprop XML Element</h4></span>
|
|
|
|
Name: allprop
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Specifies that all vCard properties shall be returned.
|
|
|
|
Description: This element can be used when the client wants all
|
|
vCard properties of components returned by a report.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT allprop EMPTY>
|
|
|
|
Note: The CARDDAV:allprop element defined here has the same name as
|
|
the DAV:allprop element defined in WebDAV. However, the
|
|
CARDDAV:allprop element defined here uses the
|
|
"urn:ietf:params:xml:ns:carddav" namespace, as opposed to the "DAV:"
|
|
namespace used for the DAV:allprop element defined in WebDAV.
|
|
|
|
<span class="h4"><h4><a name="section-10.4.2">10.4.2</a>. CARDDAV:prop XML Element</h4></span>
|
|
|
|
Name: prop
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Defines which vCard properties to return in the response.
|
|
|
|
Description: The "name" attribute specifies the name of the vCard
|
|
property to return (e.g., "NICKNAME"). The "novalue" attribute
|
|
can be used by clients to request that the actual value of the
|
|
property not be returned (if the "novalue" attribute is set to
|
|
"yes"). In that case, the server will return just the vCard
|
|
property name and any vCard parameters and a trailing ":" without
|
|
the subsequent value data.
|
|
|
|
vCard allows a "group" prefix to appear before a property name in
|
|
the vCard data. When the "name" attribute does not specify a
|
|
group prefix, it MUST match properties in the vCard data without a
|
|
group prefix or with any group prefix. When the "name" attribute
|
|
includes a group prefix, it MUST match properties that have
|
|
exactly the same group prefix and name. For example, a "name" set
|
|
to "TEL" will match "TEL", "X-ABC.TEL", and "X-ABC-1.TEL" vCard
|
|
properties. A "name" set to "X-ABC.TEL" will match an "X-ABC.TEL"
|
|
vCard property only; it will not match "TEL" or "X-ABC-1.TEL".
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 39]</span>
|
|
</pre><pre class="newpage"><a name="page-40" id="page-40" href="http://tools.ietf.org/html/rfc6352#page-40" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT prop EMPTY>
|
|
|
|
<!ATTLIST prop name CDATA #REQUIRED
|
|
novalue (yes | no) "no">
|
|
<!-- name value: a vCard property name -->
|
|
<!-- novalue value: "yes" or "no" -->
|
|
|
|
Note: The CARDDAV:prop element defined here has the same name as the
|
|
DAV:prop element defined in WebDAV. However, the CARDDAV:prop
|
|
element defined here uses the "urn:ietf:params:xml:ns:carddav"
|
|
namespace, as opposed to the "DAV:" namespace used for the DAV:prop
|
|
element defined in WebDAV.
|
|
|
|
<span class="h3"><h3><a name="section-10.5">10.5</a>. CARDDAV:filter XML Element</h3></span>
|
|
|
|
Name: filter
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Determines which matching objects are returned.
|
|
|
|
Description: The "filter" element specifies the search filter used
|
|
to match address objects that should be returned by a report. The
|
|
"test" attribute specifies whether any (logical OR) or all
|
|
(logical AND) of the prop-filter tests need to match in order for
|
|
the overall filter to match.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT filter (prop-filter*)>
|
|
|
|
<!ATTLIST filter test (anyof | allof) "anyof">
|
|
<!-- test value:
|
|
anyof logical OR for prop-filter matches
|
|
allof logical AND for prop-filter matches -->
|
|
|
|
<span class="h4"><h4><a name="section-10.5.1">10.5.1</a>. CARDDAV:prop-filter XML Element</h4></span>
|
|
|
|
Name: prop-filter
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Limits the search to specific vCard properties.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 40]</span>
|
|
</pre><pre class="newpage"><a name="page-41" id="page-41" href="http://tools.ietf.org/html/rfc6352#page-41" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Description: The CARDDAV:prop-filter XML element specifies search
|
|
criteria on a specific vCard property (e.g., "NICKNAME"). An
|
|
address object is said to match a CARDDAV:prop-filter if:
|
|
|
|
* A vCard property of the type specified by the "name" attribute
|
|
exists, and the CARDDAV:prop-filter is empty, or it matches any
|
|
specified CARDDAV:text-match or CARDDAV:param-filter
|
|
conditions. The "test" attribute specifies whether any
|
|
(logical OR) or all (logical AND) of the text-filter and param-
|
|
filter tests need to match in order for the overall filter to
|
|
match.
|
|
|
|
or:
|
|
|
|
* A vCard property of the type specified by the "name" attribute
|
|
does not exist, and the CARDDAV:is-not-defined element is
|
|
specified.
|
|
|
|
vCard allows a "group" prefix to appear before a property name in
|
|
the vCard data. When the "name" attribute does not specify a
|
|
group prefix, it MUST match properties in the vCard data without a
|
|
group prefix or with any group prefix. When the "name" attribute
|
|
includes a group prefix, it MUST match properties that have
|
|
exactly the same group prefix and name. For example, a "name" set
|
|
to "TEL" will match "TEL", "X-ABC.TEL", "X-ABC-1.TEL" vCard
|
|
properties. A "name" set to "X-ABC.TEL" will match an "X-ABC.TEL"
|
|
vCard property only, it will not match "TEL" or "X-ABC-1.TEL".
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT prop-filter (is-not-defined |
|
|
(text-match*, param-filter*))>
|
|
|
|
<!ATTLIST prop-filter name CDATA #REQUIRED
|
|
test (anyof | allof) "anyof">
|
|
<!-- name value: a vCard property name (e.g., "NICKNAME")
|
|
test value:
|
|
anyof logical OR for text-match/param-filter matches
|
|
allof logical AND for text-match/param-filter matches -->
|
|
|
|
<span class="h4"><h4><a name="section-10.5.2">10.5.2</a>. CARDDAV:param-filter XML Element</h4></span>
|
|
|
|
Name: param-filter
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Limits the search to specific parameter values.
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 41]</span>
|
|
</pre><pre class="newpage"><a name="page-42" id="page-42" href="http://tools.ietf.org/html/rfc6352#page-42" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Description: The CARDDAV:param-filter XML element specifies search
|
|
criteria on a specific vCard property parameter (e.g., TYPE) in
|
|
the scope of a given CARDDAV:prop-filter. A vCard property is
|
|
said to match a CARDDAV:param-filter if:
|
|
|
|
* A parameter of the type specified by the "name" attribute
|
|
exists, and the CARDDAV:param-filter is empty, or it matches
|
|
the CARDDAV:text-match conditions if specified.
|
|
|
|
or:
|
|
|
|
* A parameter of the type specified by the "name" attribute does
|
|
not exist, and the CARDDAV:is-not-defined element is specified.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT param-filter (is-not-defined | text-match)?>
|
|
|
|
<!ATTLIST param-filter name CDATA #REQUIRED>
|
|
<!-- name value: a property parameter name (e.g., "TYPE") -->
|
|
|
|
<span class="h4"><h4><a name="section-10.5.3">10.5.3</a>. CARDDAV:is-not-defined XML Element</h4></span>
|
|
|
|
Name: is-not-defined
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Specifies that a match should occur if the enclosing vCard
|
|
property or parameter does not exist.
|
|
|
|
Description: The CARDDAV:is-not-defined XML element specifies that a
|
|
match occurs if the enclosing vCard property or parameter value
|
|
specified in an address book REPORT request does not exist in the
|
|
address data being tested.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT is-not-defined EMPTY>
|
|
|
|
<span class="h4"><h4><a name="section-10.5.4">10.5.4</a>. CARDDAV:text-match XML Element</h4></span>
|
|
|
|
Name: text-match
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Specifies a substring match on a vCard property or
|
|
parameter value.
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 42]</span>
|
|
</pre><pre class="newpage"><a name="page-43" id="page-43" href="http://tools.ietf.org/html/rfc6352#page-43" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Description: The CARDDAV:text-match XML element specifies text used
|
|
for a substring match against the vCard property or parameter
|
|
value specified in an address book REPORT request.
|
|
|
|
The "collation" attribute is used to select the collation that the
|
|
server MUST use for character string matching. In the absence of
|
|
this attribute, the server MUST use the "i;unicode-casemap"
|
|
collation.
|
|
|
|
The "negate-condition" attribute is used to indicate that this
|
|
test returns a match if the text matches, when the attribute value
|
|
is set to "no", or return a match if the text does not match, if
|
|
the attribute value is set to "yes". For example, this can be
|
|
used to match components with a CATEGORIES property not set to
|
|
PERSON.
|
|
|
|
The "match-type" attribute is used to indicate the type of match
|
|
operation to use. Possible choices are:
|
|
|
|
"equals" - an exact match to the target string
|
|
|
|
"contains" - a substring match, matching anywhere within the
|
|
target string
|
|
|
|
"starts-with" - a substring match, matching only at the start
|
|
of the target string
|
|
|
|
"ends-with" - a substring match, matching only at the end of
|
|
the target string
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT text-match (#PCDATA)>
|
|
<!-- PCDATA value: string -->
|
|
|
|
<!ATTLIST text-match
|
|
collation CDATA "i;unicode-casemap"
|
|
negate-condition (yes | no) "no"
|
|
match-type (equals|contains|starts-with|ends-with) "contains">
|
|
|
|
<span class="h3"><h3><a name="section-10.6">10.6</a>. CARDDAV:limit XML Element</h3></span>
|
|
|
|
Name: limit
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Specifies different types of limits that can be applied to
|
|
the results returned by the server.
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 43]</span>
|
|
</pre><pre class="newpage"><a name="page-44" id="page-44" href="http://tools.ietf.org/html/rfc6352#page-44" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
Description: The CARDDAV:limit XML element can be used to specify
|
|
different types of limits that the client can request the server
|
|
to apply to the results returned by the server. Currently, only
|
|
the CARDDAV:nresults limit can be used; other types of limit could
|
|
be defined in the future.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT limit (nresults)>
|
|
|
|
<span class="h4"><h4><a name="section-10.6.1">10.6.1</a>. CARDDAV:nresults XML Element</h4></span>
|
|
|
|
Name: nresults
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: Specifies a limit on the number of results returned by the
|
|
server.
|
|
|
|
Description: The CARDDAV:nresults XML element contains a requested
|
|
maximum number of DAV:response elements to be returned in the
|
|
response body of a query. The server MAY disregard this limit.
|
|
The value of this element is an unsigned integer.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT nresults (#PCDATA)>
|
|
<!-- nresults value: unsigned integer, must be digits -->
|
|
|
|
<span class="h3"><h3><a name="section-10.7">10.7</a>. CARDDAV:addressbook-multiget XML Element</h3></span>
|
|
|
|
Name: addressbook-multiget
|
|
|
|
Namespace: urn:ietf:params:xml:ns:carddav
|
|
|
|
Purpose: CardDAV report used to retrieve specific address objects
|
|
via their URIs.
|
|
|
|
Description: See <a href="http://tools.ietf.org/html/rfc6352#section-8.7">Section 8.7</a>.
|
|
|
|
Definition:
|
|
|
|
<!ELEMENT addressbook-multiget ((DAV:allprop |
|
|
DAV:propname |
|
|
DAV:prop)?,
|
|
DAV:href+)>
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 44]</span>
|
|
</pre><pre class="newpage"><a name="page-45" id="page-45" href="http://tools.ietf.org/html/rfc6352#page-45" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<span class="h2"><h2><a name="section-11">11</a>. Service Discovery via SRV Records</h2></span>
|
|
|
|
[<a name="ref-RFC2782" id="ref-RFC2782">RFC2782</a>] defines a DNS-based service discovery protocol that has
|
|
been widely adopted as a means of locating particular services within
|
|
a local area network and beyond, using SRV RRs.
|
|
|
|
This specification adds two service types for use with SRV records:
|
|
|
|
carddav: Identifies a CardDAV server that uses HTTP without TLS
|
|
[<a href="http://tools.ietf.org/html/rfc2818" title=""HTTP Over TLS"">RFC2818</a>].
|
|
|
|
carddavs: Identifies a CardDAV server that uses HTTP with TLS
|
|
[<a href="http://tools.ietf.org/html/rfc2818" title=""HTTP Over TLS"">RFC2818</a>].
|
|
|
|
Example: non-TLS service record
|
|
|
|
_carddav._tcp SRV 0 1 80 addressbook.example.com.
|
|
|
|
Example: TLS service
|
|
|
|
_carddavs._tcp SRV 0 1 443 addressbook.example.com.
|
|
|
|
<span class="h2"><h2><a name="section-12">12</a>. Internationalization Considerations</h2></span>
|
|
|
|
CardDAV allows internationalized strings to be stored and retrieved
|
|
for the description of address book collections (see <a href="http://tools.ietf.org/html/rfc6352#section-6.2.1">Section 6.2.1</a>).
|
|
|
|
The CARDDAV:addressbook-query REPORT (<a href="http://tools.ietf.org/html/rfc6352#section-8.6">Section 8.6</a>) includes a text
|
|
searching option controlled by the CARDDAV:text-match element and
|
|
details of character handling are covered in the description of that
|
|
element (see <a href="http://tools.ietf.org/html/rfc6352#section-10.5.4">Section 10.5.4</a>).
|
|
|
|
<span class="h2"><h2><a name="section-13">13</a>. Security Considerations</h2></span>
|
|
|
|
HTTP protocol transactions are sent in the clear over the network
|
|
unless protection from snooping is negotiated. This can be
|
|
accomplished by use of TLS as defined in [<a href="http://tools.ietf.org/html/rfc2818" title=""HTTP Over TLS"">RFC2818</a>]. In particular,
|
|
if HTTP Basic authentication [<a href="http://tools.ietf.org/html/rfc2617" title=""HTTP Authentication: Basic and Digest Access Authentication"">RFC2617</a>] is available, the server MUST
|
|
allow TLS to be used at the same time, and it SHOULD prevent use of
|
|
Basic authentication when TLS is not in use. Clients SHOULD use TLS
|
|
whenever possible.
|
|
|
|
With the ACL extension [<a href="http://tools.ietf.org/html/rfc3744" title=""Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol"">RFC3744</a>] present, WebDAV allows control over
|
|
who can access (read or write) any resource on the WebDAV server. In
|
|
addition, WebDAV ACL provides for an "inheritance" mechanism, whereby
|
|
resources may inherit access privileges from other resources. Often,
|
|
the "other" resource is a parent collection of the resource itself.
|
|
Servers are able to support address books that are "private"
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 45]</span>
|
|
</pre><pre class="newpage"><a name="page-46" id="page-46" href="http://tools.ietf.org/html/rfc6352#page-46" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
(accessible only to the "owner"), "shared" (accessible to the owner
|
|
and other specified authenticated users), and "public" (accessible to
|
|
any authenticated or unauthenticated users). When provisioning
|
|
address books of a particular type, servers MUST ensure that the
|
|
correct privileges are applied on creation. In particular, private
|
|
and shared address books MUST NOT be accessible by unauthenticated
|
|
users (to prevent data from being automatically searched or indexed
|
|
by web "crawlers").
|
|
|
|
Clients SHOULD warn users in an appropriate fashion when they copy or
|
|
move address data from a private address book to a shared address
|
|
book or public address book. Clients SHOULD provide a clear
|
|
indication as to which address books are private, shared, or public.
|
|
Clients SHOULD provide an appropriate warning when changing access
|
|
privileges for a private or shared address book with data so as to
|
|
allow unauthenticated users access.
|
|
|
|
This specification currently relies on standard HTTP authentication
|
|
mechanisms for identifying users. These comprise Basic and Digest
|
|
authentication [<a href="http://tools.ietf.org/html/rfc2617" title=""HTTP Authentication: Basic and Digest Access Authentication"">RFC2617</a>] as well as TLS [<a href="http://tools.ietf.org/html/rfc2818" title=""HTTP Over TLS"">RFC2818</a>] using client-side
|
|
certificates.
|
|
|
|
<span class="h2"><h2><a name="section-14">14</a>. IANA Consideration</h2></span>
|
|
|
|
This document uses a URN to describe a new XML namespace conforming
|
|
to the registry mechanism described in [<a href="http://tools.ietf.org/html/rfc3688" title=""The IETF XML Registry"">RFC3688</a>].
|
|
|
|
<span class="h3"><h3><a name="section-14.1">14.1</a>. Namespace Registration</h3></span>
|
|
|
|
Registration request for the carddav namespace:
|
|
|
|
URI: urn:ietf:params:xml:ns:carddav
|
|
|
|
Registrant Contact: The IESG <iesg@ietf.org>
|
|
|
|
XML: None - not applicable for namespace registrations.
|
|
|
|
<span class="h2"><h2><a name="section-15">15</a>. Acknowledgments</h2></span>
|
|
|
|
Thanks go to Lisa Dusseault and Bernard Desruisseaux for their work
|
|
on CalDAV, on which CardDAV is heavily based. The following
|
|
individuals contributed their ideas and support for writing this
|
|
specification: Mike Douglass, Stefan Eissing, Helge Hess, Arnaud
|
|
Quillaud, Julian Reschke, Elias Sinderson, Greg Stein, Wilfredo
|
|
Sanchez, and Simon Vaillancourt.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 46]</span>
|
|
</pre><pre class="newpage"><a name="page-47" id="page-47" href="http://tools.ietf.org/html/rfc6352#page-47" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
<span class="h2"><h2><a name="section-16">16</a>. References</h2></span>
|
|
|
|
<span class="h3"><h3><a name="section-16.1">16.1</a>. Normative References</h3></span>
|
|
|
|
[<a name="ref-RFC2119" id="ref-RFC2119">RFC2119</a>] Bradner, S., "Key words for use in RFCs to Indicate
|
|
Requirement Levels", <a href="http://tools.ietf.org/html/bcp14">BCP 14</a>, <a href="http://tools.ietf.org/html/rfc2119">RFC 2119</a>, March 1997.
|
|
|
|
[<a name="ref-RFC2426" id="ref-RFC2426">RFC2426</a>] Dawson, F. and T. Howes, "vCard MIME Directory Profile",
|
|
<a href="http://tools.ietf.org/html/rfc2426">RFC 2426</a>, September 1998.
|
|
|
|
[<a name="ref-RFC2616" id="ref-RFC2616">RFC2616</a>] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
|
|
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
|
|
Transfer Protocol -- HTTP/1.1", <a href="http://tools.ietf.org/html/rfc2616">RFC 2616</a>, June 1999.
|
|
|
|
[<a name="ref-RFC2617" id="ref-RFC2617">RFC2617</a>] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S.,
|
|
Leach, P., Luotonen, A., and L. Stewart, "HTTP
|
|
Authentication: Basic and Digest Access Authentication",
|
|
<a href="http://tools.ietf.org/html/rfc2617">RFC 2617</a>, June 1999.
|
|
|
|
[<a name="ref-RFC2782" id="ref-RFC2782">RFC2782</a>] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for
|
|
specifying the location of services (DNS SRV)", <a href="http://tools.ietf.org/html/rfc2782">RFC 2782</a>,
|
|
February 2000.
|
|
|
|
[<a name="ref-RFC2818" id="ref-RFC2818">RFC2818</a>] Rescorla, E., "HTTP Over TLS", <a href="http://tools.ietf.org/html/rfc2818">RFC 2818</a>, May 2000.
|
|
|
|
[<a name="ref-RFC3253" id="ref-RFC3253">RFC3253</a>] Clemm, G., Amsden, J., Ellison, T., Kaler, C., and J.
|
|
Whitehead, "Versioning Extensions to WebDAV
|
|
(Web Distributed Authoring and Versioning)", <a href="http://tools.ietf.org/html/rfc3253">RFC 3253</a>,
|
|
March 2002.
|
|
|
|
[<a name="ref-RFC3688" id="ref-RFC3688">RFC3688</a>] Mealling, M., "The IETF XML Registry", <a href="http://tools.ietf.org/html/bcp81">BCP 81</a>, <a href="http://tools.ietf.org/html/rfc3688">RFC 3688</a>,
|
|
January 2004.
|
|
|
|
[<a name="ref-RFC3744" id="ref-RFC3744">RFC3744</a>] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web
|
|
Distributed Authoring and Versioning (WebDAV)
|
|
Access Control Protocol", <a href="http://tools.ietf.org/html/rfc3744">RFC 3744</a>, May 2004.
|
|
|
|
[<a name="ref-RFC4790" id="ref-RFC4790">RFC4790</a>] Newman, C., Duerst, M., and A. Gulbrandsen, "Internet
|
|
Application Protocol Collation Registry", <a href="http://tools.ietf.org/html/rfc4790">RFC 4790</a>,
|
|
March 2007.
|
|
|
|
[<a name="ref-RFC4918" id="ref-RFC4918">RFC4918</a>] Dusseault, L., "HTTP Extensions for Web Distributed
|
|
Authoring and Versioning (WebDAV)", <a href="http://tools.ietf.org/html/rfc4918">RFC 4918</a>, June 2007.
|
|
|
|
[<a name="ref-RFC5051" id="ref-RFC5051">RFC5051</a>] Crispin, M., "i;unicode-casemap - Simple Unicode Collation
|
|
Algorithm", <a href="http://tools.ietf.org/html/rfc5051">RFC 5051</a>, October 2007.
|
|
|
|
|
|
|
|
|
|
|
|
<span class="grey">Daboo Standards Track [Page 47]</span>
|
|
</pre><pre class="newpage"><a name="page-48" id="page-48" href="http://tools.ietf.org/html/rfc6352#page-48" class="invisible"> </a>
|
|
<span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
|
|
|
|
|
|
[<a name="ref-RFC5246" id="ref-RFC5246">RFC5246</a>] Dierks, T. and E. Rescorla, "The Transport Layer Security
|
|
(TLS) Protocol Version 1.2", <a href="http://tools.ietf.org/html/rfc5246">RFC 5246</a>, August 2008.
|
|
|
|
[<a name="ref-RFC5280" id="ref-RFC5280">RFC5280</a>] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
|
|
Housley, R., and W. Polk, "Internet X.509 Public Key
|
|
Infrastructure Certificate and Certificate Revocation List
|
|
(CRL) Profile", <a href="http://tools.ietf.org/html/rfc5280">RFC 5280</a>, May 2008.
|
|
|
|
[<a name="ref-RFC5397" id="ref-RFC5397">RFC5397</a>] Sanchez, W. and C. Daboo, "WebDAV Current Principal
|
|
Extension", <a href="http://tools.ietf.org/html/rfc5397">RFC 5397</a>, December 2008.
|
|
|
|
[<a name="ref-RFC5689" id="ref-RFC5689">RFC5689</a>] Daboo, C., "Extended MKCOL for Web Distributed Authoring
|
|
and Versioning (WebDAV)", <a href="http://tools.ietf.org/html/rfc5689">RFC 5689</a>, September 2009.
|
|
|
|
[<a name="ref-RFC6350" id="ref-RFC6350">RFC6350</a>] Perreault, S., "vCard Format Specification", <a href="http://tools.ietf.org/html/rfc6350">RFC 6350</a>,
|
|
August 2011.
|
|
|
|
[<a name="ref-W3C.REC-xml-20081126" id="ref-W3C.REC-xml-20081126">W3C.REC-xml-20081126</a>]
|
|
Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., and
|
|
F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth
|
|
Edition)", World Wide Web Consortium Recommendation REC-
|
|
xml-20081126, November 2008,
|
|
<<a href="http://www.w3.org/TR/2008/REC-xml-20081126">http://www.w3.org/TR/2008/REC-xml-20081126</a>>.
|
|
|
|
<span class="h3"><h3><a name="section-16.2">16.2</a>. Informative References</h3></span>
|
|
|
|
[<a name="ref-IMSP" id="ref-IMSP">IMSP</a>] Myers, J., <a style="text-decoration: none" href="http://www.google.com/search?sitesearch=tools.ietf.org%2Fhtml%2F&q=inurl:draft-+%22IMSP+-+Internet+Message+Support+Protocol%22">"IMSP - Internet Message Support Protocol"</a>,
|
|
Work in Progress, June 1995.
|
|
|
|
[<a name="ref-RFC2244" id="ref-RFC2244">RFC2244</a>] Newman, C. and J. Myers, "ACAP -- Application
|
|
Configuration Access Protocol", <a href="http://tools.ietf.org/html/rfc2244">RFC 2244</a>, November 1997.
|
|
|
|
[<a name="ref-RFC4510" id="ref-RFC4510">RFC4510</a>] Zeilenga, K., "Lightweight Directory Access Protocol
|
|
(LDAP): Technical Specification Road Map", <a href="http://tools.ietf.org/html/rfc4510">RFC 4510</a>,
|
|
June 2006.
|
|
|
|
Author's Address
|
|
|
|
Cyrus Daboo
|
|
Apple, Inc.
|
|
1 Infinite Loop
|
|
Cupertino, CA 95014
|
|
USA
|
|
|
|
EMail: cyrus@daboo.name
|
|
URI: <a href="http://www.apple.com/">http://www.apple.com/</a>
|
|
|
|
|
|
|
|
|
|
|
|
Daboo Standards Track [Page 48]
|
|
</pre><pre class="newpage">
|
|
</pre><br><span class="noprint"><small><small>Html markup produced by rfcmarkup 1.96, available from <a href="http://tools.ietf.org/tools/rfcmarkup/">http://tools.ietf.org/tools/rfcmarkup/</a> </small></small></span></body><style type="text/css" style="display: none !important; ">/*This block of style rules is inserted by AdBlock*/#RadAd_Skyscraper,#bbccom_leaderboard,#center_banner,#footer_adcode,#hbBHeaderSpon,#hiddenHeaderSpon,#navbar_adcode,#rightAds,#rightcolumn_adcode,#top-advertising,#topMPU,#tracker_advertorial,.ad-now,.dfpad,.prWrap,[id^="ad_block"],[id^="adbrite"],[id^="dclkAds"],[id^="ew"][id$="_bannerDiv"],[id^="konaLayer"],[src*="sixsigmatraffic.com"],a.kLink span[id^="preLoadWrap"].preLoadWrap,a[href^="http://ad."][href*=".doubleclick.net/"],a[href^="http://adserver.adpredictive.com"],div#adxLeaderboard,div#dir_ads_site,div#FFN_Banner_Holder,div#FFN_imBox_Container,div#p360-format-box,div#rm_container,div#tads table[align="center"][width="100%"],div#tooltipbox[class^="itxt"],div[class^="dms_ad_IDS"],div[id^="adKontekst_"],div[id^="google_ads_div"],div[id^="kona_"][id$="_wrapper"],div[id^="sponsorads"],div[id^="y5_direct"],embed[flashvars*="AdID"],iframe.chitikaAdBlock,iframe[id^="dapIfM"],iframe[id^="etarget"][id$="banner"],iframe[name^="AdBrite"],iframe[name^="google_ads_"],img[src^="http://cdn.adnxs.com"],ispan#ab_pointer,object#flashad,object#ve_threesixty_swf[name="ve_threesixty_swf"],script[src="//pagead2.googleadservices.com/pagead/show_ads.js"] + ins > ins > iframe,script[src="http://pagead2.googlesyndication.com/pagead/show_ads.js"] + ins > ins > iframe,table[cellpadding="0"][width="100%"] > * > * > * > div[id^="tpa"],#A9AdsMiddleBoxTop,#A9AdsOutOfStockWidgetTop,#A9AdsServicesWidgetTop,#ADSLOT_1,#ADSLOT_2,#ADSLOT_3,#ADSLOT_4,#ADSLOT_SKYSCRAPER,#ADVERTISE_HERE_ROW,#AD_CONTROL_22,#AD_ROW,#AD_newsblock,#ADgoogle_newsblock,#ADsmallWrapper,#Ad1,#Ad160x600,#Ad2,#Ad300x250,#Ad3Left,#Ad3Right,#Ad3TextAd,#AdA,#AdArea,#AdBanner_F1,#AdBar,#AdBar1,#AdBox2,#AdC,#AdContainer,#AdContainerTop,#AdContentModule_F,#AdDetails_GoogleLinksBottom,#AdDetails_InsureWith,#AdE,#AdF,#AdFrame4,#AdG,#AdH,#AdHeader,#AdI,#AdJ,#AdLeaderboardBottom,#AdLeaderboardTop,#AdMiddle,#AdMobileLink,#AdPopUp,#AdRectangle,#AdSenseDiv,#AdServer,#AdShowcase_F1,#AdSky23,#AdSkyscraper,#AdSpacing,#AdSponsor_SF,#AdSubsectionShowcase_F1,#AdTargetControl1_iframe,#AdText,#AdTop,#AdTopLeader,#Ad_BelowContent,#Ad_Block,#Ad_Center1,#Ad_Right1,#Ad_RightBottom,#Ad_RightTop,#Ad_Top,#Adbanner,#Adrectangle,#Ads,#AdsContent,#AdsRight,#AdsWrap,#Ads_BA_CAD,#Ads_BA_CAD2,#Ads_BA_CAD_box,#Ads_BA_SKY,#Ads_CAD,#Ads_OV_BS,#Ads_Special,#AdvertMPU23b,#AdvertPanel,#AdvertiseFrame,#Advertisement,#Advertisements,#Advertorial,#Advertorials,#AdvertsBottom,#AdvertsBottomR,#BANNER_160x600,#BANNER_300x250,#BANNER_728x90,#BannerAd,#BannerAdvert,#BigBoxAd,#BodyAd,#BotAd,#Bottom468x60AD,#ButtonAd,#CompanyDetailsNarrowGoogleAdsPresentationControl,#CompanyDetailsWideGoogleAdsPresentationControl,#ContentAd,#ContentAd1,#ContentAd2,#ContentAdPlaceHolder1,#ContentAdPlaceHolder2,#ContentAdXXL,#ContentPolepositionAds_Result,#CornerAd,#DartAd300x250,#DivAdEggHeadCafeTopBanner,#FIN_videoplayer_300x250ad,#FooterAd,#FooterAdContainer,#GoogleAd1,#GoogleAd2,#GoogleAd3,#GoogleAdsPlaceHolder,#GoogleAdsPresentationControl,#GoogleAdsense,#Google_Adsense_Main,#HEADERAD,#HOME_TOP_RIGHT_BOXAD,#HeaderAD,#HeaderAdsBlock,#HeaderAdsBlockFront,#HeaderBannerAdSpacer,#HeaderTextAd,#HeroAd,#HomeAd1,#HouseAd,#ID_Ad_Sky,#JobsearchResultsAds,#Journal_Ad_125,#Journal_Ad_300,#JuxtapozAds,#KH-contentAd,#LargeRectangleAd,#LeftAd,#LeftAd1,#LeftAdF1,#LeftAdF2,#LftAd,#LoungeAdsDiv,#LowerContentAd,#MainSponsoredLinks,#Nightly_adContainer,#NormalAdModule,#OpenXAds,#OverrideAdArea,#PREFOOTER_LEFT_BOXAD,#PREFOOTER_RIGHT_BOXAD,#PageLeaderAd,#RelevantAds,#RgtAd1,#RightAd,#RightBottom300x250AD,#RightNavTopAdSpot,#RightSponsoredAd,#SectionAd300-250,#SectionSponsorAd,#SideAdMpu,#SidebarAdContainer,#SkyAd,#SpecialAds,#SponsoredAd,#SponsoredLinks,#TL_footer_advertisement,#TOP_ADROW,#TOP_RIGHT_BOXAD,#Tadspacefoot,#Tadspacehead,#Tadspacemrec,#TextLinkAds,#ThreadAd,#Top468x60AD,#TopAd,#TopAdBox,#TopAdContainer,#TopAdDiv,#TopAdPos,#VM-MPU-adspace,#VM-footer-adspace,#VM-header-adspace,#VM-header-adwrap,#XEadLeaderboard,#XEadSkyscraper,#YahooAdParentContainer,#_ads,#abHeaderAdStreamer,#about_adsbottom,#abovepostads,#ad-120x600-sidebar,#ad-120x60Div,#ad-160x600,#ad-160x600-sidebar,#ad-250,#ad-250x300,#ad-300,#ad-300x250,#ad-300x250-sidebar,#ad-300x250Div,#ad-300x60-1,#ad-376x280,#ad-728,#ad-728x90,#ad-728x90-leaderboard-top,#ad-728x90-top0,#ad-ads,#ad-article,#ad-banner,#ad-banner-1,#ad-bigbox,#ad-billboard-bottom,#ad-block-125,#ad-bottom,#ad-bottom-wrapper,#ad-box,#ad-box-first,#ad-box-second,#ad-boxes,#ad-bs,#ad-buttons,#ad-colB-1,#ad-column,#ad-container,#ad-content,#ad-contentad,#ad-first-post,#ad-flex-first,#ad-footer,#ad-footprint-160x600,#ad-frame,#ad-front-footer,#ad-front-sponsoredlinks,#ad-fullbanner2,#ad-globalleaderboard,#ad-halfpage,#ad-header,#ad-header-728x90,#ad-horizontal-header,#ad-img,#ad-inner,#ad-label,#ad-leaderboard,#ad-leaderboard-bottom,#ad-leaderboard-container,#ad-leaderboard-spot,#ad-leaderboard-top,#ad-left,#ad-left-sidebar-ad-1,#ad-left-sidebar-ad-2,#ad-left-sidebar-ad-3,#ad-links-content,#ad-list-row,#ad-lrec,#ad-medium,#ad-medium-rectangle,#ad-medrec,#ad-middlethree,#ad-middletwo,#ad-module,#ad-mpu,#ad-mpu1-spot,#ad-mpu2,#ad-mpu2-spot,#ad-north,#ad-one,#ad-placard,#ad-placeholder,#ad-rectangle,#ad-right,#ad-right-sidebar-ad-1,#ad-right-sidebar-ad-2,#ad-righttop,#ad-row,#ad-side,#ad-side-text,#ad-sidebar,#ad-sky,#ad-skyscraper,#ad-slug-wrapper,#ad-small-banner,#ad-space,#ad-special,#ad-splash,#ad-sponsors,#ad-spot,#ad-squares,#ad-target,#ad-target-Leaderbord,#ad-teaser,#ad-text,#ad-top,#ad-top-banner,#ad-top-text-low,#ad-top-wrap,#ad-tower,#ad-trailerboard-spot,#ad-two,#ad-typ1,#ad-unit,#ad-west,#ad-wrap,#ad-wrap-right,#ad-wrapper,#ad-wrapper1,#ad-yahoo-simple,#ad-zone-1,#ad-zone-2,#ad-zone-inline,#ad01,#ad02,#ad1006,#ad11,#ad125BL,#ad125BR,#ad125TL,#ad125TR,#ad125x125,#ad160x600,#ad160x600right,#ad1Sp,#ad2,#ad2Sp,#ad3,#ad300,#ad300-250,#ad300X250,#ad300_x_250,#ad300x100Middle,#ad300x150,#ad300x250,#ad300x250Module,#ad300x60,#ad300x600,#ad300x600_callout,#ad336,#ad336x280,#ad375x85,#ad4,#ad468,#ad468x60,#ad468x60_top,#ad526x250,#ad600,#ad7,#ad728,#ad728Mid,#ad728Top,#ad728Wrapper,#ad728top,#ad728x90,#ad728x90_1,#ad90,#adBadges,#adBanner,#adBanner10,#adBanner120x600,#adBanner160x600,#adBanner2,#adBanner3,#adBanner336x280,#adBanner4,#adBanner728,#adBanner9,#adBannerTable,#adBannerTop,#adBar,#adBelt,#adBlock125,#adBlockTop,#adBlocks,#adBottbanner,#adBox,#adBox11,#adBox16,#adBox350,#adBox390,#adCirc300X200,#adCirc_620_100,#adCol,#adColumn,#adCompanionSubstitute,#adComponentWrapper,#adContainer,#adContainer_1,#adContainer_2,#adContainer_3,#adDiv,#adDiv300,#adDiv728,#adFiller,#adFps,#adFtofrs,#adGallery,#adGoogleText,#adGroup1,#adHeader,#adHeaderTop,#adIsland,#adL,#adLB,#adLabel,#adLayer,#adLeader,#adLeaderTop,#adLeaderboard,#adMPU,#adMediumRectangle,#adMiddle0Frontpage,#adMiniPremiere,#adMonster1,#adOuter,#adP,#adPlaceHolderRight,#adPlacer,#adPosOne,#adRight,#adRight2,#adSPLITCOLUMNTOPRIGHT,#adSenseModule,#adSenseWrapper,#adServer_marginal,#adSidebar,#adSidebarSq,#adSky,#adSkyscraper,#adSlider,#adSpace,#adSpace0,#adSpace1,#adSpace10,#adSpace11,#adSpace12,#adSpace13,#adSpace14,#adSpace15,#adSpace16,#adSpace17,#adSpace18,#adSpace19,#adSpace2,#adSpace20,#adSpace21,#adSpace22,#adSpace23,#adSpace24,#adSpace25,#adSpace3,#adSpace300_ifrMain,#adSpace4,#adSpace5,#adSpace6,#adSpace7,#adSpace8,#adSpace9,#adSpace_footer,#adSpace_right,#adSpace_top,#adSpacer,#adSpecial,#adSplotlightEm,#adSpot-Leader,#adSpot-banner,#adSpot-island,#adSpot-mrec1,#adSpot-sponsoredlinks,#adSpot-textbox1,#adSpot-widestrip,#adSpotAdvertorial,#adSpotIsland,#adSpotSponsoredLinks,#adSquare,#adStaticA,#adStrip,#adSuperAd,#adSuperPremiere,#adSuperSkyscraper,#adSuperbanner,#adTableCell,#adTag1,#adTag2,#adText,#adTextCustom,#adTextLink,#adText_container,#adTile,#adTop,#adTopContent,#adTopbanner,#adTopboxright,#adTower,#adUnit,#adWrapper,#adZoneTop,#ad_1,#ad_130x250_inhouse,#ad_160x160,#ad_160x600,#ad_190x90,#ad_2,#ad_3,#ad_300,#ad_300_250,#ad_300_250_1,#ad_300a,#ad_300b,#ad_300c,#ad_300x100_m_c,#ad_300x250,#ad_300x250_content_column,#ad_300x250_m_c,#ad_300x250m,#ad_300x90,#ad_4,#ad_468_60,#ad_468x60,#ad_5,#ad_728_foot,#ad_728x90,#ad_728x90_container,#ad_940,#ad_984,#ad_A,#ad_B,#ad_Banner,#ad_C,#ad_C2,#ad_D,#ad_E,#ad_F,#ad_G,#ad_H,#ad_I,#ad_J,#ad_K,#ad_L,#ad_M,#ad_N,#ad_O,#ad_P,#ad_YieldManager-300x250,#ad_YieldManager-728x90,#ad_after_navbar,#ad_anchor,#ad_area,#ad_banner,#ad_banner_top,#ad_banners,#ad_bar,#ad_bellow_post,#ad_bigsize_wrapper,#ad_block_1,#ad_block_2,#ad_bottom,#ad_box,#ad_box_colspan,#ad_box_top,#ad_branding,#ad_bs_area,#ad_buttons,#ad_center_monster,#ad_circ300x250,#ad_cna2,#ad_cont,#ad_container,#ad_container_marginal,#ad_container_side,#ad_container_sidebar,#ad_container_top,#ad_content_top,#ad_content_wrap,#ad_feature,#ad_firstpost,#ad_footer,#ad_front_three,#ad_fullbanner,#ad_gallery,#ad_global_header,#ad_h3,#ad_haha_1,#ad_haha_4,#ad_halfpage,#ad_head,#ad_header,#ad_holder,#ad_horizontal,#ad_horseshoe_left,#ad_horseshoe_right,#ad_horseshoe_spacer,#ad_horseshoe_top,#ad_hotpots,#ad_in_arti,#ad_island,#ad_label,#ad_large_rectangular,#ad_lastpost,#ad_layer2,#ad_leader,#ad_leaderBoard,#ad_leaderboard,#ad_leaderboard728x90,#ad_leaderboard_top,#ad_left,#ad_lnk,#ad_lrec,#ad_lwr_square,#ad_main,#ad_medium_rectangle,#ad_medium_rectangular,#ad_mediumrectangle,#ad_menu_header,#ad_message,#ad_middle,#ad_most_pop_234x60_req_wrapper,#ad_mpu,#ad_mpu300x250,#ad_mpuav,#ad_mrcontent,#ad_newsletter,#ad_overlay,#ad_play_300,#ad_rect,#ad_rect_body,#ad_rect_bottom,#ad_rectangle,#ad_rectangle_medium,#ad_related_links_div,#ad_related_links_div_program,#ad_replace_div_0,#ad_replace_div_1,#ad_report_leaderboard,#ad_report_rectangle,#ad_results,#ad_right,#ad_right_main,#ad_ros_tower,#ad_rr_1,#ad_sec,#ad_sec_div,#ad_sgd,#ad_sidebar,#ad_sidebar1,#ad_sidebar2,#ad_sidebar3,#ad_sky,#ad_skyscraper,#ad_skyscraper160x600,#ad_skyscraper_text,#ad_slot_leaderboard,#ad_slot_livesky,#ad_slot_sky_top,#ad_space,#ad_square,#ad_ss,#ad_table,#ad_term_bottom_place,#ad_text:not(textarea),#ad_thread_first_post_content,#ad_top,#ad_top_holder,#ad_tp_banner_1,#ad_tp_banner_2,#ad_txt,#ad_unit,#ad_vertical,#ad_wide,#ad_wide_box,#ad_widget,#ad_window,#ad_wrap,#ad_wrapper,#adaptvcompanion,#adbForum,#adbanner,#adbar,#adbig,#adbnr,#adboard,#adbody,#adbottom,#adbox,#adbox1,#adbox2,#adbutton,#adclear,#adcode,#adcode1,#adcode2,#adcode3,#adcode4,#adcolumnwrapper,#adcontainer,#adcontainer1,#adcontainerRight,#adcontainsm,#adcontent,#adcontent1,#adcontrolPushSite,#add_ciao2,#addbottomleft,#addiv-bottom,#addiv-top,#adfooter,#adfooter_728x90,#adframe:not(frameset),#adhead,#adhead_g,#adheader,#adhome,#adiframe1_iframe,#adiframe2_iframe,#adiframe3_iframe,#adimg,#adition_content_ad,#adlabel,#adlabelFooter,#adlayerContainer,#adlayerad,#adleaderboard,#adleaderboard_flex,#adleaderboardb,#adleaderboardb_flex,#adleft,#adlinks,#adlinkws,#adlrec,#admanager_leaderboard,#admid,#admiddle3center,#admiddle3left,#adposition,#adposition-C,#adposition-FPMM,#adposition1,#adposition2,#adposition3,#adposition4,#adrectangle,#adrectanglea,#adrectanglea_flex,#adrectangleb,#adrectangleb_flex,#adrig,#adright,#adright2,#adrighthome,#ads-468,#ads-area,#ads-block,#ads-bot,#ads-bottom,#ads-col,#ads-dell,#ads-horizontal,#ads-indextext,#ads-leaderboard1,#ads-lrec,#ads-menu,#ads-middle,#ads-prices,#ads-rhs,#ads-right,#ads-sponsored-boxes,#ads-top,#ads-vers7,#ads-wrapper,#ads120,#ads160left,#ads2,#ads300,#ads300-250,#ads300Bottom,#ads300Top,#ads315,#ads336x280,#ads7,#ads728bottom,#ads728top,#ads790,#adsContent,#adsDisplay,#adsHeader,#adsID,#ads_160,#ads_300,#ads_728,#ads_banner,#ads_belowforumlist,#ads_belownav,#ads_bottom,#ads_bottom_inner,#ads_bottom_outer,#ads_box,#ads_button,#ads_catDiv,#ads_container,#ads_footer,#ads_fullsize,#ads_header,#ads_html1,#ads_html2,#ads_inner,#ads_lb,#ads_medrect,#ads_notice,#ads_right,#ads_right_sidebar,#ads_sidebar_roadblock,#ads_space,#ads_text,#ads_top,#ads_watch_top_square,#ads_zone27,#adsbottom,#adsbox,#adsbox-left,#adsbox-right,#adscolumn,#adsd_contentad_r1,#adsd_contentad_r2,#adsd_contentad_r3,#adsd_topbanner,#adsd_txt_sky,#adsdiv,#adsense,#adsense-2,#adsense-header,#adsense-tag,#adsense-text,#adsense03,#adsense04,#adsense05,#adsense1,#adsenseLeft,#adsenseOne,#adsenseWrap,#adsense_article_left,#adsense_block,#adsense_box,#adsense_box_video,#adsense_inline,#adsense_leaderboard,#adsense_overlay,#adsense_placeholder_2,#adsenseheader,#adsensetopplay,#adsensewidget-3,#adserv,#adshometop,#adsimage,#adskinlink,#adsky,#adskyscraper,#adslider,#adslot,#adsmiddle,#adsonar,#adspace,#adspace-1,#adspace-300x250,#adspace300x250,#adspaceBox,#adspaceBox300,#adspace_header,#adspace_leaderboard,#adspacer,#adsponsorImg,#adspot,#adspot-1,#adspot-149x170,#adspot-1x4,#adspot-2,#adspot-295x60,#adspot-2a,#adspot-2b,#adspot-300x110-pos-1,#adspot-300x125,#adspot-300x250-pos-1,#adspot-300x250-pos-2,#adspot-468x60-pos-2,#adspot-a,#adspot300x250,#adspot_220x90,#adspot_300x250,#adspot_468x60,#adspot_728x90,#adsquare,#adsright,#adst,#adstop,#adt,#adtab,#adtag_right_side,#adtagfooter,#adtagheader,#adtagrightcol,#adtaily-widget-light,#adtech_googleslot_03c,#adtech_takeover,#adtext,#adtop,#adtophp,#adtxt,#adv-leaderboard,#adv-masthead,#adv-mpux,#adv300bottom,#adv300top,#adv728,#adv_google_300,#adv_google_728,#adv_sky,#adv_top_banner_wrapper,#adver1,#adver2,#adver3,#adver4,#adver5,#adver6,#adver7,#advert-1,#advert-120,#advert-boomer,#advert-display,#advert-header,#advert-leaderboard,#advert-links-bottom,#advert-skyscraper,#advert-top,#advert1,#advertBanner,#advertContainer,#advertDB,#advertRight,#advertSection,#advert_125x125,#advert_250x250,#advert_box,#advert_home01,#advert_leaderboard,#advert_lrec_format,#advert_mid,#advert_mpu,#advert_mpu_1,#advert_right_skyscraper,#advert_sky,#advertbox,#advertbox2 { display:none !important; } #advertbox3,#advertbox4,#adverthome,#advertise,#advertise-here-sidebar,#advertise-now,#advertise1,#advertiseHere,#advertisement160x600,#advertisement728x90,#advertisementLigatus,#advertisementPrio2,#advertisementRight,#advertisementRightcolumn0,#advertisementRightcolumn1,#advertisementsarticle,#advertiser-container,#advertiserLinks,#advertisers,#advertising,#advertising-banner,#advertising-caption,#advertising-container,#advertising-control,#advertising-skyscraper,#advertising-top,#advertising2,#advertisingModule160x600,#advertisingModule728x90,#advertisingTopWrapper,#advertising_btm,#advertising_contentad,#advertising_horiz_cont,#advertisment,#advertismentElementInUniversalbox,#advertorial,#advertorial_red_listblock,#adverts,#adverts-top-container,#adverts-top-left,#adverts-top-middle,#adverts-top-right,#advertsingle,#advertspace,#advheader,#advt,#advtext,#advtop,#adwhitepaperwidget,#adwin_rec,#adwith,#adwords-4-container,#adwrapper,#adxBigAd,#adxMiddle5,#adxSponLink,#adxSponLinkA,#adxtop,#adz,#adzbanner,#adzerk,#adzerk1,#adzone,#adzoneBANNER,#adzoneheader,#affinityBannerAd,#after-content-ads,#after-header-ad-left,#after-header-ad-right,#after-header-ads,#agi-ad300x250,#agi-ad300x250overlay,#agi-sponsored,#alert_ads,#anchorAd,#annoying_ad,#ap_adframe,#ap_cu_overlay,#ap_cu_wrapper,#apiBackgroundAd,#apiTopAdWrap,#apmNADiv,#apolload,#araHealthSponsorAd,#area-adcenter,#area1ads,#article-ad,#article-ad-container,#article-box-ad,#articleAdReplacement,#articleLeftAdColumn,#articleSideAd,#article_ad,#article_ad_container,#article_box_ad,#articlead1,#articlead2,#asinglead,#atlasAdDivGame,#awds-nt1-ad,#babAdTop,#banner-300x250,#banner-ad,#banner-ad-container,#banner-ads,#banner250x250,#banner300x250,#banner468x60,#banner728x90,#bannerAd,#bannerAdTop,#bannerAdWrapper,#bannerAd_ctr,#banner_300_250,#banner_ad,#banner_ad_footer,#banner_ad_module,#banner_admicro,#banner_ads,#banner_content_ad,#banner_topad,#bannerad,#bannerad2,#baseAdvertising,#basket-adContainer,#bbccom_mpu,#bbo_ad1,#bg-footer-ads,#bg-footer-ads2,#bg_YieldManager-160x600,#bg_YieldManager-300x250,#bg_YieldManager-728x90,#bigAd,#bigBoxAd,#bigad300outer,#bigadbox,#bigadframe,#bigadspot,#billboard_ad,#block-ad_cube-1,#block-openads-0,#block-openads-1,#block-openads-2,#block-openads-3,#block-openads-4,#block-openads-5,#block-thewrap_ads_250x300-0,#block_advert,#blog-ad,#blog_ad_content,#blog_ad_opa,#blog_ad_right,#blog_ad_top,#blox-big-ad,#blox-big-ad-bottom,#blox-big-ad-top,#blox-halfpage-ad,#blox-tile-ad,#blox-tower-ad,#body_728_ad,#book-ad,#botad,#bott_ad2,#bott_ad2_300,#bottom-ad,#bottom-ad-container,#bottom-ad-wrapper,#bottom-ads,#bottomAd,#bottomAdCCBucket,#bottomAdContainer,#bottomAdSense,#bottomAdSenseDiv,#bottomAds,#bottomContentAd,#bottomRightAd,#bottomRightAdSpace,#bottom_ad,#bottom_ad_area,#bottom_ad_unit,#bottom_ads,#bottom_banner_ad,#bottom_overture,#bottom_sponsor_ads,#bottom_sponsored_links,#bottom_text_ad,#bottomad,#bottomads,#bottomadsense,#bottomadwrapper,#bottomleaderboardad,#box-ad-section,#box-content-ad,#box-googleadsense-1,#box-googleadsense-r,#box1ad,#boxAd300,#boxAdContainer,#boxAdvert,#box_ad,#box_advertisment,#box_mod_googleadsense,#boxad1,#boxad2,#boxad3,#boxad4,#boxad5,#bpAd,#bps-header-ad-container,#btnAds,#btnads,#btr_horiz_ad,#burn_header_ad,#button-ads-horizontal,#button-ads-vertical,#buttonAdWrapper1,#buttonAdWrapper2,#buttonAds,#buttonAdsContainer,#button_ad_container,#button_ad_wrap,#button_ads,#buttonad,#buy-sell-ads,#c4ad-Middle1,#c_ad_sb,#c_ad_sky,#caAdLarger,#catad,#category-ad,#cellAd,#channel_ad,#channel_ads,#ciHomeRHSAdslot,#circ_ad,#closeable-ad,#cmn_ad_box,#cmn_toolbar_ad,#cnnAboveFoldBelowAd,#cnnRR336ad,#cnnSponsoredPods,#cnnTopAd,#cnnVPAd,#col3_advertising,#colAd,#colRightAd,#collapseobj_adsection,#column4-google-ads,#comments-ad-container,#commercial_ads,#common_right_ad_wrapper,#common_right_lower_ad_wrapper,#common_right_lower_adspace,#common_right_lower_player_ad_wrapper,#common_right_lower_player_adspace,#common_right_player_ad_wrapper,#common_right_player_adspace,#common_right_right_adspace,#common_top_adspace,#comp_AdsLeaderboardTop,#companion-ad,#companionAdDiv,#companionad,#container-righttopads,#container-topleftads,#containerLocalAds,#containerLocalAdsInner,#containerMrecAd,#containerSqAd,#content-ad-header,#content-header-ad,#content-left-ad,#content-right-ad,#contentAd,#contentBoxad,#contentTopAds2,#content_ad,#content_ad_square,#content_ad_top,#content_ads_content,#content_box_300body_sponsoredoffers,#content_box_adright300_google,#content_lower_center_right_ad,#content_mpu,#contentad,#contentad_imtext,#contentad_right,#contentads,#contentinlineAd,#contents_post_ad,#contextad,#contextual-ads,#contextual-ads-block,#contextualad,#coverADS,#coverads,#ctl00_Adspace_Top_Height,#ctl00_BottomAd,#ctl00_ContentMain_BanManAd468_BanManAd,#ctl00_ContentPlaceHolder1_blockAdd_divAdvert,#ctl00_ContentRightColumn_RightColumn_Ad1_BanManAd,#ctl00_ContentRightColumn_RightColumn_Ad2_BanManAd,#ctl00_ContentRightColumn_RightColumn_PremiumAd1_ucBanMan_BanManAd,#ctl00_LHTowerAd,#ctl00_LeftHandAd,#ctl00_MasterHolder_IBanner_adHolder,#ctl00_TopAd,#ctl00_TowerAd,#ctl00_VBanner_adHolder,#ctl00__Content__RepeaterReplies_ctl03__AdReply,#ctl00_abot_bb,#ctl00_adFooter,#ctl00_advert_LargeMPU_div_AdPlaceHolder,#ctl00_atop_bt,#ctl00_cphMain_hlAd1,#ctl00_cphMain_hlAd2,#ctl00_cphMain_hlAd3,#ctl00_ctl00_MainPlaceHolder_itvAdSkyscraper,#ctl00_ctl00_ctl00_Main_Main_PlaceHolderGoogleTopBanner_MPTopBannerAd,#ctl00_ctl00_ctl00_Main_Main_SideBar_MPSideAd,#ctl00_dlTilesAds,#ctl00_m_skinTracker_m_adLBL,#ctl00_phCrackerMain_ucAffiliateAdvertDisplayMiddle_pnlAffiliateAdvert,#ctl00_phCrackerMain_ucAffiliateAdvertDisplayRight_pnlAffiliateAdvert,#ctl00_topAd,#ctrlsponsored,#cubeAd,#cube_ads,#cube_ads_inner,#cubead,#cubead-2,#currencies-sponsored-by,#custom-advert-leadboard-spacer,#dAdverts,#dItemBox_ads,#dart_160x600,#dc-display-right-ad-1,#dcadSpot-Leader,#dcadSpot-LeaderFooter,#dcol-sponsored,#defer-adright,#detail_page_vid_topads,#div-gpt-ad-1,#div-gpt-ad-2,#div-gpt-ad-3,#div-gpt-ad-4,#divAd,#divAdBox,#divAdWrapper,#divAdvertisement,#divBottomad1,#divBottomad2,#divDoubleAd,#divLeftAd12,#divLeftRecAd,#divMenuAds,#divWNAdHeader,#divWrapper_Ad,#div_ad_leaderboard,#div_video_ads,#dlads,#dni-header-ad,#dnn_adLeaderBoard2008,#dnn_ad_banner,#download_ads,#dp_ads1,#ds-mpu,#ds_ad_north_leaderboard,#editorsmpu,#em_ad_superbanner,#embedded-ad,#evotopTen_advert,#ex-ligatus,#exads,#extra-search-ads,#fb_adbox,#fb_rightadpanel,#featAds,#featuread,#featured-advertisements,#featuredAdContainer2,#featuredAds,#featured_ad_links,#feed_links_ad_container,#file_sponsored_link,#first-300-ad,#first-adlayer,#first_ad_unit,#firstad,#fl_hdrAd,#flash_ads_1,#flexiad,#floatingAd,#floating_ad_container,#foot-ad-1,#footad,#footer-ad,#footer-ads,#footer-advert,#footer-adverts,#footer-sponsored,#footerAd,#footerAdDiv,#footerAds,#footerAdvertisement,#footerAdverts,#footer_ad,#footer_ad_01,#footer_ad_block,#footer_ad_container,#footer_ad_modules,#footer_ads,#footer_adspace,#footer_text_ad,#footerad,#footerads,#footeradsbox,#forum_top_ad,#four_ads,#fpad1,#fpad2,#fpv_companionad,#fr_ad_center,#frame_admain,#frnAdSky,#frnBannerAd,#frnContentAd,#front_advert,#front_mpu,#ft-ad,#ft-ad-1,#ft-ad-container,#ft_mpu,#fullsizebanner_468x60,#fusionad,#fw-advertisement,#g_ad,#g_adsense,#ga_300x250,#gad,#gad2,#gad3,#gad5,#galleries-tower-ad,#gallery-ad,#gallery-ad-m0,#gallery-random-ad,#gallery_ads,#game-info-ad,#gamead,#gameads,#gasense,#gglads,#global_header_ad_area,#gm-ad-lrec,#gmi-ResourcePageAd,#gmi-ResourcePageLowerAd,#goad1,#goads,#gooadtop,#google-ad,#google-ad-art,#google-ad-table-right,#google-ad-tower,#google-ads,#google-ads-bottom,#google-ads-header,#google-ads-left-side,#google-adsense-mpusize,#googleAd,#googleAdArea,#googleAds,#googleAdsSml,#googleAdsense,#googleAdsenseBanner,#googleAdsenseBannerBlog,#googleAdwordsModule,#googleAfcContainer,#googleSearchAds,#googleShoppingAdsRight,#googleShoppingAdsTop,#googleSubAds,#google_ad,#google_ad_container,#google_ad_inline,#google_ad_test,#google_ads,#google_ads_aCol,#google_ads_frame1,#google_ads_frame1_anchor,#google_ads_frame2,#google_ads_frame2_anchor,#google_ads_frame3,#google_ads_frame3_anchor,#google_ads_test,#google_ads_top,#google_adsense_home_468x60_1,#googlead,#googlead-sidebar-middle,#googlead-sidebar-top,#googlead2,#googleadbox,#googleads,#googleads_mpu_injection,#googleadsense,#googlesponsor,#gpt-ad-halfpage,#gpt-ad-rectangle1,#gpt-ad-rectangle2,#gpt-ad-skyscraper,#gpt-ad-story_rectangle3,#grid_ad,#gsyadrectangleload,#gsyadrightload,#gsyadtop,#gsyadtopload,#gtopadvts,#half-page-ad,#halfPageAd,#halfe-page-ad-box,#hd-ads,#hd-banner-ad,#hdtv_ad_ss,#head-ad,#head-ad-1,#headAd,#head_ad,#head_advert,#headad,#header-ad,#header-ad-left,#header-ad-rectangle-container,#header-ad-right,#header-ad2010,#header-ads,#header-adspace,#header-advert,#header-advertisement,#header-advertising,#header-adverts,#headerAd,#headerAdBackground,#headerAdContainer,#headerAdWrap,#headerAds,#headerAdsWrapper,#headerTopAd,#header_ad,#header_ad_728_90,#header_ad_container,#header_adcode,#header_ads,#header_advertisement_top,#header_flag_ad,#header_leaderboard_ad_container,#header_publicidad,#headerad,#headeradbox,#headerads,#headeradsbox,#headeradvertholder,#headeradwrap,#headline_ad,#headlinesAdBlock,#hiddenadAC,#hideads,#hl-sponsored-results,#hly_ad_side_bar_tower_left,#hly_inner_page_google_ad,#home-advert-module,#home-rectangle-ad,#home-top-ads,#homeMPU,#homeTopRightAd,#home_ad,#home_bottom_ad,#home_contentad,#home_feature_ad,#home_lower_center_right_ad,#home_mpu,#home_spensoredlinks,#homead,#homepage-ad,#homepageAdsTop,#homepageFooterAd,#homepage_right_ad,#homepage_right_ad_container,#homepage_top_ads,#hometop_234x60ad,#hor_ad,#horizad,#horizontal-banner-ad,#horizontal_ad,#horizontal_ad_top,#horizontalads,#hot-deals-ad,#houseAd,#hp-header-ad,#hp-mpu,#hp-right-ad,#hp-store-ad,#hpV2_300x250Ad,#hpV2_googAds,#hp_ad300x250,#ibt_local_ad728,#icePage_SearchLinks_AdRightDiv,#icePage_SearchLinks_DownloadToolbarAdRightDiv,#icePage_SearchResults_ads0_SponsoredLink,#icePage_SearchResults_ads1_SponsoredLink,#icePage_SearchResults_ads2_SponsoredLink,#icePage_SearchResults_ads3_SponsoredLink,#icePage_SearchResults_ads4_SponsoredLink,#idSponsoredresultend,#idSponsoredresultstart,#imu_ad_module,#in_serp_ad,#inadspace,#indexad,#inline-story-ad,#inlineAd,#inlinead,#inlinegoogleads,#inlist-ad-block,#inner-advert-row,#inner-top-ads,#innerpage-ad,#inside-page-ad,#insider_ad_wrapper,#instoryad,#instoryadtext,#instoryadwrap,#int-ad,#interstitial_ad_wrapper,#iqadtile8,#islandAd,#j_ad,#ji_medShowAdBox,#jmp-ad-buttons,#joead,#joead2,#ka_adRightSkyscraperWide,#ka_samplead,#kaufDA-widget,#kdz_ad1,#kdz_ad2,#keyadvertcontainer,#landing-adserver,#lapho-top-ad-1,#largead,#lateAd,#layerAds_layerDiv,#layerTLDADSERV,#layer_ad_content,#layer_ad_main,#layerad,#leader-board-ad,#leaderAd,#leaderAdContainer,#leader_ad,#leader_board_ad,#leaderad,#leaderad_section,#leaderboard-ad,#leaderboard-bottom-ad,#leaderboard_ad,#leaderboard_ad_gam,#left-ad-1,#left-ad-2,#left-ad-col,#left-ad-skin,#left-bottom-ad,#left-lower-adverts,#left-lower-adverts-container,#leftAdContainer,#leftAd_rdr,#leftAdvert,#leftSectionAd300-100,#left_ad,#left_adspace,#leftad,#leftads,#leftcolAd,#lg-banner-ad,#ligatus,#linkAds,#linkads,#live-ad,#logoAd,#longAdSpace,#long_advertisement,#lowerAdvertisementImg,#lowerads,#lowerthirdad,#lowertop-adverts,#lowertop-adverts-container,#lpAdPanel,#lrecad,#lsadvert-left_menu_1,#lsadvert-left_menu_2,#lsadvert-top,#mBannerAd,#main-ad,#main-ad160x600,#main-ad160x600-img,#main-ad728x90,#main-advert1,#main-advert2,#main-advert3,#main-bottom-ad,#main-tj-ad,#mainAd,#mainAdUnit,#mainAdvert,#main_ad,#main_rec_ad,#main_top_ad_container,#marketing-promo,#mastAd,#mastAdvert,#mastad,#mastercardAd,#masthead_ad,#masthead_topad,#medRecAd,#media_ad,#mediaplayer_adburner,#mediumAdvertisement,#medrectad,#menuAds,#menubanner-ad-content,#mi_story_assets_ad,#mid-ad300x250,#mid-table-ad,#midRightTextAds,#mid_ad_div,#mid_ad_title,#mid_mpu,#midadd,#midadspace,#middle-ad,#middle_ad,#middle_body_advertising,#middlead,#middleads,#midrect_ad,#midstrip_ad,#mini-ad,#mochila-column-right-ad-300x250,#mochila-column-right-ad-300x250-1,#module-google_ads,#module_ad,#module_box_ad,#module_sky_scraper,#monsterAd,#moogleAd,#moreads,#most_popular_ad,#motionAd,#mpu,#mpu-advert,#mpu-cont,#mpu300250,#mpuAd,#mpuDiv,#mpuSlot,#mpuWrapper,#mpuWrapperAd,#mpu_banner,#mpu_firstpost,#mpu_holder,#mpu_text_ad,#mpuad,#mpubox,#mr_banner_topad,#mrecAdContainer,#msAds,#ms_ad,#msad,#multiLinkAdContainer,#multi_ad,#my-ads,#myads_HeaderButton,#n_sponsor_ads,#namecom_ad_hosting_main,#narrow_ad_unit,#natadad300x250,#national_microlink_ads,#nationalad,#navi_banner_ad_780,#nba160PromoAd,#nba300Ad,#nbaGI300ad,#nbaHouseAnd600Ad,#nbaLeft600Ad,#nbaMidAds,#nbaVid300Ad,#nbcAd300x250,#new_topad,#newads,#news_advertorial_content,#news_advertorial_top,#ng_rtcol_ad,#noresults_ad_container,#noresultsads,#northad,#northbanner-advert,#northbanner-advert-container,#ns_ad1,#ns_ad2,#ns_ad3,#oanda_ads,#onespot-ads,#online_ad,#ovadsense,#p-googleadsense,#page-header-ad,#page-top-ad,#pageAds,#pageAdsDiv,#pageBannerAd,#page_ad,#page_content_top_ad,#pagelet_adbox,#pagelet_netego_ads,#pagelet_search_ads2,#panelAd,#pb_report_ad,#pcworldAdBottom,#pcworldAdTop,#pinball_ad,#player-below-advert,#player_ad,#player_ads,#pmad-in1,#pod-ad-video-page,#populate_ad_bottom,#populate_ad_left,#portlet-advertisement-left,#portlet-advertisement-right,#post-promo-ad,#post5_adbox,#post_ad,#premium_ad,#priceGrabberAd,#prime-ad-space,#print_ads,#printads,#product-adsense,#promo-ad,#promoAds,#ps-vertical-ads,#pub468x60,#publicidad,#pushdown_ad,#qm-ad-big-box,#qm-ad-sky,#qm-dvdad,#quigo_ad,#r1SoftAd,#rail_ad1,#rail_ad2,#realEstateAds,#rectAd,#rect_ad,#rectangle-ad,#rectangleAd,#rectangle_ad,#refine-300-ad,#region-node-advert,#region-top-ad,#relocation_ad_container,#rh-ad-container,#rh_tower_ad,#rhapsodyAd,#rhs_ads,#rhsadvert,#right-ad,#right-ad-col,#right-ad-skin,#right-ad-title,#right-ad1,#right-ads-3,#right-advert,#right-box-ad,#right-featured-ad,#right-mpu-1-ad-container,#right-uppder-adverts,#right-uppder-adverts-container,#rightAd,#rightAd300x250,#rightAd300x250Lower,#rightAdBar,#rightAdColumn,#rightAd_rdr,#rightAdsDiv,#rightColAd,#rightColumnMpuAd,#rightColumnSkyAd,#right_ad,#right_ad_wrapper,#right_ads,#right_advertisement,#right_advertising,#right_column_ad_container,#right_column_ads,#right_column_adverts,#right_column_internal_ad_container,#right_column_top_ad_unit,#rightad,#rightadContainer,#rightads,#rightadvertbar-doubleclickads,#rightbar-ad,#rightcolhouseads,#rightcolumn_300x250ad,#rightgoogleads,#rightinfoad,#rightside-ads,#rightside_ad,#righttop-adverts,#righttop-adverts-container,#rm_ad_text,#ros_ad,#rotatingads,#row2AdContainer,#rprightHeaderAd,#rr_MSads,#rt-ad,#rt-ad-top,#rt-ad468,#rtMod_ad,#rtmod_ad,#sAdsBox,#sb-ad-sq,#sb_ad_links,#sb_advert,#search-google-ads,#search-sponsored-links,#search-sponsored-links-top,#searchAdSenseBox,#searchAdSenseBoxAd,#searchAdSkyscraperBox,#search_ads,#search_result_ad,#sec_adspace,#second-adlayer,#secondBoxAdContainer,#secondrowads,#sect-ad-300x100,#sect-ad-300x250-2,#section-ad-1-728,#section-ad-300-250,#section-ad-4-160,#section-blog-ad,#section-container-ddc_ads,#section_advertisements,#section_advertorial_feature,#servfail-ads,#sew-ad1,#shoppingads,#show-ad,#showAd,#showad,#side-ad,#side-ad-container,#side-ads,#sideAd,#sideAd1,#sideAd2,#sideAdSub,#sideBarAd,#side_ad,#side_ad_wrapper,#side_ads_by_google,#side_sky_ad,#sidead,#sideads,#sideadtop-to,#sidebar-125x125-ads,#sidebar-125x125-ads-below-index,#sidebar-ad,#sidebar-ad-boxes,#sidebar-ad-space,#sidebar-ad-wrap,#sidebar-ad3,#sidebar-ads,#sidebar-adv,#sidebar2ads,#sidebar_ad,#sidebar_ad_widget,#sidebar_ads,#sidebar_ads_180,#sidebar_sponsoredresult_body,#sidebar_txt_ad_links,#sidebarad,#sidebaradpane,#sidebarads,#sidebaradver_advertistxt,#sideline-ad,#single-mpu { display:none !important; } #singlead,#site-ad-container,#site-leaderboard-ads,#site_top_ad,#sitead,#sky-ad,#skyAd,#skyAdContainer,#skyScrapperAd,#skyWrapperAds,#sky_ad,#sky_advert,#skyads,#skyadwrap,#skyline_ad,#skyscrapeAd,#skyscraper-ad,#skyscraperAd,#skyscraperAdContainer,#skyscraper_ad,#skyscraper_advert,#skyscraperad,#slide_ad,#sliderAdHolder,#slideshow_ad_300x250,#sm-banner-ad,#small_ad,#small_ad_banners_vertical,#small_ads,#smallerAd,#some-ads,#some-more-ads,#specialAd_one,#specialAd_two,#specialadvertisingreport_container,#specials_ads,#speeds_ads,#speeds_ads_fstitem,#speedtest_mrec_ad,#sphereAd,#sponlink,#sponlinks,#sponsAds,#sponsLinks,#sponseredlinks,#sponsorAd1,#sponsorAd2,#sponsorAdDiv,#sponsorLinks,#sponsorTextLink,#sponsor_banderole,#sponsor_deals,#sponsored,#sponsored-ads,#sponsored-features,#sponsored-links,#sponsored-listings,#sponsored-resources,#sponsored1,#sponsoredBox1,#sponsoredBox2,#sponsoredLinks,#sponsoredList,#sponsoredResults,#sponsoredResultsWide,#sponsoredSiteMainline,#sponsoredSiteSidebar,#sponsored_ads_v4,#sponsored_container,#sponsored_content,#sponsored_game_row_listing,#sponsored_head,#sponsored_links,#sponsored_v12,#sponsoredads,#sponsoredlinks,#sponsoredlinks_cntr,#sponsoredlinkslabel,#sponsoredresults_top,#sponsoredwellcontainerbottom,#sponsoredwellcontainertop,#sponsorlink,#spotlightAds,#spotlightad,#sqAd,#squareAd,#squareAdSpace,#squareAds,#square_ad,#start_middle_container_advertisment,#sticky-ad,#stickyBottomAd,#story-90-728-area,#story-ad-a,#story-ad-b,#story-leaderboard-ad,#story-sponsoredlinks,#storyAd,#storyAdWrap,#storyad2,#subpage-ad-right,#subpage-ad-top,#swads,#synch-ad,#systemad_background,#tabAdvertising,#takeoverad,#tblAd,#tbl_googlead,#tcwAd,#td-GblHdrAds,#template_ad_leaderboard,#tertiary_advertising,#test_adunit_160_article,#text-ad,#text-ads,#text-link-ads,#textAd,#textAds,#text_ad,#text_ads,#text_advert,#textad,#textad3,#textad_block,#the-last-ad-standing,#thefooterad,#themis-ads,#tile-ad,#tmglBannerAd,#tmp2_promo_ad,#toolbarSlideUpAd,#top-ad,#top-ad-container,#top-ad-menu,#top-ads,#top-ads-tabs,#top-advertisement,#top-banner-ad,#top-search-ad-wrapper,#topAd,#topAd728x90,#topAdBanner,#topAdBox,#topAdContainer,#topAdSenseDiv,#topAdcontainer,#topAds,#topAdsContainer,#topAdvert,#topBannerAd,#topBannerAdContainer,#topContentAdTeaser,#topNavLeaderboardAdHolder,#topOverallAdArea,#topRightBlockAdSense,#topSponsoredLinks,#top_ad,#top_ad_area,#top_ad_banner,#top_ad_game,#top_ad_unit,#top_ad_wrapper,#top_ad_zone,#top_ads,#top_advertise,#top_advertising,#top_rectangle_ad,#top_right_ad,#top_wide_ad,#topad,#topad1,#topad2,#topad_left,#topad_right,#topadbar,#topadblock,#topaddwide,#topads,#topadsense,#topadspace,#topadwrap,#topadzone,#topbanner_ad,#topbannerad,#topbar-ad,#topcustomad,#topleaderboardad,#topnav-ad-shell,#topnavad,#toprightAdvert,#toprightad,#topsponsored,#toptextad,#tour300Ad,#tour728Ad,#tourSponsoredLinksContainer,#towerad,#ts-ad_module,#ttp_ad_slot1,#ttp_ad_slot2,#twogamesAd,#txfPageMediaAdvertVideo,#txt_link_ads,#txtads,#undergameAd,#upperAdvertisementImg,#upperMpu,#upper_small_ad,#upperad,#urban_contentad_1,#urban_contentad_2,#urban_contentad_article,#v_ad,#vert-ads,#vert_ad,#vert_ad_placeholder,#vertical_ad,#vertical_ads,#videoAd,#videoAdvert,#video_ads_overdiv,#video_advert2,#video_advert3,#video_cnv_ad,#video_overlay_ad,#videoadlogo,#viewads,#viewportAds,#viewvid_ad300x250,#wXcds12-ad,#wall_advert,#wallpaper-ad-link,#wallpaperAd_left,#wallpaperAd_right,#walltopad,#weblink_ads_container,#welcomeAdsContainer,#welcome_ad_mrec,#welcome_advertisement,#wf_ContentAd,#wf_FrontSingleAd,#wf_SingleAd,#wf_bottomContentAd,#wgtAd,#whatsnews_top_ad,#whitepaper-ad,#whoisRightAdContainer,#wide_ad_unit_top,#wideskyscraper_160x600_left,#wideskyscraper_160x600_right,#widget_Adverts,#widget_advertisement,#widgetwidget_adserve2,#wrapAdRight,#wrapAdTop,#wrapperAdsTopLeft,#wrapperAdsTopRight,#xColAds,#y-ad-units,#y708-ad-expedia,#y708-ad-lrec,#y708-ad-partners,#y708-ad-ysm,#y708-advertorial-marketplace,#yahoo-ads,#yahoo-sponsors,#yahooSponsored,#yahoo_ads,#yahoo_ads_2010,#yahoo_text_ad,#yahooad-tbl,#yan-sponsored,#yatadsky,#ybf-ads,#yfi_fp_ad_mort,#yfi_fp_ad_nns,#yfi_pf_ad_mort,#ygrp-sponsored-links,#ymap_adbanner,#yn-gmy-ad-lrec,#yreSponsoredLinks,#ysm_ad_iframe,#zoneAdserverMrec,#zoneAdserverSuper,.ADBAR,.ADPod,.AD_ALBUM_ITEMLIST,.AD_MOVIE_ITEM,.AD_MOVIE_ITEMLIST,.AD_MOVIE_ITEMROW,.ADbox,.Ad-300x100,.Ad-Container-976x166,.Ad-Header,.Ad-MPU,.Ad-Wrapper-300x100,.Ad1,.Ad120x600,.Ad160x600,.Ad160x600left,.Ad160x600right,.Ad2,.Ad247x90,.Ad300x,.Ad300x250,.Ad300x250L,.Ad728x90,.AdBorder,.AdBox,.AdBox7,.AdContainerBox308,.AdContainerModule,.AdHeader,.AdHere,.AdInfo,.AdInline,.AdMedium,.AdPlaceHolder,.AdProS728x90Container,.AdProduct,.AdRingtone,.AdSense,.AdSenseLeft,.AdSlot,.AdSpace,.AdTextSmallFont,.AdTitle,.AdUnit,.AdUnit300,.Ad_C,.Ad_D_Wrapper,.Ad_E_Wrapper,.Ad_Right,.Ads,.AdsBottom,.AdsBoxBottom,.AdsBoxSection,.AdsBoxTop,.AdsLinks1,.AdsLinks2,.AdsRec,.Advert,.Advert300x250,.AdvertMidPage,.AdvertiseWithUs,.Advertisement,.AdvertisementTextTag,.Advman_Widget,.ArticleAd,.ArticleInlineAd,.BCA_Advertisement,.BannerAd,.BigBoxAd,.BlockAd,.BlueTxtAdvert,.BottomAdContainer,.BottomAffiliate,.BoxAd,.CG_adkit_leaderboard,.CG_details_ad_dropzone,.CWReviewsProdInfoAd,.ComAread,.CommentAd,.ContentAd,.ContentAds,.DAWRadvertisement,.DeptAd,.DisplayAd,.FT_Ad,.FeaturedAdIndexAd,.FlatAds,.GOOGLE_AD,.GoogleAd,.GoogleAdSenseBottomModule,.GoogleAdSenseRightModule,.HPG_Ad_B,.HPNewAdsBannerDiv,.HPRoundedAd,.HomeContentAd,.IABAdSpace,.InArticleAd,.IndexRightAd,.LazyLoadAd,.LeftAd,.LeftButtonAdSlot,.LeftTowerAd,.M2Advertisement,.MD_adZone,.MOS-ad-hack,.MPU,.MPUHolder,.MPUTitleWrapperClass,.MREC_ads,.MiddleAd,.MiddleAdContainer,.MiddleAdvert,.NewsAds,.OAS,.OpaqueAdBanner,.OpenXad,.PU_DoubleClickAdsContent,.Post5ad,.Post8ad,.Post9ad,.RBboxAd,.RW_ad300,.RectangleAd,.RelatedAds,.Right300x250AD,.RightAd1,.RightAdvertiseArea,.RightAdvertisement,.RightGoogleAFC,.RightRailAd,.RightRailTop300x250Ad,.RightSponsoredAdTitle,.RightTowerAd,.STR_AdBlock,.SectionSponsor,.SideAdCol,.SidebarAd,.SidebarAdvert,.SitesGoogleAdsModule,.SkyAdContainer,.SponsoredAdTitle,.SponsoredContent,.SponsoredLinkItemTD,.SponsoredLinks,.SponsoredLinksGrayBox,.SponsoredLinksModule,.SponsoredLinksPadding,.SponsoredLinksPanel,.Sponsored_link,.SquareAd,.StandardAdLeft,.StandardAdRight,.TRU-onsite-ads-leaderboard,.TextAd,.TheEagleGoogleAdSense300x250,.TopAd,.TopAdContainer,.TopAdL,.TopAdR,.TopBannerAd,.UIWashFrame_SidebarAds,.UnderAd,.VerticalAd,.Video-Ad,.VideoAd,.WidgetAdvertiser,.a160x600,.a728x90,.ad-120x60,.ad-120x600,.ad-160,.ad-160x600,.ad-160x600x1,.ad-160x600x2,.ad-160x600x3,.ad-250,.ad-300,.ad-300-block,.ad-300-blog,.ad-300x100,.ad-300x250,.ad-300x250-first,.ad-300x250-right0,.ad-300x600,.ad-350,.ad-355x75,.ad-600,.ad-635x40,.ad-728,.ad-728x90,.ad-728x90-1,.ad-728x90-top0,.ad-728x90_forum,.ad-90x600,.ad-above-header,.ad-adlink-bottom,.ad-adlink-side,.ad-area,.ad-background,.ad-banner,.ad-banner-smaller,.ad-bigsize,.ad-block,.ad-block-square,.ad-blog2biz,.ad-body,.ad-bottom,.ad-box,.ad-break,.ad-btn,.ad-btn-heading,.ad-button,.ad-cell,.ad-column,.ad-container,.ad-container-300x250,.ad-container-728x90,.ad-container-994x282,.ad-content,.ad-context,.ad-disclaimer,.ad-display,.ad-div,.ad-enabled,.ad-feedback,.ad-filler,.ad-flex,.ad-footer,.ad-footer-leaderboard,.ad-forum,.ad-google,.ad-graphic-large,.ad-gray,.ad-hdr,.ad-head,.ad-header,.ad-heading,.ad-holder,.ad-homeleaderboard,.ad-img,.ad-in-post,.ad-index-main,.ad-inline,.ad-island,.ad-label,.ad-leaderboard,.ad-left,.ad-links,.ad-lrec,.ad-medium,.ad-medium-two,.ad-mpl,.ad-mpu,.ad-msn,.ad-note,.ad-notice,.ad-other,.ad-permalink,.ad-place-active,.ad-placeholder,.ad-postText,.ad-poster,.ad-priority,.ad-rect,.ad-rectangle,.ad-rectangle-text,.ad-related,.ad-rh,.ad-ri,.ad-right,.ad-right-header,.ad-right-txt,.ad-row,.ad-section,.ad-show-label,.ad-side,.ad-sidebar,.ad-sidebar-outer,.ad-sidebar300,.ad-sky,.ad-skyscr,.ad-skyscraper,.ad-slot,.ad-slot-234-60,.ad-slot-300-250,.ad-slot-728-90,.ad-source,.ad-space,.ad-space-mpu-box,.ad-space-topbanner,.ad-spot,.ad-square,.ad-square300,.ad-squares,.ad-statement,.ad-story-inject,.ad-tabs,.ad-text,.ad-text-links,.ad-tile,.ad-title,.ad-top,.ad-top-left,.ad-unit,.ad-unit-300,.ad-unit-300-wrapper,.ad-unit-anchor,.ad-unit-top,.ad-vert,.ad-vertical-container,.ad-vtu,.ad-widget-list,.ad-with-us,.ad-wrap,.ad-wrapper,.ad-zone,.ad-zone-s-q-l,.ad.super,.ad0,.ad08,.ad08sky,.ad1,.ad10,.ad100,.ad120,.ad120x240backgroundGray,.ad120x600,.ad125,.ad140,.ad160,.ad160600,.ad160x600,.ad160x600GrayBorder,.ad18,.ad19,.ad2,.ad21,.ad230,.ad250,.ad250c,.ad3,.ad300,.ad300250,.ad300_250,.ad300x100,.ad300x250,.ad300x250-hp-features,.ad300x250Module,.ad300x250Top,.ad300x250_container,.ad300x250box,.ad300x50-right,.ad300x600,.ad310,.ad315,.ad336x280,.ad343x290,.ad4,.ad400right,.ad450,.ad468,.ad468_60,.ad468x60,.ad540x90,.ad6,.ad600,.ad620x70,.ad626X35,.ad7,.ad728,.ad728_90,.ad728x90,.ad728x90_container,.ad8,.ad90x780,.adAgate,.adArea674x60,.adBanner,.adBanner300x250,.adBanner728x90,.adBannerTyp1,.adBannerTypSortableList,.adBannerTypW300,.adBar,.adBgBottom,.adBgMId,.adBgTop,.adBlock,.adBottomLink,.adBottomboxright,.adBox,.adBox1,.adBox230X96,.adBox728X90,.adBoxBody,.adBoxBorder,.adBoxContainer,.adBoxContent,.adBoxInBignews,.adBoxSidebar,.adBoxSingle,.adBwrap,.adCMRight,.adCell,.adColumn,.adCont,.adContTop,.adContainer,.adContour,.adCreative,.adCube,.adDiv,.adElement,.adFender3,.adFrame,.adFtr,.adFullWidthMiddle,.adGoogle,.adHeader,.adHeadline,.adHolder,.adHome300x250,.adHorisontal,.adInNews,.adIsland,.adLabel,.adLeader,.adLeaderForum,.adLeaderboard,.adLeft,.adLoaded,.adLocal,.adMPU,.adMarker,.adMastheadLeft,.adMastheadRight,.adMegaBoard,.adMinisLR,.adMkt2Colw,.adModule,.adModuleAd,.adMpu,.adNewsChannel,.adNoOutline,.adNotice,.adNoticeOut,.adObj,.adPageBorderL,.adPageBorderR,.adPanel,.adPod,.adRect,.adResult,.adRight,.adSKY,.adSelfServiceAdvertiseLink,.adServer,.adSky,.adSky600,.adSkyscaper,.adSkyscraperHolder,.adSlot,.adSpBelow,.adSpace,.adSpacer,.adSplash,.adSponsor,.adSpot,.adSpot-brought,.adSpot-searchAd,.adSpot-textBox,.adSpot-twin,.adSpotIsland,.adSquare,.adSubColPod,.adSummary,.adSuperboard,.adSupertower,.adTD,.adTab,.adTag,.adText,.adTileWrap,.adTiler,.adTitle,.adTopLink,.adTopboxright,.adTout,.adTxt,.adUnit,.adUnitHorz,.adUnitVert,.adUnitVert_noImage,.adWebBoard,.adWidget,.adWithTab,.adWord,.adWrap,.adWrapper,.ad_0,.ad_1,.ad_120x90,.ad_125,.ad_130x90,.ad_160,.ad_160x600,.ad_2,.ad_200,.ad_200x200,.ad_250x250,.ad_250x250_w,.ad_3,.ad_300,.ad_300_250,.ad_300x250,.ad_300x250_box_right,.ad_336,.ad_336x280,.ad_350x100,.ad_350x250,.ad_400x200,.ad_468,.ad_468x60,.ad_600,.ad_728,.ad_728_90b,.ad_728x90,.ad_925x90,.ad_Left,.ad_Right,.ad_ad_300,.ad_amazon,.ad_banner,.ad_banner_border,.ad_bar,.ad_bg,.ad_bigbox,.ad_biz,.ad_block,.ad_block_338,.ad_body,.ad_border,.ad_botbanner,.ad_bottom,.ad_bottom_leaderboard,.ad_bottom_left,.ad_box,.ad_box2,.ad_box_ad,.ad_box_div,.ad_callout,.ad_caption,.ad_column,.ad_column_box,.ad_column_hl,.ad_contain,.ad_container,.ad_content,.ad_content_wide,.ad_contents,.ad_descriptor,.ad_disclaimer,.ad_eyebrow,.ad_footer,.ad_frame,.ad_framed,.ad_front_promo,.ad_gutter_top,.ad_head,.ad_header,.ad_heading,.ad_headline,.ad_holder,.ad_hpm,.ad_info_block,.ad_inline,.ad_island,.ad_jnaught,.ad_label,.ad_launchpad,.ad_leader,.ad_leaderboard,.ad_left,.ad_line,.ad_link,.ad_links,.ad_linkunit,.ad_loc,.ad_lrec,.ad_main,.ad_medrec,.ad_medrect,.ad_middle,.ad_mod,.ad_mp,.ad_mpu,.ad_mr,.ad_mrec,.ad_mrec_title_article,.ad_mrect,.ad_news,.ad_note,.ad_notice,.ad_one,.ad_p360,.ad_partner,.ad_partners,.ad_plus,.ad_post,.ad_power,.ad_promo,.ad_rec,.ad_rectangle,.ad_right,.ad_right_col,.ad_row,.ad_row_bottom_item,.ad_side,.ad_sidebar,.ad_skyscraper,.ad_slug,.ad_slug_table,.ad_space,.ad_space_300_250,.ad_spacer,.ad_sponsor,.ad_sponsoredsection,.ad_spot_b,.ad_spot_c,.ad_square_r,.ad_square_top,.ad_sub,.ad_tag_middle,.ad_text,.ad_text_w,.ad_title,.ad_top,.ad_top_leaderboard,.ad_top_left,.ad_topright,.ad_tower,.ad_unit,.ad_unit_rail,.ad_url,.ad_warning,.ad_wid300,.ad_wide,.ad_wrap,.ad_wrapper,.ad_wrapper_fixed,.ad_wrapper_top,.ad_wrp,.ad_zone,.adarea,.adarea-long,.adbanner,.adbannerbox,.adbannerright,.adbar,.adboard,.adborder,.adbot,.adbottom,.adbottomright,.adbox-outer,.adbox-wrapper,.adbox_300x600,.adbox_366x280,.adbox_468X60,.adbox_bottom,.adbox_br,.adboxclass,.adbreak,.adbug,.adbutton,.adbuttons,.adcode,.adcol1,.adcol2,.adcolumn,.adcolumn_wrapper,.adcont,.adcopy,.add_300x250,.addiv,.adenquire,.adfieldbg,.adfoot,.adfootbox,.adframe,.adhead,.adhead_h,.adhead_h_wide,.adheader,.adheader100,.adhi,.adhint,.adholder,.adhoriz,.adi,.adiframe,.adinfo,.adinside,.adintro,.adits,.adjlink,.adkicker,.adkit,.adkit-advert,.adkit-lb-footer,.adlabel-horz,.adlabel-vert,.adlabelleft,.adleader,.adleaderboard { display:none !important; } .adleft1,.adline,.adlink,.adlinks,.adlist,.adlnklst,.admarker,.admediumred,.admedrec,.admessage,.admodule,.admpu,.admpu-small,.adnation-banner,.adnotice,.adops,.adp-AdPrefix,.adpadding,.adpane,.adpic,.adprice,.adproxy,.adrec,.adright,.adroot,.adrotate_widget,.adrow,.adrow-post,.adrow1box1,.adrow1box3,.adrow1box4,.adrule,.ads-125,.ads-300,.ads-728x90-wrap,.ads-ads-top,.ads-banner,.ads-below-content,.ads-categories-bsa,.ads-custom,.ads-favicon,.ads-item,.ads-links-general,.ads-mpu,.ads-outer,.ads-profile,.ads-right,.ads-section,.ads-sidebar,.ads-sky,.ads-small,.ads-sponsors,.ads-stripe,.ads-text,.ads-top,.ads-wide,.ads-widget,.ads-widget-partner-gallery,.ads03,.ads160,.ads1_250,.ads2,.ads24Block,.ads3,.ads300,.ads460,.ads460_home,.ads468,.ads728,.ads728x90,.adsArea,.adsBelowHeadingNormal,.adsBlock,.adsBottom,.adsBox,.adsCell,.adsCont,.adsDiv,.adsFull,.adsImages,.adsInsideResults_v3,.adsMPU,.adsMiddle,.adsRight,.adsTextHouse,.adsTop,.adsTower2,.adsTowerWrap,.adsWithUs,.ads_125_square,.ads_180,.ads_300,.ads_300x100,.ads_300x250,.ads_320,.ads_337x280,.ads_728x90,.ads_big,.ads_big-half,.ads_box,.ads_box_headline,.ads_brace,.ads_catDiv,.ads_container,.ads_disc_anchor,.ads_disc_leader,.ads_disc_lwr_square,.ads_disc_skyscraper,.ads_disc_square,.ads_div,.ads_footer,.ads_header,.ads_holder,.ads_horizontal,.ads_leaderboard,.ads_lr_wrapper,.ads_medrect,.ads_mpu,.ads_outer,.ads_rectangle,.ads_remove,.ads_right,.ads_rightbar_top,.ads_sc_bl_i,.ads_sc_tb,.ads_sc_tl_i,.ads_show_if,.ads_side,.ads_sidebar,.ads_singlepost,.ads_spacer,.ads_takeover,.ads_title,.ads_top,.ads_top_promo,.ads_tr,.ads_verticalSpace,.ads_vtlLink,.ads_widesky,.ads_wrapperads_top,.adsafp,.adsbg300,.adsblockvert,.adsborder,.adsbottom,.adsbox,.adsboxitem,.adsbyyahoo,.adsc,.adscaleAdvert,.adsclick,.adscontainer,.adscreen,.adsd_shift100,.adsection_a2,.adsection_c2,.adsense-468,.adsense-ad,.adsense-category,.adsense-category-bottom,.adsense-googleAds,.adsense-heading,.adsense-overlay,.adsense-post,.adsense-right,.adsense-title,.adsense3,.adsense300,.adsenseAds,.adsenseBlock,.adsenseContainer,.adsenseGreenBox,.adsenseInPost,.adsenseList,.adsense_bdc_v2,.adsense_mpu,.adsensebig,.adsenseblock,.adsenseblock_bottom,.adsenseblock_top,.adsenselr,.adsensem_widget,.adsensesq,.adsenvelope,.adset,.adsforums,.adsghori,.adsgvert,.adshome,.adside,.adsidebox,.adsider,.adsingle,.adsleft,.adsleftblock,.adslink,.adslogan,.adsmalltext,.adsmessage,.adsnippet_widget,.adsp,.adspace,.adspace-MR,.adspace-widget,.adspace180,.adspace_bottom,.adspace_buysell,.adspace_rotate,.adspace_skyscraper,.adspacer,.adspot,.adspot728x90,.adstextpad,.adstitle,.adstop,.adstory,.adstrip,.adtab,.adtable,.adtag,.adtech,.adtext,.adtext_gray,.adtext_horizontal,.adtext_onwhite,.adtext_vertical,.adtile,.adtips,.adtips1,.adtop,.adtravel,.adtxt,.adtxtlinks,.adunit,.adv-mpu,.adv_banner_hor,.adver,.adverTag,.adverTxt,.adver_cont_below,.advert-300-side,.advert-300x100-side,.advert-728x90,.advert-article-bottom,.advert-bannerad,.advert-bg-250,.advert-bloggrey,.advert-box,.advert-btm,.advert-head,.advert-horizontal,.advert-iab-300-250,.advert-iab-468-60,.advert-mpu,.advert-skyscraper,.advert-text,.advert-title,.advert-txt,.advert120,.advert300,.advert300x250,.advert300x300,.advert300x440,.advert350ih,.advert4,.advert5,.advert8,.advertColumn,.advertCont,.advertContainer,.advertContent,.advertHeadline,.advertIslandWrapper,.advertRight,.advertSuperBanner,.advertText,.advertTitleSky,.advert_336,.advert_468x60,.advert_box,.advert_cont,.advert_container,.advert_djad,.advert_google_content,.advert_google_title,.advert_home_300,.advert_label,.advert_leaderboard,.advert_list,.advert_note,.advert_surr,.advert_top,.advertheader-red,.advertise,.advertise-here,.advertise-homestrip,.advertise-horz,.advertise-inquiry,.advertise-leaderboard,.advertise-list,.advertise-top,.advertise-vert,.advertiseContainer,.advertiseText,.advertise_ads,.advertise_here,.advertise_link,.advertise_link_sidebar,.advertisement,.advertisement-728x90,.advertisement-block,.advertisement-sidebar,.advertisement-space,.advertisement-sponsor,.advertisement-swimlane,.advertisement-text,.advertisement-top,.advertisement300x250,.advertisement468,.advertisementBox,.advertisementColumnGroup,.advertisementContainer,.advertisementHeader,.advertisementLabel,.advertisementPanel,.advertisementText,.advertisement_300x250,.advertisement_btm,.advertisement_caption,.advertisement_g,.advertisement_header,.advertisement_horizontal,.advertisement_top,.advertiser,.advertiser-links,.advertisespace_div,.advertising-banner,.advertising-header,.advertising-leaderboard,.advertising-local-links,.advertising2,.advertisingTable,.advertising_block,.advertising_images,.advertisment,.advertisment_bar,.advertisment_caption,.advertisment_two,.advertize,.advertize_here,.advertorial,.advertorial-2,.advertorial-promo-box,.advertorial_red,.advertorialtitle,.adverts,.adverts-125,.adverts_RHS,.advt,.advt-banner-3,.advt-block,.advt-sec,.advt300,.advt720,.adwhitespace,.adwordListings,.adwords,.adwordsHeader,.adwrap,.adwrapper,.adwrapper-lrec,.adwrapper948,.adzone-footer,.adzone-sidebar,.affiliate-link,.affiliate-sidebar,.affiliateAdvertText,.affinityAdHeader,.afsAdvertising,.after_ad,.agi-adsaleslinks,.alb-content-ad,.alignads,.alt_ad,.anchorAd,.another_text_ad,.answer_ad_content,.aolSponsoredLinks,.aopsadvert,.apiAdMarkerAbove,.apiAds,.app_advertising_skyscraper,.archive-ads,.art_ads,.article-ad-box,.article-ads,.article-content-adwrap,.articleAd,.articleAd300x250,.articleAds,.articleAdsL,.articleEmbeddedAdBox,.article_ad,.article_adbox,.article_mpu_box,.article_page_ads_bottom,.articleads,.aseadn,.aux-ad-widget-1,.aux-ad-widget-2,.b-astro-sponsored-links_horizontal,.b-astro-sponsored-links_vertical,.b_ads_cont,.b_ads_top,.banmanad,.banner-468x60,.banner-ad,.banner-ads,.banner-adv,.banner-advert,.banner-adverts,.banner-buysellads,.banner160x600,.banner300by250,.banner300x100,.banner300x250,.banner468,.banner468by60,.banner728x90,.bannerADV,.bannerAd,.bannerAdWrapper300x250,.bannerAdWrapper730x86,.bannerAdvert,.bannerRightAd,.banner_300x250,.banner_728x90,.banner_ad,.banner_ad_footer,.banner_ad_leaderboard,.bannerad,.bannerad-125tower,.bannerad-468x60,.barkerAd,.base-ad-mpu,.base_ad,.base_printer_widgets_AdBreak,.bg-ad-link,.bgnavad,.big-ads,.bigAd,.big_ad,.big_ads,.bigad,.bigad2,.bigbox_ad,.bigboxad,.billboard300x250,.billboard_ad,.biz-ad,.biz-ads,.biz-adtext,.blk_advert,.block-ad,.block-ad300,.block-admanager,.block-ads-bottom,.block-ads-top,.block-adsense,.block-adsense-managed,.block-adspace-full,.block-deca_advertising,.block-google_admanager,.block-openads,.block-openadstream,.block-openx,.block-thirdage-ads,.block-wtg_adtech,.blockAd,.blockAds,.block_ad,.block_ad_sb_text,.block_ad_sponsored_links,.block_ad_sponsored_links-wrapper,.block_ad_sponsored_links_localized,.blockad,.blocked-ads,.blog-ad-leader-inner,.blog-ads-container,.blogAd,.blogAdvertisement,.blogArtAd,.blogBigAd,.blog_ad,.blogads,.blox3featuredAd,.body_ad,.body_sponsoredresults_bottom,.body_sponsoredresults_middle,.body_sponsoredresults_top,.bodyads,.bodyads2,.bookseller-header-advt,.bottom-ad,.bottom-ad-fr,.bottomAd,.bottomAds,.bottom_ad,.bottom_ad_block,.bottom_ads,.bottom_adsense,.bottomad,.bottomads,.bottomadvert,.bottombarad,.bottomrightrailAd,.bottomvidad,.box-ad,.box-ad-grey,.box-ads,.box-adsense,.boxAd,.boxAds,.boxAdsInclude,.box_ad,.box_ad_container,.box_ad_content,.box_ad_spacer,.box_ad_wrap,.box_ads,.box_advertising,.box_advertisment_62_border,.box_content_ad,.box_content_ads,.box_textads,.boxad,.boxads,.boxyads,.bps-ad-wrapper,.bps-advertisement,.bps-advertisement-inline-ads,.br-ad,.breakad_container,.brokerad,.bsa_ads,.btm_ad,.btn-ad,.bullet-sponsored-links,.bullet-sponsored-links-gray,.burstContentAdIndex,.busrep_poll_and_ad_container,.buttonAd,.buttonAds,.button_ads,.button_advert,.buttonadbox,.buttonads,.bx_ad,.bx_ad_right,.cA-adStrap,.cColumn-TextAdsBox,.cLeftTextAdUnit,.c_ligatus_nxn,.calloutAd,.carbonad,.carbonad-tag,.care2_adspace,.catalog_ads,.category-ad,.categorySponsorAd,.category__big_game_container_body_games_advertising,.cb-ad-banner,.cb-ad-container,.cb_ads,.cb_navigation_ad,.cbstv_ad_label,.cbzadvert,.cbzadvert_block,.cdAdTitle,.cdmainlineSearchAdParent,.cdsidebarSearchAdParent,.centerAd,.center_ad,.centerad,.centered-ad,.chitikaAdCopy,.cinemabotad,.classifiedAdThree,.clearerad,.cmAdFind,.cm_ads,.cms-Advert,.cnbc_badge_banner_ad_area,.cnbc_banner_ad_area,.cnbc_leaderboard_ad,.cnn160AdFooter,.cnnAd,.cnnMosaic160Container,.cnnStoreAd,.cnnStoryElementBoxAd,.cnnWCAdBox,.cnnWireAdLtgBox,.cnn_728adbin,.cnn_adcntr300x100,.cnn_adcntr728x90,.cnn_adspc336cntr,.cnn_adtitle,.cntrad,.column2-ad,.columnBoxAd,.columnRightAdvert,.com-ad-server,.comment-ad,.comment-ad-wrap,.comment-advertisement,.comment_ad_box,.common_advertisement_title,.communityAd,.conTSponsored,.conductor_ad,.confirm_ad_left,.confirm_ad_right,.confirm_leader_ad,.consoleAd,.container-adwords,.containerSqAd,.container_serendipity_plugin_google_adsense,.content-ad,.content-ads,.content-advert,.contentAd,.contentAdFoot,.contentAdsWrapper,.content_ad,.content_ad_728,.content_adsense,.content_adsq,.content_tagsAdTech,.contentad,.contentad-home,.contentad300x250,.contentad_right_col,.contentadcontainer,.contentadfloatl,.contentadleft,.contentads,.contentadstartpage,.contenttextad,.contest_ad,.cp_ad,.cpmstarHeadline,.cpmstarText,.create_ad,.cs-mpu,.cscTextAd,.cse_ads,.cspAd,.ct_ad,.ctnAdSkyscraper,.ctnAdSquare300,.cube-ad,.cubeAd,.cube_ads,.currency_ad,.custom_ads,.cwAdvert,.cxAdvertisement,.darla_ad,.dart-ad,.dartAdImage,.dart_ad,.dart_tag,.dartadvert,.dartiframe,.dc-ad,.dcAdvertHeader,.deckAd,.deckads,.detail-ads,.detailMpu,.detail_ad,.detail_top_advert,.dfrads,.displayAdSlot,.divAd,.divAdright,.divad1,.divad2,.divad3,.divads,.divider_ad,.dlSponsoredLinks,.dmco_advert_iabrighttitle,.downloadAds,.download_ad,.downloadad,.dsq_ad,.dualAds,.dynamic-ads,.dynamic_ad,.e-ad,.ec-ads,.ec-ads-remove-if-empty,.em-ad,.em_ads_box_dynamic_remove,.embed-ad,.embeddedAd,.entry-body-ad,.entry-injected-ad,.entry_sidebar_ads,.entryad,.ez-clientAd,.f_Ads,.feature_ad,.featuredAds,.featured_ad,.featuredadvertising,.fireplaceadleft,.fireplaceadright,.fireplaceadtop,.firstpost_advert_container,.flagads,.flash-advertisement,.flash_ad,.flash_advert,.flashad,.flexiad,.flipbook_v2_sponsor_ad,.floatad,.floated_right_ad,.floatingAds,.fm-badge-ad,.fns_td_wrap,.fold-ads,.footad,.footer-ad,.footerAd,.footerAdModule,.footerAds,.footerAdslot,.footerAdverts,.footerTextAd,.footer_ad,.footer_ad336,.footer_ads,.footer_block_ad,.footer_bottomad,.footer_line_ad,.footer_text_ad,.footerad,.forumtopad,.freedownload_ads,.frn_adbox,.frn_cont_adbox,.frontads,.frontpage-google-ad,.ft-ad,.ftdAdBar,.ftdContentAd,.full_ad_box,.fullbannerad,.g3rtn-ad-site,.gAdRows,.gAdSky,.gAdvertising,.g_ggl_ad,.ga-ads,.ga-textads-bottom,.ga-textads-top,.gaTeaserAds,.gaTeaserAdsBox,.gads,.gads_cb,.gads_container,.gallery_ad,.gam_ad_slot,.gameAd,.gamesPage_ad_content,.gbl_advertisement,.gen_side_ad,.gglAds,.global_banner_ad,.googad,.googads,.google-ad,.google-ad-container,.google-ads,.google-ads-boxout,.google-ads-slim,.google-adsense,.google-right-ad,.google-sponsored-ads,.google-sponsored-link,.google468,.google468_60,.googleAd,.googleAd-content,.googleAd-list,.googleAd300x250_wrapper,.googleAdBox,.googleAdSense,.googleAdSenseModule,.googleAd_body,.googleAds,.googleAds_article_page_above_comments,.googleAdsense,.googleContentAds,.googleProfileAd,.googleSearchAd_content,.googleSearchAd_sidebar,.google_ad,.google_ad_wide,.google_add_container,.google_ads,.google_ads_bom_title,.google_ads_content,.google_adsense_footer,.googlead,.googleaddiv,.googleaddiv2,.googleads,.googleads_300x250,.googleads_title,.googleadsense,.googleafc,.googley_ads,.gpAdBox,.gpAds,.gradientAd,.grey-ad-line,.group_ad,.gsAd,.gsfAd,.gt_ad,.gt_ad_300x250,.gt_ad_728x90,.gt_adlabel,.gutter-ad-left,.gutter-ad-right,.gx_ad,.h-ad-728x90-bottom,.h_Ads,.h_ad,.half-ad,.half_ad_box,.hcf-ad,.hcf-ad-rectangle,.hcf-cms-ad,.hd_advert,.hdr-ads,.header-ad,.header-advert,.header-taxonomy-image-sponsor,.headerAd,.headerAdCode,.headerAds,.headerAdvert,.headerTextAd,.header_ad,.header_ad_center,.header_ad_div,.header_ads,.header_advertisement,.header_advertisment,.headerad,.headerad-720,.hi5-ad,.highlightsAd,.hm_advertisment,.hn-ads,.home-ad-links,.homeAd,.homeAd1,.homeAd2,.homeAdBoxA,.homeAdBoxBetweenBlocks,.homeAdBoxInBignews,.homeAdSection,.homeMediumAdGroup,.home_ad_bottom,.home_advertisement,.home_mrec_ad,.homead,.homepage-ad,.homepage300ad,.homepageFlexAdOuter,.homepageMPU,.homepage_middle_right_ad,.homepageinline_adverts,.hor_ad,.horiz_adspace,.horizontalAd,.horizontal_ad,.horizontal_ads,.horizontaltextadbox,.horizsponsoredlinks,.hortad,.houseAd1,.houseAdsStyle,.housead,.hoverad,.hp-col4-ads,.hp2-adtag,.hp_ad_cont,.hp_ad_text,.hp_t_ad,.hp_w_ad,.hpa-ad1,.html-advertisement,.ic-ads,.ico-adv,.idMultiAd,.image-advertisement,.imageAd,.imageads,.imgad,.in-page-ad,.in-story-ads,.in-story-text-ad,.inStoryAd-news2,.indEntrySquareAd,.indie-sidead,.indy_googleads,.inhousead,.inline-ad,.inline-mpu,.inline-mpu-left,.inlineSideAd,.inline_ad,.inline_ad_title,.inlinead,.inlineadsense,.inlineadtitle,.inlist-ad,.inlistAd,.inner-advt-banner-3,.innerAds,.innerad,.inpostad,.insert_advertisement,.insertad,.insideStoryAd,.inteliusAd_image,.interest-based-ad,.internalAdsContainer,.iprom-ad,.is24-adplace,.isAd,.islandAd,.islandAdvert,.islandad,.itemAdvertise,.jimdoAdDisclaimer,.jp-advertisment-promotional,.js-advert,.kdads-empty,.kdads-link,.kw_advert,.kw_advert_pair,.l_ad_sub,.label-ad,.labelads,.largeRecAdNewsContainerRight,.largeRectangleAd,.largeUnitAd,.large_ad,.lastRowAd,.lcontentbox_ad,.leadAd,.leaderAdSlot,.leaderAdTop,.leaderAdvert,.leaderBoardAdHolder,.leaderOverallAdArea,.leader_ad,.leaderboardAd,.leaderboardAdContainer,.leaderboardAdContainerInner,.leaderboard_ad,.leaderboardad,.leaderboardadtop,.left-ad,.leftAd,.leftAdColumn,.leftAds,.left_ad,.left_ad_box,.left_adlink,.left_ads,.left_adsense,.leftad,.leftadtag,.leftbar_ad_160_600,.leftbarads,.leftbottomads,.leftnavad,.lgRecAd,.lg_ad,.ligatus,.linead { display:none !important; } .link_adslider,.link_advertise,.live-search-list-ad-container,.ljad,.local-ads,.log_ads,.logoAds,.logoad,.logoutAd,.longAd,.longAdBox,.lowerAds,.lr-ad,.m-ad-tvguide-box,.m4-adsbygoogle,.m_banner_ads,.macAd,.macad,.main-ad,.main-advert,.main-tabs-ad-block,.mainAd,.mainLinkAd,.main_ad,.main_ad_bg_div,.main_adbox,.main_ads,.main_intro_ad,.map_media_banner_ad,.marginadsthin,.marketing-ad,.masthead_topad,.matador_sidebar_ad_600,.mdl-ad,.media-advert,.mediaAd,.mediaAdContainer,.mediaResult_sponsoredSearch,.medium-rectangle-ad,.mediumRectangleAdvert,.medium_ad,.medrect_ad,.member-ads,.menuItemBannerAd,.menueadimg,.messageBoardAd,.mf-ad300-container,.micro_ad,.mid_ad,.mid_page_ad,.midad,.middleAds,.middleads,.min_navi_ad,.mini-ad,.miniad,.mmc-ad,.mmcAd_Iframe,.mod-ad-lrec,.mod-ad-n,.mod-adopenx,.mod-vertical-ad,.mod_admodule,.module-ad,.module-ad-small,.module-ads,.module-sponsored-ads,.moduleAd,.moduleAdvertContent,.module_ad,.module_box_ad,.modulegad,.moduletable-advert,.moduletable-googleads,.moduletablesquaread,.mpu,.mpu-ad,.mpu-ad-con,.mpu-advert,.mpu-footer,.mpu-fp,.mpu-title,.mpu-top-left,.mpu-top-left-banner,.mpu-top-right,.mpu01,.mpuAd,.mpuAdSlot,.mpuAdvert,.mpuArea,.mpuBox,.mpuContainer,.mpuHolder,.mpuTextAd,.mpu_ad,.mpu_advert,.mpu_container,.mpu_gold,.mpu_holder,.mpu_platinum,.mpu_side,.mpu_text_ad,.mpuad,.mpuholderportalpage,.mrec_advert,.ms-ads-link,.msfg-shopping-mpu,.mvw_onPageAd1,.mwaads,.my-ad250x300,.nSponsoredLcContent,.nSponsoredLcTopic,.nadvt300,.narrow_ad_unit,.narrow_ads,.navAdsBanner,.navBads,.nav_ad,.navadbox,.navcommercial,.navi_ad300,.naviad,.nba300Ad,.nbaT3Ad160,.nbaTVPodAd,.nbaTwo130Ads,.nbc_ad_carousel_wrp,.newPex_forumads,.newTopAdContainer,.newad,.newsAd,.news_article_ad_google,.newsviewAdBoxInNews,.nf-adbox,.nn-mpu,.noAdForLead,.normalAds,.nrAds,.nsAdRow,.nu2ad,.oas-ad,.oas-bottom-ads,.oas_ad,.oas_advertisement,.offer_sponsoredlinks,.oio-banner-zone,.oio-link-sidebar,.oio-zone-position,.on_single_ad_box,.onethirdadholder,.openads,.openadstext_after,.openx,.openx-ad,.openx_ad,.osan-ads,.other_adv2,.outermainadtd1,.ovAdPromo,.ovAdSky,.ovAdartikel,.ov_spns,.ovadsenselabel,.pageAds,.pageBottomGoogleAd,.pageGoogleAd,.pageGoogleAdFlat,.pageGoogleAdSubcontent,.pageGoogleAds,.pageGoogleAdsContainer,.pageLeaderAd,.page_content_right_ad,.pagead,.pageads,.pagenavindexcontentad,.paneladvert,.partner-ad,.partner-ads-container,.partnerAd,.partnersTextLinks,.pencil_ad,.player_ad_box,.player_hover_ad,.player_page_ad_box,.plista_inimg_box,.pm-ad,.pmad-in2,.pnp_ad,.pod-ad-300,.podRelatedAdLinksWidget,.podSponsoredLink,.portalCenterContentAdBottom,.portalCenterContentAdMiddle,.portalCenterContentAdTop,.portal_searchresultssponsoredlist,.portalcontentad,.post-ad,.postAd,.post_ad,.post_ads,.post_sponsor_unit,.postbit_adbit_register,.postbit_adcode,.postgroup-ads,.postgroup-ads-middle,.prebodyads,.premium_ad_container,.promoAd,.promoAds,.promo_ad,.ps-ligatus_placeholder,.pub_300x250,.pub_300x250m,.pub_728x90,.publication-ad,.publicidad,.puff-advertorials,.qa_ad_left,.qm-ad-content,.qm-ad-content-news,.quigo-ad,.qzvAdDiv,.r_ad_1,.r_ad_box,.r_ads,.rad_container,.rect_ad_module,.rectad,.rectangle-ad,.rectangleAd,.rectanglead,.redads_cont,.regular_728_ad,.regularad,.relatedAds,.related_post_google_ad,.remads,.resourceImagetAd,.result_ad,.reviewMidAdvertAlign,.rght300x250,.rhads,.rhs-ad,.rhs-ads-panel,.rhs-advert-container,.rhs-advert-link,.rhs-advert-title,.right-ad,.right-ad-holder,.right-ad2,.right-ads,.right-ads2,.right-sidebar-box-ad,.rightAd,.rightAdBox,.rightAdverts,.rightColAd,.rightColumnRectAd,.rightRailAd,.right_ad,.right_ad_160,.right_ad_box,.right_ad_common_block,.right_ad_text,.right_ad_top,.right_ads,.right_ads_column,.right_box_ad_rotating_container,.right_col_ad,.right_hand_advert_column,.right_side-partyad,.rightad,.rightad_1,.rightad_2,.rightadbox1,.rightads,.rightadunit,.rightbigcolumn_ads_nobackground,.rightcol_boxad,.rightcoladvert,.rightcoltowerad,.rightmenu_ad,.rnav_ad,.rngtAd,.rot_ads,.roundedCornersAd,.roundingrayboxads,.rt_ad1_300x90,.rt_ad_300x250,.rt_ad_call,.s2k_ad,.savvyad_unit,.sb-ad-sq-bg,.sbAd,.sbAdUnitContainer,.sb_ad_holder,.sb_adsN,.sb_adsNv2,.sb_adsW,.sb_adsWv2,.scanAd,.scc_advert,.sci-ad-main,.sci-ad-sub,.search-ad,.search-results-ad,.search-sponsor,.search-sponsored,.searchAd,.searchAdTop,.searchAds,.searchSponsoredResultsBox,.searchSponsoredResultsList,.search_column_results_sponsored,.search_results_sponsored_top,.section-ad2,.section_mpu_wrapper,.section_mpu_wrapper_wrapper,.selfServeAds,.sepContentAd,.serp_sponsored,.servsponserLinks,.shoppingGoogleAdSense,.showAd_No,.showAd_Yes,.showcaseAd,.sidbaread,.side-ad,.side-ads,.side-sky-banner-160,.sideAd,.sideBoxAd,.side_ad,.side_ad2,.side_ad_1,.side_ad_2,.side_ad_3,.sidead,.sideads,.sideadsbox,.sideadvert,.sidebar-ad,.sidebar-ads,.sidebar-content-ad,.sidebar-text-ad,.sidebarAd,.sidebarAdUnit,.sidebarAdvert,.sidebar_ad,.sidebar_ad_300_250,.sidebar_ads,.sidebar_ads_336,.sidebar_adsense,.sidebar_box_ad,.sidebarad,.sidebarad_bottom,.sidebaradbox,.sidebarads,.sidebarboxad,.sideheadnarrowad,.sideheadsponsorsad,.single-google-ad,.singleAd,.singleAdsContainer,.single_ad,.singlead,.singleadstopcstm2,.site_ad_120_600,.site_ad_300x250,.sitesponsor,.skinAd,.skin_ad_638,.sky-ad,.skyAd,.skyAdd,.skyAdvert,.skyAdvert2,.sky_ad,.sky_scraper_ad,.skyad,.skyjobsadtext,.skyscraper-ad,.skyscraper_ad,.skyscraper_bannerAdHome,.sleekadbubble,.slideshow-ad,.slpBigSlimAdUnit,.slpSquareAdUnit,.sm_ad,.smallSkyAd1,.smallSkyAd2,.small_ad,.small_ads,.smallad-left,.smallads,.smallsponsorad,.smart_ads_bom_title,.spLinks,.specialAd175x90,.speedyads,.sphereAdContainer,.spl-ads,.spl_ad,.spl_ad2,.spl_ad_plus,.splitAd,.splitAdResultsPane,.sponlinkbox,.spons-link,.spons_links,.sponslink,.sponsor-ad,.sponsor-link,.sponsor-links,.sponsor-services,.sponsorPanel,.sponsorPost,.sponsorPostWrap,.sponsorStrip,.sponsor_ad_area,.sponsor_area,.sponsor_columns,.sponsor_footer,.sponsor_line,.sponsor_links,.sponsor_logo,.sponsoradtitle,.sponsored-ads,.sponsored-chunk,.sponsored-editorial,.sponsored-features,.sponsored-links,.sponsored-links-alt-b,.sponsored-links-holder,.sponsored-links-right,.sponsored-post,.sponsored-post_ad,.sponsored-results,.sponsored-right-border,.sponsored-text,.sponsoredBox,.sponsoredInfo,.sponsoredInner,.sponsoredLabel,.sponsoredLink,.sponsoredLinks,.sponsoredLinks2,.sponsoredLinksHeader,.sponsoredProduct,.sponsoredResults,.sponsoredSideInner,.sponsored_ads,.sponsored_box,.sponsored_box_search,.sponsored_by,.sponsored_link,.sponsored_links,.sponsored_links_title_container,.sponsored_links_title_container_top,.sponsored_links_top,.sponsored_result,.sponsored_results,.sponsored_well,.sponsoredibbox,.sponsoredlink,.sponsoredlinks,.sponsoredlinkscontainer,.sponsoredresults,.sponsoredtextlink_container_ovt,.sponsoring_link,.sponsorlink,.sponsorlink2,.sponsormsg,.sport-mpu-box,.spotlightAd,.squareAd,.square_ad,.square_banner_ad,.squared_ad,.ss-ad-mpu,.standard-ad,.start__newest__big_game_container_body_games_advertising,.staticAd,.stickyAdLink,.stock-ticker-ad-tag,.stocks-ad-tag,.store-ads,.story_AD,.story_ad_div,.story_right_adv,.storyad,.subad,.subadimg,.subcontent-ad,.subtitle-ad-container,.sugarad,.super-ad,.supercommentad_left,.supercommentad_right,.supp-ads,.supportAdItem,.surveyad,.t10ad,.tab_ad,.tab_ad_area,.tablebordersponsor,.tadsanzeige,.tadsbanner,.tadselement,.tallad,.tblTopAds,.tbl_ad,.tbox_ad,.td-Adholder,.td-TrafficWeatherWidgetAdGreyBrd,.teaser-sponsor,.teaserAdContainer,.teaser_adtiles,.text-ad,.text-ad-links,.text-ads,.text-advertisement,.text-g-advertisement,.text-g-group-short-rec-ad,.text-g-net-grp-google-ads-article-page,.textAd,.textAdBox,.textAds,.text_ad,.text_ads,.textad,.textadContainer,.textad_headline,.textadbox,.textadheadline,.textadlink,.textads,.textads_left,.textads_right,.textadsds,.textadsfoot,.textadtext,.textlink-ads,.textlinkads,.tf_page_ad_search,.thirdage_ads_300x250,.thirdage_ads_728x90,.thisIsAd,.thisIsAnAd,.ticket-ad,.tileAds,.tips_advertisement,.title-ad,.title_adbig,.tncms-region-ads,.toolad,.toolbar-ad,.top-ad,.top-ad-space,.top-ads,.top-banner-ad,.top-menu-ads,.topAd,.topAdWrap,.topAds,.topAdvertisement,.topAdverts,.topBannerAd,.topLeaderboardAd,.top_Ad,.top_ad,.top_ad_728,.top_ad_728_90,.top_ad_disclaimer,.top_ad_div,.top_ad_post,.top_ad_wrapper,.top_ads,.top_advert,.top_advertisement,.top_advertising_lb,.top_bar_ad,.top_container_ad,.topad,.topad-bar,.topadbox,.topads,.topadspot,.topadvertisementsegment,.topboardads,.topcontentadvertisement,.topic_inad,.topstoriesad,.toptenAdBoxA,.tourFeatureAd,.tower-ad,.towerAd,.towerAdLeft,.towerAds,.tower_ad,.tower_ad_disclaimer,.towerad,.tr-ad-adtech-placement,.tribal-ad,.ts-ad_unit_bigbox,.ts-banner_ad,.ttlAdsensel,.tto-sponsored-element,.tucadtext,.tvs-mpu,.twoColumnAd,.twoadcoll,.twoadcolr,.tx_smartadserver_pi1,.txt-ads,.txtAd,.txtAds,.txt_ads,.txtadvertise,.type_adscontainer,.type_miniad,.type_promoads,.ukAds,.ukn-banner-ads,.under_ads,.undertimyads,.unit-ad,.universalboxADVBOX01,.universalboxADVBOX03,.universalboxADVBOX04a,.usenext,.v5rc_336x280ad,.vert-ads,.vert-adsBlock,.vertad,.vertical-adsense,.vidadtext,.videoAd,.videoBoxAd,.video_ad,.view-promo-mpu-right,.view_rig_ad,.virgin-mpu,.wa_adsbottom,.wantads,.weather_ad,.wide-ad,.wide-skyscraper-ad,.wideAd,.wideAdTable,.wide_ad,.wide_ad_unit_top,.wide_ads,.wide_google_ads,.widget-ad,.widget-ad-codes,.widget-ad300x250,.widget-entry-ads-160,.widgetYahooAds,.widget_ad,.widget_ad_boxes_widget,.widget_ad_rotator,.widget_adrotate_widgets,.widget_advert_widget,.widget_econaabachoadswidget,.widget_island_ad,.widget_maxbannerads,.widget_sdac_bottom_ad_widget,.widget_sdac_footer_ads_widget,.widget_sdac_skyscraper_ad_widget,.wikia-ad,.wikia_ad_placeholder,.wingadblock,.withAds,.wl-ad,.wnMultiAd,.wp125_write_ads_widget,.wp125ad,.wp125ad_2,.wpn_ad_content,.wrap-ads,.wrapper-ad,.wrapper-ad-sidecol,.wsSponsoredLinksRight,.wsTopSposoredLinks,.x03-adunit,.x04-adunit,.x81_ad_detail,.xads-blk-top-hld,.xads-blk2,.xads-ojedn,.y-ads,.y-ads-wide,.y7-advertisement,.yahoo-sponsored,.yahoo-sponsored-links,.yahooAds,.yahoo_ads,.yahooad,.yahooad-image,.yahooad-urlline,.yan-sponsored,.ygrp-ad,.yom-ad,.youradhere,.yrail_ad_wrap,.yrail_ads,.ysmsponsor,.ysponsor,.yw-ad,.zRightAdNote,a[href^="http://ad-apac.doubleclick.net/"],a[href^="http://ad-emea.doubleclick.net/"],a[href^="http://ad.doubleclick.net/"],a[href^="http://adserving.liveuniversenetwork.com/"],a[href^="http://galleries.pinballpublishernetwork.com/"],a[href^="http://galleries.securewebsiteaccess.com/"],a[href^="http://install.securewebsiteaccess.com/"],a[href^="http://latestdownloads.net/download.php?"],a[href^="http://secure.signup-page.com/"],a[href^="http://secure.signup-way.com/"],a[href^="http://www.FriendlyDuck.com/AF_"],a[href^="http://www.adbrite.com/mb/commerce/purchase_form.php?"],a[href^="http://www.firstload.de/affiliate/"],a[href^="http://www.friendlyduck.com/AF_"],a[href^="http://www.google.com/aclk?"],a[href^="http://www.liutilities.com/aff"],a[href^="http://www.liutilities.com/products/campaigns/adv/"],a[href^="http://www.my-dirty-hobby.com/?sub="],a[href^="http://www.ringtonematcher.com/"],#mbEnd[cellspacing="0"][style],#mclip_container:last-child,#ssmiwdiv[jsdisplay],#tads.c,#tadsb.c,.ch[onclick="ga(this,event)"],.ra[align="left"][width="30%"],.ra[align="right"][width="30%"],#Werbung,#WerbungObenRechts10_GesamtDIV,#WerbungObenRechts8_GesamtDIV,#WerbungObenRechts9_GesamtDIV,#WerbungUntenLinks4_GesamtDIV,#WerbungUntenLinks7_GesamtDIV,#WerbungUntenLinks8_GesamtDIV,#WerbungUntenLinks9_GesamtDIV,#__ligatus_placeholder__,#ad-bereich1-08,#ad-bereich1-superbanner,#ad-bereich2-08,#ad-bereich2-skyscrapper,#ad-rechts-block,#ad-rechts-sky,#ad_gross,#ad_lang,#ad_oben,#ad_rechts,#adbox_artikel,#adkontainer,#anzeigewerbungtext,#ar_detail_werb103,#bannerwerbung,#callya_freikarte_layer,#cnt_bgwerbung,#cont-werb,#forumformwerbung,#freikarte_layer,#gonamicerror,#header_werbung,#headerwerbung,#kaufDA,#kaufDA-widget-container,#kopf-werbung,#lieferando-widget-container,#moveable_werbung,#p-links-werbung,#p-rechts-werbung,#qm_content_ad_anzeige,#reklame,#startwerbung,#t_werbung,#textwerbung,#topwerbung,#werbLayer1,#werbLayer2,#werbLayer3,#werb_ps103,#werbebalken_slot,#werbebanner,#werbeblock,#werbebox,#werbebox_contentad,#werbecontainer_content,#werbecontainer_sky,#werbeflaeche,#werbetrenner,#werbung,#werbung-left,#werbung-skyscraper,#werbung1,#werbung2,#werbung3,#werbung792_2,#werbungSuperbanner,#werbung_bigsize,#werbung_footer,#werbung_mitte,#werbung_rechts,#werbung_right,#werbung_top,#werbunglink,#werbungrechts,#werbungsky,#wkr_werbung,.Artikel_Ads_News,.KomischeWerbeBox,.RessortWerbungHeader,.Werbeteaser,.Werbung,.WerbungAdpepper,.WerbungDetailRectangle,.WerbungLinksRechts,.WerbungMitte,.ad_mitte,.ads_rechts,.adzeiger,.anzeigenwerbung,.bannerAnzeige,.bdeFotoGalAd,.bdeFotoGalAdText,.big-werb,.block_rs4_werbung,.bottom-werbung-box,.box_werbung_detailseite,.boxstartwerbung,.boxwerbung,.content_body_right_werbung,.content_header_werbung,.content_right_side_werbewrapper,.contentwerbung4,.ecom_werbung,.firstload,.fullbanner_werbung,.gutZuWissenAd,.insidewerbung,.lokalwerbung,.rahmen_ad,.reklame,.right-content-werbung,.seitenleiste_werbung,.sponsorinaktiv,.sponsorlinkgruen,.tab_artikelwerbung,.teaser_adliste,.text_werbung,.textad_hauptlink,.topwerbung,.werbeadd_ueber,.werbebanner,.werbeflaeche,.werbung,.werbung-bigbox,.werbung-bigsize,.werbung-content,.werbung-contentad,.werbung-fullbanner,.werbung-halfbanner,.werbung-label,.werbung-leiste,.werbung-rectangle,.werbung-skyscraper,.werbung-skyscraper2,.werbung1,.werbung2,.werbung3,.werbung300,.werbung301,.werbungAnzeige,.werbung_bereich,.werbungamazon,a[href^="http://farm.plista.com/pets"],a[href^="http://shortnews.de/gotoklick.cfm?fr_campaign_adtext_id="],a[href^="http://www.eis.de/index.phtml?refid="],a[href^="http://www.firstload.de/index.php?set_lang=de&log="],a[href^="http://www.top-of-software.de/"],a[href^="https://farm.plista.com/pets"],input[onclick^="window.open('http://www.firstload.de/affiliate/"] { display:none !important; }</style></html> |