Home | History | Annotate | Download | only in adapter
      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).
     25  *
     26  * The array of String arrays is used to construct server requests with EasSerializer.  One thing
     27  * we might do eventually is to "precompile" these requests, in part, although they should be
     28  * fairly fast to begin with (each tag requires one HashMap lookup, and there aren't all that many
     29  * of them in a given command).
     30  *
     31  */
     32 public class Tags {
     33 
     34     // Wbxml page definitions for EAS
     35     public static final int AIRSYNC = 0x00;
     36     public static final int CONTACTS = 0x01;
     37     public static final int EMAIL = 0x02;
     38     public static final int CALENDAR = 0x04;
     39     public static final int MOVE = 0x05;
     40     public static final int GIE = 0x06;
     41     public static final int FOLDER = 0x07;
     42     public static final int MREQ = 0x08;
     43     public static final int TASK = 0x09;
     44     public static final int CONTACTS2 = 0x0C;
     45     public static final int PING = 0x0D;
     46     public static final int PROVISION = 0x0E;
     47     public static final int SEARCH = 0x0F;
     48     public static final int GAL = 0x10;
     49     public static final int BASE = 0x11;
     50 
     51     // Shift applied to page numbers to generate tag
     52     public static final int PAGE_SHIFT = 6;
     53     public static final int PAGE_MASK = 0x3F;  // 6 bits
     54 
     55     public static final int SYNC_PAGE = 0 << PAGE_SHIFT;
     56     public static final int SYNC_SYNC = SYNC_PAGE + 5;
     57     public static final int SYNC_RESPONSES = SYNC_PAGE + 6;
     58     public static final int SYNC_ADD = SYNC_PAGE + 7;
     59     public static final int SYNC_CHANGE = SYNC_PAGE + 8;
     60     public static final int SYNC_DELETE = SYNC_PAGE + 9;
     61     public static final int SYNC_FETCH = SYNC_PAGE + 0xA;
     62     public static final int SYNC_SYNC_KEY = SYNC_PAGE + 0xB;
     63     public static final int SYNC_CLIENT_ID = SYNC_PAGE + 0xC;
     64     public static final int SYNC_SERVER_ID = SYNC_PAGE + 0xD;
     65     public static final int SYNC_STATUS = SYNC_PAGE + 0xE;
     66     public static final int SYNC_COLLECTION = SYNC_PAGE + 0xF;
     67     public static final int SYNC_CLASS = SYNC_PAGE + 0x10;
     68     public static final int SYNC_VERSION = SYNC_PAGE + 0x11;
     69     public static final int SYNC_COLLECTION_ID = SYNC_PAGE + 0x12;
     70     public static final int SYNC_GET_CHANGES = SYNC_PAGE + 0x13;
     71     public static final int SYNC_MORE_AVAILABLE = SYNC_PAGE + 0x14;
     72     public static final int SYNC_WINDOW_SIZE = SYNC_PAGE + 0x15;
     73     public static final int SYNC_COMMANDS = SYNC_PAGE + 0x16;
     74     public static final int SYNC_OPTIONS = SYNC_PAGE + 0x17;
     75     public static final int SYNC_FILTER_TYPE = SYNC_PAGE + 0x18;
     76     public static final int SYNC_TRUNCATION = SYNC_PAGE + 0x19;
     77     public static final int SYNC_RTF_TRUNCATION = SYNC_PAGE + 0x1A;
     78     public static final int SYNC_CONFLICT = SYNC_PAGE + 0x1B;
     79     public static final int SYNC_COLLECTIONS = SYNC_PAGE + 0x1C;
     80     public static final int SYNC_APPLICATION_DATA = SYNC_PAGE + 0x1D;
     81     public static final int SYNC_DELETES_AS_MOVES = SYNC_PAGE + 0x1E;
     82     public static final int SYNC_NOTIFY_GUID = SYNC_PAGE + 0x1F;
     83     public static final int SYNC_SUPPORTED = SYNC_PAGE + 0x20;
     84     public static final int SYNC_SOFT_DELETE = SYNC_PAGE + 0x21;
     85     public static final int SYNC_MIME_SUPPORT = SYNC_PAGE + 0x22;
     86     public static final int SYNC_MIME_TRUNCATION = SYNC_PAGE + 0x23;
     87     public static final int SYNC_WAIT = SYNC_PAGE + 0x24;
     88     public static final int SYNC_LIMIT = SYNC_PAGE + 0x25;
     89     public static final int SYNC_PARTIAL = SYNC_PAGE + 0x26;
     90 
     91     public static final int GIE_PAGE = GIE << PAGE_SHIFT;
     92     public static final int GIE_GET_ITEM_ESTIMATE = GIE_PAGE + 5;
     93     public static final int GIE_VERSION = GIE_PAGE + 6;
     94     public static final int GIE_COLLECTIONS = GIE_PAGE + 7;
     95     public static final int GIE_COLLECTION = GIE_PAGE + 8;
     96     public static final int GIE_CLASS = GIE_PAGE + 9;
     97     public static final int GIE_COLLECTION_ID = GIE_PAGE + 0xA;
     98     public static final int GIE_DATE_TIME = GIE_PAGE + 0xB;
     99     public static final int GIE_ESTIMATE = GIE_PAGE + 0xC;
    100     public static final int GIE_RESPONSE = GIE_PAGE + 0xD;
    101     public static final int GIE_STATUS = GIE_PAGE + 0xE;
    102 
    103     public static final int CONTACTS_PAGE = CONTACTS << PAGE_SHIFT;
    104     public static final int CONTACTS_ANNIVERSARY = CONTACTS_PAGE + 5;
    105     public static final int CONTACTS_ASSISTANT_NAME = CONTACTS_PAGE + 6;
    106     public static final int CONTACTS_ASSISTANT_TELEPHONE_NUMBER = CONTACTS_PAGE + 7;
    107     public static final int CONTACTS_BIRTHDAY = CONTACTS_PAGE + 8;
    108     public static final int CONTACTS_BODY = CONTACTS_PAGE + 9;
    109     public static final int CONTACTS_BODY_SIZE = CONTACTS_PAGE + 0xA;
    110     public static final int CONTACTS_BODY_TRUNCATED = CONTACTS_PAGE + 0xB;
    111     public static final int CONTACTS_BUSINESS2_TELEPHONE_NUMBER = CONTACTS_PAGE + 0xC;
    112     public static final int CONTACTS_BUSINESS_ADDRESS_CITY = CONTACTS_PAGE + 0xD;
    113     public static final int CONTACTS_BUSINESS_ADDRESS_COUNTRY = CONTACTS_PAGE + 0xE;
    114     public static final int CONTACTS_BUSINESS_ADDRESS_POSTAL_CODE = CONTACTS_PAGE + 0xF;
    115     public static final int CONTACTS_BUSINESS_ADDRESS_STATE = CONTACTS_PAGE + 0x10;
    116     public static final int CONTACTS_BUSINESS_ADDRESS_STREET = CONTACTS_PAGE + 0x11;
    117     public static final int CONTACTS_BUSINESS_FAX_NUMBER = CONTACTS_PAGE + 0x12;
    118     public static final int CONTACTS_BUSINESS_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x13;
    119     public static final int CONTACTS_CAR_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x14;
    120     public static final int CONTACTS_CATEGORIES = CONTACTS_PAGE + 0x15;
    121     public static final int CONTACTS_CATEGORY = CONTACTS_PAGE + 0x16;
    122     public static final int CONTACTS_CHILDREN = CONTACTS_PAGE + 0x17;
    123     public static final int CONTACTS_CHILD = CONTACTS_PAGE + 0x18;
    124     public static final int CONTACTS_COMPANY_NAME = CONTACTS_PAGE + 0x19;
    125     public static final int CONTACTS_DEPARTMENT = CONTACTS_PAGE + 0x1A;
    126     public static final int CONTACTS_EMAIL1_ADDRESS = CONTACTS_PAGE + 0x1B;
    127     public static final int CONTACTS_EMAIL2_ADDRESS = CONTACTS_PAGE + 0x1C;
    128     public static final int CONTACTS_EMAIL3_ADDRESS = CONTACTS_PAGE + 0x1D;
    129     public static final int CONTACTS_FILE_AS = CONTACTS_PAGE + 0x1E;
    130     public static final int CONTACTS_FIRST_NAME = CONTACTS_PAGE + 0x1F;
    131     public static final int CONTACTS_HOME2_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x20;
    132     public static final int CONTACTS_HOME_ADDRESS_CITY = CONTACTS_PAGE + 0x21;
    133     public static final int CONTACTS_HOME_ADDRESS_COUNTRY = CONTACTS_PAGE + 0x22;
    134     public static final int CONTACTS_HOME_ADDRESS_POSTAL_CODE = CONTACTS_PAGE + 0x23;
    135     public static final int CONTACTS_HOME_ADDRESS_STATE = CONTACTS_PAGE + 0x24;
    136     public static final int CONTACTS_HOME_ADDRESS_STREET = CONTACTS_PAGE + 0x25;
    137     public static final int CONTACTS_HOME_FAX_NUMBER = CONTACTS_PAGE + 0x26;
    138     public static final int CONTACTS_HOME_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x27;
    139     public static final int CONTACTS_JOB_TITLE = CONTACTS_PAGE + 0x28;
    140     public static final int CONTACTS_LAST_NAME = CONTACTS_PAGE + 0x29;
    141     public static final int CONTACTS_MIDDLE_NAME = CONTACTS_PAGE + 0x2A;
    142     public static final int CONTACTS_MOBILE_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x2B;
    143     public static final int CONTACTS_OFFICE_LOCATION = CONTACTS_PAGE + 0x2C;
    144     public static final int CONTACTS_OTHER_ADDRESS_CITY = CONTACTS_PAGE + 0x2D;
    145     public static final int CONTACTS_OTHER_ADDRESS_COUNTRY = CONTACTS_PAGE + 0x2E;
    146     public static final int CONTACTS_OTHER_ADDRESS_POSTAL_CODE = CONTACTS_PAGE + 0x2F;
    147     public static final int CONTACTS_OTHER_ADDRESS_STATE = CONTACTS_PAGE + 0x30;
    148     public static final int CONTACTS_OTHER_ADDRESS_STREET = CONTACTS_PAGE + 0x31;
    149     public static final int CONTACTS_PAGER_NUMBER = CONTACTS_PAGE + 0x32;
    150     public static final int CONTACTS_RADIO_TELEPHONE_NUMBER = CONTACTS_PAGE + 0x33;
    151     public static final int CONTACTS_SPOUSE = CONTACTS_PAGE + 0x34;
    152     public static final int CONTACTS_SUFFIX = CONTACTS_PAGE + 0x35;
    153     public static final int CONTACTS_TITLE = CONTACTS_PAGE + 0x36;
    154     public static final int CONTACTS_WEBPAGE = CONTACTS_PAGE + 0x37;
    155     public static final int CONTACTS_YOMI_COMPANY_NAME = CONTACTS_PAGE + 0x38;
    156     public static final int CONTACTS_YOMI_FIRST_NAME = CONTACTS_PAGE + 0x39;
    157     public static final int CONTACTS_YOMI_LAST_NAME = CONTACTS_PAGE + 0x3A;
    158     public static final int CONTACTS_COMPRESSED_RTF = CONTACTS_PAGE + 0x3B;
    159     public static final int CONTACTS_PICTURE = CONTACTS_PAGE + 0x3C;
    160 
    161     public static final int CALENDAR_PAGE = CALENDAR << PAGE_SHIFT;
    162     public static final int CALENDAR_TIME_ZONE = CALENDAR_PAGE + 5;
    163     public static final int CALENDAR_ALL_DAY_EVENT = CALENDAR_PAGE + 6;
    164     public static final int CALENDAR_ATTENDEES = CALENDAR_PAGE + 7;
    165     public static final int CALENDAR_ATTENDEE = CALENDAR_PAGE + 8;
    166     public static final int CALENDAR_ATTENDEE_EMAIL = CALENDAR_PAGE + 9;
    167     public static final int CALENDAR_ATTENDEE_NAME = CALENDAR_PAGE + 0xA;
    168     public static final int CALENDAR_BODY = CALENDAR_PAGE + 0xB;
    169     public static final int CALENDAR_BODY_TRUNCATED = CALENDAR_PAGE + 0xC;
    170     public static final int CALENDAR_BUSY_STATUS = CALENDAR_PAGE + 0xD;
    171     public static final int CALENDAR_CATEGORIES = CALENDAR_PAGE + 0xE;
    172     public static final int CALENDAR_CATEGORY = CALENDAR_PAGE + 0xF;
    173     public static final int CALENDAR_COMPRESSED_RTF = CALENDAR_PAGE + 0x10;
    174     public static final int CALENDAR_DTSTAMP = CALENDAR_PAGE + 0x11;
    175     public static final int CALENDAR_END_TIME = CALENDAR_PAGE + 0x12;
    176     public static final int CALENDAR_EXCEPTION = CALENDAR_PAGE + 0x13;
    177     public static final int CALENDAR_EXCEPTIONS = CALENDAR_PAGE + 0x14;
    178     public static final int CALENDAR_EXCEPTION_IS_DELETED = CALENDAR_PAGE + 0x15;
    179     public static final int CALENDAR_EXCEPTION_START_TIME = CALENDAR_PAGE + 0x16;
    180     public static final int CALENDAR_LOCATION = CALENDAR_PAGE + 0x17;
    181     public static final int CALENDAR_MEETING_STATUS = CALENDAR_PAGE + 0x18;
    182     public static final int CALENDAR_ORGANIZER_EMAIL = CALENDAR_PAGE + 0x19;
    183     public static final int CALENDAR_ORGANIZER_NAME = CALENDAR_PAGE + 0x1A;
    184     public static final int CALENDAR_RECURRENCE = CALENDAR_PAGE + 0x1B;
    185     public static final int CALENDAR_RECURRENCE_TYPE = CALENDAR_PAGE + 0x1C;
    186     public static final int CALENDAR_RECURRENCE_UNTIL = CALENDAR_PAGE + 0x1D;
    187     public static final int CALENDAR_RECURRENCE_OCCURRENCES = CALENDAR_PAGE + 0x1E;
    188     public static final int CALENDAR_RECURRENCE_INTERVAL = CALENDAR_PAGE + 0x1F;
    189     public static final int CALENDAR_RECURRENCE_DAYOFWEEK = CALENDAR_PAGE + 0x20;
    190     public static final int CALENDAR_RECURRENCE_DAYOFMONTH = CALENDAR_PAGE + 0x21;
    191     public static final int CALENDAR_RECURRENCE_WEEKOFMONTH = CALENDAR_PAGE + 0x22;
    192     public static final int CALENDAR_RECURRENCE_MONTHOFYEAR = CALENDAR_PAGE + 0x23;
    193     public static final int CALENDAR_REMINDER_MINS_BEFORE = CALENDAR_PAGE + 0x24;
    194     public static final int CALENDAR_SENSITIVITY = CALENDAR_PAGE + 0x25;
    195     public static final int CALENDAR_SUBJECT = CALENDAR_PAGE + 0x26;
    196     public static final int CALENDAR_START_TIME = CALENDAR_PAGE + 0x27;
    197     public static final int CALENDAR_UID = CALENDAR_PAGE + 0x28;
    198     public static final int CALENDAR_ATTENDEE_STATUS = CALENDAR_PAGE + 0x29;
    199     public static final int CALENDAR_ATTENDEE_TYPE = CALENDAR_PAGE + 0x2A;
    200 
    201     public static final int FOLDER_PAGE = FOLDER << PAGE_SHIFT;
    202     public static final int FOLDER_FOLDERS = FOLDER_PAGE + 5;
    203     public static final int FOLDER_FOLDER = FOLDER_PAGE + 6;
    204     public static final int FOLDER_DISPLAY_NAME = FOLDER_PAGE + 7;
    205     public static final int FOLDER_SERVER_ID = FOLDER_PAGE + 8;
    206     public static final int FOLDER_PARENT_ID = FOLDER_PAGE + 9;
    207     public static final int FOLDER_TYPE = FOLDER_PAGE + 0xA;
    208     public static final int FOLDER_RESPONSE = FOLDER_PAGE + 0xB;
    209     public static final int FOLDER_STATUS = FOLDER_PAGE + 0xC;
    210     public static final int FOLDER_CONTENT_CLASS = FOLDER_PAGE + 0xD;
    211     public static final int FOLDER_CHANGES = FOLDER_PAGE + 0xE;
    212     public static final int FOLDER_ADD = FOLDER_PAGE + 0xF;
    213     public static final int FOLDER_DELETE = FOLDER_PAGE + 0x10;
    214     public static final int FOLDER_UPDATE = FOLDER_PAGE + 0x11;
    215     public static final int FOLDER_SYNC_KEY = FOLDER_PAGE + 0x12;
    216     public static final int FOLDER_FOLDER_CREATE = FOLDER_PAGE + 0x13;
    217     public static final int FOLDER_FOLDER_DELETE= FOLDER_PAGE + 0x14;
    218     public static final int FOLDER_FOLDER_UPDATE = FOLDER_PAGE + 0x15;
    219     public static final int FOLDER_FOLDER_SYNC = FOLDER_PAGE + 0x16;
    220     public static final int FOLDER_COUNT = FOLDER_PAGE + 0x17;
    221     public static final int FOLDER_VERSION = FOLDER_PAGE + 0x18;
    222 
    223     public static final int MREQ_PAGE = MREQ << PAGE_SHIFT;
    224     public static final int MREQ_CAL_ID = MREQ_PAGE + 5;
    225     public static final int MREQ_COLLECTION_ID = MREQ_PAGE + 6;
    226     public static final int MREQ_MEETING_RESPONSE = MREQ_PAGE + 7;
    227     public static final int MREQ_REQ_ID = MREQ_PAGE + 8;
    228     public static final int MREQ_REQUEST = MREQ_PAGE + 9;
    229     public static final int MREQ_RESULT = MREQ_PAGE + 0xA;
    230     public static final int MREQ_STATUS = MREQ_PAGE + 0xB;
    231     public static final int MREQ_USER_RESPONSE = MREQ_PAGE + 0xC;
    232     public static final int MREQ_VERSION = MREQ_PAGE + 0xD;
    233 
    234     public static final int EMAIL_PAGE = EMAIL << PAGE_SHIFT;
    235     public static final int EMAIL_ATTACHMENT = EMAIL_PAGE + 5;
    236     public static final int EMAIL_ATTACHMENTS = EMAIL_PAGE + 6;
    237     public static final int EMAIL_ATT_NAME = EMAIL_PAGE + 7;
    238     public static final int EMAIL_ATT_SIZE = EMAIL_PAGE + 8;
    239     public static final int EMAIL_ATT0ID = EMAIL_PAGE + 9;
    240     public static final int EMAIL_ATT_METHOD = EMAIL_PAGE + 0xA;
    241     public static final int EMAIL_ATT_REMOVED = EMAIL_PAGE + 0xB;
    242     public static final int EMAIL_BODY = EMAIL_PAGE + 0xC;
    243     public static final int EMAIL_BODY_SIZE = EMAIL_PAGE + 0xD;
    244     public static final int EMAIL_BODY_TRUNCATED = EMAIL_PAGE + 0xE;
    245     public static final int EMAIL_DATE_RECEIVED = EMAIL_PAGE + 0xF;
    246     public static final int EMAIL_DISPLAY_NAME = EMAIL_PAGE + 0x10;
    247     public static final int EMAIL_DISPLAY_TO = EMAIL_PAGE + 0x11;
    248     public static final int EMAIL_IMPORTANCE = EMAIL_PAGE + 0x12;
    249     public static final int EMAIL_MESSAGE_CLASS = EMAIL_PAGE + 0x13;
    250     public static final int EMAIL_SUBJECT = EMAIL_PAGE + 0x14;
    251     public static final int EMAIL_READ = EMAIL_PAGE + 0x15;
    252     public static final int EMAIL_TO = EMAIL_PAGE + 0x16;
    253     public static final int EMAIL_CC = EMAIL_PAGE + 0x17;
    254     public static final int EMAIL_FROM = EMAIL_PAGE + 0x18;
    255     public static final int EMAIL_REPLY_TO = EMAIL_PAGE + 0x19;
    256     public static final int EMAIL_ALL_DAY_EVENT = EMAIL_PAGE + 0x1A;
    257     public static final int EMAIL_CATEGORIES = EMAIL_PAGE + 0x1B;
    258     public static final int EMAIL_CATEGORY = EMAIL_PAGE + 0x1C;
    259     public static final int EMAIL_DTSTAMP = EMAIL_PAGE + 0x1D;
    260     public static final int EMAIL_END_TIME = EMAIL_PAGE + 0x1E;
    261     public static final int EMAIL_INSTANCE_TYPE = EMAIL_PAGE + 0x1F;
    262     public static final int EMAIL_INTD_BUSY_STATUS = EMAIL_PAGE + 0x20;
    263     public static final int EMAIL_LOCATION = EMAIL_PAGE + 0x21;
    264     public static final int EMAIL_MEETING_REQUEST = EMAIL_PAGE + 0x22;
    265     public static final int EMAIL_ORGANIZER = EMAIL_PAGE + 0x23;
    266     public static final int EMAIL_RECURRENCE_ID = EMAIL_PAGE + 0x24;
    267     public static final int EMAIL_REMINDER = EMAIL_PAGE + 0x25;
    268     public static final int EMAIL_RESPONSE_REQUESTED = EMAIL_PAGE + 0x26;
    269     public static final int EMAIL_RECURRENCES = EMAIL_PAGE + 0x27;
    270     public static final int EMAIL_RECURRENCE = EMAIL_PAGE + 0x28;
    271     public static final int EMAIL_RECURRENCE_TYPE = EMAIL_PAGE + 0x29;
    272     public static final int EMAIL_RECURRENCE_UNTIL = EMAIL_PAGE + 0x2A;
    273     public static final int EMAIL_RECURRENCE_OCCURRENCES = EMAIL_PAGE + 0x2B;
    274     public static final int EMAIL_RECURRENCE_INTERVAL = EMAIL_PAGE + 0x2C;
    275     public static final int EMAIL_RECURRENCE_DAYOFWEEK = EMAIL_PAGE + 0x2D;
    276     public static final int EMAIL_RECURRENCE_DAYOFMONTH = EMAIL_PAGE + 0x2E;
    277     public static final int EMAIL_RECURRENCE_WEEKOFMONTH = EMAIL_PAGE + 0x2F;
    278     public static final int EMAIL_RECURRENCE_MONTHOFYEAR = EMAIL_PAGE + 0x30;
    279     public static final int EMAIL_START_TIME = EMAIL_PAGE + 0x31;
    280     public static final int EMAIL_SENSITIVITY = EMAIL_PAGE + 0x32;
    281     public static final int EMAIL_TIME_ZONE = EMAIL_PAGE + 0x33;
    282     public static final int EMAIL_GLOBAL_OBJID = EMAIL_PAGE + 0x34;
    283     public static final int EMAIL_THREAD_TOPIC = EMAIL_PAGE + 0x35;
    284     public static final int EMAIL_MIME_DATA = EMAIL_PAGE + 0x36;
    285     public static final int EMAIL_MIME_TRUNCATED = EMAIL_PAGE + 0x37;
    286     public static final int EMAIL_MIME_SIZE = EMAIL_PAGE + 0x38;
    287     public static final int EMAIL_INTERNET_CPID = EMAIL_PAGE + 0x39;
    288     public static final int EMAIL_FLAG = EMAIL_PAGE + 0x3A;
    289     public static final int EMAIL_FLAG_STATUS = EMAIL_PAGE + 0x3B;
    290     public static final int EMAIL_CONTENT_CLASS = EMAIL_PAGE + 0x3C;
    291     public static final int EMAIL_FLAG_TYPE = EMAIL_PAGE + 0x3D;
    292     public static final int EMAIL_COMPLETE_TIME = EMAIL_PAGE + 0x3E;
    293 
    294     public static final int TASK_PAGE = TASK << PAGE_SHIFT;
    295     public static final int TASK_BODY = TASK_PAGE + 5;
    296     public static final int TASK_BODY_SIZE = TASK_PAGE + 6;
    297     public static final int TASK_BODY_TRUNCATED = TASK_PAGE + 7;
    298     public static final int TASK_CATEGORIES = TASK_PAGE + 8;
    299     public static final int TASK_CATEGORY = TASK_PAGE + 9;
    300     public static final int TASK_COMPLETE = TASK_PAGE + 0xA;
    301     public static final int TASK_DATE_COMPLETED = TASK_PAGE + 0xB;
    302     public static final int TASK_DUE_DATE = TASK_PAGE + 0xC;
    303     public static final int TASK_UTC_DUE_DATE = TASK_PAGE + 0xD;
    304     public static final int TASK_IMPORTANCE = TASK_PAGE + 0xE;
    305     public static final int TASK_RECURRENCE = TASK_PAGE + 0xF;
    306     public static final int TASK_RECURRENCE_TYPE = TASK_PAGE + 0x10;
    307     public static final int TASK_RECURRENCE_START = TASK_PAGE + 0x11;
    308     public static final int TASK_RECURRENCE_UNTIL = TASK_PAGE + 0x12;
    309     public static final int TASK_RECURRENCE_OCCURRENCES = TASK_PAGE + 0x13;
    310     public static final int TASK_RECURRENCE_INTERVAL = TASK_PAGE + 0x14;
    311     public static final int TASK_RECURRENCE_DAY_OF_MONTH = TASK_PAGE + 0x15;
    312     public static final int TASK_RECURRENCE_DAY_OF_WEEK = TASK_PAGE + 0x16;
    313     public static final int TASK_RECURRENCE_WEEK_OF_MONTH = TASK_PAGE + 0x17;
    314     public static final int TASK_RECURRENCE_MONTH_OF_YEAR = TASK_PAGE + 0x18;
    315     public static final int TASK_RECURRENCE_REGENERATE = TASK_PAGE + 0x19;
    316     public static final int TASK_RECURRENCE_DEAD_OCCUR = TASK_PAGE + 0x1A;
    317     public static final int TASK_REMINDER_SET = TASK_PAGE + 0x1B;
    318     public static final int TASK_REMINDER_TIME = TASK_PAGE + 0x1C;
    319     public static final int TASK_SENSITIVITY = TASK_PAGE + 0x1D;
    320     public static final int TASK_START_DATE = TASK_PAGE + 0x1E;
    321     public static final int TASK_UTC_START_DATE = TASK_PAGE + 0x1F;
    322     public static final int TASK_SUBJECT = TASK_PAGE + 0x20;
    323     public static final int COMPRESSED_RTF = TASK_PAGE + 0x21;
    324     public static final int ORDINAL_DATE = TASK_PAGE + 0x22;
    325     public static final int SUBORDINAL_DATE = TASK_PAGE + 0x23;
    326 
    327     public static final int MOVE_PAGE = MOVE << PAGE_SHIFT;
    328     public static final int MOVE_MOVE_ITEMS = MOVE_PAGE + 5;
    329     public static final int MOVE_MOVE = MOVE_PAGE + 6;
    330     public static final int MOVE_SRCMSGID = MOVE_PAGE + 7;
    331     public static final int MOVE_SRCFLDID = MOVE_PAGE + 8;
    332     public static final int MOVE_DSTFLDID = MOVE_PAGE + 9;
    333     public static final int MOVE_RESPONSE = MOVE_PAGE + 0xA;
    334     public static final int MOVE_STATUS = MOVE_PAGE + 0xB;
    335     public static final int MOVE_DSTMSGID = MOVE_PAGE + 0xC;
    336 
    337     public static final int CONTACTS2_PAGE = CONTACTS2 << PAGE_SHIFT;
    338     public static final int CONTACTS2_CUSTOMER_ID = CONTACTS2_PAGE + 5;
    339     public static final int CONTACTS2_GOVERNMENT_ID = CONTACTS2_PAGE + 6;
    340     public static final int CONTACTS2_IM_ADDRESS = CONTACTS2_PAGE + 7;
    341     public static final int CONTACTS2_IM_ADDRESS_2 = CONTACTS2_PAGE + 8;
    342     public static final int CONTACTS2_IM_ADDRESS_3 = CONTACTS2_PAGE + 9;
    343     public static final int CONTACTS2_MANAGER_NAME = CONTACTS2_PAGE + 0xA;
    344     public static final int CONTACTS2_COMPANY_MAIN_PHONE = CONTACTS2_PAGE + 0xB;
    345     public static final int CONTACTS2_ACCOUNT_NAME = CONTACTS2_PAGE + 0xC;
    346     public static final int CONTACTS2_NICKNAME = CONTACTS2_PAGE + 0xD;
    347     public static final int CONTACTS2_MMS = CONTACTS2_PAGE + 0xE;
    348 
    349     public static final int PING_PAGE = PING << PAGE_SHIFT;
    350     public static final int PING_PING = PING_PAGE + 5;
    351     public static final int PING_AUTD_STATE = PING_PAGE + 6;
    352     public static final int PING_STATUS = PING_PAGE + 7;
    353     public static final int PING_HEARTBEAT_INTERVAL = PING_PAGE + 8;
    354     public static final int PING_FOLDERS = PING_PAGE + 9;
    355     public static final int PING_FOLDER = PING_PAGE + 0xA;
    356     public static final int PING_ID = PING_PAGE + 0xB;
    357     public static final int PING_CLASS = PING_PAGE + 0xC;
    358     public static final int PING_MAX_FOLDERS = PING_PAGE + 0xD;
    359 
    360     public static final int SEARCH_PAGE = SEARCH << PAGE_SHIFT;
    361     public static final int SEARCH_SEARCH = SEARCH_PAGE + 5;
    362     public static final int SEARCH_STORES = SEARCH_PAGE + 6;
    363     public static final int SEARCH_STORE = SEARCH_PAGE + 7;
    364     public static final int SEARCH_NAME = SEARCH_PAGE + 8;
    365     public static final int SEARCH_QUERY = SEARCH_PAGE + 9;
    366     public static final int SEARCH_OPTIONS = SEARCH_PAGE + 0xA;
    367     public static final int SEARCH_RANGE = SEARCH_PAGE + 0xB;
    368     public static final int SEARCH_STATUS = SEARCH_PAGE + 0xC;
    369     public static final int SEARCH_RESPONSE = SEARCH_PAGE + 0xD;
    370     public static final int SEARCH_RESULT = SEARCH_PAGE + 0xE;
    371     public static final int SEARCH_PROPERTIES = SEARCH_PAGE + 0xF;
    372     public static final int SEARCH_TOTAL = SEARCH_PAGE + 0x10;
    373     public static final int SEARCH_EQUAL_TO = SEARCH_PAGE + 0x11;
    374     public static final int SEARCH_VALUE = SEARCH_PAGE + 0x12;
    375     public static final int SEARCH_AND = SEARCH_PAGE + 0x13;
    376     public static final int SEARCH_OR = SEARCH_PAGE + 0x14;
    377     public static final int SEARCH_FREE_TEXT = SEARCH_PAGE + 0x15;
    378     public static final int SEARCH_SUBSTRING_OP = SEARCH_PAGE + 0x16;
    379     public static final int SEARCH_DEEP_TRAVERSAL = SEARCH_PAGE + 0x17;
    380     public static final int SEARCH_LONG_ID = SEARCH_PAGE + 0x18;
    381     public static final int SEARCH_REBUILD_RESULTS = SEARCH_PAGE + 0x19;
    382     public static final int SEARCH_LESS_THAN = SEARCH_PAGE + 0x1A;
    383     public static final int SEARCH_GREATER_THAN = SEARCH_PAGE + 0x1B;
    384     public static final int SEARCH_SCHEMA = SEARCH_PAGE + 0x1C;
    385     public static final int SEARCH_SUPPORTED = SEARCH_PAGE + 0x1D;
    386 
    387     public static final int GAL_PAGE = GAL << PAGE_SHIFT;
    388     public static final int GAL_DISPLAY_NAME = GAL_PAGE + 5;
    389     public static final int GAL_PHONE = GAL_PAGE + 6;
    390     public static final int GAL_OFFICE = GAL_PAGE + 7;
    391     public static final int GAL_TITLE = GAL_PAGE + 8;
    392     public static final int GAL_COMPANY = GAL_PAGE + 9;
    393     public static final int GAL_ALIAS = GAL_PAGE + 0xA;
    394     public static final int GAL_FIRST_NAME = GAL_PAGE + 0xB;
    395     public static final int GAL_LAST_NAME = GAL_PAGE + 0xC;
    396     public static final int GAL_HOME_PHONE = GAL_PAGE + 0xD;
    397     public static final int GAL_MOBILE_PHONE = GAL_PAGE + 0xE;
    398     public static final int GAL_EMAIL_ADDRESS = GAL_PAGE + 0xF;
    399 
    400     public static final int PROVISION_PAGE = PROVISION << PAGE_SHIFT;
    401     // EAS 2.5
    402     public static final int PROVISION_PROVISION = PROVISION_PAGE + 5;
    403     public static final int PROVISION_POLICIES = PROVISION_PAGE + 6;
    404     public static final int PROVISION_POLICY = PROVISION_PAGE + 7;
    405     public static final int PROVISION_POLICY_TYPE = PROVISION_PAGE + 8;
    406     public static final int PROVISION_POLICY_KEY = PROVISION_PAGE + 9;
    407     public static final int PROVISION_DATA = PROVISION_PAGE + 0xA;
    408     public static final int PROVISION_STATUS = PROVISION_PAGE + 0xB;
    409     public static final int PROVISION_REMOTE_WIPE = PROVISION_PAGE + 0xC;
    410     // EAS 12.0
    411     public static final int PROVISION_EAS_PROVISION_DOC = PROVISION_PAGE + 0xD;
    412     public static final int PROVISION_DEVICE_PASSWORD_ENABLED = PROVISION_PAGE + 0xE;
    413     public static final int PROVISION_ALPHA_DEVICE_PASSWORD_ENABLED = PROVISION_PAGE + 0xF;
    414     public static final int PROVISION_DEVICE_ENCRYPTION_ENABLED = PROVISION_PAGE + 0x10;
    415     public static final int PROVISION_PASSWORD_RECOVERY_ENABLED = PROVISION_PAGE + 0x11;
    416     public static final int PROVISION_ATTACHMENTS_ENABLED = PROVISION_PAGE + 0x13;
    417     public static final int PROVISION_MIN_DEVICE_PASSWORD_LENGTH = PROVISION_PAGE + 0x14;
    418     public static final int PROVISION_MAX_INACTIVITY_TIME_DEVICE_LOCK = PROVISION_PAGE + 0x15;
    419     public static final int PROVISION_MAX_DEVICE_PASSWORD_FAILED_ATTEMPTS = PROVISION_PAGE + 0x16;
    420     public static final int PROVISION_MAX_ATTACHMENT_SIZE = PROVISION_PAGE + 0x17;
    421     public static final int PROVISION_ALLOW_SIMPLE_DEVICE_PASSWORD = PROVISION_PAGE + 0x18;
    422     public static final int PROVISION_DEVICE_PASSWORD_EXPIRATION = PROVISION_PAGE + 0x19;
    423     public static final int PROVISION_DEVICE_PASSWORD_HISTORY = PROVISION_PAGE + 0x1A;
    424     public static final int PROVISION_MAX_SUPPORTED_TAG = PROVISION_DEVICE_PASSWORD_HISTORY;
    425 
    426     // EAS 12.1
    427     public static final int PROVISION_ALLOW_STORAGE_CARD = PROVISION_PAGE + 0x1B;
    428     public static final int PROVISION_ALLOW_CAMERA = PROVISION_PAGE + 0x1C;
    429     public static final int PROVISION_REQUIRE_DEVICE_ENCRYPTION = PROVISION_PAGE + 0x1D;
    430     public static final int PROVISION_ALLOW_UNSIGNED_APPLICATIONS = PROVISION_PAGE + 0x1E;
    431     public static final int PROVISION_ALLOW_UNSIGNED_INSTALLATION_PACKAGES = PROVISION_PAGE + 0x1F;
    432     public static final int PROVISION_MIN_DEVICE_PASSWORD_COMPLEX_CHARS = PROVISION_PAGE + 0x20;
    433     public static final int PROVISION_ALLOW_WIFI = PROVISION_PAGE + 0x21;
    434     public static final int PROVISION_ALLOW_TEXT_MESSAGING = PROVISION_PAGE + 0x22;
    435     public static final int PROVISION_ALLOW_POP_IMAP_EMAIL = PROVISION_PAGE + 0x23;
    436     public static final int PROVISION_ALLOW_BLUETOOTH = PROVISION_PAGE + 0x24;
    437     public static final int PROVISION_ALLOW_IRDA = PROVISION_PAGE + 0x25;
    438     public static final int PROVISION_REQUIRE_MANUAL_SYNC_WHEN_ROAMING = PROVISION_PAGE + 0x26;
    439     public static final int PROVISION_ALLOW_DESKTOP_SYNC = PROVISION_PAGE + 0x27;
    440     public static final int PROVISION_MAX_CALENDAR_AGE_FILTER = PROVISION_PAGE + 0x28;
    441     public static final int PROVISION_ALLOW_HTML_EMAIL = PROVISION_PAGE + 0x29;
    442     public static final int PROVISION_MAX_EMAIL_AGE_FILTER = PROVISION_PAGE + 0x2A;
    443     public static final int PROVISION_MAX_EMAIL_BODY_TRUNCATION_SIZE = PROVISION_PAGE + 0x2B;
    444     public static final int PROVISION_MAX_EMAIL_HTML_BODY_TRUNCATION_SIZE = PROVISION_PAGE + 0x2C;
    445     public static final int PROVISION_REQUIRE_SIGNED_SMIME_MESSAGES = PROVISION_PAGE + 0x2D;
    446     public static final int PROVISION_REQUIRE_ENCRYPTED_SMIME_MESSAGES = PROVISION_PAGE + 0x2E;
    447     public static final int PROVISION_REQUIRE_SIGNED_SMIME_ALGORITHM = PROVISION_PAGE + 0x2F;
    448     public static final int PROVISION_REQUIRE_ENCRYPTION_SMIME_ALGORITHM = PROVISION_PAGE + 0x30;
    449     public static final int PROVISION_ALLOW_SMIME_ENCRYPTION_NEGOTIATION = PROVISION_PAGE + 0x31;
    450     public static final int PROVISION_ALLOW_SMIME_SOFT_CERTS = PROVISION_PAGE + 0x32;
    451     public static final int PROVISION_ALLOW_BROWSER = PROVISION_PAGE + 0x33;
    452     public static final int PROVISION_ALLOW_CONSUMER_EMAIL = PROVISION_PAGE + 0x34;
    453     public static final int PROVISION_ALLOW_REMOTE_DESKTOP = PROVISION_PAGE + 0x35;
    454     public static final int PROVISION_ALLOW_INTERNET_SHARING = PROVISION_PAGE + 0x36;
    455     public static final int PROVISION_UNAPPROVED_IN_ROM_APPLICATION_LIST = PROVISION_PAGE + 0x37;
    456     public static final int PROVISION_APPLICATION_NAME = PROVISION_PAGE + 0x38;
    457     public static final int PROVISION_APPROVED_APPLICATION_LIST = PROVISION_PAGE + 0x39;
    458     public static final int PROVISION_HASH = PROVISION_PAGE + 0x3A;
    459 
    460     public static final int BASE_PAGE = BASE << PAGE_SHIFT;
    461     public static final int BASE_BODY_PREFERENCE = BASE_PAGE + 5;
    462     public static final int BASE_TYPE = BASE_PAGE + 6;
    463     public static final int BASE_TRUNCATION_SIZE = BASE_PAGE + 7;
    464     public static final int BASE_ALL_OR_NONE = BASE_PAGE + 8;
    465     public static final int BASE_RESERVED = BASE_PAGE + 9;
    466     public static final int BASE_BODY = BASE_PAGE + 0xA;
    467     public static final int BASE_DATA = BASE_PAGE + 0xB;
    468     public static final int BASE_ESTIMATED_DATA_SIZE = BASE_PAGE + 0xC;
    469     public static final int BASE_TRUNCATED = BASE_PAGE + 0xD;
    470     public static final int BASE_ATTACHMENTS = BASE_PAGE + 0xE;
    471     public static final int BASE_ATTACHMENT = BASE_PAGE + 0xF;
    472     public static final int BASE_DISPLAY_NAME = BASE_PAGE + 0x10;
    473     public static final int BASE_FILE_REFERENCE = BASE_PAGE + 0x11;
    474     public static final int BASE_METHOD = BASE_PAGE + 0x12;
    475     public static final int BASE_CONTENT_ID = BASE_PAGE + 0x13;
    476     public static final int BASE_CONTENT_LOCATION = BASE_PAGE + 0x14;
    477     public static final int BASE_IS_INLINE = BASE_PAGE + 0x15;
    478     public static final int BASE_NATIVE_BODY_TYPE = BASE_PAGE + 0x16;
    479     public static final int BASE_CONTENT_TYPE = BASE_PAGE + 0x17;
    480 
    481     static public String[][] pages = {
    482         {    // 0x00 AirSync
    483             "Sync", "Responses", "Add", "Change", "Delete", "Fetch", "SyncKey", "ClientId",
    484             "ServerId", "Status", "Collection", "Class", "Version", "CollectionId", "GetChanges",
    485             "MoreAvailable", "WindowSize", "Commands", "Options", "FilterType", "Truncation",
    486             "RTFTruncation", "Conflict", "Collections", "ApplicationData", "DeletesAsMoves",
    487             "NotifyGUID", "Supported", "SoftDelete", "MIMESupport", "MIMETruncation", "Wait",
    488             "Limit", "Partial"
    489         },
    490         {
    491             // 0x01 Contacts
    492             "Anniversary", "AssistantName", "AssistantTelephoneNumber", "Birthday", "ContactsBody",
    493             "ContactsBodySize", "ContactsBodyTruncated", "Business2TelephoneNumber",
    494             "BusinessAddressCity",
    495             "BusinessAddressCountry", "BusinessAddressPostalCode", "BusinessAddressState",
    496             "BusinessAddressStreet", "BusinessFaxNumber", "BusinessTelephoneNumber",
    497             "CarTelephoneNumber", "ContactsCategories", "ContactsCategory", "Children", "Child",
    498             "CompanyName", "Department", "Email1Address", "Email2Address", "Email3Address",
    499             "FileAs", "FirstName", "Home2TelephoneNumber", "HomeAddressCity", "HomeAddressCountry",
    500             "HomeAddressPostalCode", "HomeAddressState", "HomeAddressStreet", "HomeFaxNumber",
    501             "HomeTelephoneNumber", "JobTitle", "LastName", "MiddleName", "MobileTelephoneNumber",
    502             "OfficeLocation", "OtherAddressCity", "OtherAddressCountry",
    503             "OtherAddressPostalCode", "OtherAddressState", "OtherAddressStreet", "PagerNumber",
    504             "RadioTelephoneNumber", "Spouse", "Suffix", "Title", "Webpage", "YomiCompanyName",
    505             "YomiFirstName", "YomiLastName", "CompressedRTF", "Picture"
    506         },
    507         {
    508             // 0x02 Email
    509             "Attachment", "Attachments", "AttName", "AttSize", "Add0Id", "AttMethod", "AttRemoved",
    510             "Body", "BodySize", "BodyTruncated", "DateReceived", "DisplayName", "DisplayTo",
    511             "Importance", "MessageClass", "Subject", "Read", "To", "CC", "From", "ReplyTo",
    512             "AllDayEvent", "Categories", "Category", "DTStamp", "EndTime", "InstanceType",
    513             "IntDBusyStatus", "Location", "MeetingRequest", "Organizer", "RecurrenceId", "Reminder",
    514             "ResponseRequested", "Recurrences", "Recurence", "Recurrence_Type", "Recurrence_Until",
    515             "Recurrence_Occurrences", "Recurrence_Interval", "Recurrence_DayOfWeek",
    516             "Recurrence_DayOfMonth", "Recurrence_WeekOfMonth", "Recurrence_MonthOfYear",
    517             "StartTime", "Sensitivity", "TimeZone", "GlobalObjId", "ThreadTopic", "MIMEData",
    518             "MIMETruncated", "MIMESize", "InternetCPID", "Flag", "FlagStatus", "EmailContentClass",
    519             "FlagType", "CompleteTime"
    520         },
    521         {
    522             // 0x03 AirNotify
    523         },
    524         {
    525             // 0x04 Calendar
    526             "CalTimeZone", "CalAllDayEvent", "CalAttendees", "CalAttendee", "CalAttendee_Email",
    527             "CalAttendee_Name", "CalBody", "CalBodyTruncated", "CalBusyStatus", "CalCategories",
    528             "CalCategory", "CalCompressed_RTF", "CalDTStamp", "CalEndTime", "CalExeption",
    529             "CalExceptions", "CalException_IsDeleted", "CalException_StartTime", "CalLocation",
    530             "CalMeetingStatus", "CalOrganizer_Email", "CalOrganizer_Name", "CalRecurrence",
    531             "CalRecurrence_Type", "CalRecurrence_Until", "CalRecurrence_Occurrences",
    532             "CalRecurrence_Interval", "CalRecurrence_DayOfWeek", "CalRecurrence_DayOfMonth",
    533             "CalRecurrence_WeekOfMonth", "CalRecurrence_MonthOfYear", "CalReminder_MinsBefore",
    534             "CalSensitivity", "CalSubject", "CalStartTime", "CalUID", "CalAttendee_Status",
    535             "CalAttendee_Type"
    536         },
    537         {
    538             // 0x05 Move
    539             "MoveItems", "Move", "SrcMsgId", "SrcFldId", "DstFldId", "MoveResponse", "MoveStatus",
    540             "DstMsgId"
    541         },
    542         {
    543             // 0x06 ItemEstimate
    544             "GetItemEstimate", "Version", "Collection", "Collection", "Class", "CollectionId",
    545             "DateTime", "Estimate", "Response", "Status"
    546         },
    547         {
    548             // 0x07 FolderHierarchy
    549             "Folders", "Folder", "FolderDisplayName", "FolderServerId", "FolderParentId", "Type",
    550             "FolderResponse", "FolderStatus", "FolderContentClass", "Changes", "FolderAdd",
    551             "FolderDelete", "FolderUpdate", "FolderSyncKey", "FolderFolderCreate",
    552             "FolderFolderDelete", "FolderFolderUpdate", "FolderSync", "Count", "FolderVersion"
    553         },
    554         {
    555             // 0x08 MeetingResponse
    556             "CalId", "CollectionId", "MeetingResponse", "ReqId", "Request",
    557             "Result", "Status", "UserResponse", "Version"
    558         },
    559         {
    560             // 0x09 Tasks
    561             "Body", "BodySize", "BodyTruncated", "Categories", "Category", "Complete",
    562             "DateCompleted", "DueDate", "UTCDueDate", "Importance", "Recurrence", "RecurrenceType",
    563             "RecurrenceStart", "RecurrenceUntil", "RecurrenceOccurrences", "RecurrenceInterval",
    564             "RecurrenceDOM", "RecurrenceDOW", "RecurrenceWOM", "RecurrenceMOY",
    565             "RecurrenceRegenerate", "RecurrenceDeadOccur", "ReminderSet", "ReminderTime",
    566             "Sensitivity", "StartDate", "UTCStartDate", "Subject", "CompressedRTF", "OrdinalDate",
    567             "SubordinalDate"
    568         },
    569         {
    570             // 0x0A ResolveRecipients
    571         },
    572         {
    573             // 0x0B ValidateCert
    574         },
    575         {
    576             // 0x0C Contacts2
    577             "CustomerId", "GovernmentId", "IMAddress", "IMAddress2", "IMAddress3", "ManagerName",
    578             "CompanyMainPhone", "AccountName", "NickName", "MMS"
    579         },
    580         {
    581             // 0x0D Ping
    582             "Ping", "AutdState", "PingStatus", "HeartbeatInterval", "PingFolders", "PingFolder",
    583             "PingId", "PingClass", "MaxFolders"
    584         },
    585         {
    586             // 0x0E Provision
    587             "Provision", "Policies", "Policy", "PolicyType", "PolicyKey", "Data", "ProvisionStatus",
    588             "RemoteWipe", "EASProvidionDoc", "DevicePasswordEnabled",
    589             "AlphanumericDevicePasswordRequired",
    590             "DeviceEncryptionEnabled", "PasswordRecoveryEnabled", "-unused-", "AttachmentsEnabled",
    591             "MinDevicePasswordLength",
    592             "MaxInactivityTimeDeviceLock", "MaxDevicePasswordFailedAttempts", "MaxAttachmentSize",
    593             "AllowSimpleDevicePassword", "DevicePasswordExpiration", "DevicePasswordHistory",
    594             "AllowStorageCard", "AllowCamera", "RequireDeviceEncryption",
    595             "AllowUnsignedApplications", "AllowUnsignedInstallationPackages",
    596             "MinDevicePasswordComplexCharacters", "AllowWiFi", "AllowTextMessaging",
    597             "AllowPOPIMAPEmail", "AllowBluetooth", "AllowIrDA", "RequireManualSyncWhenRoaming",
    598             "AllowDesktopSync",
    599             "MaxCalendarAgeFilder", "AllowHTMLEmail", "MaxEmailAgeFilder",
    600             "MaxEmailBodyTruncationSize", "MaxEmailHTMLBodyTruncationSize",
    601             "RequireSignedSMIMEMessages", "RequireEncryptedSMIMEMessages",
    602             "RequireSignedSMIMEAlgorithm", "RequireEncryptionSMIMEAlgorithm",
    603             "AllowSMIMEEncryptionAlgorithmNegotiation", "AllowSMIMESoftCerts", "AllowBrowser",
    604             "AllowConsumerEmail", "AllowRemoteDesktop", "AllowInternetSharing",
    605             "UnapprovedInROMApplicationList", "ApplicationName", "ApprovedApplicationList", "Hash"
    606         },
    607         {
    608             // 0x0F Search
    609             "Search", "Stores", "Store", "Name", "Query",
    610             "Options", "Range", "Status", "Response", "Result",
    611             "Properties", "Total", "EqualTo", "Value", "And",
    612             "Or", "FreeText", "SubstringOp", "DeepTraversal", "LongId",
    613             "RebuildResults", "LessThan", "GreateerThan", "Schema", "Supported"
    614         },
    615         {
    616             // 0x10 Gal
    617             "GalDisplayName", "GalPhone", "GalOffice", "GalTitle", "GalCompany", "GalAlias",
    618             "GalFirstName", "GalLastName", "GalHomePhone", "GalMobilePhone", "GalEmailAddress"
    619         },
    620         {
    621             // 0x11 AirSyncBase
    622             "BodyPreference", "BodyPreferenceType", "BodyPreferenceTruncationSize", "AllOrNone",
    623             "--unused--", "BaseBody", "BaseData", "BaseEstimatedDataSize", "BaseTruncated",
    624             "BaseAttachments", "BaseAttachment", "BaseDisplayName", "FileReference", "BaseMethod",
    625             "BaseContentId", "BaseContentLocation", "BaseIsInline", "BaseNativeBodyType",
    626             "BaseContentType"
    627         },
    628         {
    629             // 0x12 Settings
    630         },
    631         {
    632             // 0x13 DocumentLibrary
    633         },
    634         {
    635             // 0x14 ItemOperations
    636         }
    637     };
    638 }
    639