1 /*
2  * Copyright (C) 2008-2009 Marc Blank
3  * Licensed to The Android Open Source Project.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 package com.android.exchange.adapter;
19 
20 /**
21  * The wbxml tags for EAS are all defined here.
22  *
23  * The static final int's, of the form <page>_<tag> = <constant> are used in parsing incoming
24  * responses from the server (i.e. EasParser and its subclasses) and sending requests to the
25  * server (via Serializer)
26  *
27  * The array of string arrays is used only for generating logging output
28  */
29 public class Tags {
30 
31     // Wbxml page definitions for EAS
32     public static final int AIRSYNC = 0x00;
33     public static final int CONTACTS = 0x01;
34     public static final int EMAIL = 0x02;
35     public static final int CALENDAR = 0x04;
36     public static final int MOVE = 0x05;
37     public static final int GIE = 0x06;
38     public static final int FOLDER = 0x07;
39     public static final int MREQ = 0x08;
40     public static final int TASK = 0x09;
41     public static final int RECIPIENTS = 0x0A;
42     public static final int VALIDATE = 0x0B;
43     public static final int CONTACTS2 = 0x0C;
44     public static final int PING = 0x0D;
45     public static final int PROVISION = 0x0E;
46     public static final int SEARCH = 0x0F;
47     public static final int GAL = 0x10;
48     public static final int BASE = 0x11;
49     public static final int SETTINGS = 0x12;
50     public static final int DOCS = 0x13;
51     public static final int ITEMS = 0x14;
52     // 14.0
53     public static final int COMPOSE = 0x15;
54     public static final int EMAIL2 = 0x16;
55     // 14.1
56     public static final int NOTES = 0x17;
57     public static final int RIGHTS = 0x18;
58 
59     // Shift applied to page numbers to generate tag
60     public static final int PAGE_SHIFT = 6;
61     public static final int PAGE_MASK = 0x3F;  // 6 bits
62     public static final int TAG_BASE = 5;
63 
64     // AirSync code page 0
65     public static final int SYNC_PAGE = 0 << PAGE_SHIFT;
66     public static final int SYNC_SYNC = SYNC_PAGE + 5;
67     public static final int SYNC_RESPONSES = SYNC_PAGE + 6;
68     public static final int SYNC_ADD = SYNC_PAGE + 7;
69     public static final int SYNC_CHANGE = SYNC_PAGE + 8;
70     public static final int SYNC_DELETE = SYNC_PAGE + 9;
71     public static final int SYNC_FETCH = SYNC_PAGE + 0xA;
72     public static final int SYNC_SYNC_KEY = SYNC_PAGE + 0xB;
73     public static final int SYNC_CLIENT_ID = SYNC_PAGE + 0xC;
74     public static final int SYNC_SERVER_ID = SYNC_PAGE + 0xD;
75     public static final int SYNC_STATUS = SYNC_PAGE + 0xE;
76     public static final int SYNC_COLLECTION = SYNC_PAGE + 0xF;
77     public static final int SYNC_CLASS = SYNC_PAGE + 0x10;
78     public static final int SYNC_VERSION = SYNC_PAGE + 0x11;
79     public static final int SYNC_COLLECTION_ID = SYNC_PAGE + 0x12;
80     public static final int SYNC_GET_CHANGES = SYNC_PAGE + 0x13;
81     public static final int SYNC_MORE_AVAILABLE = SYNC_PAGE + 0x14;
82     public static final int SYNC_WINDOW_SIZE = SYNC_PAGE + 0x15;
83     public static final int SYNC_COMMANDS = SYNC_PAGE + 0x16;
84     public static final int SYNC_OPTIONS = SYNC_PAGE + 0x17;
85     public static final int SYNC_FILTER_TYPE = SYNC_PAGE + 0x18;
86     public static final int SYNC_TRUNCATION = SYNC_PAGE + 0x19;
87     public static final int SYNC_RTF_TRUNCATION = SYNC_PAGE + 0x1A;
88     public static final int SYNC_CONFLICT = SYNC_PAGE + 0x1B;
89     public static final int SYNC_COLLECTIONS = SYNC_PAGE + 0x1C;
90     public static final int SYNC_APPLICATION_DATA = SYNC_PAGE + 0x1D;
91     public static final int SYNC_DELETES_AS_MOVES = SYNC_PAGE + 0x1E;
92     public static final int SYNC_NOTIFY_GUID = SYNC_PAGE + 0x1F;
93     public static final int SYNC_SUPPORTED = SYNC_PAGE + 0x20;
94     public static final int SYNC_SOFT_DELETE = SYNC_PAGE + 0x21;
95     public static final int SYNC_MIME_SUPPORT = SYNC_PAGE + 0x22;
96     public static final int SYNC_MIME_TRUNCATION = SYNC_PAGE + 0x23;
97     public static final int SYNC_WAIT = SYNC_PAGE + 0x24;
98     public static final int SYNC_LIMIT = SYNC_PAGE + 0x25;
99     public static final int SYNC_PARTIAL = SYNC_PAGE + 0x26;
100     public static final int SYNC_CONVERSATION_MODE = SYNC_PAGE + 0x27;
101     public static final int SYNC_MAX_ITEMS = SYNC_PAGE + 0x28;
102     public static final int SYNC_HEARTBEAT_INTERVAL = SYNC_PAGE + 0x29;
103 
104     // Contacts code page 1
105     public static final int CONTACTS_PAGE = CONTACTS << PAGE_SHIFT;
106     public static final int CONTACTS_ANNIVERSARY = CONTACTS_PAGE + 5;
107     public static final int CONTACTS_ASSISTANT_NAME = CONTACTS_PAGE + 6;
108     public static final int CONTACTS_ASSISTANT_TELEPHONE_NUMBER = CONTACTS_PAGE + 7;
109     public static final int CONTACTS_BIRTHDAY = CONTACTS_PAGE + 8;
110     public static final int CONTACTS_BODY = CONTACTS_PAGE + 9;
111     public static final int CONTACTS_BODY_SIZE = CONTACTS_PAGE + 0xA;
112     public static final int CONTACTS_BODY_TRUNCATED = CONTACTS_PAGE + 0xB;
113     public static final int CONTACTS_BUSINESS2_TELEPHONE_NUMBER = CONTACTS_PAGE + 0xC;
114     public static final int CONTACTS_BUSINESS_ADDRESS_CITY = CONTACTS_PAGE + 0xD;
115     public static final int CONTACTS_BUSINESS_ADDRESS_COUNTRY = CONTACTS_PAGE + 0xE;
116     public static final int CONTACTS_BUSINESS_ADDRESS_POSTAL_CODE = CONTACTS_PAGE + 0xF;
117     public static final int CONTACTS_BUSINESS_ADDRESS_STATE = CONTACTS_PAGE + 0x10;
118     public static final int CONTACTS_BUSINESS_ADDRESS_STREET = CONTACTS_PAGE + 0x11;
119     public static final int CONTACTS_BUSINESS_FAX_NUMBER = CONTACTS_PAGE + 0x12;
120     public static final int CONTACTS_BUSINESS_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x13;
121     public static final int CONTACTS_CAR_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x14;
122     public static final int CONTACTS_CATEGORIES = CONTACTS_PAGE + 0x15;
123     public static final int CONTACTS_CATEGORY = CONTACTS_PAGE + 0x16;
124     public static final int CONTACTS_CHILDREN = CONTACTS_PAGE + 0x17;
125     public static final int CONTACTS_CHILD = CONTACTS_PAGE + 0x18;
126     public static final int CONTACTS_COMPANY_NAME = CONTACTS_PAGE + 0x19;
127     public static final int CONTACTS_DEPARTMENT = CONTACTS_PAGE + 0x1A;
128     public static final int CONTACTS_EMAIL1_ADDRESS = CONTACTS_PAGE + 0x1B;
129     public static final int CONTACTS_EMAIL2_ADDRESS = CONTACTS_PAGE + 0x1C;
130     public static final int CONTACTS_EMAIL3_ADDRESS = CONTACTS_PAGE + 0x1D;
131     public static final int CONTACTS_FILE_AS = CONTACTS_PAGE + 0x1E;
132     public static final int CONTACTS_FIRST_NAME = CONTACTS_PAGE + 0x1F;
133     public static final int CONTACTS_HOME2_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x20;
134     public static final int CONTACTS_HOME_ADDRESS_CITY = CONTACTS_PAGE + 0x21;
135     public static final int CONTACTS_HOME_ADDRESS_COUNTRY = CONTACTS_PAGE + 0x22;
136     public static final int CONTACTS_HOME_ADDRESS_POSTAL_CODE = CONTACTS_PAGE + 0x23;
137     public static final int CONTACTS_HOME_ADDRESS_STATE = CONTACTS_PAGE + 0x24;
138     public static final int CONTACTS_HOME_ADDRESS_STREET = CONTACTS_PAGE + 0x25;
139     public static final int CONTACTS_HOME_FAX_NUMBER = CONTACTS_PAGE + 0x26;
140     public static final int CONTACTS_HOME_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x27;
141     public static final int CONTACTS_JOB_TITLE = CONTACTS_PAGE + 0x28;
142     public static final int CONTACTS_LAST_NAME = CONTACTS_PAGE + 0x29;
143     public static final int CONTACTS_MIDDLE_NAME = CONTACTS_PAGE + 0x2A;
144     public static final int CONTACTS_MOBILE_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x2B;
145     public static final int CONTACTS_OFFICE_LOCATION = CONTACTS_PAGE + 0x2C;
146     public static final int CONTACTS_OTHER_ADDRESS_CITY = CONTACTS_PAGE + 0x2D;
147     public static final int CONTACTS_OTHER_ADDRESS_COUNTRY = CONTACTS_PAGE + 0x2E;
148     public static final int CONTACTS_OTHER_ADDRESS_POSTAL_CODE = CONTACTS_PAGE + 0x2F;
149     public static final int CONTACTS_OTHER_ADDRESS_STATE = CONTACTS_PAGE + 0x30;
150     public static final int CONTACTS_OTHER_ADDRESS_STREET = CONTACTS_PAGE + 0x31;
151     public static final int CONTACTS_PAGER_NUMBER = CONTACTS_PAGE + 0x32;
152     public static final int CONTACTS_RADIO_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x33;
153     public static final int CONTACTS_SPOUSE = CONTACTS_PAGE + 0x34;
154     public static final int CONTACTS_SUFFIX = CONTACTS_PAGE + 0x35;
155     public static final int CONTACTS_TITLE = CONTACTS_PAGE + 0x36;
156     public static final int CONTACTS_WEBPAGE = CONTACTS_PAGE + 0x37;
157     public static final int CONTACTS_YOMI_COMPANY_NAME = CONTACTS_PAGE + 0x38;
158     public static final int CONTACTS_YOMI_FIRST_NAME = CONTACTS_PAGE + 0x39;
159     public static final int CONTACTS_YOMI_LAST_NAME = CONTACTS_PAGE + 0x3A;
160     public static final int CONTACTS_COMPRESSED_RTF = CONTACTS_PAGE + 0x3B;
161     public static final int CONTACTS_PICTURE = CONTACTS_PAGE + 0x3C;
162     public static final int CONTACTS_ALIAS = CONTACTS_PAGE + 0x3D;
163     public static final int CONTACTS_WEIGHTED_RANK = CONTACTS_PAGE + 0x3E;
164 
165     // Email code page 2
166     public static final int EMAIL_PAGE = EMAIL << PAGE_SHIFT;
167     public static final int EMAIL_ATTACHMENT = EMAIL_PAGE + 5;
168     public static final int EMAIL_ATTACHMENTS = EMAIL_PAGE + 6;
169     public static final int EMAIL_ATT_NAME = EMAIL_PAGE + 7;
170     public static final int EMAIL_ATT_SIZE = EMAIL_PAGE + 8;
171     public static final int EMAIL_ATT0ID = EMAIL_PAGE + 9;
172     public static final int EMAIL_ATT_METHOD = EMAIL_PAGE + 0xA;
173     public static final int EMAIL_ATT_REMOVED = EMAIL_PAGE + 0xB;
174     public static final int EMAIL_BODY = EMAIL_PAGE + 0xC;
175     public static final int EMAIL_BODY_SIZE = EMAIL_PAGE + 0xD;
176     public static final int EMAIL_BODY_TRUNCATED = EMAIL_PAGE + 0xE;
177     public static final int EMAIL_DATE_RECEIVED = EMAIL_PAGE + 0xF;
178     public static final int EMAIL_DISPLAY_NAME = EMAIL_PAGE + 0x10;
179     public static final int EMAIL_DISPLAY_TO = EMAIL_PAGE + 0x11;
180     public static final int EMAIL_IMPORTANCE = EMAIL_PAGE + 0x12;
181     public static final int EMAIL_MESSAGE_CLASS = EMAIL_PAGE + 0x13;
182     public static final int EMAIL_SUBJECT = EMAIL_PAGE + 0x14;
183     public static final int EMAIL_READ = EMAIL_PAGE + 0x15;
184     public static final int EMAIL_TO = EMAIL_PAGE + 0x16;
185     public static final int EMAIL_CC = EMAIL_PAGE + 0x17;
186     public static final int EMAIL_FROM = EMAIL_PAGE + 0x18;
187     public static final int EMAIL_REPLY_TO = EMAIL_PAGE + 0x19;
188     public static final int EMAIL_ALL_DAY_EVENT = EMAIL_PAGE + 0x1A;
189     public static final int EMAIL_CATEGORIES = EMAIL_PAGE + 0x1B;
190     public static final int EMAIL_CATEGORY = EMAIL_PAGE + 0x1C;
191     public static final int EMAIL_DTSTAMP = EMAIL_PAGE + 0x1D;
192     public static final int EMAIL_END_TIME = EMAIL_PAGE + 0x1E;
193     public static final int EMAIL_INSTANCE_TYPE = EMAIL_PAGE + 0x1F;
194     public static final int EMAIL_INTD_BUSY_STATUS = EMAIL_PAGE + 0x20;
195     public static final int EMAIL_LOCATION = EMAIL_PAGE + 0x21;
196     public static final int EMAIL_MEETING_REQUEST = EMAIL_PAGE + 0x22;
197     public static final int EMAIL_ORGANIZER = EMAIL_PAGE + 0x23;
198     public static final int EMAIL_RECURRENCE_ID = EMAIL_PAGE + 0x24;
199     public static final int EMAIL_REMINDER = EMAIL_PAGE + 0x25;
200     public static final int EMAIL_RESPONSE_REQUESTED = EMAIL_PAGE + 0x26;
201     public static final int EMAIL_RECURRENCES = EMAIL_PAGE + 0x27;
202     public static final int EMAIL_RECURRENCE = EMAIL_PAGE + 0x28;
203     public static final int EMAIL_RECURRENCE_TYPE = EMAIL_PAGE + 0x29;
204     public static final int EMAIL_RECURRENCE_UNTIL = EMAIL_PAGE + 0x2A;
205     public static final int EMAIL_RECURRENCE_OCCURRENCES = EMAIL_PAGE + 0x2B;
206     public static final int EMAIL_RECURRENCE_INTERVAL = EMAIL_PAGE + 0x2C;
207     public static final int EMAIL_RECURRENCE_DAYOFWEEK = EMAIL_PAGE + 0x2D;
208     public static final int EMAIL_RECURRENCE_DAYOFMONTH = EMAIL_PAGE + 0x2E;
209     public static final int EMAIL_RECURRENCE_WEEKOFMONTH = EMAIL_PAGE + 0x2F;
210     public static final int EMAIL_RECURRENCE_MONTHOFYEAR = EMAIL_PAGE + 0x30;
211     public static final int EMAIL_START_TIME = EMAIL_PAGE + 0x31;
212     public static final int EMAIL_SENSITIVITY = EMAIL_PAGE + 0x32;
213     public static final int EMAIL_TIME_ZONE = EMAIL_PAGE + 0x33;
214     public static final int EMAIL_GLOBAL_OBJID = EMAIL_PAGE + 0x34;
215     public static final int EMAIL_THREAD_TOPIC = EMAIL_PAGE + 0x35;
216     public static final int EMAIL_MIME_DATA = EMAIL_PAGE + 0x36;
217     public static final int EMAIL_MIME_TRUNCATED = EMAIL_PAGE + 0x37;
218     public static final int EMAIL_MIME_SIZE = EMAIL_PAGE + 0x38;
219     public static final int EMAIL_INTERNET_CPID = EMAIL_PAGE + 0x39;
220     public static final int EMAIL_FLAG = EMAIL_PAGE + 0x3A;
221     public static final int EMAIL_FLAG_STATUS = EMAIL_PAGE + 0x3B;
222     public static final int EMAIL_CONTENT_CLASS = EMAIL_PAGE + 0x3C;
223     public static final int EMAIL_FLAG_TYPE = EMAIL_PAGE + 0x3D;
224     public static final int EMAIL_COMPLETE_TIME = EMAIL_PAGE + 0x3E;
225     public static final int EMAIL_DISALLOW_NEW_TIME_PROPOSAL = EMAIL_PAGE + 0x3F;
226 
227     // AirNotify code page 3 (no longer used)
228 
229     // Calendar code page 4
230     public static final int CALENDAR_PAGE = CALENDAR << PAGE_SHIFT;
231     public static final int CALENDAR_TIME_ZONE = CALENDAR_PAGE + 5;
232     public static final int CALENDAR_ALL_DAY_EVENT = CALENDAR_PAGE + 6;
233     public static final int CALENDAR_ATTENDEES = CALENDAR_PAGE + 7;
234     public static final int CALENDAR_ATTENDEE = CALENDAR_PAGE + 8;
235     public static final int CALENDAR_ATTENDEE_EMAIL = CALENDAR_PAGE + 9;
236     public static final int CALENDAR_ATTENDEE_NAME = CALENDAR_PAGE + 0xA;
237     public static final int CALENDAR_BODY = CALENDAR_PAGE + 0xB;
238     public static final int CALENDAR_BODY_TRUNCATED = CALENDAR_PAGE + 0xC;
239     public static final int CALENDAR_BUSY_STATUS = CALENDAR_PAGE + 0xD;
240     public static final int CALENDAR_CATEGORIES = CALENDAR_PAGE + 0xE;
241     public static final int CALENDAR_CATEGORY = CALENDAR_PAGE + 0xF;
242     public static final int CALENDAR_COMPRESSED_RTF = CALENDAR_PAGE + 0x10;
243     public static final int CALENDAR_DTSTAMP = CALENDAR_PAGE + 0x11;
244     public static final int CALENDAR_END_TIME = CALENDAR_PAGE + 0x12;
245     public static final int CALENDAR_EXCEPTION = CALENDAR_PAGE + 0x13;
246     public static final int CALENDAR_EXCEPTIONS = CALENDAR_PAGE + 0x14;
247     public static final int CALENDAR_EXCEPTION_IS_DELETED = CALENDAR_PAGE + 0x15;
248     public static final int CALENDAR_EXCEPTION_START_TIME = CALENDAR_PAGE + 0x16;
249     public static final int CALENDAR_LOCATION = CALENDAR_PAGE + 0x17;
250     public static final int CALENDAR_MEETING_STATUS = CALENDAR_PAGE + 0x18;
251     public static final int CALENDAR_ORGANIZER_EMAIL = CALENDAR_PAGE + 0x19;
252     public static final int CALENDAR_ORGANIZER_NAME = CALENDAR_PAGE + 0x1A;
253     public static final int CALENDAR_RECURRENCE = CALENDAR_PAGE + 0x1B;
254     public static final int CALENDAR_RECURRENCE_TYPE = CALENDAR_PAGE + 0x1C;
255     public static final int CALENDAR_RECURRENCE_UNTIL = CALENDAR_PAGE + 0x1D;
256     public static final int CALENDAR_RECURRENCE_OCCURRENCES = CALENDAR_PAGE + 0x1E;
257     public static final int CALENDAR_RECURRENCE_INTERVAL = CALENDAR_PAGE + 0x1F;
258     public static final int CALENDAR_RECURRENCE_DAYOFWEEK = CALENDAR_PAGE + 0x20;
259     public static final int CALENDAR_RECURRENCE_DAYOFMONTH = CALENDAR_PAGE + 0x21;
260     public static final int CALENDAR_RECURRENCE_WEEKOFMONTH = CALENDAR_PAGE + 0x22;
261     public static final int CALENDAR_RECURRENCE_MONTHOFYEAR = CALENDAR_PAGE + 0x23;
262     public static final int CALENDAR_REMINDER_MINS_BEFORE = CALENDAR_PAGE + 0x24;
263     public static final int CALENDAR_SENSITIVITY = CALENDAR_PAGE + 0x25;
264     public static final int CALENDAR_SUBJECT = CALENDAR_PAGE + 0x26;
265     public static final int CALENDAR_START_TIME = CALENDAR_PAGE + 0x27;
266     public static final int CALENDAR_UID = CALENDAR_PAGE + 0x28;
267     public static final int CALENDAR_ATTENDEE_STATUS = CALENDAR_PAGE + 0x29;
268     public static final int CALENDAR_ATTENDEE_TYPE = CALENDAR_PAGE + 0x2A;
269     public static final int CALENDAR_ATTACHMENT = CALENDAR_PAGE + 0x2B;
270     public static final int CALENDAR_ATTACHMENTS = CALENDAR_PAGE + 0x2C;
271     public static final int CALENDAR_ATT_NAME = CALENDAR_PAGE + 0x2D;
272     public static final int CALENDAR_ATT_SIZE = CALENDAR_PAGE + 0x2E;
273     public static final int CALENDAR_ATT_OID = CALENDAR_PAGE + 0x2F;
274     public static final int CALENDAR_ATT_METHOD = CALENDAR_PAGE + 0x30;
275     public static final int CALENDAR_ATT_REMOVED = CALENDAR_PAGE + 0x31;
276     public static final int CALENDAR_DISPLAY_NAME = CALENDAR_PAGE + 0x32;
277     public static final int CALENDAR_DISALLOW_NEW_TIME_PROPOSAL = CALENDAR_PAGE + 0x33;
278     public static final int CALENDAR_RESPONSE_REQUESTED = CALENDAR_PAGE + 0x34;
279     public static final int CALENDAR_APPOINTMENT_REPLY_TIME = CALENDAR_PAGE + 0x35;
280     public static final int CALENDAR_RESPONSE_TYPE = CALENDAR_PAGE + 0x36;
281     public static final int CALENDAR_CALENDAR_TYPE = CALENDAR_PAGE + 0x37;
282     public static final int CALENDAR_IS_LEAP_MONTH = CALENDAR_PAGE + 0x38;
283     public static final int CALENDAR_FIRST_DAY_OF_WEEK = CALENDAR_PAGE + 0x39;
284     public static final int CALENDAR_ONLINE_MEETING_CONFLINK = CALENDAR_PAGE + 0x3A;
285     public static final int CALENDAR_ONLINE_MEETING_EXTERNAL_LINK = CALENDAR_PAGE + 0x3B;
286 
287     // Move code page 5
288     public static final int MOVE_PAGE = MOVE << PAGE_SHIFT;
289     public static final int MOVE_MOVE_ITEMS = MOVE_PAGE + 5;
290     public static final int MOVE_MOVE = MOVE_PAGE + 6;
291     public static final int MOVE_SRCMSGID = MOVE_PAGE + 7;
292     public static final int MOVE_SRCFLDID = MOVE_PAGE + 8;
293     public static final int MOVE_DSTFLDID = MOVE_PAGE + 9;
294     public static final int MOVE_RESPONSE = MOVE_PAGE + 0xA;
295     public static final int MOVE_STATUS = MOVE_PAGE + 0xB;
296     public static final int MOVE_DSTMSGID = MOVE_PAGE + 0xC;
297 
298     // GetItemEstimate code page 6
299     public static final int GIE_PAGE = GIE << PAGE_SHIFT;
300     public static final int GIE_GET_ITEM_ESTIMATE = GIE_PAGE + 5;
301     public static final int GIE_VERSION = GIE_PAGE + 6;
302     public static final int GIE_COLLECTIONS = GIE_PAGE + 7;
303     public static final int GIE_COLLECTION = GIE_PAGE + 8;
304     public static final int GIE_CLASS = GIE_PAGE + 9;
305     public static final int GIE_COLLECTION_ID = GIE_PAGE + 0xA;
306     public static final int GIE_DATE_TIME = GIE_PAGE + 0xB;
307     public static final int GIE_ESTIMATE = GIE_PAGE + 0xC;
308     public static final int GIE_RESPONSE = GIE_PAGE + 0xD;
309     public static final int GIE_STATUS = GIE_PAGE + 0xE;
310 
311     // FolderHierarchy code page 7
312     public static final int FOLDER_PAGE = FOLDER << PAGE_SHIFT;
313     public static final int FOLDER_FOLDERS = FOLDER_PAGE + 5;
314     public static final int FOLDER_FOLDER = FOLDER_PAGE + 6;
315     public static final int FOLDER_DISPLAY_NAME = FOLDER_PAGE + 7;
316     public static final int FOLDER_SERVER_ID = FOLDER_PAGE + 8;
317     public static final int FOLDER_PARENT_ID = FOLDER_PAGE + 9;
318     public static final int FOLDER_TYPE = FOLDER_PAGE + 0xA;
319     public static final int FOLDER_RESPONSE = FOLDER_PAGE + 0xB;
320     public static final int FOLDER_STATUS = FOLDER_PAGE + 0xC;
321     public static final int FOLDER_CONTENT_CLASS = FOLDER_PAGE + 0xD;
322     public static final int FOLDER_CHANGES = FOLDER_PAGE + 0xE;
323     public static final int FOLDER_ADD = FOLDER_PAGE + 0xF;
324     public static final int FOLDER_DELETE = FOLDER_PAGE + 0x10;
325     public static final int FOLDER_UPDATE = FOLDER_PAGE + 0x11;
326     public static final int FOLDER_SYNC_KEY = FOLDER_PAGE + 0x12;
327     public static final int FOLDER_FOLDER_CREATE = FOLDER_PAGE + 0x13;
328     public static final int FOLDER_FOLDER_DELETE= FOLDER_PAGE + 0x14;
329     public static final int FOLDER_FOLDER_UPDATE = FOLDER_PAGE + 0x15;
330     public static final int FOLDER_FOLDER_SYNC = FOLDER_PAGE + 0x16;
331     public static final int FOLDER_COUNT = FOLDER_PAGE + 0x17;
332     // 0x18 FOLDER_VERSION unused in spec v14.0
333     public static final int FOLDER_VERSION = FOLDER_PAGE + 0x18;
334 
335     // MeetingResponse code page 8
336     public static final int MREQ_PAGE = MREQ << PAGE_SHIFT;
337     public static final int MREQ_CAL_ID = MREQ_PAGE + 5;
338     public static final int MREQ_COLLECTION_ID = MREQ_PAGE + 6;
339     public static final int MREQ_MEETING_RESPONSE = MREQ_PAGE + 7;
340     public static final int MREQ_REQ_ID = MREQ_PAGE + 8;
341     public static final int MREQ_REQUEST = MREQ_PAGE + 9;
342     public static final int MREQ_RESULT = MREQ_PAGE + 0xA;
343     public static final int MREQ_STATUS = MREQ_PAGE + 0xB;
344     public static final int MREQ_USER_RESPONSE = MREQ_PAGE + 0xC;
345     // 0x0D MREQ_VERSION unused in spec v14.0
346     public static final int MREQ_VERSION = MREQ_PAGE + 0xD;
347     public static final int MREQ_INSTANCE_ID = MREQ_PAGE + 0xE;
348 
349     // Tasks code page 9
350     public static final int TASK_PAGE = TASK << PAGE_SHIFT;
351     public static final int TASK_BODY = TASK_PAGE + 5;
352     public static final int TASK_BODY_SIZE = TASK_PAGE + 6;
353     public static final int TASK_BODY_TRUNCATED = TASK_PAGE + 7;
354     public static final int TASK_CATEGORIES = TASK_PAGE + 8;
355     public static final int TASK_CATEGORY = TASK_PAGE + 9;
356     public static final int TASK_COMPLETE = TASK_PAGE + 0xA;
357     public static final int TASK_DATE_COMPLETED = TASK_PAGE + 0xB;
358     public static final int TASK_DUE_DATE = TASK_PAGE + 0xC;
359     public static final int TASK_UTC_DUE_DATE = TASK_PAGE + 0xD;
360     public static final int TASK_IMPORTANCE = TASK_PAGE + 0xE;
361     public static final int TASK_RECURRENCE = TASK_PAGE + 0xF;
362     public static final int TASK_RECURRENCE_TYPE = TASK_PAGE + 0x10;
363     public static final int TASK_RECURRENCE_START = TASK_PAGE + 0x11;
364     public static final int TASK_RECURRENCE_UNTIL = TASK_PAGE + 0x12;
365     public static final int TASK_RECURRENCE_OCCURRENCES = TASK_PAGE + 0x13;
366     public static final int TASK_RECURRENCE_INTERVAL = TASK_PAGE + 0x14;
367     public static final int TASK_RECURRENCE_DAY_OF_MONTH = TASK_PAGE + 0x15;
368     public static final int TASK_RECURRENCE_DAY_OF_WEEK = TASK_PAGE + 0x16;
369     public static final int TASK_RECURRENCE_WEEK_OF_MONTH = TASK_PAGE + 0x17;
370     public static final int TASK_RECURRENCE_MONTH_OF_YEAR = TASK_PAGE + 0x18;
371     public static final int TASK_RECURRENCE_REGENERATE = TASK_PAGE + 0x19;
372     public static final int TASK_RECURRENCE_DEAD_OCCUR = TASK_PAGE + 0x1A;
373     public static final int TASK_REMINDER_SET = TASK_PAGE + 0x1B;
374     public static final int TASK_REMINDER_TIME = TASK_PAGE + 0x1C;
375     public static final int TASK_SENSITIVITY = TASK_PAGE + 0x1D;
376     public static final int TASK_START_DATE = TASK_PAGE + 0x1E;
377     public static final int TASK_UTC_START_DATE = TASK_PAGE + 0x1F;
378     public static final int TASK_SUBJECT = TASK_PAGE + 0x20;
379     // 0x21 TASK_COMPRESSED_RTF unused in spec v14.0
380     public static final int TASK_COMPRESSED_RTF = TASK_PAGE + 0x21;
381     public static final int TASK_ORDINAL_DATE = TASK_PAGE + 0x22;
382     public static final int TASK_SUBORDINAL_DATE = TASK_PAGE + 0x23;
383     public static final int TASK_CALENDAR_TYPE = TASK_PAGE + 0x24;
384     public static final int TASK_IS_LEAP_MONTH = TASK_PAGE + 0x25;
385     public static final int TASK_FIRST_DAY_OF_WEEK = TASK_PAGE + 0x26;
386 
387     // ResolveRecipients code page 10
388     public static final int RECIPIENTS_PAGE = RECIPIENTS << PAGE_SHIFT;
389     public static final int RECIPIENTS_RESOLVE_RECIPIENTS = RECIPIENTS_PAGE + 5;
390     public static final int RECIPIENTS_RESPONSE = RECIPIENTS_PAGE + 6;
391     public static final int RECIPIENTS_STATUS = RECIPIENTS_PAGE + 7;
392     public static final int RECIPIENTS_TYPE = RECIPIENTS_PAGE + 8;
393     public static final int RECIPIENTS_RECIPIENT = RECIPIENTS_PAGE + 9;
394     public static final int RECIPIENTS_DISPLAY_NAME = RECIPIENTS_PAGE + 0xA;
395     public static final int RECIPIENTS_EMAIL_ADDRESS = RECIPIENTS_PAGE + 0xB;
396     public static final int RECIPIENTS_CERTIFICATES = RECIPIENTS_PAGE + 0xC;
397     public static final int RECIPIENTS_CERTIFICATE = RECIPIENTS_PAGE + 0xD;
398     public static final int RECIPIENTS_MINI_CERTIFICATE = RECIPIENTS_PAGE + 0xE;
399     public static final int RECIPIENTS_OPTIONS = RECIPIENTS_PAGE + 0xF;
400     public static final int RECIPIENTS_TO = RECIPIENTS_PAGE + 0x10;
401     public static final int RECIPIENTS_CERTIFICATE_RETRIEVAL = RECIPIENTS_PAGE + 0x11;
402     public static final int RECIPIENTS_RECIPIENT_COUNT = RECIPIENTS_PAGE + 0x12;
403     public static final int RECIPIENTS_MAX_CERTIFICATES = RECIPIENTS_PAGE + 0x13;
404     public static final int RECIPIENTS_MAX_AMBIGUOUS_RECIPIENTS = RECIPIENTS_PAGE + 0x14;
405     public static final int RECIPIENTS_CERTIFICATE_COUNT = RECIPIENTS_PAGE + 0x15;
406     public static final int RECIPIENTS_AVAILABILITY = RECIPIENTS_PAGE + 0x16;
407     public static final int RECIPIENTS_START_TIME = RECIPIENTS_PAGE + 0x17;
408     public static final int RECIPIENTS_END_TIME = RECIPIENTS_PAGE + 0x18;
409     public static final int RECIPIENTS_MERGED_FREE_BUSY = RECIPIENTS_PAGE + 0x19;
410     public static final int RECIPIENTS_PICTURE = RECIPIENTS_PAGE + 0x1A;
411     public static final int RECIPIENTS_MAX_SIZE = RECIPIENTS_PAGE + 0x1B;
412     public static final int RECIPIENTS_DATA = RECIPIENTS_PAGE + 0x1C;
413     public static final int RECIPIENTS_MAX_PICTURES = RECIPIENTS_PAGE + 0x1D;
414 
415     // ValidateCert code page 11
416     public static final int VALIDATE_PAGE = VALIDATE << PAGE_SHIFT;
417     public static final int VALIDATE_VALIDATE_CERT = VALIDATE_PAGE + 5;
418     public static final int VALIDATE_CERTIFICATES = VALIDATE_PAGE + 6;
419     public static final int VALIDATE_CERTIFICATE = VALIDATE_PAGE + 7;
420     public static final int VALIDATE_CERTIFICATE_CHAIN = VALIDATE_PAGE + 8;
421     public static final int VALIDATE_CHECK_CRL = VALIDATE_PAGE + 9;
422     public static final int VALIDATE_STATUS = VALIDATE_PAGE + 0xA;
423 
424     // Contacts2 code page 12
425     public static final int CONTACTS2_PAGE = CONTACTS2 << PAGE_SHIFT;
426     public static final int CONTACTS2_CUSTOMER_ID = CONTACTS2_PAGE + 5;
427     public static final int CONTACTS2_GOVERNMENT_ID = CONTACTS2_PAGE + 6;
428     public static final int CONTACTS2_IM_ADDRESS = CONTACTS2_PAGE + 7;
429     public static final int CONTACTS2_IM_ADDRESS_2 = CONTACTS2_PAGE + 8;
430     public static final int CONTACTS2_IM_ADDRESS_3 = CONTACTS2_PAGE + 9;
431     public static final int CONTACTS2_MANAGER_NAME = CONTACTS2_PAGE + 0xA;
432     public static final int CONTACTS2_COMPANY_MAIN_PHONE = CONTACTS2_PAGE + 0xB;
433     public static final int CONTACTS2_ACCOUNT_NAME = CONTACTS2_PAGE + 0xC;
434     public static final int CONTACTS2_NICKNAME = CONTACTS2_PAGE + 0xD;
435     public static final int CONTACTS2_MMS = CONTACTS2_PAGE + 0xE;
436 
437     // Ping code page 13
438     public static final int PING_PAGE = PING << PAGE_SHIFT;
439     public static final int PING_PING = PING_PAGE + 5;
440     public static final int PING_AUTD_STATE = PING_PAGE + 6;
441     public static final int PING_STATUS = PING_PAGE + 7;
442     public static final int PING_HEARTBEAT_INTERVAL = PING_PAGE + 8;
443     public static final int PING_FOLDERS = PING_PAGE + 9;
444     public static final int PING_FOLDER = PING_PAGE + 0xA;
445     public static final int PING_ID = PING_PAGE + 0xB;
446     public static final int PING_CLASS = PING_PAGE + 0xC;
447     public static final int PING_MAX_FOLDERS = PING_PAGE + 0xD;
448 
449     // Provision code page 14
450     public static final int PROVISION_PAGE = PROVISION << PAGE_SHIFT;
451     // EAS 2.5
452     public static final int PROVISION_PROVISION = PROVISION_PAGE + 5;
453     public static final int PROVISION_POLICIES = PROVISION_PAGE + 6;
454     public static final int PROVISION_POLICY = PROVISION_PAGE + 7;
455     public static final int PROVISION_POLICY_TYPE = PROVISION_PAGE + 8;
456     public static final int PROVISION_POLICY_KEY = PROVISION_PAGE + 9;
457     public static final int PROVISION_DATA = PROVISION_PAGE + 0xA;
458     public static final int PROVISION_STATUS = PROVISION_PAGE + 0xB;
459     public static final int PROVISION_REMOTE_WIPE = PROVISION_PAGE + 0xC;
460     // EAS 12.0
461     public static final int PROVISION_EAS_PROVISION_DOC = PROVISION_PAGE + 0xD;
462     public static final int PROVISION_DEVICE_PASSWORD_ENABLED = PROVISION_PAGE + 0xE;
463     public static final int PROVISION_ALPHA_DEVICE_PASSWORD_ENABLED = PROVISION_PAGE + 0xF;
464     public static final int PROVISION_DEVICE_ENCRYPTION_ENABLED = PROVISION_PAGE + 0x10;
465     public static final int PROVISION_PASSWORD_RECOVERY_ENABLED = PROVISION_PAGE + 0x11;
466     // There is no tag for 0x12 in spec v14.0
467     public static final int PROVISION_ATTACHMENTS_ENABLED = PROVISION_PAGE + 0x13;
468     public static final int PROVISION_MIN_DEVICE_PASSWORD_LENGTH = PROVISION_PAGE + 0x14;
469     public static final int PROVISION_MAX_INACTIVITY_TIME_DEVICE_LOCK = PROVISION_PAGE + 0x15;
470     public static final int PROVISION_MAX_DEVICE_PASSWORD_FAILED_ATTEMPTS = PROVISION_PAGE + 0x16;
471     public static final int PROVISION_MAX_ATTACHMENT_SIZE = PROVISION_PAGE + 0x17;
472     public static final int PROVISION_ALLOW_SIMPLE_DEVICE_PASSWORD = PROVISION_PAGE + 0x18;
473     public static final int PROVISION_DEVICE_PASSWORD_EXPIRATION = PROVISION_PAGE + 0x19;
474     public static final int PROVISION_DEVICE_PASSWORD_HISTORY = PROVISION_PAGE + 0x1A;
475     public static final int PROVISION_MAX_SUPPORTED_TAG = PROVISION_DEVICE_PASSWORD_HISTORY;
476     // EAS 12.1
477     public static final int PROVISION_ALLOW_STORAGE_CARD = PROVISION_PAGE + 0x1B;
478     public static final int PROVISION_ALLOW_CAMERA = PROVISION_PAGE + 0x1C;
479     public static final int PROVISION_REQUIRE_DEVICE_ENCRYPTION = PROVISION_PAGE + 0x1D;
480     public static final int PROVISION_ALLOW_UNSIGNED_APPLICATIONS = PROVISION_PAGE + 0x1E;
481     public static final int PROVISION_ALLOW_UNSIGNED_INSTALLATION_PACKAGES = PROVISION_PAGE + 0x1F;
482     public static final int PROVISION_MIN_DEVICE_PASSWORD_COMPLEX_CHARS = PROVISION_PAGE + 0x20;
483     public static final int PROVISION_ALLOW_WIFI = PROVISION_PAGE + 0x21;
484     public static final int PROVISION_ALLOW_TEXT_MESSAGING = PROVISION_PAGE + 0x22;
485     public static final int PROVISION_ALLOW_POP_IMAP_EMAIL = PROVISION_PAGE + 0x23;
486     public static final int PROVISION_ALLOW_BLUETOOTH = PROVISION_PAGE + 0x24;
487     public static final int PROVISION_ALLOW_IRDA = PROVISION_PAGE + 0x25;
488     public static final int PROVISION_REQUIRE_MANUAL_SYNC_WHEN_ROAMING = PROVISION_PAGE + 0x26;
489     public static final int PROVISION_ALLOW_DESKTOP_SYNC = PROVISION_PAGE + 0x27;
490     public static final int PROVISION_MAX_CALENDAR_AGE_FILTER = PROVISION_PAGE + 0x28;
491     public static final int PROVISION_ALLOW_HTML_EMAIL = PROVISION_PAGE + 0x29;
492     public static final int PROVISION_MAX_EMAIL_AGE_FILTER = PROVISION_PAGE + 0x2A;
493     public static final int PROVISION_MAX_EMAIL_BODY_TRUNCATION_SIZE = PROVISION_PAGE + 0x2B;
494     public static final int PROVISION_MAX_EMAIL_HTML_BODY_TRUNCATION_SIZE = PROVISION_PAGE + 0x2C;
495     public static final int PROVISION_REQUIRE_SIGNED_SMIME_MESSAGES = PROVISION_PAGE + 0x2D;
496     public static final int PROVISION_REQUIRE_ENCRYPTED_SMIME_MESSAGES = PROVISION_PAGE + 0x2E;
497     public static final int PROVISION_REQUIRE_SIGNED_SMIME_ALGORITHM = PROVISION_PAGE + 0x2F;
498     public static final int PROVISION_REQUIRE_ENCRYPTION_SMIME_ALGORITHM = PROVISION_PAGE + 0x30;
499     public static final int PROVISION_ALLOW_SMIME_ENCRYPTION_NEGOTIATION = PROVISION_PAGE + 0x31;
500     public static final int PROVISION_ALLOW_SMIME_SOFT_CERTS = PROVISION_PAGE + 0x32;
501     public static final int PROVISION_ALLOW_BROWSER = PROVISION_PAGE + 0x33;
502     public static final int PROVISION_ALLOW_CONSUMER_EMAIL = PROVISION_PAGE + 0x34;
503     public static final int PROVISION_ALLOW_REMOTE_DESKTOP = PROVISION_PAGE + 0x35;
504     public static final int PROVISION_ALLOW_INTERNET_SHARING = PROVISION_PAGE + 0x36;
505     public static final int PROVISION_UNAPPROVED_IN_ROM_APPLICATION_LIST = PROVISION_PAGE + 0x37;
506     public static final int PROVISION_APPLICATION_NAME = PROVISION_PAGE + 0x38;
507     public static final int PROVISION_APPROVED_APPLICATION_LIST = PROVISION_PAGE + 0x39;
508     public static final int PROVISION_HASH = PROVISION_PAGE + 0x3A;
509 
510     // Search code page 15
511     public static final int SEARCH_PAGE = SEARCH << PAGE_SHIFT;
512     public static final int SEARCH_SEARCH = SEARCH_PAGE + 5;
513     public static final int SEARCH_STORES = SEARCH_PAGE + 6;
514     public static final int SEARCH_STORE = SEARCH_PAGE + 7;
515     public static final int SEARCH_NAME = SEARCH_PAGE + 8;
516     public static final int SEARCH_QUERY = SEARCH_PAGE + 9;
517     public static final int SEARCH_OPTIONS = SEARCH_PAGE + 0xA;
518     public static final int SEARCH_RANGE = SEARCH_PAGE + 0xB;
519     public static final int SEARCH_STATUS = SEARCH_PAGE + 0xC;
520     public static final int SEARCH_RESPONSE = SEARCH_PAGE + 0xD;
521     public static final int SEARCH_RESULT = SEARCH_PAGE + 0xE;
522     public static final int SEARCH_PROPERTIES = SEARCH_PAGE + 0xF;
523     public static final int SEARCH_TOTAL = SEARCH_PAGE + 0x10;
524     public static final int SEARCH_EQUAL_TO = SEARCH_PAGE + 0x11;
525     public static final int SEARCH_VALUE = SEARCH_PAGE + 0x12;
526     public static final int SEARCH_AND = SEARCH_PAGE + 0x13;
527     public static final int SEARCH_OR = SEARCH_PAGE + 0x14;
528     public static final int SEARCH_FREE_TEXT = SEARCH_PAGE + 0x15;
529     public static final int SEARCH_SUBSTRING_OP = SEARCH_PAGE + 0x16;
530     public static final int SEARCH_DEEP_TRAVERSAL = SEARCH_PAGE + 0x17;
531     public static final int SEARCH_LONG_ID = SEARCH_PAGE + 0x18;
532     public static final int SEARCH_REBUILD_RESULTS = SEARCH_PAGE + 0x19;
533     public static final int SEARCH_LESS_THAN = SEARCH_PAGE + 0x1A;
534     public static final int SEARCH_GREATER_THAN = SEARCH_PAGE + 0x1B;
535     // 0x1C SEARCH_SCHEMA unused in spec v14.0
536     public static final int SEARCH_SCHEMA = SEARCH_PAGE + 0x1C;
537     // 0x1D SEARCH_SUPPORTED unused in spec v14.0
538     public static final int SEARCH_SUPPORTED = SEARCH_PAGE + 0x1D;
539     public static final int SEARCH_USER_NAME = SEARCH_PAGE + 0x1E;
540     public static final int SEARCH_PASSWORD = SEARCH_PAGE + 0x1F;
541     public static final int SEARCH_CONVERSATION_ID = SEARCH_PAGE + 0x20;
542     public static final int SEARCH_PICTURE = SEARCH_PAGE + 0x21;
543     public static final int SEARCH_MAX_SIZE = SEARCH_PAGE + 0x22;
544     public static final int SEARCH_MAX_PICTURES = SEARCH_PAGE + 0x23;
545 
546     // GAL code page 16
547     public static final int GAL_PAGE = GAL << PAGE_SHIFT;
548     public static final int GAL_DISPLAY_NAME = GAL_PAGE + 5;
549     public static final int GAL_PHONE = GAL_PAGE + 6;
550     public static final int GAL_OFFICE = GAL_PAGE + 7;
551     public static final int GAL_TITLE = GAL_PAGE + 8;
552     public static final int GAL_COMPANY = GAL_PAGE + 9;
553     public static final int GAL_ALIAS = GAL_PAGE + 0xA;
554     public static final int GAL_FIRST_NAME = GAL_PAGE + 0xB;
555     public static final int GAL_LAST_NAME = GAL_PAGE + 0xC;
556     public static final int GAL_HOME_PHONE = GAL_PAGE + 0xD;
557     public static final int GAL_MOBILE_PHONE = GAL_PAGE + 0xE;
558     public static final int GAL_EMAIL_ADDRESS = GAL_PAGE + 0xF;
559     public static final int GAL_PICTURE = GAL_PAGE + 0x10;
560     public static final int GAL_STATUS = GAL_PAGE + 0x11;
561     public static final int GAL_DATA = GAL_PAGE + 0x12;
562 
563     // AirSyncBase code page 17
564     public static final int BASE_PAGE = BASE << PAGE_SHIFT;
565     public static final int BASE_BODY_PREFERENCE = BASE_PAGE + 5;
566     public static final int BASE_TYPE = BASE_PAGE + 6;
567     public static final int BASE_TRUNCATION_SIZE = BASE_PAGE + 7;
568     public static final int BASE_ALL_OR_NONE = BASE_PAGE + 8;
569     // There is no tag for 0x09 in spec v14.0
570     public static final int BASE_BODY = BASE_PAGE + 0xA;
571     public static final int BASE_DATA = BASE_PAGE + 0xB;
572     public static final int BASE_ESTIMATED_DATA_SIZE = BASE_PAGE + 0xC;
573     public static final int BASE_TRUNCATED = BASE_PAGE + 0xD;
574     public static final int BASE_ATTACHMENTS = BASE_PAGE + 0xE;
575     public static final int BASE_ATTACHMENT = BASE_PAGE + 0xF;
576     public static final int BASE_DISPLAY_NAME = BASE_PAGE + 0x10;
577     public static final int BASE_FILE_REFERENCE = BASE_PAGE + 0x11;
578     public static final int BASE_METHOD = BASE_PAGE + 0x12;
579     public static final int BASE_CONTENT_ID = BASE_PAGE + 0x13;
580     public static final int BASE_CONTENT_LOCATION = BASE_PAGE + 0x14;
581     public static final int BASE_IS_INLINE = BASE_PAGE + 0x15;
582     public static final int BASE_NATIVE_BODY_TYPE = BASE_PAGE + 0x16;
583     public static final int BASE_CONTENT_TYPE = BASE_PAGE + 0x17;
584     public static final int BASE_PREVIEW = BASE_PAGE + 0x18;
585     public static final int BASE_BODY_PART_PREFERENCE = BASE_PAGE + 0x19;
586     public static final int BASE_BODY_PART = BASE_PAGE + 0x1A;
587     public static final int BASE_STATUS = BASE_PAGE + 0x1B;
588 
589     // Settings code page 18
590     public static final int SETTINGS_PAGE = SETTINGS << PAGE_SHIFT;
591     public static final int SETTINGS_SETTINGS = SETTINGS_PAGE + 5;
592     public static final int SETTINGS_STATUS = SETTINGS_PAGE + 6;
593     public static final int SETTINGS_GET = SETTINGS_PAGE + 7;
594     public static final int SETTINGS_SET = SETTINGS_PAGE + 8;
595     public static final int SETTINGS_OOF = SETTINGS_PAGE + 9;
596     public static final int SETTINGS_OOF_STATE = SETTINGS_PAGE + 0xA;
597     public static final int SETTINGS_START_TIME = SETTINGS_PAGE + 0xB;
598     public static final int SETTINGS_END_TIME = SETTINGS_PAGE + 0xC;
599     public static final int SETTINGS_OOF_MESSAGE = SETTINGS_PAGE + 0xD;
600     public static final int SETTINGS_APPLIES_TO_INTERNAL = SETTINGS_PAGE + 0xE;
601     public static final int SETTINGS_APPLIES_TO_EXTERNAL_KNOWN = SETTINGS_PAGE + 0xF;
602     public static final int SETTINGS_APPLIES_TO_EXTERNAL_UNKNOWN = SETTINGS_PAGE + 0x10;
603     public static final int SETTINGS_ENABLED = SETTINGS_PAGE + 0x11;
604     public static final int SETTINGS_REPLY_MESSAGE = SETTINGS_PAGE + 0x12;
605     public static final int SETTINGS_BODY_TYPE = SETTINGS_PAGE + 0x13;
606     public static final int SETTINGS_DEVICE_PASSWORD = SETTINGS_PAGE + 0x14;
607     public static final int SETTINGS_PASSWORD = SETTINGS_PAGE + 0x15;
608     public static final int SETTINGS_DEVICE_INFORMATION = SETTINGS_PAGE + 0x16;
609     public static final int SETTINGS_MODEL = SETTINGS_PAGE + 0x17;
610     public static final int SETTINGS_IMEI = SETTINGS_PAGE + 0x18;
611     public static final int SETTINGS_FRIENDLY_NAME = SETTINGS_PAGE + 0x19;
612     public static final int SETTINGS_OS = SETTINGS_PAGE + 0x1A;
613     public static final int SETTINGS_OS_LANGUAGE = SETTINGS_PAGE + 0x1B;
614     public static final int SETTINGS_PHONE_NUMBER = SETTINGS_PAGE + 0x1C;
615     public static final int SETTINGS_USER_INFORMATION = SETTINGS_PAGE + 0x1D;
616     public static final int SETTINGS_EMAIL_ADDRESS = SETTINGS_PAGE + 0x1E;
617     public static final int SETTINGS_SMTP_ADDRESS = SETTINGS_PAGE + 0x1F;
618     public static final int SETTINGS_USER_AGENT = SETTINGS_PAGE + 0x20;
619     public static final int SETTINGS_ENABLE_OUTGOING_SMS = SETTINGS_PAGE + 0x21;
620     public static final int SETTINGS_MOBILE_OPERATOR = SETTINGS_PAGE + 0x22;
621     public static final int SETTINGS_PRIMARY_SMTP_ADDRESS = SETTINGS_PAGE + 0x23;
622     public static final int SETTINGS_ACCOUNTS = SETTINGS_PAGE + 0x24;
623     public static final int SETTINGS_ACCOUNT = SETTINGS_PAGE + 0x25;
624     public static final int SETTINGS_ACCOUNT_ID = SETTINGS_PAGE + 0x26;
625     public static final int SETTINGS_ACCOUNT_NAME = SETTINGS_PAGE + 0x27;
626     public static final int SETTINGS_USER_DISPLAY_NAME = SETTINGS_PAGE + 0x28;
627     public static final int SETTINGS_SEND_DISABLED = SETTINGS_PAGE + 0x29;
628     // There is no tag for 0x2A in spec v14.0
629     public static final int SETTINGS_RIGHTS_MANAGEMENT_INFORMATION = SETTINGS_PAGE + 0x2B;
630 
631     // DocumentLibrary code page 19
632     public static final int DOCS_PAGE = DOCS << PAGE_SHIFT;
633     public static final int DOCS_LINK_ID = DOCS_PAGE + 5;
634     public static final int DOCS_DISPLAY_NAME = DOCS_PAGE + 6;
635     public static final int DOCS_IS_FOLDER = DOCS_PAGE + 7;
636     public static final int DOCS_CREATION_DATE = DOCS_PAGE + 8;
637     public static final int DOCS_LAST_MODIFIED_DATE = DOCS_PAGE + 9;
638     public static final int DOCS_IS_HIDDEN = DOCS_PAGE + 0xA;
639     public static final int DOCS_CONTENT_LENGTH = DOCS_PAGE + 0xB;
640     public static final int DOCS_CONTENT_TYPE = DOCS_PAGE + 0xC;
641 
642     // ItemOperations code page 20
643     public static final int ITEMS_PAGE = ITEMS << PAGE_SHIFT;
644     public static final int ITEMS_ITEMS = ITEMS_PAGE + 5;
645     public static final int ITEMS_FETCH = ITEMS_PAGE + 6;
646     public static final int ITEMS_STORE = ITEMS_PAGE + 7;
647     public static final int ITEMS_OPTIONS = ITEMS_PAGE + 8;
648     public static final int ITEMS_RANGE = ITEMS_PAGE + 9;
649     public static final int ITEMS_TOTAL = ITEMS_PAGE + 0xA;
650     public static final int ITEMS_PROPERTIES = ITEMS_PAGE + 0xB;
651     public static final int ITEMS_DATA = ITEMS_PAGE + 0xC;
652     public static final int ITEMS_STATUS = ITEMS_PAGE + 0xD;
653     public static final int ITEMS_RESPONSE = ITEMS_PAGE + 0xE;
654     public static final int ITEMS_VERSION = ITEMS_PAGE + 0xF;
655     public static final int ITEMS_SCHEMA = ITEMS_PAGE + 0x10;
656     public static final int ITEMS_PART = ITEMS_PAGE + 0x11;
657     public static final int ITEMS_EMPTY_FOLDER = ITEMS_PAGE + 0x12;
658     public static final int ITEMS_DELETE_SUB_FOLDERS = ITEMS_PAGE + 0x13;
659     public static final int ITEMS_USERNAME = ITEMS_PAGE + 0x14;
660     public static final int ITEMS_PASSWORD = ITEMS_PAGE + 0x15;
661     public static final int ITEMS_MOVE = ITEMS_PAGE + 0x16;
662     public static final int ITEMS_DSTFLDID = ITEMS_PAGE + 0x17;
663     public static final int ITEMS_CONVERSATION_ID = ITEMS_PAGE + 0x18;
664     public static final int ITEMS_MOVE_ALWAYS = ITEMS_PAGE + 0x19;
665 
666     // ComposeMail code page 21
667     public static final int COMPOSE_PAGE = COMPOSE << PAGE_SHIFT;
668     public static final int COMPOSE_SEND_MAIL = COMPOSE_PAGE + 5;
669     public static final int COMPOSE_SMART_FORWARD = COMPOSE_PAGE + 6;
670     public static final int COMPOSE_SMART_REPLY = COMPOSE_PAGE + 7;
671     public static final int COMPOSE_SAVE_IN_SENT_ITEMS = COMPOSE_PAGE + 8;
672     public static final int COMPOSE_REPLACE_MIME = COMPOSE_PAGE + 9;
673     // There is no tag for COMPOSE_PAGE + 0xA
674     public static final int COMPOSE_SOURCE = COMPOSE_PAGE + 0xB;
675     public static final int COMPOSE_FOLDER_ID = COMPOSE_PAGE + 0xC;
676     public static final int COMPOSE_ITEM_ID = COMPOSE_PAGE + 0xD;
677     public static final int COMPOSE_LONG_ID = COMPOSE_PAGE + 0xE;
678     public static final int COMPOSE_INSTANCE_ID = COMPOSE_PAGE + 0xF;
679     public static final int COMPOSE_MIME = COMPOSE_PAGE + 0x10;
680     public static final int COMPOSE_CLIENT_ID = COMPOSE_PAGE + 0x11;
681     public static final int COMPOSE_STATUS = COMPOSE_PAGE + 0x12;
682     public static final int COMPOSE_ACCOUNT_ID = COMPOSE_PAGE + 0x13;
683 
684     // Email2 code page 22
685     public static final int EMAIL2_PAGE = EMAIL2 << PAGE_SHIFT;
686     public static final int EMAIL2_UM_CALLER_ID = EMAIL2_PAGE + 5;
687     public static final int EMAIL2_UM_USER_NOTES = EMAIL2_PAGE + 6;
688     public static final int EMAIL2_UM_ATT_DURATION = EMAIL2_PAGE + 7;
689     public static final int EMAIL2_UM_ATT_ORDER = EMAIL2_PAGE + 8;
690     public static final int EMAIL2_CONVERSATION_ID = EMAIL2_PAGE + 9;
691     public static final int EMAIL2_CONVERSATION_INDEX = EMAIL2_PAGE + 0xA;
692     public static final int EMAIL2_LAST_VERB_EXECUTED = EMAIL2_PAGE + 0xB;
693     public static final int EMAIL2_LAST_VERB_EXECUTION_TIME = EMAIL2_PAGE + 0xC;
694     public static final int EMAIL2_RECEIVED_AS_BCC = EMAIL2_PAGE + 0xD;
695     public static final int EMAIL2_SENDER = EMAIL2_PAGE + 0xE;
696     public static final int EMAIL2_CALENDAR_TYPE = EMAIL2_PAGE + 0xF;
697     public static final int EMAIL2_IS_LEAP_MONTH = EMAIL2_PAGE + 0x10;
698     public static final int EMAIL2_ACCOUNT_ID = EMAIL2_PAGE + 0x11;
699     public static final int EMAIL2_FIRST_DAY_OF_WEEK = EMAIL2_PAGE + 0x12;
700     public static final int EMAIL2_MEETING_MESSAGE_TYPE = EMAIL2_PAGE + 0x13;
701 
702     // Notes code page 23
703     public static final int NOTES_PAGE = NOTES << PAGE_SHIFT;
704     public static final int NOTES_SUBJECT = NOTES_PAGE + 5;
705     public static final int NOTES_MESSAGE_CLASS = NOTES_PAGE + 6;
706     public static final int NOTES_LAST_MODIFIED_DATE = NOTES_PAGE + 7;
707     public static final int NOTES_CATEGORIES = NOTES_PAGE + 8;
708     public static final int NOTES_CATEGORY = NOTES_PAGE + 9;
709 
710     // RightsManagement code page 24
711     public static final int RIGHTS_PAGE = RIGHTS << PAGE_SHIFT;
712     public static final int RIGHTS_SUPPORT = RIGHTS_PAGE + 5;
713     public static final int RIGHTS_TEMPLATES = RIGHTS_PAGE + 6;
714     public static final int RIGHTS_TEMPLATE = RIGHTS_PAGE + 7;
715     public static final int RIGHTS_LICENSE = RIGHTS_PAGE + 8;
716     public static final int RIGHTS_EDIT_ALLOWED = RIGHTS_PAGE + 9;
717     public static final int RIGHTS_REPLY_ALLOWED = RIGHTS_PAGE + 0xA;
718     public static final int RIGHTS_REPLY_ALL_ALLOWED = RIGHTS_PAGE + 0xB;
719     public static final int RIGHTS_FORWARD_ALLOWED = RIGHTS_PAGE + 0xC;
720     public static final int RIGHTS_MODIFY_RECIPIENTS_ALLOWED = RIGHTS_PAGE + 0xD;
721     public static final int RIGHTS_EXTRACT_ALLOWED = RIGHTS_PAGE + 0xE;
722     public static final int RIGHTS_PRINT_ALLOWED = RIGHTS_PAGE + 0xF;
723     public static final int RIGHTS_EXPORT_ALLOWED = RIGHTS_PAGE + 0x10;
724     public static final int RIGHTS_PROGRAMMATIC_ACCESS_ALLOWED = RIGHTS_PAGE + 0x11;
725     public static final int RIGHTS_OWNER = RIGHTS_PAGE + 0x12;
726     public static final int RIGHTS_CONTENT_EXPIRY_DATE = RIGHTS_PAGE + 0x13;
727     public static final int RIGHTS_TEMPLATE_ID = RIGHTS_PAGE + 0x14;
728     public static final int RIGHTS_TEMPLATE_NAME = RIGHTS_PAGE + 0x15;
729     public static final int RIGHTS_TEMPLATE_DESCRIPTION = RIGHTS_PAGE + 0x16;
730     public static final int RIGHTS_CONTENT_OWNER = RIGHTS_PAGE + 0x17;
731     public static final int RIGHTS_REMOVE_RM_DISTRIBUTION = RIGHTS_PAGE + 0x18;
732 
isValidPage(final int page)733     public static boolean isValidPage(final int page) {
734         return page >= 0 && page < mPages.length;
735     }
736 
isValidTag(final int page, final int tag)737     public static boolean isValidTag(final int page, final int tag) {
738         final int tagIndex = tag - TAG_BASE;
739         return isValidPage(page) && tagIndex >= 0 && tagIndex < mPages[page].length;
740     }
741 
isGlobalTag(final int tag)742     public static boolean isGlobalTag(final int tag) {
743         return tag >= 0 && tag < TAG_BASE;
744     }
745 
getTagName(final int page, final int tag)746     public static String getTagName(final int page, final int tag) {
747         return mPages[page][tag - TAG_BASE];
748     }
749 
750     static final String[][] mPages = {
751         {    // 0x00 AirSync
752             "Sync", "Responses", "Add", "Change", "Delete", "Fetch", "SyncKey", "ClientId",
753             "ServerId", "Status", "Collection", "Class", "Version", "CollectionId", "GetChanges",
754             "MoreAvailable", "WindowSize", "Commands", "Options", "FilterType", "Truncation",
755             "RTFTruncation", "Conflict", "Collections", "ApplicationData", "DeletesAsMoves",
756             "NotifyGUID", "Supported", "SoftDelete", "MIMESupport", "MIMETruncation", "Wait",
757             "Limit", "Partial", "ConversationMode", "MaxItems", "HeartbeatInterval"
758         },
759         {
760             // 0x01 Contacts
761             "Anniversary", "AssistantName", "AssistantTelephoneNumber", "Birthday", "ContactsBody",
762             "ContactsBodySize", "ContactsBodyTruncated", "Business2TelephoneNumber",
763             "BusinessAddressCity",
764             "BusinessAddressCountry", "BusinessAddressPostalCode", "BusinessAddressState",
765             "BusinessAddressStreet", "BusinessFaxNumber", "BusinessTelephoneNumber",
766             "CarTelephoneNumber", "ContactsCategories", "ContactsCategory", "Children", "Child",
767             "CompanyName", "Department", "Email1Address", "Email2Address", "Email3Address",
768             "FileAs", "FirstName", "Home2TelephoneNumber", "HomeAddressCity", "HomeAddressCountry",
769             "HomeAddressPostalCode", "HomeAddressState", "HomeAddressStreet", "HomeFaxNumber",
770             "HomeTelephoneNumber", "JobTitle", "LastName", "MiddleName", "MobileTelephoneNumber",
771             "OfficeLocation", "OtherAddressCity", "OtherAddressCountry",
772             "OtherAddressPostalCode", "OtherAddressState", "OtherAddressStreet", "PagerNumber",
773             "RadioTelephoneNumber", "Spouse", "Suffix", "Title", "Webpage", "YomiCompanyName",
774             "YomiFirstName", "YomiLastName", "CompressedRTF", "Picture", "Alias", "WeightedRank"
775         },
776         {
777             // 0x02 Email
778             "Attachment", "Attachments", "AttName", "AttSize", "Add0Id", "AttMethod", "AttRemoved",
779             "Body", "BodySize", "BodyTruncated", "DateReceived", "DisplayName", "DisplayTo",
780             "Importance", "MessageClass", "Subject", "Read", "To", "CC", "From", "ReplyTo",
781             "AllDayEvent", "Categories", "Category", "DTStamp", "EndTime", "InstanceType",
782             "IntDBusyStatus", "Location", "MeetingRequest", "Organizer", "RecurrenceId", "Reminder",
783             "ResponseRequested", "Recurrences", "Recurence", "Recurrence_Type", "Recurrence_Until",
784             "Recurrence_Occurrences", "Recurrence_Interval", "Recurrence_DayOfWeek",
785             "Recurrence_DayOfMonth", "Recurrence_WeekOfMonth", "Recurrence_MonthOfYear",
786             "StartTime", "Sensitivity", "TimeZone", "GlobalObjId", "ThreadTopic", "MIMEData",
787             "MIMETruncated", "MIMESize", "InternetCPID", "Flag", "FlagStatus", "EmailContentClass",
788             "FlagType", "CompleteTime", "DisallowNewTimeProposal"
789         },
790         {
791             // 0x03 AirNotify
792         },
793         {
794             // 0x04 Calendar
795             "CalTimeZone", "CalAllDayEvent", "CalAttendees", "CalAttendee", "CalAttendee_Email",
796             "CalAttendee_Name", "CalBody", "CalBodyTruncated", "CalBusyStatus", "CalCategories",
797             "CalCategory", "CalCompressed_RTF", "CalDTStamp", "CalEndTime", "CalException",
798             "CalExceptions", "CalException_IsDeleted", "CalException_StartTime", "CalLocation",
799             "CalMeetingStatus", "CalOrganizer_Email", "CalOrganizer_Name", "CalRecurrence",
800             "CalRecurrence_Type", "CalRecurrence_Until", "CalRecurrence_Occurrences",
801             "CalRecurrence_Interval", "CalRecurrence_DayOfWeek", "CalRecurrence_DayOfMonth",
802             "CalRecurrence_WeekOfMonth", "CalRecurrence_MonthOfYear", "CalReminder_MinsBefore",
803             "CalSensitivity", "CalSubject", "CalStartTime", "CalUID", "CalAttendee_Status",
804             "CalAttendee_Type", "CalAttachment", "CalAttachments", "CalAttName", "CalAttSize",
805             "CalAttOid", "CalAttMethod", "CalAttRemoved", "CalDisplayName",
806             "CalDisallowNewTimeProposal", "CalResponseRequested", "CalAppointmentReplyTime",
807             "CalResponseType", "CalCalendarType", "CalIsLeapMonth", "CalFirstDayOfWeek",
808             "CalOnlineMeetingConfLink", "CalOnlineMeetingExternalLink"
809         },
810         {
811             // 0x05 Move
812             "MoveItems", "Move", "SrcMsgId", "SrcFldId", "DstFldId", "MoveResponse", "MoveStatus",
813             "DstMsgId"
814         },
815         {
816             // 0x06 ItemEstimate
817             "GetItemEstimate", "Version", "IECollections", "IECollection", "IEClass",
818             "IECollectionId", "DateTime", "Estimate", "IEResponse", "ItemEstimateStatus"
819         },
820         {
821             // 0x07 FolderHierarchy
822             "Folders", "Folder", "FolderDisplayName", "FolderServerId", "FolderParentId", "Type",
823             "FolderResponse", "FolderStatus", "FolderContentClass", "Changes", "FolderAdd",
824             "FolderDelete", "FolderUpdate", "FolderSyncKey", "FolderFolderCreate",
825             "FolderFolderDelete", "FolderFolderUpdate", "FolderSync", "Count", "FolderVersion"
826         },
827         {
828             // 0x08 MeetingResponse
829             "CalId", "CollectionId", "MeetingResponse", "ReqId", "Request",
830             "MeetingResponseResult", "MeetingResponseStatus", "UserResponse", "Version",
831             "InstanceId"
832         },
833         {
834             // 0x09 Tasks
835             "TasksBody", "TasksBodySize", "TasksBodyTruncated", "TasksCategories", "TasksCategory",
836             "Complete", "DateCompleted", "DueDate", "UTCDueDate", "TasksImportance", "Recurrence",
837             "RecurrenceType", "RecurrenceStart", "RecurrenceUntil", "RecurrenceOccurrences",
838             "RecurrenceInterval", "RecurrenceDOM", "RecurrenceDOW", "RecurrenceWOM",
839             "RecurrenceMOY", "RecurrenceRegenerate", "RecurrenceDeadOccur", "ReminderSet",
840             "ReminderTime", "TasksSensitivity", "StartDate", "UTCStartDate", "TasksSubject",
841             "TasksCompressedRTF", "OrdinalDate", "SubordinalDate", "TasksCalendarType",
842             "TasksIsLeapMonth", "TasksFirstDayOfWeek"
843         },
844         {
845             // 0x0A ResolveRecipients
846             "ResolveRecipients", "Response", "Status", "Type", "Recipient", "DisplayName",
847             "EmailAddress", "Certificates", "Certificate", "MiniCertificate", "Options", "To",
848             "CertificateRetrieval", "RecipientCount", "MaxCertificates", "MaxAmbiguousRecipients",
849             "CertificateCount", "Availability", "StartTime", "EndTime", "MergedFreeBusy",
850             "Picture", "MaxSize", "Data", "MaxPictures"
851         },
852         {
853             // 0x0B ValidateCert
854             "ValidateCert", "Certificates", "Certificate", "CertificateChain", "CheckCRL",
855             "Status"
856         },
857         {
858             // 0x0C Contacts2
859             "CustomerId", "GovernmentId", "IMAddress", "IMAddress2", "IMAddress3", "ManagerName",
860             "CompanyMainPhone", "AccountName", "NickName", "MMS"
861         },
862         {
863             // 0x0D Ping
864             "Ping", "AutdState", "PingStatus", "HeartbeatInterval", "PingFolders", "PingFolder",
865             "PingId", "PingClass", "MaxFolders"
866         },
867         {
868             // 0x0E Provision
869             "Provision", "Policies", "Policy", "PolicyType", "PolicyKey", "Data", "ProvisionStatus",
870             "RemoteWipe", "EASProvidionDoc", "DevicePasswordEnabled",
871             "AlphanumericDevicePasswordRequired",
872             "DeviceEncryptionEnabled", "PasswordRecoveryEnabled", "-unused-", "AttachmentsEnabled",
873             "MinDevicePasswordLength",
874             "MaxInactivityTimeDeviceLock", "MaxDevicePasswordFailedAttempts", "MaxAttachmentSize",
875             "AllowSimpleDevicePassword", "DevicePasswordExpiration", "DevicePasswordHistory",
876             "AllowStorageCard", "AllowCamera", "RequireDeviceEncryption",
877             "AllowUnsignedApplications", "AllowUnsignedInstallationPackages",
878             "MinDevicePasswordComplexCharacters", "AllowWiFi", "AllowTextMessaging",
879             "AllowPOPIMAPEmail", "AllowBluetooth", "AllowIrDA", "RequireManualSyncWhenRoaming",
880             "AllowDesktopSync",
881             "MaxCalendarAgeFilder", "AllowHTMLEmail", "MaxEmailAgeFilter",
882             "MaxEmailBodyTruncationSize", "MaxEmailHTMLBodyTruncationSize",
883             "RequireSignedSMIMEMessages", "RequireEncryptedSMIMEMessages",
884             "RequireSignedSMIMEAlgorithm", "RequireEncryptionSMIMEAlgorithm",
885             "AllowSMIMEEncryptionAlgorithmNegotiation", "AllowSMIMESoftCerts", "AllowBrowser",
886             "AllowConsumerEmail", "AllowRemoteDesktop", "AllowInternetSharing",
887             "UnapprovedInROMApplicationList", "ApplicationName", "ApprovedApplicationList", "Hash"
888         },
889         {
890             // 0x0F Search
891             "Search", "Stores", "Store", "Name", "Query",
892             "SearchOptions", "Range", "SearchStatus", "Response", "Result",
893             "Properties", "Total", "EqualTo", "Value", "And",
894             "Or", "FreeText", "SubstringOp", "DeepTraversal", "LongId",
895             "RebuildResults", "LessThan", "GreaterThan", "Schema", "SearchSupported", "UserName",
896             "Password", "ConversationId", "Picture", "MaxSize", "MaxPictures"
897         },
898         {
899             // 0x10 Gal
900             "GalDisplayName", "GalPhone", "GalOffice", "GalTitle", "GalCompany", "GalAlias",
901             "GalFirstName", "GalLastName", "GalHomePhone", "GalMobilePhone", "GalEmailAddress",
902             "GalPicture", "GalStatus", "GalData"
903         },
904         {
905             // 0x11 AirSyncBase
906             "BodyPreference", "BodyPreferenceType", "BodyPreferenceTruncationSize", "AllOrNone",
907             "--unused1--", "BaseBody", "BaseData", "BaseEstimatedDataSize", "BaseTruncated",
908             "BaseAttachments", "BaseAttachment", "BaseDisplayName", "FileReference", "BaseMethod",
909             "BaseContentId", "BaseContentLocation", "BaseIsInline", "BaseNativeBodyType",
910             "BaseContentType", "BasePreview", "BodyPartPreference", "BodyPart", "BaseStatus"
911         },
912         {
913             // 0x12 Settings
914             "Settings", "SettingsStatus", "Get", "Set", "Oof", "OofState", "SettingsStartTime",
915             "SettingsEndTime", "OofMessage", "AppliesToInternal", "AppliesToExternalKnown",
916             "AppliesToExternalUnknown", "Enabled", "ReplyMessage", "BodyType", "DevicePassword",
917             "Password", "DeviceInformation", "Model", "IMEI", "FriendlyName", "OS", "OSLanguage",
918             "PhoneNumber", "UserInformation", "EmailAddress", "StmpAddress", "UserAgent",
919             "EnableOutboundSMS", "MobileOperator", "PrimarySmtpAddress", "Accounts", "Account",
920             "AccountsId", "AccountName", "UserDisplayName", "SendDisabled", "--unused3--",
921             "RightsManagementInformation"
922         },
923         {
924             // 0x13 DocumentLibrary
925             "LinkId", "DisplayName", "IsFolder", "CreationDate", "LastModifiedDate", "IsHidden",
926             "ContentLength", "ContentType"
927         },
928         {
929             // 0x14 ItemOperations
930             "Items", "ItemsFetch", "ItemsStore", "ItemsOptions", "ItemsRange",
931             "ItemsTotal", "ItemsProperties", "ItemsData", "ItemsStatus", "ItemsResponse",
932             "ItemsVersion", "ItemsSchema", "ItemsPart", "ItemsEmptyFolder", "ItemsDeleteSubFolders",
933             "ItemsUserName", "ItemsPassword", "ItemsMove", "ItemsDstFldId", "ItemsConversationId",
934             "ItemsMoveAlways"
935         },
936         {
937             // 0x15 ComposeMail
938             "SendMail", "SmartForward", "SmartReply", "SaveInSentItems", "ReplaceMime",
939             "--unused2--", "ComposeSource", "ComposeFolderId", "ComposeItemId", "ComposeLongId",
940             "ComposeInstanceId", "ComposeMime", "ComposeClientId", "ComposeStatus",
941             "ComposeAccountId"
942         },
943         {
944             // 0x16 Email2
945             "UmCallerId", "UmUserNotes", "UmAttDuration", "UmAttOrder", "ConversationId",
946             "ConversationIndex", "LastVerbExecuted", "LastVerbExecutionTime", "ReceivedAsBcc",
947             "Sender", "CalendarType", "IsLeapMonth", "AccountId", "FirstDayOfWeek",
948             "MeetingMessageType"
949         },
950         {
951             // 0x17 Notes
952             "Subject", "MessageClass", "LastModifiedDate", "Categories", "Category"
953         },
954         {
955             // 0x18 Rights Management
956             "RMSupport", "RMTemplates", "RMTemplate", "RMLicense", "EditAllowed", "ReplyAllowed",
957             "ReplyAllAllowed", "ForwardAllowed", "ModifyRecipientsAllowed", "ExtractAllowed",
958             "PrintAllowed", "ExportAllowed", "ProgrammaticAccessAllowed", "RMOwner",
959             "ContentExpiryDate", "TemplateID", "TemplateName", "TemplateDescription",
960             "ContentOwner", "RemoveRMDistribution"
961         }
962     };
963 }
964