ࡱ>  0jbjbj 9jjX/l  4 ҟΠ \ίί( ۿݿݿݿݿݿݿ$ ("""""ۿ"ۿ.#o*¯ n! >}D)\o*l,0\*\o*:r& ^ Guide to WMO Table Driven Code Forms: FM 94 BUFR and FM 95 CREX Layer 3: Detailed Description of the Code Forms (for programmers of encoder/decoder software) Geneva, 1 January 2002 Preface This guide has been prepared to assist experts who wish to use the WMO Table Driven Data Representation Forms BUFR and CREX. This guide is designed in three layers to accommodate users who require different levels of understanding. Layer 1 is a general description designed for those who need to become familiar with the table driven code forms but do not need a detailed understanding. Layer 2 focuses on the functionality and application of BUFR and CREX, and is intended for those who must use software that encodes and/or decodes BUFR or CREX, but will not actually write the software. Layer 3 is intended for those who must actually write BUFR or CREX encoding and/or decoding software, although those wishing to study table driven codes in depth, will find it equally useful. The WMO gratefully acknowledges the contributions of the experts who developed this guidance material. The Guide was prepared by Dr. Clifford H. Dey of the U. S. A. National Centre for Environmental Prediction. Contributions were also received in particular from Charles Sanders - Australia, Eva Cervena - Czech Republic, Chris Long - U.K., Jeff Ator - USA and Milan Dragosavac, ECMWF. Layer 1: Basic Aspects of BUFR and CREX Layer 2: Functionality and Application of BUFR and CREX (see separate volume for Layers 1 and 2) Layer 3: Detailed Description of the Code Forms (for programmers of encoder/decoder software) Table of Contents Page 3.1 BUFR 3 3.1.1 Sections of a BUFR Message 3 3.1.1.1 Overview of a BUFR Message 3 3.1.1.2 Section 0 Indicator Section 6 3.1.1.3 Section 1 Identification Section 8 3.1.1.4 Section 2 Optional Section 15 3.1.1.5 Section 3 Data Description Section 16 3.1.1.6 Section 4 Data Section 19 3.1.1.7 Section 5 End Section 20 3.1.1.8 Required Entries 21 3.1.1.9 BUFR and Data Management 23 3.1.2 BUFR Descriptors 23 3.1.2.1 Fundamentals of BUFR Descriptors 23 3.1.2.2 Coordinate Descriptors 24 3.1.2.3 Increment Descriptors 25 3.1.3 BUFR Tables 29 3.1.3.1 Introduction 29 3.1.3.2 Table A Data Category 29 3.1.3.3 Table B Classification of Elements 31 3.1.3.4 Table C Data Description Operators 41 3.1.3.5 Table D Lists of Common Sequences 41 3.1.3.6 Comparison of BUFR and Character Code Bit Counts 48 3.1.3.7 Code Tables and Flag Tables 48 3.1.3.8 Local Tables 49 3.1.4 Data Replication 53 3.1.4.1 Introduction 53 3.1.4.2 Simple Replication 54 3.1.4.3 Delayed Replication 55 3.1.4.4 Delayed Replication Using a Sequence Descriptor 56 3.1.4.5 Delayed Repetition 58 3.1.5 Data Compression 59 3.1.6 Data Description Operators 68 3.1.6.1 Changing Data Width, Scale and Reference Value 68 3.1.6.2 Changing Reference Value Only 73 3.1.6.3 Add Associated Field 75 3.1.6.4 Encoding Character Data 81 3.1.6.5 Signifying Length of Local Descriptors 82 3.1.6.6 Data Not Present 84 3.1.6.7 Quality Assessment Information 84 Page 3.2 CREX 87 3.2.1 Sections of a CREX Message 87 3.2.1.1 Overview of a CREX Message 87 3.2.1.2 Section 0 Indicator Section 88 3.2.1.3 Section 1 Data Description Section 89 3.2.1.4 Section 2 Data Section 91 3.2.1.5 Section 3 Optional Section 92 3.2.1.6 Section 4 End Section 92 3.2.2 CREX Descriptors 93 3.2.2.1 Fundamentals of CREX Descriptors 93 3.2.2.2 Coordinate Descriptors 94 3.2.2.3 Increment Descriptors 95 3.2.3 CREX Tables 98 3.2.3.1 Table A Data Category 98 3.2.3.2 Table B Classification of Elements 100 3.2.3.3 Table C Data Description Operators 104 3.2.3.4 Table D Lists of Common Sequences 104 3.2.3.5 Code Tables and Flag Tables 106 3.2.3.6 Local Tables 107 3.2.4 Decomposition of a Sample CREX Message 108 3.2.4.1 Decomposition of the Descriptor Sequence in the Sample CREX Message 108 3.2.4.2 Decomposition of the Data Section in the Sample CREX Message 112 APPENDIX to Chapter 3.1.6.7 Quality Assessment Information 115 3.1.6.7.1 Introduction 115 3.1.6.7.2 First Order Statistics 119 3.1.6.7.3 Specification of the Type of Difference Statistics 122 3.1.6.7.4 Quality Information 125 3.1.6.7.5 Cancel Backward Data Reference 130 3.1.6.7.6 Substituted Values 131 3.1.6.7.7 Replaced/retained Values 133 3.1 BUFR 3.1.1 Sections of a BUFR Message 3.1.1.1 Overview of a BUFR Message The term "message" refers to BUFR being used as a data transmission format. However, BUFR can be, and is used in a number of meteorological data processing centers as an on-line storage format as well as a data archiving format. For transmission of data, each BUFR message consists of a continuous binary stream comprising 6 sections. C O N T I N U O U S B I N A R Y S T R E A MSection 0Section 1Section 2Section 3Section 4Section 5Section NumberNameContents0Indicator Section"BUFR" (coded according to the CCITT International Alphabet No. 5, which is functionally equivalent to ASCII), length of message, BUFR edition number1Identification SectionLength of section, identification of the message 2Optional SectionLength of section and any additional items for local use by data processing centers3Data Description SectionLength of section, number of data subsets, data category flag, data compression flag, and a collection of data descriptors which define the form and content of individual data elements4Data SectionLength of section and binary data5End Section"7777" (coded in CCITT International Alphabet No. 5) Each of the sections of a BUFR message is made up of a series of octets. The term octet means 8 bits. An individual section always consists of an even number of octets, with extra bits added on and set to zero when necessary. Within each section, octets are numbered 1, 2, 3, etc., starting at the beginning of each section. Bit positions within octets are referred to as bit 1 to bit 8, where bit 1 is the most significant, leftmost, or high order bit. An octet with only bit 8 set would have the integer value 1. Theoretically there is no upper limit to the size of a BUFR message but, by convention, BUFR messages are restricted to 15000 octets or 120000 bits. This limit is set by the capabilities of the Global Telecommunications System (GTS) of the WMO. The GTS BLOK feature can be used to break very long BUFR messages into parts. The GTS specification for breaking up very large bulletins using the BBB parameter in the WMO Abbreviated Heading can also be employed. Figure 3.1.1-1 is an example of a complete BUFR message containing 52 octets. The end of each section and the number of the octet within each section is indicated above the binary string. This particular message contains 1 temperature observation of 295.2 degrees K from WMO block/station 72491. Figures 3.1.1-2 through 3.1.1-8 illustrate decoding of the individual sections. The spaces between octets in Figures 3.1.1-2 through 3.1.1-8 were added to improve readability. end of section 0 ( + octet number 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 1 | 2 | binary string 01000010010101010100011001010010000000000000000000110100000000110000000000000000 octet number 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | binary string 00010010000000000000000000111000000000000000000000000000000000000000100100000001 end of section 1 ( + octet number 13 | 14 | 15 | 16 | 17 | 18 | 1 | 2 | 3 | 4 | binary string 00000001000001000001110100001100000000000000000000000000000000000000111000000000 end of section 3 ( + octet number 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | binary string 00000000000000011000000000000001000000010000000100000010000011000000010000000000 end of section 4 ( + octet number 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 1 | 2 | binary string 00000000000000000000100000000000100100001111010111011100010000000011011100110111 + ( end of section 5 octet number 3 | 4 | binary string 0011011100110111 Figure 3.1.1-1. Example of a complete BUFR message containing 52 octets 3.1.1.2 Section 0 - Indicator Section Structure SECTION 0Section 1Section 2Section 3Section 4Section 5Octet No.Contents1 4"BUFR" (coded according to the CCITT International Alphabet No. 5)5 7Total length of BUFR message, in octets (including Section 0)8BUFR edition number (currently 3)Total message length (octets 5 7): The earlier editions of BUFR did not include the total message length. Thus, in decoding BUFR Edition 0 and 1 messages, there was no way of determining the entire length of the message without scanning ahead to find the individual lengths of each of the sections. Edition 2 eliminated this problem by including the total message length in octets 5 7. Edition Number (octet 8): By design, BUFR Edition 2 contained the BUFR Edition number in octet 8, the same octet position relative to the start of the message as it was in Editions 0 and 1. By keeping the relative position fixed, a decoder program can determine at the outset which BUFR version was used for a particular message and then behave accordingly. This meant that archives of records in BUFR Editions 0 or 1 did not need to be updated. Edition number changes: The Edition number will change only if there is a structural change to the data representation system such that an existing and functioning BUFR decoder would fail to work properly if given a "new" record to decode. Edition changes can come about in three main ways. First, if the basic bit or octet structure of the BUFR record were changed, for example by the addition of something new in one of the "fixed format" portions of the record, computer program changes would obviously be required for the programs to work properly. The addition of total BUFR message length to octets 5 7 of the Indicator Section fell in this category it caused the Edition number to change from 1 to 2. The WMO community expects these changes to be kept to a bare minimum. The second way is if the data description operators in Table C (Data description operators) are augmented. These operator descriptors are qualitatively different from simple data descriptors: where the data descriptors just passively describe the data in the record, the operator descriptors are, in effect, instructions to the decoding program to undertake some particular action. Table C defines what actions are possible. Descriptors of type 1 (F=1), the replication operators, are also in this category since they too tell the computer program to do something. Unfortunately, not all of the "operator" type descriptors are collected in Table C. Some of the nominal data descriptors, in particular the "increment" descriptors found in Table B, Classes 4, 5, 6, and 7, take on the character of operators in conjunction with data replication, as well as the operator qualifiers in Table B, Class 31. These topics will be expanded on further later in Chapter 3.1. A third change that would require a new Edition would be a change to the Regulations and/or the many notes scattered through the documentation (The "notes", by the way, are as important as the "Regulations" in formally defining BUFR - they contain many of the details that flesh out the rather sparse regulations. Ignore them at your peril.). This is not particularly likely to happen - more likely will be clarifications to the Regulations or notes that will serve to make the rules more precise in (currently) possibly ambiguous cases. Whether these cases should be considered as requiring an Edition number change is a matter of some judgment. The WMO will be the final arbiter. Sample message decomposition (Indicator Section): The Indicator Section of the sample BUFR Message shown in Figure 3.1.1-1 is decomposed in detail below. The hexadecimal equivalent of the first four octets is shown to clarify the representation of the four characters B, U, F, and R. Note also that the value of the bits in octet 7 is 52 and the value of the bits in octet 8 is 3. octet number: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 binary string: 01000010 01010101 01000110 01010010 00000000 00000000 00110100 0000011 hexadecimal: 4 2 5 5 4 6 5 2 0 0 0 0 3 4 0 3 decoded: B U F R 52 3 Length of message in octets ----+------- BUFR Edition ----+ Figure 3.1.1-2. Section 0 3.1.1.3 Section 1 - Identification Section Structure C O N T I N U O U S B I N A R Y S T R E A MSection 0SECTION 1Section 2Section 3Section 4Section 5Octet No.Contents1 3Length of section, in octets4BUFR master table number this provides for BUFR to be used to represent data from other disciplines, with their own versions of master tables and local tables. For example, this octet is zero for standard WMO FM 94 BUFR tables, but ten for standard IOC FM 94 BUFR Tables whose, use is focused on oceanographic data.5Originating/generating sub-centre (defined by Originating/generating centre)6Originating/generating centre (Common Code tableC-1)7Update sequence number (zero for original BUFR messages; incremented for updates)8Bit 1= 0 No optional section = 1 Optional section includedBits 2 8 set to zero (reserved)9Data category (BUFR Table A)10Data sub-category (defined by local ADP centres)11Version number of master tables used (currently 9 for WMO FM 94 BUFR tables)12Version number of local tables used to augment the master table in use13Year of century 14Month15Day16Hour17Minute18 -Reserved for local use by ADP centresLength of section (octets 1 3): The length of Section 1 can vary between BUFR messages. Beginning with Octet 18, a data processing center may add any type of information they choose. A decoding program need not know what that information may be. Knowing what the length of the Section is, as indicated in octets 1-3, a decoder program can skip over the information that begins at octet 18 and position itself at the next section, either Section 2, if included, or Section 3. Bit 1 of octet 8 indicates if Section 2 is included. If there is no information beginning at octet 18, one octet must still be included (and set to 0) in order to have an even number of octets within the section. Originating/generating sub-centre (octet 5) and Originating/generating center (octet 6): Octet 6 is used to identify the national (or international) originating/generating centres, using the same Common Code table (C 1) as is in use for GRIB. This table is coordinated and maintained by the WMO and published as part of the codes Manual. Any national sub-center numbers that may be required are generated by the national (or international) center in question and that number is to be placed in octet 5. List of sub-centres numbers should be passed to the WMO Secretariat for publication in the Manual. Update sequence number (octet 7): This feature is not widely used, but it is a powerful one. Note that the rule does require one to re-send an entire message if even only one element in the message is a correction of a previous message element. The "associated field" (see Section 3.2.6) is used to indicate which element(s) is(are) the corrected one(s) within the total message. Optional Section 2 (octet 8): This section is not usually sent in international messages but it is put to use in some computer centers that use BUFR frequently in a data base context. Some samples are given in Section 3.1.1.4. If it is present, the flag in octet 8 must be set to 1. Data category (octet 9): The data category (taken from BUFR Table A) provides a quick check of the type of data in the BUFR message. Processing centres can use this information in their observational data ingest processing suite. Data sub-category: This is purely a local option, useful in processing the observational data after it has been decoded from BUFR. By adding this information to the BUFR files in which the ingested data are placed, a processing centre knows in considerable detail just what sort of data is in a BUFR message. This can make the choice of subsequent processors that much easier. It also makes it possible to search through a collection of various data types, encoded in BUFR, and select out only those for which there is a special interest. This has obvious applications in a data base context. As an example here are the sub-types currently in use at the National Centers for Environmental Prediction, Washington, DC, USA: BUFR Data Category 0: Surface data landData Sub-typeDescription1 Synoptic manual and Automatic7 Aviation METAR11 SHEF12 Aviation SCD20MESONET Denver, urban21MESONET RAWS (NIFC)22MESONET MesoWest23MESONET APRS Weather24MESONET Kansas DOT25MESONET Florida30MESONET OtherBUFR Data Category 1: Surface data seaData Sub-typeDescription1 Ship manual and automatic2 Drifting buoy3 Moored buoy4 Land based C-MAN station5 Tide gage6 Sea level pressure bogus7 Coast guard8 Moisture bogus9 SSMIBUFR Data Category 2: Vertical soundings (other than satellite)Data Sub-typeDescription0 Unassigned1 Rawinsonde - fixed land2 Rawinsonde - mobile land3 Rawinsonde ship4 Dropwinsonde5 Pibal7 Wind Profiler (from NOAA)8NEXRAD winds9Wind profiler (from PILOT)BUFR Data Category 3: Vertical soundings (satellite)Data Sub-typeDescription1 Geostationary2 Polar orbiting3 Sun synchronousBUFR Data Category 4: Single level upper-air (other than satellite)Data Sub-typeDescription0 Unassigned1 AIREP2 PIREP3 AMDAR4 ACARS (from ARINC)5 RECCO flight level6E-ADASBUFR Data Category 5: Single level upper-air (satellite)Data Sub-typeDescription10NESDIS SATWIND: GOES High Density IR11NESDIS SATWIND: GOES High Density WV Imagery12NESDIS SATWIND: GOES Hi Density Visible13NESDIS SATWIND: GOES Picture Triplet14NESDIS SATWIND: GOES Hi Density WV Sounding21INDIA SATWIND: INSAT IR22INDIA SATWIND: INSAT Visible23INDIA SATWIND: INSAT WV Imagery41JMA SATWIND: GMS IR42JMA SATWIND: GMS Visible43JMA SATWIND: GMS WV Imagery50NESDIS SATWIND: GMS IR51NESDIS SATWIND: GMS WV Imagery64EUMETSAT SATWIND: METEOSAT IR65EUMETSAT SATWIND: METEOSAT VIS66EUMETSAT SATWIND: METEOSAT WV ImageryBUFR Data Category 12: Surface data (satellite)1SSM/I Brightness temperatures2SSM/I Derived products3GPS Integrated precipitable water5ERS SAR9ERS Radar altimeter data10Navy sea surface temperatures11NESDIS sea surface temperatures12Navy high resolution sea surface temperatures103SSM/I Neural net 3 products137QUIKSCAT dataBUFR Data Category 31: Oceanographic data1BATHY2TESAC3TRACKOB11NLSA ERS2: Altimeter high resolution12NLSA TOPEX: Altimeter high resolution13NLSA TOPEX: Altimeter low resolution14NLSA GFO: Altimeter high resolution Date/time (octets 13 17): The Manual suggests placing the date/time "most typical for the BUFR message content" (whatever that may mean) in the appropriate octets. For synoptic observations, the nominal synoptic time is obviously appropriate. But the exact time of the observation can be placed in the body of the message if this is of interest or value to the users of the data. Collections of satellite observations, which are inherently asynoptic, by convention (at least as NOAA does) have the time of the first observation of the collection in the date/time octets. The exact times for each satellite observation will, of course, be in the body of the message. As the Year 2000 rollover period approached, it was realized the Year of century was not being encoded uniformly because the regulations specifying the values to use for Year of century were not clearly stated. To that end, a new note was added to the Identification Section. The new note reads: To specify the year 2000, octet 13 (Year of century) must contain a value of 100. To specify the year 2001, octet 13 must contain a value of 1 (by International Convention, the date of 1 January 2000 was the first day of the hundredth year of the twentieth century and the date of 1 January 2001 was the first day of the first year of the twenty-first century). One should also note that year 2000 was a leap year, and February 29, 2000 exists. Lack of specification of the Century in BUFR was also felt to be a deficiency, and some processing centres have begun the practice of using octet 18 (see below) of this section for that value. Reserved for use ..." (octets 18 - ): It is not expected that international BUFR messages will contain anything past octet 18. However, octet 18 itself, which is also reserved for local use, must be present in order to maintain an even number of octets in the Identification Section. Traditionally, octet 18 was set to zero. However, as noted above, some centres now use this octet for the Century. Nevertheless, there is no real damage if Section 1 is "extended" past octet 18, because the "Length of section" in octets 1-3 indicates the full size of Section 1. Any operational decoding program worthy of the name will check the number in octets 1-3 and respond accordingly, presumably by skipping the extra material. Sample message decomposition (Identification Section): The Identification Section of the sample BUFR Message shown in Figure 3.1.1-1 is decomposed in detail below: Figure 3.1.1-3. Section 1 octet number: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 binary string: 00000000 00000000 00010010 00000000 00000000 00111010 00000000 00000000 decoded: 0 0 18 0 0 58 0 0 length of section -----+------- standard BUFR tables ------+------- originating center (US Navy - FNMOC) ---+------ flag indicating Section 2 not included -----+------ octet number: 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 binary string: 00000000 00000000 00001001 00000001 00000001 00000100 00011101 00001100 decoded: 0 0 9 1 1 4 29 12 -------+----| data category data sub-category-+--| version of master tables ---+---- version of local tables ---+-------- year of century -----+------| month ---+------- day ----+------ hour ---+--------| octet number: 17 18 binary string: 00000000 00000000 decoded: 0 0 minute -----+----- local use ----+-------| 3.1.1.4 Section 2 - Optional Section Structure C O N T I N U O U S B I N A R Y S T R E A MSection 0Section 1SECTION 2Section 3Section 4Section 5Octet No.Contents1 3Length of section, in octets4Set to zero (reserved)5 -Reserved for use by ADP centresUse Section 2 may or may not be included in any BUFR message. When it is contained within a BUFR message, bit 1 of octet 8 in Section 1 is set to 1. If Section 2 is not included in a message then bit 1 of octet 8 in Section 1 is set to 0. Section 2 may be used for any purpose by an originating center. The only restrictions on the use of Section 2 are that octets 1 - 3 are set to the length of the section, octet 4 is set to zero and the section contains an even number of octets. A typical use of this optional section could be in a data base context. The section might contain pointers into the data section of the message, pointers that indicate the relative location of the start of individual sets of observations (one station's worth, for example) in the data. There could also be some sort of index term included, such as the WMO block and station number. This would make it quite easy to find a particular observation quickly and avoid decoding the whole message just to find one or two specific data elements. Note the Optional Section was not present in the sample BUFR Message shown in Figure 3.1.1-1. 3.1.1.5 Section 3 - Data description Section Structure C O N T I N U O U S B I N A R Y S T R E A MSection 0Section 1Section 2SECTION 3Section 4Section 5Octet No.Contents1 3Length of section, in octets4Set to zero (reserved)5 6Number of data subsets7Bit 1 = 1 observed data = 0 other dataBit 2 = 1 compressed data = 0 non-compressed dataBit 3 - 8 set to zero (reserved)8 -A collection of descriptors which define the form and content of individual data elements comprising one data subset in the data section (Section 4)Number of data subsets (octets 5 6): BUFR Regulation 94.5.2 states Octet 8 and subsequent octets shall contain a collection of descriptors which define the form and content of individual data elements in the Data Section. A data subset shall be defined as the subset of data described by one single application of this collection of descriptors. In this context, the "collection of descriptors" means ALL the descriptors included in Section 3 of the BUFR message. In other words, one pass through the complete collection of descriptors will allow one to decode one data subset from Section 4. One then loops back in the descriptor list for as many times as indicated by the Number of data subsets in octets 5 6. All the data in Section 4 are properly described by repeated use of the same set of descriptors from Section 3. This does not imply that the data subsets are themselves identical in format. The use of delayed replication, as in a collection of TEMPs with varying numbers of significant levels, could cause variations in format (octet count) among data subsets. But they are still considered "subsets" in that the same set of descriptors will properly describe each individual set. The use of the delayed replication descriptor is what makes this possible, and is what delayed replication was designed for. As we will see in Chapter 3.1.6, certain descriptor operators, from Table C can be used to redefine reference values, data lengths, scale factors, and add associated fields. There is also a group of descriptors that "remain in effect until superseded by redefinition". However, Regulation 94.5.3.9 states, If a BUFR message is made up of more than one subset, each subset shall be treated as though it was the first subset encountered. This Regulation means that ALL of these redefinitions or "remain in effect" properties are canceled when one cycles back to reuse a set of descriptors for a new data subset. You wipe the slate clean and start as though it was the first time. Even though data subsets may be compressed and, as a result, the individual elements in each data subset are all reordered, the data subset concept still holds. The data subset count must be included in the correct location, and must be correct. It is impossible to decompress a message without that information; and even if the data are not compressed the count is necessary to retrieve all the data subsets in a given message. If octets 5-6 indicate that there is more than one data subset in the message, with the total number of the subsets given in those octets, then multiple sets of observations, all with the same format (as described by the data descriptors) will be found in Section 4. This is, for example, a means of building "collectives" of observations. Doing so realizes a large portion of the potential efficiency of BUFR. Flag Bit 1 (octet 7): Conceptually, one subset is a collection of related meteorological data. For observational data (Flag bit 1 = 1), each subset usually corresponds to one observation, where "observation", in this context, could mean one surface synoptic report, one rawinsonde ascent, one profiler sounding, one satellite derived sounding with radiances, etc. No examples of non-observational data subsets (Flag bit 1 = 0) are given in the BUFR specifications in the Manual on Codes, but a typical one would be a message consisting of a collection of numerical model forecasts of "soundings" at grid-points or other specific locations. Each forecast sounding (pressure, temperature, wind, relative humidity, whatever, at the many levels of the model) would then be one data subset. Flag Bit 2 (octet 7): If the data in Section 4 is compressed, bit 2 of octet 7 is set to one. If the data is not compressed, it is set to zero. The nature of "data compression" will be described in Chapter 3.1.5. Sample message decomposition (Data Description Section): The Data Description Section of the sample BUFR Message shown in Figure 3.1.1-1 is decomposed in detail below. The data descriptors are given in octets 8 13. Note that octet 14 has been added and set to zero to ensure the Data Description Section contains an even number of octets. Figure 3.1.1-4. Section 3 octet number: 1 | 2 | 3 | 4 | 5 | 6 | 7 | binary string: 00000000 00000000 00001110 00000000 00000000 00000001 10000000 decoded: 14 0 0 1 || length of section -+---------------- reserved -----+------ number of data subsets -----------+------------- flag indicating observed data+ flag indicating non-compressed data+ octet number: 8 | 9 | 10 | 11 | 12 | 13 | 14 binary string: 00000001 00000001 00000001 00000010 00001100 00000100 00000000 decoded: 0 01 001 0 01 002 0 12 004 0 descriptors in F X Y format: 0 01 001 | 0 01 002 | 0 12 004 needed to complete section with an even number of octets ----+------- Recall from Layer 2 that descriptors are composed of thee parts - F (2 bits), X (6 bits), and Y (8 bits). Figure 3.1.1-5 describes the decoding of the three descriptors contained in octets 8 13 in more detail. Descriptors themselves are discussed at length in Section 3.1.2. octet number 8 9 10 11 binary string 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 | decoded +- 0+---01-----+ +------001------++-0+-----01----+ +-----002-------+ meaning F X Y F X Y +---------------descriptor 1------------++--------------descriptor 2---------+ octet number 12 13 binary string 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 | decoded +-0+----12------++------004------+ meaning F X Y +------------descriptor 3----------+ Figure 3.1.1-5. Decoding of Octets 8 13 of Section 3 3.1.1.6 Section 4 - Data Section Structure C O N T I N U O U S B I N A R Y S T R E A MSection 0Section 1Section 2Section 3SECTION 4Section 5Octet No.Contents1 3Length of section, in octets4Set to zero (reserved)5 -Binary data, as defined by the descriptors that begin at octet 8 of Section 3. Sample message decomposition (Data Section) The Data Section of the sample BUFR Message shown in Figure 3.1.1-1 is decomposed in detail below. The length of the Data Section, given in octets 1 3, is 8, and octet 4 is reserved. The remaining octets 5-8 contain the data itself: octet number: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 binary string: 01000000 00000000 00001000 00000000 10010000 11110101 11011100 01000000 decoded 8 | | ---------------length of section ---+ reserved+------Data as described by descriptors------- in Section 3 (Figure 1-6) ----+ Figure 3.1.1-6. Section 4 Now, consider octets 5 8 in more detail. First, recall from octets 8 13 of the Data Description Section that the data is described by the three descriptors 0 01 001, 0 01 002, and 0 12 004. How to determine the characteristics of the data indicated by these three descriptors will be discussed later in Layer 3. For now, suffice it to note the following: DESCRIPTOR NAME UNIT SCALE REFERENCE VALUEDATA WIDTH (Bits)FXY001000WMO block numberNumeric007001002WMO station numberNumeric0010012004Dry-bulb temperature at 3 mK1012 Thus, the WMO block number occupies the first 7 bits of octets 5 8 in the Data Section, or 1001000. This binary string of 7 bits has a value of 72, so the WMO block number is 72. The WMO station number occupies the next 10 bits of octets 5 8 in the Data Section, or 0111101011. This binary string of 10 bits has a value of 491, so the WMO station number is 491. The temperature, in degrees Kelvin, occupies the next 12 bits of octets 5 8 in the Data Section, or 101110001000. This binary string of 12 bits has a value of 2952. Since the scale for this temperature descriptor is 1, we must divide by 10 to retrieve the original value of 295.2 degrees Kelvin. This accounts for 29 of the 32 bits in octets 5 8 of the Data Section. Since all sections of a BUFR message must have an even number of octets and end on an octet boundary, the last three bits of octet 8 are set to zero. This decomposition is depicted pictorially in Figure 3.2.1-7 below. octet number: 5 6 7 8 Binary string: 1 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 decoded: +---- 72 ----+ +--------- 491 --------++---------- 2952 --------++-----+ 3 bits of zero to end octet+-- --+ Figure 3.1.1-7. Decoding of Octets 5 8 of Section 4 3.1.1.7 Section 5 - End Section Structure C O N T I N U O U S B I N A R Y S T R E A MSection 0Section 1Section 2Section 3Section 4SECTION 5Octet No.Contents1 4"7777" (coded according to the CCITT International Alphabet No. 5)Sample message decomposition (End Section) The End Section of the sample BUFR Message shown in Figure 3.1.1-1 (and the End Section of all BUFR messages) is decomposed in detail below. The hexadecimal equivalent of the four octets is shown to clarify the representation of the four characters 7, 7, 7, 7: octet number: 1 2 3 4 binary string: 00110111 00110111 00110111 00110111 hexadecimal: 3 7 3 7 3 7 3 7 decoded: 7 7 7 7 Figure 3.1.1-8. Section 5 3.1.1.8 Required Entries In any BUFR message there are required entries, and there will be a minimum number of bits to represent even the smallest amount of data. Therefore, there will be a minimum length for any BUFR message. The required and the minimum number of octets in each section are: Section 0, octets 1 8 required Section 0 will always contain 8 octets. Section 1, octets 1 18 required Section 1 will contain a minimum of 18 octets. Section 3, octets 1 7 required Section 3 will contain a minimum of 10 octets. The data descriptors begin in octet 8. A single data descriptor occupies 16 bits, or 2 octets. Since the Section must contain at least one descriptor and have an even number of octets, there will be a minimum of 10 octets in Section 3. Note that Section 3 will always conclude with 8 bits set to zero since all descriptors are 16 bits in length and the first descriptor begins in octet 8. Section 4, octets 1 4 required Section 4 will contain a minimum of 6 octets. The data is in bits 5 and beyond. However, since the Section must contain an even number of octets there must be at least 2 octets after octet 4, so there will be a minimum of 6 octets in Section 4. Section 5 - octets 1 4 required Section 5 will always contain 4 octets. There will thus be a minimum of 46 octets, or 368 bits, in any BUFR message. For each section, the minimum number of bits is: C O N T I N U O U S B I N A R Y S T R E A MSection 0 (8 octets) 64 bitsSection 1 (18 octets) 144 bitsSection 2 (optional)Section 3 (10 0ctets) 80 bitsSection 4 (6 octets) 48 bitsSection 5 (4 octets) 32 bits Figure 3.1.1-9 is the same BUFR message used in Figures 3.1.1-1 to 3.1.1-8. However, in Figure 3.1.1-9, those octets that are required in any BUFR message, as described above, are shown in bold. Not included in the bold areas are descriptors contained in octets 8 - 14 of Section 3 and the data in Octets 5 - 8 of section 4. end of section 0 ( + octet number 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 1 | 2 | binary string 01000010010101010100011001010010000000000000000000110100000000110000000000000000 octet number 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | binary string 00010010000000000000000000111000000000000000000000000000000000000000100100000001 end of section 1 ( + octet number 13 | 14 | 15 | 16 | 17 | 18 | 1 | 2 | 3 | 4 | binary string 00000001000001000001110100001100000000000000000000000000000000000000111000000000 end of section 3 ( + octet number 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | binary string 00000000000000011000000000000001000000010000000100000010000011000000010000000000 end of section 4 ( + octet number 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 1 | 2 | binary string 00000000000000000000100000000000100100001111010111011100010000000011011100110111 + ( end of section 5 octet number 3 | 4 | binary string 0011011100110111 Figure 3.1.1-9. Required entries in the sample BUFR message 3.1.1.9 BUFR and Data Management Sections 3 and 4 of BUFR contain all of the information necessary for defining and representing data. The remaining sections are defined and included purely as aids to data management. Key information within these sections is available from fixed locations relative to the start of each section. It is thus possible to categorize and classify the main attributes of BUFR data without decoding the data description in Section 3 or the data in Section 4. 3.1.2 BUFR Descriptors. 3.1.2.1 Fundamentals of BUFR Descriptors Section 3 of a BUFR message contains pointers to the information needed to encode and decode the parameters contained in Section 4 of a BUFR message. The needed information itself is contained in the BUFR Tables that the pointers refer to. These pointers are called descriptors. Descriptors consist of two octets, or 16 bits. However, the 16 bits are not to be treated as a 16 bit numeric value, but rather as 16 bits divided into 3 parts F, X, and Y, where the parts (F, X and Y) themselves are 2, 6 and 8 bits, respectively. Schematically, a BUFR descriptor can be visualized as follows: F X Y 2 BITS 6 BITS 8 BITS F denotes the type of descriptor. With 2 bits, there are 4 possible values for F: 0, 1, 2 and 3. The four values have the following meanings: F = 0 ( Element descriptor, and refers to Table B entries F = 1 ( Replication operator F = 2 ( Operator descriptor, and refers to Table C entries F = 3 ( Sequence descriptor, and refers to Table D entries The meanings of and uses for X and Y depend on the value of F. Case 1: F= 0 or 3 When F is 0 or 3, the descriptor refers to BUFR Tables B or D, and X (6 bits) indicates the class or category of descriptor within the Table. With 6 bits, there are 64 possibilities, classes 00 to 63. Classes 48 to 63 are reserved for local use. Thus far, 29 of the 48 Table B classes and 19 of the 48 Table D classes allocated for international coordination have been defined. Y (8 bits) indicates the entry within a class X. Eight bits yields 256 possibilities, 000 to 255, within each of the 64 classes. Entries 192 to 255 within all classes are reserved for local use. A varying number of entries are currently defined within each of the internationally coordinated Table B and Table D classes. Some of the Classes, Class 2 of Table B (instrumentation) in particular, have become alarmingly crowded. Case 2: F = 1 When F = 1, the descriptor is a replication operator. The BUFR replication operator is the repeating of a single parameter or a group of parameters some number of times, as in a TEMP or PILOT report. In a replication operator, X gives the number of parameters to be repeated and Y gives the number of times the parameter or group of parameters is to be repeated. If Y = 0, the number of times the parameter or group of parameters is to be repeated is found in the Data Section. This is useful when the number of repetitions is not known ahead of time. Examples of the use of replication operators will be discussed in Chapter 3.1.4. Case 3: F = 2 When F = 2, the descriptor is an operator descriptor, and refers to BUFR Table C. Operator descriptors from Table C are used when there is a need to redefine Table B attributes temporarily, such as the need to change data width, scale or reference value of a Table B entry. Operator descriptors are also used to add associated fields such as quality control information, indicate characters as data items, and signify data width of local descriptors. In an operator descriptor, X gives the number of the operator descriptor within Table C and Y is the operand for the operator descriptor. 3.1.2.2 Coordinate Descriptors The descriptors in Classes 00 through 09 (with 03 and 09 at present reserved for future use) have a special meaning added to them over and above the specific data elements that they describe. They (or the data they represent) "remain in effect until superseded by redefinition" (see Regulation 94.5.3.3). By this is meant that the data in these classes serve as coordinates (in a general sense) for all the following observations. Once you encounter a 0 04 004 descriptor (which describes the "hour"), one must assume that the hour (a time coordinate) applies to all the following observed parameters, until either another 0 04 004 descriptor is encountered or you reach the end of the data subset. Obviously the familiar coordinates (the two horizontal dimensions - Classes 05 and 06, the vertical dimension Class 07, and time Class 04) are in this sub-category of descriptors. However, some features that one might not think of as "coordinates", other than in a general sense, are in this sub-category as well. Forms of "identification" of the observing platform (block and station number, aircraft tail number, etc.) are "coordinates" in this sense, in that they most certainly apply to all the observed parameters taken from that platform and they "remain in effect until superseded by redefinition". The instrumentation that is used to take the measurements (Class 02) also falls in the same category - it applies to all the actual observed values of a particular parameter because all those observed values were measured with that particular instrument. However, the coordinate nature of this Class is more complex because some observations (like SYNOPs) involve several instruments, and therefore the instrumentation would need to be redefined a number of times in an individual SYNOP report. Nevertheless, the coordinate philosophy still applies for an individual observed quantity. A source of confusion can arise by noting that some parameters (height and pressure, for example) appear twice in the Tables: in Class 07 (for values used as coordinates, or the independent variable) and again in Class 10 (for reported values, or the dependent variable). Which table descriptor is appropriate depends on the nature of the measurement that involves these parameters. A Radiosonde, which measures wind, temperature, and humidity (and geopotential height by calculation) as a function of pressure, would report the pressure values using Class 07 (the vertical coordinate or independent variable) and the other parameters from the non-coordinate classes (10 for geopotential, 11 for wind, 12 for temperature, and 13 for humidity). An aircraft radar altimeter, on the other hand, might calculate pressure (and use Class 10 to report the value) as a function of its height measurement (Class 07). Yet another kind of "coordinate" is imbedded in Class 8 - Significance Qualifiers. These are a way of reporting various qualitative pieces of information about the (following) data elements, beyond their numeric values, that can be important to the user of the data. There are cases where it makes no sense to have a particular kind of significance "remain in effect" for the rest of the message (or to the end of the data subset) but there was no explicit way to cancel it. This issue was resolved with the addition of Note (2) to Class 08, which states: A previously defined significance may be cancelled by transmitting a missing from the appropriate code or flag table. There is an exception to the "remain in effect until redefined" rule: when two identical descriptors from Classes 04 to 07 are placed back to back, that is to be interpreted as defining a range of coordinates. In this way a layer, an area, a volume, or a span of time can be defined as needed. If the same descriptor shows up later on in the message, then that appearance does indeed redefine that particular coordinate value even if the original coordinates defined a range. The others still remain in effect. Unfortunately some coordinate-like information has appeared in a Table outside the Class 00-09. Class 25 - Processing information - largely dealing with radar information, contains information that by its nature "remains in effect until superseded". It should be considered as a "coordinate" class and may get such an official designation in the future. If it does, it would not involve any changes to the structure of BUFR or the tables, only a change in interpretation, or "meaning", of the data elements. There is not much a general BUFR decoder program can do with this "coordinate " information, other than decode it and pass the information on to some follow-on applications program. It is up to the applications program (or the human reading a decoded message) to supply the interpretation and the meaning of what is there, and then to act accordingly. Some of the interpretation is straightforward, almost second nature. "Obviously" the station identification applies to the following observations made at that station; "obviously" this pressure level is where the RAOB measured the wind and temperature; perhaps not so obvious is the fact that two consecutive azimuth values define a sector in which a hurricane is located. Making the "obvious" explicit with rules, regulations, and footnotes is part of what BUFR is all about. The developers of BUFR made every effort to EXCLUDE as much "self-evident" information as possible and instead require that "meaning" be specified by definite rules - that is, in part, what makes the system so powerful. 3.1.2.3 Increment Descriptors Increment descriptors are those descriptors in Classes 04 07 with the word increment in the element name. As an example, consider Class 04 of Table B: Class 04 - Location (time) TABLE REFERENCE TABLE ELEMENT NAMEBUFRCREX UNIT SCALE REFERENCE VALUEDATA WIDTH (Bits) UNIT SCALEDATA WIDTH (Characters)FXY004001YearYear0012Year04004002MonthMonth004Month02004003DayDay006Day02004004HourHour005Hour02004005MinuteMinute006Minute02004006SecondSecond006Second02004011Time incrementYear0102411Year04004012Time incrementMonth0102411Month04004013Time incrementDay0102411Day04004014Time incrementHour0102411Hour04004015Time incrementMinute0204812Minute04004016Time incrementSecond0409613Second04004017Reference time period for accumulated or extreme dataMinute0-144012Minute04004021Time period or displacementYear0102411Year04004022Time period or displacementMonth0102411Month04004023Time period or displacementDay0102411Day04004024Time period or displacementHour0204812Hour04004025Time period or displacementMinute0204812Minute04004026Time period or displacementSecond0409613Second04004031Duration of time relating to following valueHour008Hour03004032Duration of time relating to following valueMinute006Minute02004041Time difference, UTC LMT (see Note 6)Minute0144012Minute04004043Day of the yearDay009Day03004053Number of days with precipitation equal to or more than 1 mmNumeric00 6Numeric02004065Short time incrementMinute0-1288Minute02004073Short time period or displacementDay0-1288Day02004074Short time period or displacementHour0-1288Hour02004075Short time period or displacementMinute0-1288Minute02 Notes: (1) The significance of time periods or displacements shall be indicated using the time significance code corresponding to table reference 0 08 021. (2) Where more than one time period or displacement is required to define complex time structures, they shall be defined in immediate succession, and the following ordering shall apply: ensemble period (if required), followed by forecast period (if required), followed by period for averaging or accumulation (if required). (3) Time periods or displacements and time increments require an initial time location to be defined prior to their use, followed where appropriate by a time significance definition. (4) The time location, when used with forecast values, shall indicate the time of the initial state for the forecast, or the beginning of the forecast period; when used with ensemble means of forecast values, the time location shall indicate the initial state or the beginning of the first forecast over which ensemble means are derived. (5) Negative time periods or displacements shall be used to indicate time periods or displacements preceding the currently defined time. (6) Descriptor 0 04 041 has been replaced by the combination of 0 08 025 and 0 26 003 and should not be used for encoding this element. (7) All times are Universal Time Coordinated (UTC) unless otherwise noted. Note that descriptors 0 04 011 0 04 016 not only all have the word increment in their element names, their element names Time increment - are identical. They are distinguished from one another by their Unit (Year, Month, Day, Hour, Minute, and Second). Two (0 040015 and 0 04 015) have different reference values and data widths as well. The values of the coordinate descriptors in Class 04 corresponding to these increments are capable of being incremented. Thus, 0 04 004 (Hour) is capable of being incremented because there is a Time increment descriptor (0 04 014) with unit = Hour. Normally, the coordinate value for 0 04 004 would "remain in effect until superseded" by the appearance of the same descriptor with a new data value. But the appearance of a descriptor for an increment associated with that coordinate 0 04 014 - will also change the value of the coordinate by the amount found in the data section. This is what is meant by Regulation 94.5.3.8: Any occurrence of an element descriptor from classes 04 to 07 inclusive which defines an increment shall indicate that the location corresponding to that class be incremented by the corresponding data value. The increment descriptor must be in the same class as the data to be incremented and must have the same units. Unfortunately, in the current BUFR tables, there is no built-in way to associate an increment uniquely with the descriptor/value that is capable of being incremented. The association can only be made by inspection of the element names and units. This is unfortunate as it means the decoder program must have special rules encoded for each increment descriptor. It would be better to devise a general rule to associate increments with the thing (or things) to be incremented. This, however, is a project for the future. Now, consider the effect of replication on increment descriptors. Regulation 94.5.4.3 states: Time or location increment descriptors, from classes 04 to 07 inclusive, may be associated with replication descriptors in the following way: when an increment descriptor immediately precedes a replication descriptor, or is separated from it by one or more operator descriptors from Table C this shall infer that all such increments be applied for each replication; the application of the increments shall have effect from the beginning of each defined replication, including the first. A sample may be the best way to clarify how the descriptor sequence looks and functions when increments and replication are combined: DescriptorInterpretation0 04 004Sets the value of the hour at one increment LESS than the "starting" value.0 04 014Sets the value of the increment in hours and increments the hour1 XX 000Set up (delayed) replication of "next" XX descriptors0 31 001Replication count (not included in the span of replication XX)XX descriptors to be replicatedWhen the increment descriptor just precedes the replication operator, as in this example, the incrementing action takes place right along with the replication. Every time the descriptors are replicated, the hour (in this example) gets incremented, too. Note also, that the hour gets incremented right away, BEFORE the first pass through the XX descriptors. That's why the initial hour value (0 04 004) was given a value one increment's worth LESS than the hour value needed for the first iteration. 3.1.3 BUFR Tables 3.1.3.1 Introduction BUFR employs 3 types of tables: content definition tables, code tables and flag tables. The BUFR content definition tables contain information to describe, classify and define the contents of a BUFR message. There are 4 content definition tables defined: Tables A, B, C and D. 3.1.3.2 Table A - Data Category Table A is referred to in octet 9 of Section 1 and provides a quick check for the type of data represented in the message. Of the 256 possible entries for Table A, 17 are currently defined: Table 3-1. BUFR Table A - Data Category Code Figure Meaning0Surface data land1Surface data sea2Vertical soundings (other than satellite)3Vertical soundings (satellite)4Single level upper-air data (other than satellite)5Single level upper-air data (satellite)6Radar data7Synoptic features8Physical/chemical constituents9Dispersal and transport10Radiological data11BUFR tables, complete replacement or update12Surface data (satellite)13 19Reserved20Status information21Radiances (satellite measured)22 30Reserved31Oceanographic data32 100Reserved101Image data102 239Reserved240 254For experimental use255Indicator for local use, with sub-category The setting of one of the code figures for Table A (Table 3-1) in Section 1 is actually redundant. The descriptors used in Section 3 of a message define the data in Section 4, regardless of the Table A code figure. However, decoding programs may well reference Table A, finding it useful to have a general classification of the data available prior to actually decoding the information and passing it on to some subsequent application program. 3.1.3.3 Table B - Classification of Elements Table B is the heart of the data description language for BUFR. First, each individual parameter, or element, defined for use in BUFR is assigned an element name (a plain language description of the element entry using up to 64 characters) and a descriptor value (values for the F, X, and Y parts of the descriptor as described earlier). As noted above, the value of F for all descriptors in Table B is 0 (zero). The X part of the descriptor is determined by organizing all the possible parameters into a set of classes based on their nature (e.g., temperature parameters, wind parameters, or moisture parameters). The Y part of the descriptor is the entry within a Class X of the parameter. This is often simply assigned in the numerical order of creation of the descriptor. The possible classes to use for the X part of the descriptor are currently defined as follows: Table 3-2. BUFR Table B Classification of Elements Class NumberClass NameComments00BUFR table entries01IdentificationIdentifies origin and type of data02InstrumentationDefines instrument types used03Reserved04Location (time)Defines time and time derivatives05Location (horizontal 1)Defines geographical position, including horizontal derivatives, in association with class 06 (first dimension of horizontal space)06Location (horizontal 2)Defines geographical position, including horizontal derivatives, in association with class 05 (second dimension of horizontal space)07Location (vertical)Defines height, altitude, pressure level, including vertical derivatives of position08Significance qualifiersDefines special character of data09Reserved10Vertical elements and pressureHeight, altitude, pressure and derivatives observed or measured, not defined as a vertical location11Wind and turbulenceWind speed, direction, etc.12Temperature13Hydrographic and hydrological elementsHumidity, rainfall, snowfall, etc.14Radiation and radiance15Physical/chemical constituents19Synoptic features20Observed phenomenaDefines present/past weather, special phenomena, etc.21Radar data22Oceanographic elements23Dispersal and transport24Radiological elements25Processing information26Non-coordinate location (time)Defines time and time derivatives that are not coordinates27Non-coordinate location (horizontal 1)Defines geographical positions, in conjunction with class 28, that are not coordinates28Non-coordinate location (horizontal 2)Defines geographical positions, in conjunction with class 27, that are not coordinates29Map data30Image31Data description operator qualifiersElements used in conjunction with data description operators33Quality information35Data monitoringParameters in classes 01 09 remain in effect until redefined. For example, pressure is the vertical coordinate for rawinsonde mandatory-level data. The pressure is specified for the first set of mandatory level data, and then re-defined in each succeeding mandatory level. It should also be noted that grouping all parameters into a set of classes is not technically necessary, but does greatly simplify the maintenance and use of Table B. The second step is to identify for each parameter classified those characteristics that are needed to encode and/or decode values in BUFR and provide appropriate values of these characteristics for them. There are four such characteristics; unit, scale, reference value, and data width (in bits): Units: In most cases, the basic (SI) units for the element. However, numeric, character, code table, or flag table are also possible. Scale: The power of 10 by which the element has been multiplied prior to encoding. Reference value: A number to be subtracted from the element, after scaling (if any), and prior to encoding. Data width (bits): The number of bits the element requires for representation in Section 4. It is the specification of these characteristics within the BUFR message in which the data is contained for each parameter in that BUFR message that makes these code forms self-defining. This provides the key rationale for their existence and universal use. Units: The units of Table B entries refer to the format of how the data is represented in Section 4. In BUFR, meteorological or oceanographic parameters are usually represented in Standard International (SI) units, such as meters or degrees Kelvin. However, the data may also be numeric, as in the case of a WMO block number, or character, as in the case of an aircraft identifier. Furthermore, the units may also refer to a code table (as with 0 01 003 WMO Region number/geographical area) or flag table (as with 0 02 003 Type of measuring equipment used), where the code or flag table is described in the WMO Manual On Codes. Scale: The scale refers to the power of 10 that the element in BUFR Section 4 has been multiplied by in order to retain the desired precision in the transmitted data. For example, the units of latitude are degrees in Table B, but whole degrees are not precise enough for most usages. Therefore the elements are to be multiplied by 100 (102 scale = 2) so the transmitted precision will be centidegrees, a more useful precision. On the other hand, the (SI) unit of pressure in Table B is PASCALs, a rather small unit that would result in unnecessarily precise numbers being transmitted. Thus, Table B calls for pressure to be divided by 10 (10-1; scale = -1) resulting in a transmitted unit of 10ths of hPa, or tenths of millibars, a more reasonable precision for meteorological usage. Reference Value: For BUFR, the reference value is a number to be subtracted from the data after multiplication by the scale factor (if any) but before encoding into Section 4 in order to produce a positive value in all cases. For example, south latitude is negative before applying the reference value. If a position of 35.50 degrees south latitude were being encoded, multiplying -35.50 by 100 (scale of 2) would produce -3550. Subtracting the reference value of -9000 would give a value of 5450 that would be encoded in Section 4. To obtain the original value in decoding Section 4, adding back the -9000 reference value to 5450 would result in -3550, then dividing by the scale (100) would obtain -35.50. Data Width: In BUFR, the data width of Table B entries is a count of how many bits the largest possible value of an individual data item of Section 4 occupies, after multiplying by the scale factor and subtracting the reference value. In those instances where a Table B descriptor defines an element of data in Section 4 that is missing for a given subset, then all bits for that element will be set to 1's in Section 4. Obviously, without an up-to-date Table B, a decoder program would not be able to determine the form or content of data appearing in the Data Section. Classes 01 (Identification) and 12 (Temperature) from Table B are presented below as examples from Table B. Class 01 - Identification TABLE REFERENCE TABLE ELEMENT NAMEBUFRCREX UNIT SCALE REFERENCE VALUEDATA WIDTH (Bits) UNIT SCALEDATA WIDTH (Characters) F X Y001001WMO block numberNumeric007Numeric02001002WMO station numberNumeric0010Numeric03001003WMO Region number/geographical areaCode table003Code table01001004WMO Region sub-area (see Note 9)Numeric003Numeric01001005Buoy/platform identifierNumeric0017Numeric05001006Aircraft flight numberCCITT IA50064Character08001007Satellite identifierCode table0010Code table04001008Aircraft registration numberCCITT IA50064Character08001009Type of commercial aircraftCCITT IA50064Character08001010Stationary buoy platform identifier; e.g. C-MAN buoysCCITT IA50064Character08001011Ship or mobile land station identifierCCITT IA50072Character09001012Direction of motion of moving observing platformDegree true009Degree true03001013Speed of motion of moving observing platformm s10010m s-103001014Platform drift speed (high precision)m s12010m s-124001015Station or site nameCCITT IA500160Character020001018Short station or site nameCCITT IA50040Character05001019Long Station or site nameCCITT IA500256Character032001020WMO Region sub-areaNumeric004Numeric02001021Synoptic feature identifierNumeric0014Numeric04001022Name of feature (see Note 11)CCITT IA500224Character028001025Storm identifierCCITT IA50024Character03001026WMO storm name*CCITT IA50064Character08001027WMO long storm nameCCITT IA50080Character010001031Identification of originating/generating centre (see Note 10)Code table0016Code table05001032Generating applicationCode table defined by originating/ generating centre (Notes (3), (4) and (5))008Code table03001033Identification of originating/generating centreCode table008Code table03001034Identification of originating/generating sub-centreCode table008Code table03001036Agency in charge of operating the Observing platformCode table0020Code table07001041Absolute platform velocity first component (see Note 6)m s-15107374182431m s-1510001042Absolute platform velocity second component (see Note 6)m s-15107374182431m s-1510001043Absolute platform velocity third component (see Note 6)m s-15107374182431m s-1510001050Platform transmitter ID numberNumeric0017Numeric06001051Platform transmitter ID numberCCITT IA50096Character012001060Aircraft reporting point (Beacon identifier)CCITT IA50064Character08001062Short ICAO location indicatorCCITT IA50032Character04001063ICAO location indicatorCCITT IA50064Character08001064Runway designatorCCITT IA50032Character04001075Tide station identificationCCITT IA50040Character05001080Ship line number according to SOOPCCITT IA50032Character04001085Observing platform manufacturer's modelCCITT IA500160Character020001086Observing platform manufacturer's serial numberCCITT IA500256Character032 Notes: (1) The storm identifier (descriptor 0 01 025) has the following meaning: the first two characters shall be a numeric sequence number assigned by the originator of the message; the third character is a letter indicating the ocean basin where the storm is located, as follows: W NW Pacific Ocean E NE Pacific Ocean to 140W C NE Pacific Ocean 140W 180W L N Atlantic Ocean, including Caribbean and Gulf of Mexico A N Arabian Sea B Bay of Bengal S S Indian Ocean P S Pacific Ocean F RSMC Nadi's zone in South Pacific U Australia O South China Sea T East China Sea There is no requirement that differing observers coordinate sequence numbers even though they both may be reporting the same storm. (2) WMO storm name (descriptor 0 01 027): the storm name NAMELESS shall be used in those cases where an identifiable tropical disturbance has not reached tropical storm strength and has not been assigned an official name. (3) Where a centre other than the originating centre generates quality information, replacement or substitute values, and/or statistical information, the centre may be indicated by using 0 01 033. (4) A generating centre may wish to indicate a reference to the application that generated quality information, etc.; it may use descriptor 0 01 032 for this purpose. However, the corresponding code tables will vary from centre to centre. (5) Code table 0 01 032 is to be generated by each centre. (6) The components of absolute platform velocity (0 01 041, 0 01 042, 0 01 043) are defined as follows: First component: From the Earths centre to 0 degree longitude at the Equator: velocity of the platform along this line relative to the Earths centre. Second component: From the Earths centre to 90 degrees East longitude at the Equator: velocity of the platform along this line relative to the Earths centre. Third component: From the Earths centre to the North Pole: velocity of the platform along this line relative to the Earths centre. (7) The values for descriptors 0 01 041, 0 01 042 and 0 01 043 have been chosen to be suitable for polar orbiting satellites in approximately Sun-synchronous orbits. Geostationary orbits would require greater data widths for distance and slightly less for speed. (8) Left handed xyz axes have been chosen for descriptors 0 01 041, 0 01 042 and 0 01 043. (9) Descriptor 0 01 020 should be used instead of 0 01 004 for encoding this element. (10) Descriptor 0 01 033 shall be used instead of descriptor 0 01 031 for encoding originating/generating centre. Code table 0 01 034 is to be established by the associated originating/generating centre identified by descriptor 0 01 033 and provided to the Secretariat for publication. (11) For 0 01 022, the character string representing the Name of feature should be of the form: Type of phenomenon Location or geographical name (e.g.: volcano Popocatepetl, oil fire Kuwait) Class 12 - Temperature TABLE REFERENCE TABLE ELEMENT NAMEBUFRCREX UNIT SCALE REFERENCE VALUEDATA WIDTH (Bits) UNIT  SCALE DATA WIDTH (Characters)FXY012001Temperature/dry-bulb temperatureK1012C13012002Wet-bulb temperatureK1012C13012003Dew-point temperatureK1012C13012004Dry-bulb temperature at 2 mK1012C13012005Wet-bulb temperature at 2 mK1012C13012006Dew-point temperature at 2 mK1012C13012007Virtual temperatureK1012C13012011Maximum temperature, at height and over period specifiedK1012C13012012Minimum temperature, at height and over period specifiedK1012C13012013Ground minimum temperature, past 12 hoursK1012C13012014Maximum temperature at 2 m, past 12 hoursK1012C13012015Minimum temperature at 2 m, past 12 hoursK1012C13012016Maximum temperature at 2 m, past 24 hoursK1012C13012017Minimum temperature at 2 m, past 24 hoursK1012C13012021Maximum temperature at 2mK2016C24012022Minimum temperature at 2mK2016C24012030Soil temperatureK1012C13012051Standard deviation temperatureK1010C13012052Highest daily mean temperatureK1012C13012053Lowest daily mean temperatureK1012C13012061Skin temperatureK1012C13012062Equivalent black body temperatureK1012C13012063Brightness temperatureK1012C13012064Instrument temperatureK1012K14012065Standard deviation brightness temperatureK1012K14012071Coldest cluster temperatureK1012K14012072RadianceW m-2 sr-16031W m-2sr-169012075Spectral radianceW m-3 sr-1-3016W m-3sr-1-35012076RadianceW m-2 sr-13016W m-2sr-135012101Temperature/dry-bulb temperatureK2016C24012102Wet-bulb temperatureK2016C24012103Dew-point temperatureK2016C24012104Dry-bulb temperature at 2mK2016C24012105Web-bulb temperature at 2mK2016C24012106Dew-point temperature at 2mK2016C24 Consider now the sample BUFR message discussed in Section 3.1.1 of Layer 3 and illustrated in Figures 3.1.1-1 through 3.1.11-9. That BUFR message had three descriptors in the Data Description Section that described three quantities in the Data Section. The three descriptors were 0 01 001, 0 01 002, and 0 12 004. The first two have an F value of 0 and a Y value of 01, so they refer to Table B parameters in class 01 Identification. In the table for Class 01 (above), note the rows for table references 0 01 001 (WMO block number) and 0 01 002 (WMO station number). In those rows, under the part of the table labeled BUFR, are the values of Unit, Scale, Reference Value, and Data Width (bits) needed for encoding and decoding WMO Block Number and WMO station number in BUFR messages. Likewise, descriptor 0 12 004 has a Y value of 12, and hence refers to a Table B parameter in Class 12. In that table (also above), in the row for table reference 0 12 004 (Dry-bulb temperature at 3 m), are the values of Unit, Scale, Reference Value, and Data Width (bits) needed for encoding and decoding Dry-bulb temperature at 3 m in BUFR messages. These are the values noted earlier in the discussion of the BUFR Data Section, and are reproduced here: DESCRIPTOR NAME UNIT SCALE REFERENCE VALUEDATA WIDTH (Bits)FXY001000WMO block numberNumeric007001002WMO station numberNumeric0010012004Dry-bulb temperature at 3 mK1012 BUFR messages usually have many more parameters than three, and therefore have many more descriptors than this. More complicated BUFR messages will be discussed presently. However, the procedure for finding the needed values of Unit, Scale, Reference Value, and Data Width (bits) is the same whether there are three descriptors or thirty three. 3.1.3.4 Table C - Data Description Operators Descriptors with F = 2 refer to BUFR Table C - Table C data description operators. These are used when there is a need to redefine Table B attributes temporarily, such as the need to change data width, scale or reference value of a Table B entry. Table C is also used to add associated fields such as quality control information, indicate characters as data items, and signify data width of local descriptors. Some of these operators are somewhat complex. Table C data description operators are described at length later in Chapter 3.1.6. 3.1.3.5 Table D - Lists of Common Sequences Table D contains descriptors that describe additional descriptors. A single descriptor used in Section 3 with F = 3 is a pointer to a Table D entry. Similarly to Table B, BUFR Table D is organized into various classes, or categories, of sequences that have common characteristics. The X value of the sequence descriptor identifies the category to which that particular sequence descriptor belongs. The Y value of the sequence descriptor is the entry in that category for that particular sequence descriptor. There are currently defined 19 categories of common sequences in Table D (Table 3-3). Table 3-3. BUFR Table D list of common sequences F X CATEGORY OF SEQUENCES 3 00 BUFR table entries sequences 3 01 Location and identification sequences 3 02 Meteorological sequences common to surface data 3 03 Meteorological sequences common to vertical sounding data 3 04 Meteorological sequences common to satellite observations 3 05 Reserved 3 06 Meteorological or oceanographic sequences common to oceanographic observations 3 07 Surface report sequences (land) 3 08 Surface report sequences (sea) 3 09 Vertical sounding sequences (conventional data) 3 10 Vertical sounding sequences (satellite data) 3 11 Single level report sequences (conventional data) 3 12 Single level report sequences (satellite data) 3 13 Sequences common to image data 3 14 Reserved 3 15 Oceanographic report sequences 3 16 Synoptic feature sequences 3 18 Radiological report sequences 3 21 Radar report sequences As an example, if the Table D descriptor 3 01 001 were used in Section 3, the expansion of that descriptor is two Table B descriptors, 0 01 001 and 0 01 002. + 0 01 001 ---WMO block number 3 01 001----> + 0 01 002 ---WMO station number Table D descriptors may also refer to an expansion list of descriptors that contain additional Table D descriptors. The descriptor 3 01 025 expands to 3 01 023, 0 04 003 and 3 01 012. Furthermore, 3 01 023 additionally expands to 0 05 002 and 0 06 002 and 3 01 012 expands to 0 04 004 and 0 04 005. Thus, the single Table D descriptor 3 01 025 expands to a total of 5 separate Table B entries: + 0 05 002 ---Latitude + 3 01 023---> + 0 06 002 ---Longitude 3 01 025---->------------------- 0 04 003----Day + 0 04 004 ---Hour + 3 01 012---> + 0 04 005 ---Minute The order of the data in Section 4 is then according to the following sequence of Table B entries: 0 05 002 0 06 002 0 04 003 0 04 004 0 04 005. Figure 3.2.3-1 illustrates a more complex example. The single low altitude surface observation sequence descriptor 3 07 002 expands into 2 more Table D descriptors, 3 01 032 and 3 02 011. The descriptor 3 01 032 further expands into 5 more descriptors four from Table D and one from Table B 3 01 001, 0 02 001, 3 01 011, 3 01 012 and 3 01 024. The descriptor 3 02 011 further expands into 3 more Table D descriptors 3 02 001, 3 02 003 and 3 02 004. Note that the expansion of 3 01 032 ultimately provides information on the location in time and space and the type of station, because Class 01 of Table D contains Location and Identification sequences. The expansion of 3 02 011, on the other hand, ultimately provides the meteorological parameters, since Class 02 of Table D contains Meteorological sequences common to surface observations. SECTION 4 WIDTH IN BITS 3 07 002 +3 01 032 +3 01 001 +0 01 001 >WMO BLOCK NO. 7 +0 01 002 >WMO STATION NO. 10 +0 02 001 >TYPE OF STATION 2 +3 01 011 +0 04 001 >YEAR 12 +0 04 002 >MONTH 4 +0 04 003 >DAY 6 +3 01 012 +0 04 004 >HOUR 5 +0 04 005 >MINUTE 6 +3 01 024 +0 05 002 >LATITUDE (COARSE ACCURACY) 15 +0 06 002 >LONGITUDE(COARSE ACCURACY) 16 +0 07 001 >HEIGHT OF STATION 15 +3 02 011 +3 02 001 +0 10 004 >PRESSURE 14 +0 10 051 >PRESSURE REDUCED TO MSL 14 +0 10 061 >3 HR PRESSURE CHANGE 10 +0 10 063 >CHARACTERISTIC OF PRESSURE 4 +3 02 003 +0 11 011 >WIND DIRECTION 9 +0 11 012 >WIND SPEED AT 10m 12 +0 12 004 >DRY BULB TEMP AT 2m 12 +0 12 006 >DEW POINT TEMP AT 2m 12 +0 13 003 >RELATIVE HUMIDITY 7 +0 20 001 >HORIZONTAL VISIBILITY 13 +0 20 003 >PRESENT WEATHER 8 +0 20 004 >PAST WEATHER (1) 4 +0 20 005 >PAST WEATHER (2) 4 +3 02 004 +0 20 010 >CLOUD COVER (TOTAL) 7 +0 08 002 >VERTICAL SIGNIFICANCE SURFACE OBS 6 +0 20 011 >CLOUD AMOUNT 4 +0 20 013 >HEIGHT OF BASE OF CLOUD 11 +0 20 012 >CLOUD TYPE Cl 6 +0 20 012 >CLOUD TYPE Cm 6 +0 20 012 >CLOUD TYPE Ch 6 ----- TOTAL BITS: 267 Figure 3.1.3-1. Example of a surface observation sequence using Table D sequence descriptor 3 07 002 As is shown in Figure 3.1.3-1, descriptors in Table D may themselves refer to Table D, provided no circularity results on repeated expansion. Completion of the expansion process leads to a total of 31 Table B descriptors. The 16 bits in Section 3 taken by the single sequence descriptor 3 07 002 results in a savings of 480 bits (30 x 16 bits) over what the 31 Table B descriptors would occupy in bits. A complete layout of a BUFR message containing just 1 surface observation is illustrated in Figure 3.1.3-2. As indicated in octets 5-7 of Section 1, there are a total of 78 octets in the message, or 624 bits. Of the 624 bits, 267 are for the actual parameters of data (Figure 3.1.3-1) and the remaining 357 bits are BUFR overhead. BUFR overhead in this context is the number of bits that are not actual surface data. In this example there are more bits used for the overhead than for the surface data. Section Octet No.Octet in MessageEncoded ValueDescriptionSection 0 (indicator section)1-41-4BUFREncoded international CCITTAlphabet No. 55-75-778Total length of message (octets)883BUFR edition numberSection 1 (identification section)1-39-1118Length of section (octets)4120BUFR master table5-613-1458Originating center (U.S. Navy - FNMOC)7150Update sequence number8160Indicator that Section 2 not included9170Table A - surface land data10180BUFR message sub-type11199Version number of master tables12200Version number of local tables132192Year of century14224Month152318Day16240Hour17250Minute18260Reserved for local use by ADP centers (also needed to complete even number of octets for sectionSection 3 (Data description section)1-327-2910Length of section (octets)300Reserved5-631-321Number of data subsets733bit 1=1Flag indicating observed data8-934-353 07 002Table D descriptor for surface land in F X Y format10360Need to complete section with an even number of octetsSection 4 (Data section)1-337-3938Length of section (octets)4400Reserved5-3841-74dataContinuous bit stream of data for 1 observations, 267 bits plus 5 bits to end on even octet (see Figure 3.1.3-1 for expansion)Section 5 (End section)1-475-787777Encoded CCITT International Alphabet No. 5Figure 3.1.3-2. BUFR message of 1 surface observation using Table D descriptor 3 07 002 Figure 3.1.3-3 is a complete layout of a BUFR message containing the maximum number of 448 subsets to fit within the 15000-octet limit. This message would contain 14996 octets or 119968 bits. Of these 119968 bits, 119616 are data and 352 bits are BUFR overhead. The 5 bit difference in overhead from Figure 3.1.3-2 (357 bits) and Figure 3.1.3-3 (352 bits) is due to the number of bits set to 0 at the end of Section 4 in order to complete the section at the end of an even numbered octet. For 1 subset of 267 bits, 5 additional bits are needed to complete the octet. For 448 subsets, or 119616 bits, no additional bits are needed to complete the last octet. Section Octet No.Octet in MessageEncoded ValueDescriptionSection 0 (Indicator section)1-41-4BUFREncoded international CCITT section)Alphabet No. 55-75-714996Total length of message (octets)882BUFR edition numberSection 1 (identification section)1-39-1118Length of section (octets)4120BUFR master table5-613-1458Originating center (U.S. Navy - FNMOC)7150Update sequence number8160Indicator that Section 2 not included9170Table A - surface land data10180BUFR message sub-type11192Version number of master table12200Version number of local tables132192Year of century14224Month152318Day16240Hour17250Minute18260Reserved for local use by ADP centers (also needed to complete even number of octets for sectionSection 3 (Data Description Section)1-327-2910Length of section (octets)4300Reserved 5-631-32448Number of data subsets733bit 1=1flag indicating observed data8-934-353 07 002Table D descriptor for surface land in F X Y format10360need to complete section with an even number of octetsSection 4 (Data section)1-337-3914956length of section (octets)4400Reserved5-1495641-14992datacontinuous bit stream of data for 448 observations, 267 bits per observation with no added bits to end on an even octet Section 5 (End section)1-414993- 149967777encoded CCITT International Alphabet No. 5Figure 3.1.3-3. BUFR message of 448 surface observations using Table D descriptor 3 07 002 Table D should be limited to lists of descriptors likely to be most frequently used. Table D was not designed to be a comprehensive list of all sequences likely to be encountered. To do so would require an excessively large Table D and would reduce considerably flexibility when encoding minor differences in reporting practices. More flexibility is retained if the Data Description Section contains several descriptors. Most BUFR message may be encoded without using Table D. The data description contained within Section 3 can be accomplished entirely by using only element descriptors of Table B and operator descriptors of Table C (the only exception is when a replication of more than 63 values is needed, for the XX part 6 bits - of the replication can describe only to 63 quantities. In this case, special procedures involving Table D may be needed). To do so, however would involve considerable overhead in terms of the length of the Section 3 data description. The use of sequence descriptors from Table D is particularly effective in reducing the size of BUFR messages containing single observations almost to that of the original traditional alphanumeric code form size. The use of Table D is another major contributor to the efficiency of BUFR. 3.1.3.6 Comparison of BUFR and Character Code Bit Counts The surface observations illustrated in Figures 3.2.3-1 to 3.2.3-3 are the equivalent of the following parameters in the WMO code form FM 12 SYNOP: YYGGiw IIiii iRixhVV Nddff 1snTTT 2snTdTdTd 3PoPoPoPo 4PPPP 5appp 7wwW1W2 8NhCLCMCH Data encoded in this form would consist of 55 characters plus 10 spaces between each group of 5 characters for a total of 65 characters. For transmission purposes these 65 characters would require a total number of 520 bits (65 X 8 bits per character). A complete BUFR message with 1 observation (Figure 3.2.3-2) requires 78 octets or 624 bits, 104 more than the corresponding character representation. However, 69 of the extra 104 bits are a result of including the latitude, longitude, station height and year, month, and minute in BUFR. For the same information, a BUFR message with one surface observation would be only 35 bits longer (about 7%) than the traditional character version. On the other hand, the systematic passing of geographical co-ordinates, easily performed with the table driven codes, would alleviate the well-known WMO Volume A problems. The 46 extra bits it takes to include this information is truly a price worth paying. Of the 624 bits in the BUFR message, 267 are taken by the surface observation and 357 are BUFR overhead. If, however, a collective of 448 observations in character form were transmitted, the total number of bits would be 232960 (520 X 448). The corresponding BUFR representation (Figure 3.1.3-3) would require only 14996 octets, or 119968 bits, about half the length of the character representation. Moreover, this figure does not include the effect of using the BUFR compression capability. Use of compression, discussed in Chapter 3.1.5, would make the BUFR message even more compact. 3.1.3.7 Code Tables and Flag Tables Since some meteorological parameters are qualitative or semi-qualitative, they are best represented with reference to a code table or a flag table. BUFR code tables and flag tables refer to elements defined within BUFR Table B. They are numbered according to the X and Y values of the corresponding Table B reference. For example, the Table B entry 0 01 003, WMO Region number, geographical area, indicates in the Unit column that this is a BUFR code table, and the number of that code table is 0 01 003. Code Tables. A code table lists a number of possibilities the parameter to which the code table applies can use. Only one of the possibilities can be chosen, and one of the possibilities is always missing value. Many of the code tables that have been included in the BUFR specification are similar to existing WMO code tables for representing character data. Attachment II of the WMO Manual on Codes, Volume 1, Part B is a list of the code tables associated with BUFR Table B and the existing specifications and code tables of the WMO Manual on Codes, Volume 1, Part A. However, there is not a one-to-one BUFR code table relationship to the character code tables. The character Code Table 3333, Quadrant of the Globe, for example, has no meaning in BUFR, as all points on the globe in BUFR are completely expressed as latitude and longitude values. Flag tables. A flag table also lists a number of possibilities the parameter to which the flag table applies can use. However, in a flag table, any combination of the possibilities can be chosen. The flag table accomplishes this with a string of bits, where each bit indicates an item of significance. A bit set to 1 indicates an item is included, or is true, while a bit set to 0 indicates omission, or false. In any flag table, when all bits are set it is an indication of a missing value. However, in order to allow the option of all the possibilities being chosen and still allow for the possibility of a missing value, flag tables always have one more bit than the number of items of significance. In all flag tables within the BUFR specification, bits are numbered from 1 to N from most significant to least significant within a data width of N bits, i.e., from left (bit 1) to right (bit N). 3.1.3.8 Local Tables Since a data processing center may need to represent data conforming to a local requirement where this data is not defined within Table B, specific areas of Table B and D are reserved for local use (Figure 3.1.3-4). These areas are defined as entries 192 to 255 inclusive of all classes. Centers defining classes or categories for local use should restrict their use to the range 48 to 63 inclusive. The Local portions of the Tables can be updated, changed, augmented, etc. at will by the local group concerned. No international notice is required or expected. It is presumed that bulletins containing local descriptors will not be sent out internationally (but see the discussion of operator descriptor 2 06 YYY for an exception). "Local", although not defined in the BUFR documentation, is generally taken to mean "within the processing center that is generating the BUFR messages", and not necessarily one country. The U. S. has a number of processing centers (the civilian weather service, Air Force, Navy, and other groups as well, each potentially identified by a unique processing center number and sub-number) each one of which is free to use the "local" portions of the BUFR tables as they see fit. CLASS 0 FOR INTERNATIONAL USE 35 FOR LOCAL USE RESERVED FOR FUTURE USE  FOR LOCAL USE (IF NEEDED)48 FOR LOCAL USE (IF NEEDED) 63 FOR LOCAL USE 0 192 255 ENTRY WITHIN CLASS Figure 3.1.3-4. Table reservations If a data processing center had multiple sources of data receipt, for example, it may be necessary to indicate the source of an observation by the circuit from which the data was received. A local Table B descriptor such as 0 54 192 could be used which may be a code table specifying circuits of transmission. The Table B entry could be: Table ReferenceElement NameUnitsScaleReference ValueData Width (Bits)0 54 192CircuitCode table003The corresponding local code table could be: Code Table 0 54 192: Circuit designators for data receipt Code Figure Circuit 0 GTS 1 AWN 2 AUTODIN 3 ANTARCTIC Reserved 7 Missing value Using the same Table D descriptor, 3 07 002, as in Figure 3.1.3-1, adding the local descriptor 0 54 192 would produce the expansion as in Figure 3.1.3-5. SECTION 4 WIDTH IN BITS 0 54 192 >LOCAL DESCRIPTOR 3 3 07 002 +3 01 032 +3 01 001 +0 01 001 >WMO BLOCK NO. 7 +0 01 002 >WMO STATION NO. 10 +0 02 001 >TYPE OF STATION 2 +3 01 011 +0 04 001 >YEAR 12 +0 04 002 >MONTH 4 +0 04 003 >DAY 6 +3 01 012 +0 04 004 >HOUR 5 +0 04 005 >MINUTE 6 +3 01 024 +0 05 002 >LATITUDE (COARSE ACCURACY) 15 +0 06 002 >LONGITUDE(COARSE ACCURACY) 16 +0 07 001 >HEIGHT OF STATION 15 +3 02 011 +3 02 001 +0 10 004 >PRESSURE 14 +0 10 051 >PRESSURE REDUCED TO MSL 14 +0 10 061 >3 HR PRESSURE CHANGE 10 +0 10 063 >CHARACTERISTIC OF PRESSURE 4 +3 02 003 +0 11 011 >WIND DIRECTION 9 +0 11 012 >WIND SPEED AT 10m 12 +0 12 004 >DRY BULB TEMP AT 2m 12 +0 12 006 >DEW POINT TEMP AT 2m 12 +0 13 003 >RELATIVE HUMIDITY 7 +0 20 001 >HORIZONTAL VISIBILITY 13 +0 20 003 >PRESENT WEATHER 8 +0 20 004 >PAST WEATHER (1) 4 +0 20 005 >PAST WEATHER (2) 4 +3 02 004 +0 20 010 >CLOUD COVER (TOTAL) 7 +0 08 002 >VERTICAL SIGNIFICANCE SURFACE OBS 6 +0 20 011 >CLOUD AMOUNT 4 +0 20 013 >HEIGHT OF BASE OF CLOUD 11 +0 20 012 >CLOUD TYPE Cl 6 +0 20 012 >CLOUD TYPE Cm 6 +0 20 012 >CLOUD TYPE Ch 6 ----- TOTAL BITS: 270 Figure 3.1.3-5. Example of a surface observation sequence using Table D sequence descriptor 3 07 002 and local descriptor The following modifications would have to be made to the BUFR message if the local descriptor 0 54 192 were to be included in a message (Figure 3.1.3-6): In Section 0, octets 5-7, the total length of the message, increases from 14996 octets to 14998 octets. In Section 1, octet no. 12 (octet 20 within the message) would have the version number of the local tables in use. In Section 3, octets 1-3, the encoded value would increase from 10 octets to 12 octets. If one descriptor were being added, the length of the section increases by 2 in order to keep the section an even number of octets. In octets 5-6, the number of data subsets decreases from 448 to 443. The number of data subsets has been reduced to keep the total message length under the 15000 octet maximum. Also in Section 3, the descriptors will occupy octets 8-11 vice octets 8-9 to accommodate the added descriptor. Note that in Section 4, octets 1-3, the encoded value for length of section remains the same at 14956 octets. The number of bits needed for 448 subsets without a local descriptor is 119616 (448 X 267), or exactly 14952 octets. For 443 subsets with 3 bits added to each subset for the local information, 119610 bits are needed (443 X 270). Adding 6 bits to complete the octet brings the total bit count for all 443 subsets to 119616, the same number of bits as 448 subsets without the added local information. Section Octet No.Octet in MessageEncoded ValueDescriptionSection 0 (indicator section)1-41-4BUFREncoded international CCITTAlphabet No. 55-75-714998total length of message (octets)882BUFR edition numberSection 1 (identification section)1-39-1118length of section (octets)4120BUFR master table5-613-1458originating center (U.S. Navy - FNMOC)7150Update sequence number8160indicator that Section 2 not included9170Table A - surface land data10180BUFR message sub-type11192Version number of master tables12201Version number of local tables132192year of century14224Month152318Day16240Hour17250Minute18260reserved for local use by ADP centers (also need to complete even number of octets for Section 3Section 3 (Data description section)1-327-2912length of section (octets)4300reserved 5-631-32443number of data subsets733BIT 1=1flag indicating observed data8-1134-370 54 192local and Table D descriptors3 07 002In F X Y format10380need to complete section with an even number of octets Section 4 (Data section)1-339-4114956length of section (octets)4420Reserved5-1495643-14994datacontinuous bit stream of data for 443 observations, 270 bits per observation plus 6 bits to end on even octetSection 5 (End section)1-414995- 149987777encoded CCITT international Alphabet No. 5 Figure 3.1.3-6. BUFR message of 443 surface observations using 2 descriptors, local descriptor 0 54 192 and Table B descriptor 3 07 002. 3.1.4 Data Replication 3.1.4.1 Introduction. The replication operator (F = 1) is used to define a sequence of descriptors to be repeated, or replicated, together with the number to times the sequence is to be repeated (the replication factor). Replication provides a flexible and efficient means to describe repetition of a sequence of parameters in the Data Section. 3.1.4.2 Simple Replication In simple replication, it is desired to encode a series of parameters a fixed number of times in all reports in Section 4. To illustrate, we will assume a sequence of four descriptors Vertical significance (surface observations), Cloud amount, Cloud Type, and Height of base of cloud is to be repeated four times in all reports in the Data Section. In this case, the replication sequence would be the following: 1 04 004 0 08 002 0 20 011 0 20 012 0 20 013 In this example, the descriptors have the following meanings: 1 04 004F = 1Replication operatorX = 04The following 4 descriptors are replicatedY = 004The 4 descriptors will be replicated 4 times in every report in the Data Section0 08 002F = 0First Table B descriptor in the sequence to be replicatedX = 08Class 08 Significance qualifiersY = 002Entry 002 Vertical significance (surface observations)0 20 011F = 0Second Table B descriptor in the sequence to be replicatedX = 20Class 20 Observed phenomenaY = 011Entry 011 Cloud amount0 20 012F = 0Third Table B descriptor in the sequence to be replicated.X = 20Class 20 Observed phenomenaY = 012Entry 012 Cloud type0 20 013F = 0Fourth Table B descriptor in the sequence to be replicatedX = 20Class 20 Observed phenomenaY = 013Entry 013 Height of base of cloudThus the above sequence of five descriptors is equivalent to the following sequence of 16 descriptors: 0 08 002 0 20 011 0 20 012 0 20 013 0 08 002 0 20 011 0 20 012 0 20 013 0 08 002 0 20 011 0 20 012 0 20 013 0 08 002 0 20 011 0 20 012 0 20 013 In this case, every report in the Data Section will contain four sets of the four parameters Vertical significance (surface observations), Cloud amount, Cloud type, and Height of base of cloud. However, by using replication, there only need to be five descriptors in the Data Description Section instead of 16, and this will occupy only 10 octets (2 x 5) rather than 32 (2 x 16). The ability to describe a repeated pattern in the data by a single set of descriptors contributes to the efficiency of BUFR. 3.1.4.3 Delayed Replication A special form of the replication operator allows the replication factor to be stored with the data in Section 4, rather than with the descriptors in Section 3. This special form is called delayed replication. It is indicated by Y = 0, and allows the data to be described in a general way, with the number of replications being different from subset to subset. Since the data in Section 4 now contains an additional data element (the actual replication count), a descriptor must be added to Section 3 to account for and describe this data element. The appropriate descriptor is found in Class 31 Data description operator qualifiers. There are three descriptors available to use with delayed replication: refer. data Descriptor name units scale value width 0 31 000 Short delayed descriptor replication factor Numeric 0 0 1 0 31 001 Delayed descriptor replication factor Numeric 0 0 8 0 31 002 Extended delayed descriptor replication factor Numeric 1 0 16 Special note: When Y is 0, the Class 31 delayed replication descriptor is placed immediately after the replication operator and before the sequence of descriptors to be replicated. HOWEVER, the delayed replication descriptor is NOT included in the count (X) of the number of descriptors to be replicated. To illustrate this, suppose the example just discussed were to contain a delayed replication descriptor. The sequence would then be as follows: 1 04 000 0 31 001 0 08 002 0 20 011 0 20 012 0 20 013 Now, the descriptors have the following meanings: 1 04 000F = 1Replication operatorX = 04The four descriptors following the Delayed description replication factor (0 31 001) are replicatedY = 000Delayed replication0 31 001F = 0Table B descriptorX = 31Class 31 - Data description operator qualifiersY = 001Entry 001 Delayed description replication factor, occupying 8 bits in Section 40 08 002F = 0First Table B descriptor in the sequence to be replicatedX = 08Class 08 Significance qualifiersY = 002Entry 002 Vertical significance (surface observations)0 20 011F = 0Second Table B descriptor in the sequence to be replicatedX = 20Class 20 Observed phenomenaY = 011Entry 011 Cloud amount0 20 012F = 0Second Table B descriptor in the sequence to be replicated.X = 20Class 20 Observed phenomenaY = 012Entry 012 Cloud type0 20 013F = 0Third Table B descriptor in the sequence to be replicatedX = 20Class 20 Observed phenomenaY = 013Entry 013 Height of base of cloud First, note the Y value of the replication operator is 000, indicating this is a case of delayed replication. Second, note the X value of the replication operator is still 4. The portion of the Data Section corresponding to this sequence of six descriptors will first contain a value, occupying 8 bits, corresponding to 0 31 00. It indicates the number of times the next four descriptors will be replicated. After this value, the Data Section will contain the sequence of the four parameters Vertical significance (surface observations), Cloud amount, Cloud type, and Height of base of cloud repeated this number of times. Descriptor 0 31 001, Delayed descriptor replication factor has a Data width of 8 bits and can therefore describe up to 255 replications, while 0 31 002, Extended delayed descriptor replication factor, has a Data width of 16 bits and can describe up to 65536 replications. If it is known that there will be more than 255 replications, 0 31 002, must be used instead of 0 31 001. 0 31 000: Special Case 0 31 000, Short delayed descriptor replication factor, has a data width of only 1 bit. Thus it can describe only two possibilities, no replications (bit turned off value of zero) or one replication (bit turned on value of 1). In order to understand the use of this descriptor, recall that if the replication count is zero for any sequence, there will be no corresponding values in the Data Section following the replication factor. 0 31 000 therefore provides an efficient method of saving space in the data section by not including missing data at a cost of only one bit. Recall, for example, that 0 12 001, Temperature/dry bulb temperature, has a Data width of 12 bits. If there are data sets in which the temperature is frequently missing, it may be more efficient to use 0 31 000 than setting all 12 bits on each time it is missing. This can be an effective way of saving space when BUFR is used to represent data in a database, particularly with data types in which some of the parameters are seldom observed. 3.1.4.4 Delayed Replication Using a Sequence Descriptor Table D descriptor 3 02 005 expands to the four descriptors 0 08 002 0 20 011 0 20 012 0 20 013 we have been using as an example. If we use this sequence descriptor, the delayed replication sequence described in the previous Section becomes: 1 01 000 0 31 001 3 02 005 In this case, the meanings of the descriptors in the replication sequence are: 1 01 000F = 1Replication operatorX = 01The single descriptor following the Delayed description replication factor (0 31 001) is replicated Y = 000Delayed replication0 31 001F = 0Table B descriptorX = 31Class 31 - Data description operator qualifiersY = 001Entry 031 - Delayed descriptor replication factor occupying 8 bits in Section 43 02 005F = 3Table D descriptorX = 02Category 03 - Meteorological sequences common to surface dataY = 005Entry 005 of Category 02 In this example, note the count of the number of descriptors to be replicated (X = 01) applies to the single Table D descriptor that is actually in the message, and NOT to the set of possibly very many descriptors that the single Table D descriptor represents (this rule applies when a sequence descriptor is used in conjunction with simple replication as well). As in the previous example, Y = 000 in the replication operator indicates that the number of times the sequence of parameters in the Data Section represented by 3 02 005 is replicated is indicated by the value of the Delayed descriptor replication factor just preceding the replicated sequence. Figure 3.1.4 -1 provides an example of a TEMP observation sequence using a single Table D descriptor that expands to include delayed replication. In this example, the replication factor indicates how many levels are contained within the observation. The bit count of 245 bits is for 1 level, each additional level would require 83 bits. SECTION 4 WIDTH IN BITS 3 09 008 +3 01 038 +3 01 001 +0 01 001 WMO BLOCK NO. 7 +0 01 002 WMO STATION NO. 10 +0 02 011 RADIOSONDE TYPE 8 +0 02 012 RADIOSONDE COMP. METHOD 4 +3 01 011 +0 04 001 YEAR 12 +0 04 002 MONTH 4 +0 04 003 DAY 6 +3 01 012 +0 04 004 HOUR 5 +0 04 005 MINUTE 6 +3 01 024 +0 05 002 LATITUDE (COARSE ACCURACY) 15 +0 06 002 LONGITUDE (COARSE ACCURACY) 16 + 0 07 001 HEIGHT OF STATION 15 +3 02 004 +0 20 010 CLOUD COVER (TOTAL) 7 +0 08 002 VERTICAL SIGNIFICANCE 6 +0 20 011 CLOUD AMOUNT 4 +0 20 013 HEIGHT OF BASE OF CLOUD 11 +0 20 012 CLOUD TYPE Cl 6 +0 20 012 CLOUD TYPE Cm 6 +0 20 012 CLOUD TYPE Ch 6 +1 01 000 DELAYED REP. 1 DESCRIPTOR 0 +0 31 001 REPLICATION COUNT 8 +3 03 014 +0 07 004 PRESSURE 14 +0 08 001 VERTICAL SOUNDING SIG 7 +0 10 003 GEOPOTENTIAL 17 +0 12 001 TEMPERATURE 12 +0 12 003 DEW POINT 12 +0 11 001 WIND DIRECTION 9 +0 11 002 WIND SPEED 12 Total bits one replication 83 bits TOTAL BITS: 162 + n (replication number x 83), if n = 1, TOTAL = 245 Figure 3.1.4-1. Example of TEMP observations sequence using delayed replication 3.1.4.5 Delayed Repetition Whereas delayed replication means the descriptor sequence is to be expanded to match the data, delayed repetition means the data is to be expanded to match the descriptor count. There are two delayed repetition descriptors available: refer. data Descriptor name units scale value width 0 31 011 Delayed descriptor and data repetition factor Numeric 0 0 8 0 31 012 Extended delayed descriptor and data repetition factor Numeric 0 0 16 In a delayed repetition sequence, the delayed replication operator is followed by either 0 31 011 or 0 31 012, depending of the number of repetitions expected. The data will contain only one value corresponding to the delayed repetition factor. However, the output of a decoder must produce the number of repetitions of that parameter, all with the same value, indicated by the delayed repetition factor. Delayed repetition is designed for run-length encoding consisting of a fixed number of values of a given element, the precision being such that many successive values may be the same. For example, any line of a radar image can be broken up into segments consisting of identical pixel values and segments where the values vary. The first kind of segment calls for delayed repetition, a descriptor and a value both encoded once, but the value to be repeated in the output the number of times indicated by the delayed repetition factor. The second requires delayed replication, N values to be coded in the message and one descriptor repeated N times in the output to correspond. 3.1.5 Data Compression Even though BUFR makes efficient use of space by virtue of binary numbers that take only as many bits as are necessary to hold the largest expected value, a further compression may be possible. The method employed by BUFR for data compression is similar to that used in the WMO Code FM 92 GRIB (GRidded Binary fields). Like elements from the full set of observations are collected together, their minimum values subtracted out, and the differences from the minimums are then encoded with a bit length selected to hold the largest difference from the minimum value. This is repeated for all the elements. Consider the following group of identically defined data subsets: stationStationpressuretemperaturedew pointnumberHeightsubset 110129610132122110subset 210329110122121110subset 310731010050105099subset 4112295missing110102subset 511435010055095089subset 611632510075101091The minimum value of each element, noted in bold above, is: 101 291 10050 095 089 For each element, subtract the minimum value of that element from each of the original values. Then the table becomes: Station numberStation heightpressuretemperaturedew pointsubset 10 5822721subset 220722621subset 351901010subset 4114missing1513subset 51359500subset 615342562After each difference from the minimum value has been determined for each element, the number of bits necessary to store the largest difference value for each element is determined. For the station number the largest difference is 15, which is equivalent to 1111 in binary and therefore occupies 4 bits. This presents a small problem. All four bits set on, as is the case for the number 15, is properly interpreted as "missing", not as a numeric value of 15. What is done is to simply add one bit to the number needed to store the largest difference value; thus 15 gets stored in 5 bits, as 01111. It is not technically necessary to add one bit to the bit lengths for all the elements, only for those elements whose maximum differences to be encoded "fills" the available space; that is, if the number is 3 to be stored in 2 bits, 7 in 3 bits, 15 in 4 bits, 31 in 5 bits, etc. However, a convenient way to accomplish this and assure that there is always room for missing values (if needed) is to always add 1 to the largest difference value and figure the number of bits based on this larger-by-one value. In the example, the station height would be placed in 6 bits, the pressure in 7 (with the "missing" indicated as 1111111), etc., as in the following table: Station numberStation heightpressuretemperaturedew pointLargest Difference Value + 11660832822Number of bits56755Whereas in the non-compressed storage of data in Section 4 there is a continuous bit stream for all parameters for an entire observation, in the compressed form all elements of the same parameter from each observation form a continuous stream (see Figure 3.1.5-1). In order to decode compressed data, two additional items - the minimum value and the bit count - appear in the compressed form of storage in Section 4 preceding each set of element values. The Section 4 representation for compressed data for each parameter used in the example above is then: Station number minimum value (101) occupying 10 bits as specified by the Table B data width for entry 0 01 002, followed by; 6 bits containing the count in bits (5) that each of the station number differences from the minimum value will occupy, followed by; The 6 station number differences from the minimum values (0, 2, 5, 11, 13 and 15), where each value occupies 5 bits; and etc for the other elements. Schematically, the layout of Section 4 for both non-compressed data and compressed data is: Section 4 data non-compressed +----------------------------------------------------------------------------------------------------------------------+ parameter 1, parameter 2,parameter n parameter 1,parameter 2,...parameter n +------------------------------------------------------+ +-----------------------------------------------------+ observation 1 observation 2 Section 4 data compressed +----------------------------------------------------------------------------------------------------------------------+ minimum value, bit count, parameter 1 minimum value, bit count, parameter 2 +------------------------------------------------------+ +-----------------------------------------------------+ observation 1, obs. 2,,....observation n observation 1,.obs. 2,,...observation n Figure 3.1.5-1. Comparison of non-compressed and compressed data in Section 4 After the last station number difference (15), the next 15 bits (Table B data width for entry 0 07 001) will be taken by the minimum value for station height (291) followed by the count of bits to represent the differences (6) and then each of the elements occupying 6 bits apiece (5, 0, 19, 4, 59, 34). Continuing the process for all 5 parameters would produce within Section 4 the following bit counts: Station station Number height pressure temperature dew point Table B descriptor 0 01 002 0 07 001 0 10 004 0 12 004 0 12 006 Data width to contain minimum value 10 15 14 12 12 6 bits containing the bit counts for differences 6 6 6 6 6 actual bit count contained in the 6 bits 5 6 7 5 5 compressed data representation for 6 subsets 30 36 42 30 30 total bit count for 6 subsets including compression bit counts 46 +57 +62 +48 +48 total bits =261 Thus, 261 bits are necessary to represent all 6 subsets in compressed form in Section 4. Using the same set of values for the 6 subsets in non-compressed form there would be bit counts in Section 4 as follows: Station station Number height pressure temperature dew point Table B descriptor data width 10 15 14 12 12 Total bit count for 6 subsets 60 +90 +84 +72 +72 = 378 A total of 378 bits are necessary to represent all 6 subsets in non-compressed form. Special Case 1: All values of a single parameter are missing There are other conditions that can occur when encoding compressed data. If all observed values of one parameter, or element, are missing, the minimum value occupying the specified Table B data width in Section 4 is set to all 1's, the 6 bits specifying how many bits are used for each value is set to 0, but the difference values are omitted. If, for example all the dew points were missing from the 6 subsets, then the number of bits to represent the dew points would still include 12 bits for the minimum value (all set to 1) and 6 bits to specify the number of bits used for each value. However, the dew point difference values themselves would be omitted in this case reducing the number of bits to represent the dew point values by 30: Station station Number height pressure temperature dew point Table B descriptor 0 01 002 0 07 001 0 10 004 0 12 004 0 12 006 Data width to contain minimum value 10 15 14 12 12 6 bits containing the bit counts for differences 6 6 6 6 6 actual bit count contained in the 6 bits 5 6 7 5 0 compressed data representation for 6 subsets 30 36 42 30 0 total bit count for 6 subsets including compression bit counts 46 +57 +62 +48 +18 total bits =231 In the non-compressed form, however, storage of the missing dew point values would still occupy 12 bits each, with all bits set to 1, and the size of the Data Section is not reduced: Station station Number height pressure temperature dew point Table B descriptor data width 10 15 14 12 12 Total bit count for 6 subsets 60 +90 +84 +72 +72 = 378 To summarize, if all values for a single parameter are missing when BUFR compression is used: ( The minimum value occupies the number of bits as indicated in Table B, with all bits set to 1. ( The 6 bits specifying how many bits are used for each value is set to 0. ( The difference values are omitted. Special Case 2: All values of a single parameter are equal The other condition that may occur is if all the difference values are identical. In this case, the minimum value occupying the specified Table B data width in Section 4 is set to the actual minimum value, the 6 bits specifying the count of bits for each difference value is set to 0, and difference values will be omitted. This condition would produce the same bit count as if all elements were missing. To summarize, if all values for a single parameter are equal when BUFR compression is used: ( The minimum value occupies the number of bits as indicated in Table B and is set to the value (it is the minimum) ( The 6 bits specifying how many bits are used for each value is set to 0. ( The difference values are omitted. Data compression is most effective when the range of values for the parameters is small. In the example of the 6 subsets, the number of bits needed to represent the difference of all values of each parameter from their minimum value is half, or less than half, the number of bits required for storage of the original values (as indicated by the Table B entry data widths). If the 6 subsets were put into a message where compression was not applied, the length of the message would be 100 octets (Figure 3.2.5-2). By applying compression, the length of the message would be reduced to 86 octets (Figure 3.2.5-3). Using the range of values for the same 6 subsets, not realistic, but to show the effect of compression for a large data set, a total of 4267 subsets could be put into a BUFR message not exceeding 15000 octets (Figure 3.2.5-5) when compression is used. In non-compressed form there would only be 1898 subsets within the 15000-octet limit (Figure 3.2.5-4). SECTION OCTET NO. OCTET IN ENCODED IN SECTION MESSAGE VALUE DESCRIPTION Section 0 (indicator 1-4 1-4 BUFR encoded CCITT international section) Alphabet No. 5 5-7 5-7 100 total message length (octets) 8 8 3 BUFR edition number Section 1 (identification 1-3 9-11 18 length of section (octets) section) 4 12 0 BUFR master table 5-6 13-14 58 originator (U.S. Navy - FNMOC) 7 15 0 update sequence number 8 16 0 indicator for no Section 2 9 17 0 Table A - surface land data 10 18 0 BUFR message sub-type 11 19 9 version number of master table 12 20 0 version number of local tables 13 21 92 year of century 14 22 4 month 15 23 18 day 16 24 0 hour 17 25 0 minute 18 26 0 reserved for local use by ADP centers (also needed to complete even number octets for section) Section 3 (Data description 1-3 27-29 18 length of section (octets) section) 4 30 0 reserved 5-6 31-32 6 number of data subsets 7 33 bit 1=1 flag indicating observed data bit 2=0 flag indicating no compression 8-17 34-43 0 01 002 WMO station no. 0 07 001 height of station 0 10 004 pressure 0 12 004 temperature 0 12 006 dew point 18 44 0 needed to complete section with an even number of octets Section 4 (Data section) 1-3 45-47 52 length of section (octets) 4 48 0 reserved 5-52 49-96 data continuous bit stream of data for 6 subsets, 63 bits per subset plus 6 bits to end on even octet Section 5 (End section) 1-4 97-100 7777 encoded CCITT international Alphabet No. 5 Figure 3.1.5-2. BUFR message of 6 subsets in non-compressed form SECTION OCTET NO. OCTET IN ENCODED IN SECTION MESSAGE VALUE DESCRIPTION Section 0 (indicator 1-4 1-4 BUFR encoded CCITT international section) Alphabet No. 5 5-7 5-7 86 total message length (octets) 8 8 3 BUFR edition number Section 1 (identification 1-3 9-11 18 length of section (octets) section) 4 12 0 BUFR master table 5-6 13-14 58 originator (U.S. Navy - FNMOC) 7 15 0 update sequence number 8 16 0 indicator for no Section 2 9 17 0 Table A - surface land data 10 18 0 BUFR message sub-type 11 19 9 version number of master table 12 20 0 version number of local tables 13 21 92 year of century 14 22 4 month 15 23 18 day 16 24 0 hour 17 25 0 minute 18 26 0 reserved for local use by ADP centers (also needed to complete even number octets for section) Section 3 (Data description 1-3 27-29 18 length of section (octets) section) 4 30 0 reserved 5-6 31-32 6 number of data subsets 7 33 bit 1=1 flag indicating observed data bit 2=1 flag indicating compression 8-17 34-43 0 01 002 WMO station no. 0 07 001 height of station 0 10 004 pressure 0 12 004 temperature 0 12 006 dew point 18 44 0 needed to complete section with an even number of octets Section 4 (Data section) 1-3 45-47 52 length of section (octets) 4 48 0 reserved 5-52 49-82 data 261 continuous bits of compressed data plus 11 bits to end on even octet Section 5 (End section) 1-4 83-86 7777 encoded CCITT international Alphabet No. 5 Figure 3.1.5-3. BUFR message of 6 subsets in compressed form SECTION OCTET NO. OCTET IN ENCODED IN SECTION MESSAGE VALUE DESCRIPTION Section 0 (indicator 1-4 1-4 BUFR encoded CCITT international section) Alphabet No. 5 5-7 5-7 15000 total message length (octets) 8 8 3 BUFR edition number Section 1 (identification 1-3 9-11 18 length of section (octets) section) 4 12 0 BUFR master table 5-6 13-14 58 originator (U.S. Navy - FNMOC) 7 15 0 update sequence number 8 16 0 indicator for no Section 2 9 17 0 Table A - surface land data 10 18 0 BUFR message sub-type 11 19 9 version number of master table 12 20 0 version number of local tables 13 21 92 year of century 14 22 4 month 15 23 18 day 16 24 0 hour 17 25 0 minute 18 26 0 reserved for local use by ADP centers (also needed to complete even number octets for section) Section 3 (Data description 1-3 27-29 18 length of section (octets) section) 4 30 0 reserved 5-6 31-32 1898 number of data subsets 7 33 bit 1=1 flag indicating observed data bit 2=0 flag indicating no compression 8-17 34-43 0 01 002 WMO station no. 0 07 001 height of station 0 10 004 pressure 0 12 004 temperature 0 12 006 dew point 18 44 0 needed to complete section with an even number of octets Section 4 (Data section) 1-3 45-47 14952 length of section (octets) 4 48 0 reserved 5-52 49-14996 data continuous bit stream of data for 1898 subsets, 63 bits per subset plus 10 bits to end on even octet Section 5 (End section) 1-4 14997-15000 7777 encoded CCITT international Alphabet No. 5 Figure 3.1.5-4. BUFR message of 1898 subsets in non-compressed form SECTION OCTET NO. OCTET IN ENCODED IN SECTION MESSAGE VALUE DESCRIPTION Section 0 (indicator 1-4 1-4 BUFR encoded CCITT international section) Alphabet No. 5 5-7 5-7 15000 total message length (octets) 8 8 3 BUFR edition number Section 1 (identification 1-3 9-11 18 length of section (octets) section) 4 12 0 BUFR master table 5-6 13-14 58 originator (U.S. Navy - FNMOC) 7 15 0 update sequence number 8 16 0 indicator for no Section 2 9 17 0 Table A - surface land data 10 18 0 BUFR message sub-type 11 19 9 version number of master table 12 20 0 version number of local tables 13 21 92 year of century 14 22 4 month 15 23 18 day 16 24 0 hour 17 25 0 minute 18 26 0 reserved for local use by ADP centers (also needed to complete even number octets for section) Section 3 (Data description 1-3 27-29 18 length of section (octets) section) 4 30 0 reserved 5-6 31-32 6 number of data subsets 7 33 bit 1=1 flag indicating observed data bit 2=1 flag indicating compression 8-17 34-43 0 01 002 WMO station no. 0 07 001 height of station 0 10 004 pressure 0 12 004 temperature 0 12 006 dew point 18 44 0 needed to complete section with an even number of octets Section 4 (Data section) 1-3 45-47 14952 length of section (octets) 4 48 0 reserved 5-52 49-14996 data 119569 continuous bits of compressed data plus 15 bits to end on even octet Section 5 (End section) 1-4 14997-15000 7777 encoded CCITT international Alphabet No. 5 Figure 3.1.5-5. BUFR message of 4267 subsets in compressed form 3.1.6 Table C Data Description Operators 3.1.6.1 Changing Data Width, Scale and Reference Value. Table C data description operators are used for a number of purposes. Perhaps the most common is to refine Table B attributes temporarily, such as changing the data width, scale or reference value of a Table B entry. If data from a BUOY observation (FM 18, Report of a buoy observation) were being encoded into BUFR, there are no Table B entries corresponding to latitude and longitude in thousandths of degrees. The Table B entries for latitude and longitude are high accuracy (hundred thousandths of a degree) and coarse accuracy (hundredths of a degree). There are several possible methods to handle the encoding of latitude and longitude for BUOY in thousandths of degrees. One method would be to choose the high accuracy Table B entries for latitude and longitude in hundred thousandths of degrees. There would be no loss of accuracy, but a lot of unused bits for each observation would be encoded in Section 4. The high accuracy latitude requires 25 bits for representation, high accuracy longitude 26 bits. To represent latitude and longitude to thousandths of degrees would require 18 and 19 bits respectively. If the extra bits from using high accuracy were not deemed a concern, this would be the easiest method, but if it were desirable to use only the bits required to represent latitude and longitude in thousandths of degrees, there are two ways for this to be accomplished. First, and the least desirable of any method, would be to create local descriptors for Table B with the appropriate scale and reference values for thousandths of degrees. This is the least desirable method because if the BUFR message were to be transmitted to another center, then the receiving center would have to have the correct definition of the local descriptors available to their BUFR decoder program. The other method would be to use the Table C data description operators 2 01 Y to change the data width of the Table B descriptor for latitude and longitude, 2 02 Y to change the scale, and 2 03 Y to change the reference values. Table 3.1.6-1. BUFR Table C - Data Description Operators ReferenceOperandOperator NameOperation DefinitionF X2 01YChange data widthAdd (Y-128) bits to the data width given for each data element in Table B, other than CCITT IA5 (character) data, code or flag tables2 02YChange scaleAdd Y 128 to Scale in Table B for elements that are not code or flag tables.2 03YChange reference valuesSubsequent element values descriptors define new reference values for corresponding Table B entries. Y bits in the Data Section represent each new reference value. Definition of new reference values in concluded by encoding this operator with Y=255. Negative reference values shall be represented by a positive integer with the left-most bit (bit 1) set to 1.There is now a choice to be made between temporarily changing latitude and longitude from hundredths of degrees to thousandths, or, from changing them from hundred thousandths to thousandths. It doesn't matter which is done, as the only difference between the choices will be the Y operand entries of the data description operators. For this example, we will choose to change latitude and longitude from hundredths of degrees (coarse accuracy) to thousandths of degrees. Before beginning, however, it will be useful to recall the Table B values of Scale, Reference Value, and Data width for 0 05 002 (latitude - coarse accuracy), and 0 06 002 (longitude - coarse accuracy): Latitude (coarse accuracy): Scale = 2, Reference value = -9000, Data width = 15 bits Longitude (coarse accuracy): Scale = 2, Reference value = -18000, Data width = 16 bits Then review the steps to encode any value into BUFR: Multiply the value in SI units by 10SCALE in order to retain the desired precision. Subtract the Reference value from the scaled value to ensure positive integers. The value, now a positive integer, must fit within the bit width defined for this element. Latitude Change data width The largest negative latitude, the latitude at 90.000 o South, is 90.000. Since we want to retain thousandths of degrees, we must multiply by 103 (Scale of 3), which will produce -90000. In order to ensure positive integers, the Reference value for latitude will therefore have to be 90000. The largest encoded value of latitude will be for 90 o North, or 90.000. Multiplying by 103 (Scale of 3) produces 90000, and subtracting the Reference value of 90000 produces 180000. This is the largest value for Latitude that must be encoded, and the number of bits needed Change data width to accommodate 180000 is 18. Table C entry 2 01 Y Change data width - is used to change the data width of the Table B entry for latitude (coarse accuracy) from 15 bits to 18 bits. The Y operand is determined by the Operator definition of adding Y-128 bits to the data width given for the element 0 05 002. The number 128 is the midpoint between 1 and 255 which is the range of values for the 8 bits of Y. Numbers between 1 and 127 will produce a negative value for changing data width, 129 to 255 a positive value. Since the bit width must be increased by 3, a Y value of 131 is needed. Latitude Change Scale The next step is to change the value of Scale from 2 (scaling by102) to 3 (scaling by 103) in order to properly decode the reported latitude that will be encoded in Section 4 with 18 bits. This is accomplished with Table C entry 2 02 Y Change scale. The definition for change scale is Add Y 128 to Scale in Table B for elements which are not code or flag tables. Since the value of Scale must be changed from 2 to 3, a Y value of 129 is needed. Latitude Change Reference value To complete the necessary changes for Table B, the reference value also needs to be modified. It was found above that the Reference value must be changed from 9000 to 90000. Here again it must be determined how many bits are necessary to accommodate the new value, as the new reference value itself is encoded into Section 4. The number of bits to accommodate 90000 (positive value) is 17. It is, however, necessary to indicate this is to be a negative value that will require an additional bit. To indicate a new reference value as negative, the left most bit of the reference value encoded into Section 4 is set to 1. The sequence of operators needed to change the reference value for 0 05 002 is: 1) The 2 03 018 "Change reference values operator, which announces a change and states how many bits are set aside for the new reference value in the data section (18 in this example) The Table B descriptor 0 05 002, which indicated that the Reference value for Latitude (coarse accuracy) is to be changed. There can be more than one Table B descriptors here if the Reference value of more than one Table B descriptor is to be changed, provided they all can be described in 18 bits. There are, of course, as many 18-bit values in the data as there are data descriptors following the 2 03 018 descriptor. 3) 2 03 255 to terminate the reference value definition Longitude Change data width, scale, and reference value In this particular case it will not be necessary to have separate Data Description operators to modify longitude data width and change of scale. The increase in number of bits for data width to accommodate longitude to thousandths of degrees is also 3. The change of scale is also the same. There will, however, be a required change of reference value from -18000 to -180000. By following the same steps as when changing the latitude Table reference value, the Data Description operator for changing the longitude reference value would be 2 03 019 followed by the data descriptor 0 06 002, followed by the descriptor 2 03 255 to indicate the end of the list of descriptors for which reference values are being changed. Once Data Description operators 2 01 Y, 2 02 Y and 2 03 Y have been used in Section 3, they remain in effect for the rest of whatever follows in the Section 3 data descriptions. To cancel operator 2 01, and 2 02, the additional entries must 2 01 000 and 2 02 000 must be included in Section 3. To cancel the reference value change indicated by the operator 2 03 018, there must be included in Section 3 an operator 2 03 000. Coding example The data description operators encoded into Section 3 for BUOY observations would then be: 0 01 005 buoy/platform identifier 0 02 001 type of station 3 01 011 Table D descriptor which expands to descriptors for year, month and day 3 01 012 Table D descriptor which expands to descriptors for hour and minute +----------2 01 131 increase data width by 3 +------2 02 129 increase scale by 1 +-- 2 03 018 change reference value - new value contained in 18 bits in Section 4 0 05 002 new reference value applies to latitude - coarse accuracy +-- 2 03 255 terminate reference value definition 203018 +-- 2 03 019 change reference value - new value contained in 19 bits in Section 4 0 06 002 new reference value applies to longitude - coarse accuracy +-- 2 03 255 terminate reference value definition 203019 3 01 023 Table D descriptor which expands to descriptors 0 05 002 and 0 06 002 +------ 2 02 000 cancel change scale +-----------2 01 000 cancel change data width 2 03 000 cause all redefined reference values to revert back to standard Table B values OTHER ADDITIONAL DATA DESCRIPTORS TO COMPLETE BUOY DESCRIPTION Figure 3.1.6-1. Example of changing scale, Reference value and Data width for longitude and latitude, coarse accuracy The order for cancellation of nested Data Description Operators follows the above pattern where the last defined is the first canceled. Also note that the latitude and longitude must be encoded prior to the 2 03 000 descriptor or the reference values would have reverted back to the original Table B values. If instead of changing latitude and longitude from hundredths to thousandths, it were to be changed from hundred thousandths to thousandths the following descriptions would be used: 0 01 005 buoy/platform identifier 0 02 001 type of station 3 01 011 Table D descriptor which expands to descriptors for year, month and day 3 01 012 Table D descriptor which expands to descriptors for hour and minute +----------2 01 121 decrease data width by 7 +------2 02 127 multiply scale by -1 +-- 2 03 018 change reference value - new value contained in 18 bits in Section 4 0 05 001 new reference value applies to latitude - high accuracy +-- 2 03 255 terminate reference value definition 203018 +-- 2 03 019 change reference value - new value contained in 19 bits in Section 4 0 06 001 new reference value applies to longitude - high accuracy +--2 03 255 terminate reference value definition 203019 3 01 021 Table D descriptor which expands to descriptors 0 05 001 and 0 06 001 +-----2 02 000 cancel change scale +---------2 01 000 cancel change data width 2 03 000 Cause all redefined reference values to revert back to standard Table B values OTHER ADDITIONAL DATA DESCRIPTORS TO COMPLETE BUOY DESCRIPTION Figure 3.1.6-2. Example of changing scale, Reference value and Data width for longitude and latitude, high accuracy Which would be the better of the methods? Using high accuracy latitude and longitude, or using Data Description operators to change latitude and longitude definitions to thousandths of degrees will each produce the same results. In terms of number of bits saved by changing to thousandths of degrees over high accuracy, a BUOY observation containing data equivalent to the BUOY code (FM 18 Sections 0 through Section 2) would require 214 bits per observation using high accuracy latitude and longitude. If Data Description operators changed latitude and longitude to thousandths of degrees then the observation would require 200 bits per observation, or a saving of 14 bits per observation, hardly worth the effort! The preceding example does not imply that changing data width, scale and reference values should not be done, but it does point out that to do so to lower the number of bits within the data section for a given parameter is probably not that beneficial. Rather, it is to be used in those instances where the Table B entries do not provide enough significance for new technologies. These operator descriptors provide the flexibility within BUFR to handle those situations. If, for example, satellites were to measure latitude and longitude to millionths of degrees, to maintain significance of those measurements would require changing data width, scale and reference values, at least until (or if) there is a new Table B entry. This example also shows that when changing data width, scale and reference values, a single Table D descriptor cannot be used in Section 3. The reason is that changing data width and scale apply to all descriptors in Table B until the change data width and/or change scale is canceled. Since the descriptor to be affected may be deep within the Table D expansion process, there is no way to include the Data Descriptor operators in that expansion. A change in reference value, however, can be accomplished while still using a single Table D entry. This is possible because after the entry for change reference value, 2 03 YYY, there must also be included the Table B descriptor or multiple descriptors that are to have new reference values. 3.1.6.2 Changing Reference Value Only. The Table B entries for geopotential, 0 07 003 and 0 10 003 have a reference value of -400, too restrictive for very low pressure systems. The Table C Data Description operator 2 03 YYY can be placed as the first descriptor in Section 3, followed by the Table B descriptor(s) to which it applies. Placing 2 03 010, followed by 0 10 003 before the Table D descriptor means that each time data is encountered in Section 4 for 0 10 003, the new reference value indicated by the count of 10 bits specified by YYY applies. Within 10 bits the limit of the new reference value as a negative number is -511. The descriptor to conclude the list of descriptors for which new reference values are supplied follows immediately, followed in turn by the Table D descriptor (Figure 3.1.6-3). In Figure 3.1.6-3, the order of the Section 3 descriptors is: 2 03 010 0 10 003 2 03 255 3 09 008 The Section 4 data will be in the order as indicated by Figure 3.1.6-3. SECTION 4 WIDTH IN BITS 2 03 010 CHANGE REFERENCE VALUE (ACTUAL REFERENCE VALUE IN SECTION 4) 0 0 10 003 REFERENCE VALUE TO CHANGE FOR GEOPOTENTIAL 10 2 03 255 TERMINATE CHANGE REFERENCE VALUE 0 3 09 008 +3 01 038 +3 01 001 +0 01 001 WMO BLOCK NO. 7 +0 01 002 WMO STATION NO. 10 +0 02 011 RADIOSONDE TYPE 8 +0 02 012 RADIOSONDE COMP. METHOD 4 +3 01 011 +0 04 001 YEAR 12 +0 04 002 MONTH 4 +0 04 003 DAY 6 +3 01 012 +0 04 004 HOUR 5 +0 04 005 MINUTE 6 +3 01 024 +0 05 002 LATITUDE (COARSE ACCURACY) 15 +0 06 002 LONGITUDE (COARSE ACCURACY) 16 + 0 07 001 HEIGHT OF STATION 15 +3 02 004 +0 20 010 CLOUD COVER (TOTAL) 7 +0 08 002 VERTICAL SIGNIFICANCE 6 +0 20 011 CLOUD AMOUNT 4 +0 20 013 HEIGHT OF BASE OF CLOUD 11 +0 20 012 CLOUD TYPE Cl 6 +0 20 012 CLOUD TYPE Cm 6 +0 20 012 CLOUD TYPE Ch 6 +1 01 000 DELAYED REP. 1 DESCRIPTOR 0 +0 31 001 REPLICATION COUNT 8 +3 03 014 +0 07 004 PRESSURE 14 +0 08 001 VERTICAL SOUNDING SIG 7 +0 10 003 GEOPOTENTIAL 17 +0 12 001 TEMPERATURE 12 +0 12 003 DEW POINT 12 +0 11 001 WIND DIRECTION 9 +0 11 002 WIND SPEED 12 2 03 000 CAUSE REDEFINED REFERENCE VALUE TO REVERT BACK TO STANDARD TABLE B VALUE 0 TOTAL BITS: = 255 Figure 3.1.6-3. Example of changing the reference value for geopotential when embedded within a Table D descriptor 3.1.6.3 Add Associated Field. The Data Description operator 2 04 Y permits the inclusion of quality control information of Y bits attached to each following data element. The additional Y bits of the associated field appear in the data section as prefixes to the actual data elements. The Add Associated Field operator, whenever used, must be immediately followed by the Class 31 Data description operator qualifier 0 31 021 to indicate the meaning of the associated fields. 2 04 Y is defined in Table C as: Table ReferenceOperandOperator NameOperation DefinitionF X2 04YAdd associated fieldPrecede each data element field with Y bits of information. This operation associates a data field (e.g. quality control information) of Y bits with each data element. Also of value in this case are several notes that apply to this Table C entry. They are: Nesting of the operator descriptor 2 04 Y is defined such that: Each new definition adds to the currently defined associated field: Each cancellation (2 04 0) cancels only the most recently defined addition to the associated field. When the descriptor 2 04 Y is to be used, it shall precede the first of the data descriptors to which it applies. The data descriptor operator 2 04 Y shall be followed immediately by the descriptor 0 31 021 to indicate the meaning of the associated fields. In the data stream, the 6 bits described by 0 31 021 shall precede the Y bits. Once an associated field has been established and given meaning, the meaning may be changed by a re-application of descriptor 0 31 021. The associated field needs not to be cancelled in order to change the meaning. Further, if an associated field is cancelled, and then re-established, it must be given a meaning by a proper application of the 0 31 021 descriptor, as described in Notes (5) to (8), i.e., a previous assignment of meaning does not remain in force when the associated filed is cancelled. Keep these notes in mind, and refer back to them as necessary, during the ensuing description of the Add associated field operator descriptor. Hopefully, the meaning of these notes will be clear upon completion of the discussion. The Data description operator qualifier 0 31 021 takes its meaning from a code table: Code Table 0 31 021: Associated field significance Code Figure Meaning 0 Reserved 1 1 bit indicator of quality: 0 = good 1 = suspect or bad 2 2 bit indicator of quality: 0 = good 1 = slightly suspect 2 = highly suspect 3 = bad 3-6 Reserved 7 Percentage confidence 8-20 Reserved 21 1 bit indicator of correction: 0 = original value 1 = substituted/corrected value 22-62 Reserved for local use 63 Missing value Associated fields are generally for the purpose of providing additional information about the particular data element with which they are associated. The most common use is in the arena of "quality assessment", where some sort of "confidence" indication is given. Other applications are possible and can be established by additions to Code Table 0 31 021. Creating (or dealing with) an associated field in a message is a two-step process. The first is to establish the field and set the number of bits that will precede all the data elements following the appearance of the associated field operator (2 04 YYY). YYY is that number of bits. If 255 bits is not enough, you can keep adding more bits by repeating the operator. You can also generate compound associated fields by repeating the operator if the additional information is complicated. The second step is to define the meaning of those bits, i.e., how they are to be interpreted by a user of the data. This is done by immediately following each 2 04 YYY descriptor with Class 31 descriptor, 0 31 021, which, by reference to the Code table 0 31 021, establishes that meaning. A little care is required here. Code Table 0 31 021 gives a (small) number of significance code figures (all taking up 6 bits in the data) for different size associated fields; one must be consistent in setting an associated field length and identifying the meaning of the bits in the field. Once an associated field is established, those extra bits must be (are assumed to be) prefixed to every following data element, until the associated field is canceled. If the quality information has no meaning for some of those following elements, but the field is still there, there is at present no explicit way to indicate "no meaning" within the currently defined meanings. One must either redefine the meaning of the associated field in its entirety (by including 0 31 021 in the message with a data value of 63 - "missing value") or remove the associated field bits by the "cancel" operator: 2 04 000. If multiple or compound associated fields have been defined, each must be canceled separately If quality control information were to be added to a single parameter such as pressure (Table B descriptor 0 07 004), the following sequence would appear in Section 3: 2 04 007 0 31 021 0 07 004 2 04 000 The meanings of the descriptors in this sequence are: 2 04 007 - indicator that 7 bits of data precede all following Table B entries 0 31 021 - code table entry for the meaning of the 7 bits preceding the Table B entry 0 07 004 - Table B entry for pressure 2 04 000 - cancellation of the Add associated field operator The Section 4 data width for this sequence is 27 bits. The operators 2 04 007 and 2 04 000 do not occupy any bits within Section 4. The 27 bits are taken by 0 31 021 (6 bits) and 0 07 004 (21 bits - 7 bits of associated field plus 14 bits of pressure value). When multiple Table B entries are preceded by 2 04 YYY as in 2 04 007 0 31 021 0 07 004 0 31 021 0 10 003 2 04 000, the Add associated field operator 2 04 007 and the Associated field significance descriptor 0 31 021 both apply to the two Table B descriptors 0 07 004 and 0 10 003. The Section 4 data width for the sequence in this case is: 2 04 007 0 bits 0 31 021 6 (establish meaning of associated field) 0 07 004 21 (7 associated bits plus bits 14 data) 0 31 021 6 (change meaning of associated field) 0 10 003 24 (7 associated bits plus 17 bits data) 2 04 000 0 Note that the associated fields are not prefixed onto the data described by 0 31 YYY descriptor. This is a general rule: none of the Table C operators are applied to any of the Table B, Class 31 Data description operator qualifiers. Now consider the following sequence of parameters as described by the Table D descriptor 3 03 014: Section 4 Width in bits +0 07 004----------------> Pressure ------------------- 14 0 08 001----------------> Vertical sounding sig ----- 7 0 10 003----------------> Geopotential --------------- 17 3 03 014 ---> 0 12 001----------------> Temperature ---------------- 12 0 12 003----------------> Dew point ------------------ 12 0 11 001----------------> Wind direction ------------- 9 +0 11 002----------------> Wind speed -------------- 12 --- Total bits 83 If quality control information were to be added to this sequence by placing in Section 3 the operators 2 04 YYY and 0 31 021 immediately preceding 3 03 014, and the cancellation operator 2 04 000 following 3 03 014, the following sequence would be produced: Section 4 Width in bits 2 04 007------------------------------------> Add associated field-------- 0 0 31 021------------------------------------> Associated field sig.--------- 6 -----------------------------Associated field ------------ 7 |0 07 004----------------> Pressure ------------------- 14 ------------------------------Associated field ------------ 7 0 08 001----------------> Vertical sounding sig ----- 7 -----------------------------Associated field ------------ 7 0 10 003----------------> Geopotential --------------- 17 -----------------------------Associated field ------------ 7 3 03 014 -----> 0 12 001---------------> Temperature --------------- 12 -----------------------------Associated field ------------ 7 0 12 003----------------> Dew point ------------------ 12 -----------------------------Associated field ------------ 7 0 11 001----------------> Wind direction ------------- 9 -----------------------------Associated field ------------ 7 |0 11 002----------------> Wind speed -------------- 12 2 04 000------------------------------------> Cancel Add associated field---------------------------- 0 --- Total bits 138 Adding associated fields to a data sequence that is described by a Table D descriptor means the associated fields are placed before all data items in the sequence. If quality control information were to be applied only to the pressure and geopotential parameters, the Table D descriptor could not be used but instead each individual parameter would have to be listed in Section 3. +-- 2 04 007----------------> Add associated field ------- 0 0 31 021----------------> Associated field sig ------- 6 Associated field ----------- 7 0 07 004----------------> Pressure ------------------- 14 +-- 2 04 000----------------> Cancel add associated field- 0 0 08 001----------------> Vertical sounding sig -------- 7 +-- 2 04 007----------------> Add associated field-------- 0 0 31 021----------------> Associated field sig --------- 6 Associated field-------------- 7 0 10 003----------------> Geopotential ---------------- 17 +-- 2 04 000----------------> Cancel add associated field- 0 0 12 001----------------> Temperature ------------------ 12 0 12 003----------------> Dew point ---------------------- 12 0 11 001----------------> Wind direction ----------------- 9 0 11 002----------------> Wind speed --------------------- 12 --- Total bits ------------------------------- 109 If quality control information were to be added to the pressure and geopotential parameters of the TEMP observations as described in Figure 3.1.4-1 the following adjustments would have to be made. The single Table D descriptor 3 09 008 could no longer be used as the expansion includes the additional Table D descriptor 3 03 014 which further expands to those parameters where quality control information would need to be inserted. The actual order of the Section 3 descriptors would now be: 3 01 038 3 02 004 1 13 000 0 31 001 2 04 007 0 31 021 0 07 004 2 04 000 0 08 001 2 04 007 0 31 021 0 10 003 2 04 000 0 12 001 0 12 003 0 11 001 0 11 002 The expansion of this descriptor sequence, and the order of items in Section 4, is illustrated in Figure 3.1.6-4: SECTION 4 WIDTH IN BITS +3 01 038 +3 01 001 +0 01 001 WMO BLOCK NO. 7 +0 01 002 WMO STATION NO. 10 +0 02 011 RADIOSONDE TYPE 8 +0 02 012 RADIOSONDE COMP. METHOD 4 +3 01 011 +0 04 001 YEAR 12 +0 04 002 MONTH 4 +0 04 003 DAY 6 +3 01 012 +0 04 004 HOUR 5 +0 04 005 MINUTE 6 +3 01 024 +0 05 002 LATITUDE (COARSE ACCURACY) 15 +0 06 002 LONGITUDE (COARSE ACCURACY) 16 + 0 07 001 HEIGHT OF STATION 15 +3 02 004 +0 20 010 CLOUD COVER (TOTAL) 7 +0 08 002 VERTICAL SIGNIFICANCE 6 +0 20 011 CLOUD AMOUNT 4 +0 20 013 HEIGHT OF BASE OF CLOUD 11 +0 20 012 CLOUD TYPE Cl 6 +0 20 012 CLOUD TYPE Cm 6 +0 20 012 CLOUD TYPE Ch 6 +1 13 000 DELAYED REP. 13 DESCRIPTORS 0 +0 31 001 REPLICATION FACTOR 8 +2 04 007 ADD ASSOCIATED FIELD 0 +0 31 021 ASSOCIATED FIELD SIGNIFICANCE 6 ASSOCIATED FIELD 7 +3 03 014 +0 07 004 PRESSURE 14 +2 04 000 CANCEL ADD ASSOCIATED FIELD 0 +0 08 001 VERTICAL SOUNDING SIG 7 +2 04 007 ADD ASSOCIATED FIELD 0 +0 31 021 ASSOCIATED FIELD SIGNIFICANCE 6 ASSOCIATED FIELD 7 +0 10 003 GEOPOTENTIAL 17 +2 04 000 CANCEL ADD ASSOCIATED FIELD 0 +0 12 001 TEMPERATURE 12 +0 12 003 DEW POINT 12 +0 11 001 WIND DIRECTION 9 +0 11 002 WIND SPEED 12 TOTAL BITS: 277 Figure 3.1.6-4. Example of TEMP observations sequence using delayed replication and quality control information 3.1.6.4 Encoding Character Data. There may be occasions when it is necessary to encode character data into BUFR. An observation encoded into BUFR that originated from the character code FM 13 SHIP, for example, has within that code form the optional inclusion of plain language. If this character information were carried over for encoding into BUFR, the Data description operator 2 05 Y would be used in Section 3 to indicate the inclusion of character data in Section 4 of the BUFR message. Table C defines 2 05 Y as follows: Table ReferenceOperandOperator NameOperation DefinitionF X2 05YSignify characterY characters (CCITT international Alphabet No. 5) are inserted as a data field of Y x 8 bits in lengthThe following parameters from the FM 13 SHIP code form: + 6IsEsEsRs + ( or ICING + ) + plain language + described by BUFR descriptors would be: Is -------> 0 20 033 Cause of ice accretion EsEs -----> 0 20 031 Ice deposit (thickness) Rs -------> 0 20 032 Rate of ice accretion It would have to be determined in advance how many characters would be allowed for the plain language. If only the word ICING were to be placed in Section 4, the Data Descriptor 2 05 005 would be used. If it were determined that ICING plus 25 additional characters, including spaces, were to be described then the descriptor would be 2 05 030. The data descriptors and data width in Section 4 would then be: data width in bits 0 20 033 cause of ice accretion 4 0 20 031 ice deposit (thickness) 7 0 20 032 rate of ice accretion 3 2 05 030 character information 240 Since an observation in FM 13 SHIP code would have either the parameters for ice reported, or ICING + plain language, but not both, then if there were no plain language the character information would be set to spaces. If the ICING + plain language were reported then the data for descriptors 0 20 033, 0 20 031 and 0 20 032 would be set to missing (all bits set to 1). Since Section 3 indicates a count of how many subsets (observations) are included in Section 4, the above descriptors apply to all subsets, even if an individual observation does not contain any icing information. In that case the entire set of icing data for an observation would be set to missing and spaces. 3.1.6.5 Signifying Length of Local Descriptors. Local Descriptors were provided in BUFR to enable a data processing center the capability of describing information of any type within BUFR for the center's internal use. There does exist, however, the possibility that once data is described in BUFR it may be necessary to transmit a BUFR message to another center, where the BUFR message would contain local information. Since a receiver of the BUFR message may or not know the meaning of the local descriptor, it could be impossible to decode the message, as the receiver would not know the data width in Section 4 of the local information (Figure 3.1.3-5). While it could be argued that BUFR messages containing local information should never be transmitted to another center, it may require a separate set of software to remove local information before the message is ready for transmission. To overcome this situation the Data Description operator 2 06 Y was developed to allow local information to be contained within a transmitted message and to give information to the receiver that indicates the length in bits of the local data. Table C defines 2 06 Y as: Table ReferenceOperandOperator NameOperation DefinitionF X2 06YSignify data width for the immediately following local descriptorY bits of data are described by the immediately following descriptorThe meaning of the Data Description operator 2 06 Y is that the following local descriptor is describing Y bits of data in Section 4. Figure 3.1.6-5 is the same as Figure 3.1.3-5, but with the proper 2 06 Y descriptor added. Knowing the width in bits of data in Section 4 then allows the receiver of the message to bypass that number of bits and allow proper decoding of Section 4. The operator 2 06 Y can only be used when it precedes a local descriptor with F = 0. While it is within the rules of BUFR to create local descriptors with F = 3 (sequence descriptor), the Data Description operator 2 06 Y cannot be used to bypass whatever number of bits are being described by a sequence descriptor. Since a sequence descriptor expands to other descriptors and in the expansion process other local descriptors or delayed replication may be encountered, there is no way of knowing in advance how many total bits are covered by a sequence descriptor. SECTION 4 WIDTH IN BITS 2 06 003 > 3 BITS ARE DESCRIBED BY THE FOLLOWING LOCAL DESCRIPTOR 0 0 54 192 > Local descriptor 3 3 07 002 +3 01 032 +3 01 001 +0 01 001 >WMO BLOCK NO. 7 +0 01 002 >WMO STATION NO. 10 +0 02 001 >TYPE OF STATION 2 +3 01 011 +0 04 001 >YEAR 12 +0 04 002 >MONTH 4 +0 04 003 >DAY 6 +3 01 012 +0 04 004 >HOUR 5 +0 04 005 >MINUTE 6 +3 01 024 +0 05 002 >LATITUDE (COARSE ACCURACY) 15 +0 06 002 >LONGITUDE(COARSE ACCURACY) 16 +0 07 001 >HEIGHT OF STATION 15 +3 02 011 +3 02 001 +0 10 004 >PRESSURE 14 +0 10 051 >PRESSURE REDUCED TO MSL 14 +0 10 061 >3 HR PRESSURE CHANGE 10 +0 10 063 >CHARACTERISTIC OF PRESSURE 4 +3 02 003 +0 11 011 >WIND DIRECTION 9 +0 11 012 >WIND SPEED AT 10m 12 +0 12 004 >DRY BULB TEMP AT 2m 12 +0 12 006 >DEW POINT TEMP AT 2m 12 +0 13 003 >RELATIVE HUMIDITY 7 +0 20 001 >HORIZONTAL VISIBILITY 13 +0 20 003 >PRESENT WEATHER 8 +0 20 004 >PAST WEATHER (1) 4 +0 20 005 >PAST WEATHER (2) 4 +3 02 004 +0 20 010 >CLOUD COVER (TOTAL) 7 +0 08 002 >VERTICAL SIGNIFICANCE SURFACE OBS 6 +0 20 011 >CLOUD AMOUNT 4 +0 20 013 >HEIGHT OF BASE OF CLOUD 11 +0 20 012 >CLOUD TYPE Cl 6 +0 20 012 >CLOUD TYPE Cm 6 +0 20 012 >CLOUD TYPE Ch 6 TOTAL BITS: 270 Figure 3.1.6-5. Example of surface observations with local descriptor and data descriptor operator 2 06 Y 3.1.6.6 Data Not Present. Table C defines the Data not present operator (2 21 YYY) as follows: Table ReferenceOperandOperator NameOperation DefinitionF X2 21YYYData not presentData values present in Section 4 (Data section) corresponding to the following YYY descriptors shall be limited to data from Classes 1 9 and Class 31 2 21 YYY permits the construction of a BUFR message containing only coordinate (classes 1 9) and delayed replication and quality control information (Class 31). Recall that delayed replication in conjunction with Associated field significance (0 31 021) permits specification of (somewhat limited) quality assessment information. Combining this information with the coordinate information could then be linked back to the original data-containing message by comparison of the coordinate information in the two messages or, in a local context, through database information in Section 2. 3.1.6.7 Quality Assessment Information The remaining data description operators currently in Table C (Operator descriptors 2 22 000 through 2 37 255) provide a more sophisticated method of including quality assessment information in BUFR than does use of the Add associated field operator. Table C defines these descriptors as: Table ReferenceOperandOperator NameOperation Definition2 22000Quality information followsThe values of Class 33 elements which follow relate to the data defined by the data present bit-map.2 23000Substituted values operatorThe substituted values which follow relate to the data defined by the data present bit-map.2 23255Substituted values marker operatorThis operator shall signify a data item containing a substituted value; the element descriptor for the substituted value is obtained by the application of the data present bit-map associated with the substituted values operator.2 24000First order statistical values followThe statistical values which follow relate to the data defined by the data present bit map.2 24255First order statistical values marker operatorThis operator shall signify a data item containing a first order statistical value of the type indicated by the preceding 0 08 023 element descriptor; the element descriptor to which the first order statistic relates is obtained by the application of the data present bit-map associated with the first order statistical values follow operator; first order statistical values shall be represented as defined by this element descriptor.2 25000Difference statistical values followThe statistical values which follow relate to the data defined by the data present bit-map.2 25255Difference statistical values marker operatorThis operator shall signify a data item containing a difference statistical value of the type indicated by the preceding 0 08 024 element descriptor; the element descriptor to which the first order statistic relates is obtained by the application of the data present bit-map associated with the difference statistical values follow operator; difference statistical values shall be represented as defined by this element descriptor, but with a reference value of 2n and a data width of (n+1), where n is the data width given by the original descriptor. This special reference value allows the statistical difference values to be centered around zero.2 32000Replaced/retained values followThe replaced/retained values which follow relate to the data defined by the data present bit-map.2 32255Replaced/retained value marker operatorThis operator shall signify a data item containing the original of an element which has been replaced by a substituted value. The element descriptor for the retained value is obtained by the application of the data present bit-map associated with the substituted values operator.2 35000Cancel backward data referenceThis operator terminates all previously defined backward references and cancels any previously defined data present bit-map; it causes the next data present bit-map to refer to the data descriptors which immediately precede the operator to which it relates.2 36000Define data present bit-mapThis operator defines the data present bit-map which follows for possible re-use; only one data present bit-map may be defined between this operator and the cancel use defined data present bit-map operator.2 37000Use defined data present bit-mapThis operator causes the defined data present bit-map to be used again.2 37255Cancel use defined data present bit-mapThis operator cancels the re-use of the defined data present bit-map. Since these operator descriptors are more sophisticated, however, they are also more difficult to understand (and challenging to program). Consequently, the explanation is lengthy. Furthermore, many may not use them and therefore not need to understand them. Therefore, the explanation of the use of operator descriptors 2 22 000 through 2 37 255 is contained in the Appendix to Chapter 3.1.6.7. 3.2 CREX 3.2.1 SECTIONS OF A CREX MESSAGE 3.2.1.1 Overview of a CREX Message The term "message" refers to FM 95 CREX (referred throughout the remainder of Chapter 3.2 as simply CREX) being used as a data transmission format, although CREX could be used for on-line storage or data archiving as well. For transmission of data, each CREX message consists of a string of alphanumeric characters, comprising five sections: Section 0Section 1Section 2Section 3Section 4Section NumberNameContents0Indicator Section"CREX" (four alphanumeric letters)1Data Description SectionCREX Master Table number, edition, number, and table version number, data category, a collection of data descriptors which define the form and content of data subsets in the Data Section, and optional check digit indicator E 2Data SectionA set of data subsets defined in Section 13Optional SectionSUPP (four alphanumeric letters), followed by additional items for local use4End Section"7777" (four alphanumeric figures)All sections of a CREX message except the last terminate with the two contiguous characters ++, which are referred to as the Section terminator. Within the Data Description and Data sections, CREX messages contain a series of groups. Regulation 95.1.3 defines a group as follows: A group is a sequence of one or more contiguous characters corresponding to a single data descriptor or data value. Groups shall be separated from each other by one or more space characters. Multiple space characters shall be used when needed to improve human readability. Theoretically there is no upper limit to the size of a CREX message but, by convention, CREX messages are restricted to 15000 octets or 120000 bits. Figure 3.2.1-1 is an example of a complete CREX message consisting of one land surface report. This example will be used to describe the structure of a CREX message. CREX uses many of the principles of FM 94 BUFR. These will be pointed our as we proceed through Chapter 3.2. Sample CREX Report: CREX++ T000103 A000 D07004++ 03 075 1 1989 01 09 09 00 5845 00308 09962 10001 0019 03 240 0013 073 /// /// 3000 015 07 02 075 07 06 0120 38 20 10 0001 07 05 08 0120++ 7777 Figure 3.2.1-1: Sample CREX Report 3.2.1.2 Section 0 Indicator Section Structure SECTION 0Section 1Section 2Section 3Section 4Group NumberContentsMeaning1CREXBeginning of a CREX MessageExample The sample CREX message in Figure 3.2.1-1 is reproduced below, with the Indicator Section in bold. CREX++ T000103 A000 D07004++ 03 075 1 1989 01 09 09 00 5845 00308 09962 10001 0019 03 240 0013 073 /// /// 3000 015 07 02 075 07 06 0120 38 20 10 0001 07 05 08 0120++ 7777 Figure 3.2.1-2: Sample CREX Report, highlighting the Indicator Section 3.2.1.3 Section 1 Data Description Section Structure Section 0SECTION 1Section 2Section 3Section 4Group Number Contents Meaning1TtteevvT: Indicator for CREX Tables tt: CREX Master Table (00 for Standard WMO FM 95 CREX Tables) ee: CREX Edition Number (currently 01) vv: CREX Table Version Number (currently 03)2AnnnA: Indicator for CREX Table A nnn: Data Category from CREX Table A3 to nBxxyyy, Cxxyyy, Dxxyyy, And/or RxxyyyB, C, D: Indicators for CREX Table B, C, or D entries xx: xxyyy indicates references from CREX tables B, C, or D yyy, and/or R: Indicator for CREX Replication Operator xx: number of replicated descriptors yyy: number of replications of the xx descriptors. yyy = 0 indicates delayed replication, where the number of repetitions is found in the Data Section.n + 1EE: Optional check digit indicatorThe Data Description Section describes the form and content of the data in the Data Section. There are four basic sets of information in the Data Description Section: the edition/table description, the data category, the data description itself, and an optional check digit indicator. The data described by the set of descriptors in Section 1 is collectively referred to as a data subset. For observational data, one data subset corresponds to one report. Example The sample CREX message in Figure 3.2.1-1 is reproduced below, this time with the Data Description Section in bold: CREX++ T000103 A000 D07004++ 03 075 1 1989 01 09 09 00 5845 00308 09962 10001 0019 03 240 0013 073 /// /// 3000 015 07 02 075 07 06 0120 38 20 10 0001 07 05 08 0120++ 7777 Figure 3.2.1-3: Sample CREX Report, highlighting the Data Description Section Edition/Table Group This group of information always begins the Data Description Section. The group has the form Ttteevv, where: Letter Meaning Use in the Sample CREX Message T ---> Indicator for the Edition/Table Group tt ---> CREX Master Table used -------------------> 00 for Standard WMO FM 95 CREX Tables ee ---> CREX Edition Number used ----------------> 01 for current CREX edition Number vv ---> CREX Table version number used --------> 03 for current CREX Master Tables version Data Category Group This is always the second group in the Data Description Section. The group has the form Annn, where: Letter Meaning Use in the Sample CREX Message A ---> Indicator for the Data Category Group nnn ---> Data category from CREX Table A -------> 000 for Surface data - land Data Description Groups After the CREX edition/table descriptor group and data category group, Section 1 has one or more data descriptors. Each data descriptor is considered one group. These groups are the heart of a CREX message. As with BUFR, a descriptor is of the form F xx yyy, where the type of group depends on F: F = B ( Element descriptor, and refers to Table B entries F = C ( Operator descriptor, and refers to Table C entries F = D ( Sequence descriptor, and refers to Table D entries F = R ( Replication operator The meanings of and uses for X and Y depend on the value of F. CREX descriptors are discussed in detail in Chapter 3.2.2. The descriptor sequence in the sample CREX message is decomposed in detail in Chapter 3.2.4. Optional Check Digit Indicator A check digit indicator is optional at the end of Section 1. If present, it takes the form of the single character E, and signifies the presence of a check digit added in front of each data value in the Data Section. 3.2.1.4 Section 2 Data Section Structure Section 0Section 1SECTION 2Section 3Section 4Group Number Contents Meaning1 to n(d) data valuesd: Optional check digit data values: Data values corresponding to the descriptors in Section 1Organization of the Data Values The Data Section is comprised of one or more groups, where each group represents one data value. The sequence of data values corresponds to the list of descriptors defined in the Data Description Section. The set of data values corresponding to a single application of the descriptors in the Data Description Section comprises one data subset. There may be many data subsets in the Data Section. In that case, each data subset in the Data Section is terminated by the character + (the subset terminator). However the subset terminator is not present following the last data subset in the Data Section rather the section terminator (++) serves that purpose. The data values in Section 2 are separated by at least one space character. Additional space characters may be inserted between groups to improve alignment and readability. Each numeric data value includes leading zeroes when the number of digits required to represent the value is smaller than the number of characters defined in the corresponding CREX Table B entry, and likewise for the delayed replication number if present. Each character value is left justified and includes trailing blanks when the number of characters required to represent the data value is smaller than the number of characters defined in the corresponding CREX Table B entry. Keeping the number of characters representing the data value always equal to the original data width defined in CREX Table B or in the regulations facilitates both the encoding and the interpretation of a CREX message. Only negative numbers are signed. The number of characters allowed for a group, found in CREX Table B, does not include the negative sign if it is present. A missing value in Section 2 is represented by a string of solidi (/) characters equal in number to the number of characters allowed for that group in CREX Table B Example Without Optional Check Digit The sample CREX message in Figure 3.2.1-1 is reproduced below, this time with the Data Section in bold. The Data Section of this sample message will be decomposed in detail in Chapter 3.2.4. CREX++ T000103 A000 D07004++ 03 075 1 1989 01 09 09 00 5845 00308 09962 10001 0019 03 240 0013 073 /// /// 3000 015 07 02 075 07 06 0120 38 20 10 0001 07 05 08 0120++ 7777 Figure 3.2.1-4: Sample CREX Report, highlighting the Data Section Example With Optional Check Digit Figure 3.2.1-5 is exactly like Figure 3.2.1-4, except the optional check digit indicator (E) is present at the end of Section 1, and a check digit is therefore added in front of each data value in Section 2. The check digit is a numeric character from 0 to 9, and takes the value of the unit digit of the ordered number of the data value counting from left to right.. The check digit immediately precedes the first character of each data value. However, note that the check digit immediately precedes the negative sign if a data value is negative. CREX++ T000103 A000 D07004 E++ 003 1075 21 31989 401 509 609 700 85845 900308 009962 110001 20019 303 4240 50013 6073 7/// 8/// 93000 0015 107 202 3075 407 506 60120 738 820 910 00001 107 205 308 40120++ 7777 Figure 3.2.1-5: Sample CREX Report, highlighting the Data Section 3.2.1.5 Optional Section Structure Section 0 Section 1Section 2 SECTION 3Section 4Group Number Contents Meaning1SUPPThe supplementary Optional Section is present 2 to pItems for local useAdditional items for local useSection 3 is optional. If it is present, it will contain additional items defined by each Centre for their own specific use. For example, a data processing Centre might add quality control information here. The sample CREX message in Figures 3.2.1-1 through 3.2.1-5 does not have an Optional Section. 3.2.1.6 End Section Structure Section 0 Section 1 Section 2 Section 3SECTION 4Group Number Contents Meaning17777End of a CREX MessageNote that Section 4 does not have a section terminator. Example The sample CREX message in Figure 3.2.1-1 is reproduced below with the End Section in bold. CREX++ T000103 A000 D07004++ 03 075 1 1989 01 09 09 00 5845 00308 09962 10001 0019 03 240 0013 073 /// /// 3000 015 07 02 075 07 06 0120 38 20 10 0001 07 05 08 0120++ 7777 Figure 3.2.1-6: Sample CREX Report, highlighting the End Section 3.2.2 CREX Descriptors 3.2.2.1 Fundamentals of CREX Descriptors A CREX descriptor is a set of 6 alphanumeric characters. The 6 characters are divided into 3 parts, - F (1 letter), xx (2 digits), and yyy (3 digits, or a (minus sign) followed by 2 digits for C02yyy data description operators for negative scales more on this in the Chapter on CREX Table C). A space character always precedes a data descriptor. The F xx yyy descriptors in CREX Section 1 describe the form and content of the data in Section 2. Schematically, a CREX descriptor can be visualized as follows: F xx yyy 1 letter 2 digits 3 digits F (1 letter) denotes the type of descriptor, and can be B, C, D, or R. The four possibilities for F have the following meanings: F = B ( Element descriptor, and refers to Table B entries F = C ( Operator descriptor, and refers to Table C entries F = D ( Sequence descriptor, and refers to Table D entries F = R ( Replication operator Case 1: F = B When F = B, the descriptor functions as an element descriptor, and defines a single data item by reference to CREX Table B entry B xx yyy. Case 2: F = C When F = C, the descriptor functions as an operator descriptor, and defines an operation by reference to CREX Table C entry C xx yyy. CREX Table C is provided to address cases when no option other than use of an operator descriptor to change the unit, scale or data width is possible. However, the most basic attribute of CREX is its human readability, and use of operator descriptors always reduce the readability of a CREX message. Therefore, operator descriptors from CREX Table C should only be used as a last resort. Case 3: F = D When F = D, the descriptor functions as a sequence descriptor, and defines a list of element descriptors, replication descriptors, operator descriptors, and/or sequence descriptors by reference to CREX Table D entry D xx yyy. Case 4: F = R If F = R, the descriptor functions as a replication descriptor. The 2 digits xx define the number of following descriptors to be repeated, and the 3 digits yyy give the number of times the sequence of xx descriptors is to be repeated. As with BUFR, if yyy = 000, the descriptor defines a delayed replication. In this case, the number of replications of the sequence of data values is given in the Data Section (for example, the number of levels in a sounding). The number of replications is contained in a four-digit number in the data section corresponding to the position of the replication descriptor in the Data Description Section. Descriptor Class or Category When F = B or D, xx (2 digits) indicates the class or category of descriptor. With 2 digits, there are 100 possibilities, classes 00 to 99. Thus far, 29 classes have been defined. Descriptor Entry in the Class or Category When F = B or D, yyy (3 digits) indicates the entry within a class xx. With 3 digits, there are 1000 possibilities (000 too 999) within each of the 100 classes. There are a varying number of entries within each of the 29 classes that are currently defined. 3.2.2.2 Coordinate Descriptors The descriptors in Classes 00 through 09 (with 03 and 09 at present reserved for future use) have a special meaning added to them over and above the specific data elements that they describe. They (or the data they represent) "remain in effect until superseded by redefinition" (see Regulation 95.3.5). By this is meant that the data in these classes serve as coordinates (in a general sense) for all the following observations. Once you encounter a B 04 004 descriptor (which describes the "hour"), one must assume that the hour (a time coordinate) applies to all the following observed parameters, until either another B 04 004 descriptor is encountered or you reach the end of the data subset. Obviously the familiar coordinates (the two horizontal dimensions - Classes 05 and 06, the vertical dimension Class 07, and time Class 04) are in this sub-category of descriptors. However, some features that one might not think of as "coordinates", other than in a general sense, are in this sub-category as well. Forms of "identification" of the observing platform (block and station number, aircraft tail number, etc.) are "coordinates" in this sense, in that they most certainly apply to all the observed parameters taken from that platform and they "remain in effect until superseded by redefinition". The instrumentation that is used to take the measurements (Class 02) also falls in the same category - it applies to all the actual observed values of a particular parameter because all those observed values were measured with that particular instrument. However, some observations (like SYNOPs) involve several instruments, and therefore the instrumentation would need to be redefined a number of times in an individual SYNOP report. Nevertheless, the coordinate philosophy still applies for an individual observed quantity. A source of confusion can arise by noting that some parameters (height and pressure, for example) appear twice in the Tables: in Class 07 (for values used as coordinates, or the independent variable) and again in Class 10 (for reported values, or the dependent variable). Which table descriptor is appropriate depends on the nature of the measurement that involves these parameters. A Radiosonde, which measures wind, temperature, and humidity (and geopotential height by calculation) as a function of pressure, would report the pressure values using Class 07 (the vertical coordinate or independent variable) and the other parameters from the non-coordinate classes (10 for geopotential, 11 for wind, 12 for temperature, and 13 for humidity). An aircraft radar altimeter, on the other hand, might calculate pressure (and use Class 10 to report the value) as a function of its height measurement (Class 07). There is an exception to the "remain in effect until redefined" rule: when two identical descriptors from Classes 04 to 07 are placed back to back, that is to be interpreted as defining a range of coordinates. In this way a layer, an area, a volume, or a span of time can be defined as needed. If the same descriptor shows up later on in the message, then that appearance does indeed redefine that particular coordinate value even if the original coordinates defined a range. The others still remain in effect. 3.2.2.3 Increment Descriptors Increment descriptors are those descriptors in Classes 04 07 with the word increment in the element name. As an example, consider Class 04 of Table B: Class 04 - Location (time) TABLE REFERENCE TABLE ELEMENT NAMEBUFRCREX UNIT SCALE REFERENCE VALUEDATA WIDTH (Bits) UNIT SCALEDATA WIDTH (Characters)FXY004001YearYear0012Year04004002MonthMonth004Month02004003DayDay006Day02004004HourHour005Hour02004005MinuteMinute006Minute02004006SecondSecond006Second02004011Time incrementYear0102411Year04004012Time incrementMonth0102411Month04004013Time incrementDay0102411Day04004014Time incrementHour0102411Hour04004015Time incrementMinute0204812Minute04004016Time incrementSecond0409613Second04004017Reference time period for accumulated or extreme dataMinute0-144012Minute04004021Time period or displacementYear0102411Year04004022Time period or displacementMonth0102411Month04004023Time period or displacementDay0102411Day04004024Time period or displacementHour0204812Hour04004025Time period or displacementMinute0204812Minute04004026Time period or displacementSecond0409613Second04004031Duration of time relating to following valueHour008Hour03004032Duration of time relating to following valueMinute006Minute02004041Time difference, UTC LMT (see Note 6)Minute0144012Minute04004043Day of the yearDay009Day03004053Number of days with precipitation equal to or more than 1 mmNumeric00 6Numeric02004065Short time incrementMinute0-1288Minute02004073Short time period or displacementDay0-1288Day02004074Short time period or displacementHour0-1288Hour02004075Short time period or displacementMinute0-1288Minute02 Notes: (1) The significance of time periods or displacements shall be indicated using the time significance code corresponding to table reference 0 08 021. (2) Where more than one time period or displacement is required to define complex time structures, they shall be defined in immediate succession, and the following ordering shall apply: ensemble period (if required), followed by forecast period (if required), followed by period for averaging or accumulation (if required). (3) Time periods or displacements and time increments require an initial time location to be defined prior to their use, followed where appropriate by a time significance definition. (4) The time location, when used with forecast values, shall indicate the time of the initial state for the forecast, or the beginning of the forecast period; when used with ensemble means of forecast values, the time location shall indicate the initial state or the beginning of the first forecast over which ensemble means are derived. (5) Negative time periods or displacements shall be used to indicate time periods or displacements preceding the currently defined time. (6) Descriptor 0 04 041 has been replaced by the combination of 0 08 025 and 0 26 003 and should not be used for encoding this element. (7) All times are Universal Time Coordinated (UTC) unless otherwise noted. Note that descriptors B 04 011 B 04 016 not only all have the word increment in their element names, their element names Time increment - are identical. They are distinguished from one another by their Unit (Year, Month, Day, Hour, Minute, and Second). The values of the coordinate descriptors in Class 04 corresponding to these increments are capable of being incremented. Thus, B 04 004 (Hour) is capable of being incremented because there in a Time increment descriptor (B 04 014) with unit = Hour. Normally, the coordinate value for B 04 004 would "remain in effect until superseded" by the appearance of the same descriptor with a new data value. But the appearance of a descriptor for an increment associated with that coordinate B 04 014 - will also change the value of the coordinate by the amount found in the data section. This is what is meant by Regulation 95.3.3.5: Any occurrence of an element descriptor from classes 04 to 07 inclusive which defines an increment shall indicate that the location corresponding to that class be incremented by the corresponding data value. The increment descriptor must be in the same class as the data to be incremented and must have the same units. Unfortunately, in the current CREX tables there is no built-in way to associate an increment uniquely with the descriptor/value that is capable of being incremented. The association can only be made by inspection of the element names and units. 3.2.3 CREX Tables 3.2.3.1 Table A Data Category Table A is referred to the second group (Annn) in the CREX Data Description Section and provides a quick check for the type of data represented in the message. BUFR and CREX use the same Table A. Of the 256 possible entries for Table A, 17 are currently defined: Table 3-3. BUFR Table A - Data Category Code Figure Meaning0Surface data land1Surface data sea2Vertical soundings (other than satellite)3Vertical soundings (satellite)4Single level upper-air data (other than satellite)5Single level upper-air data (satellite)6Radar data7Synoptic features8Physical/chemical constituents9Dispersal and transport10Radiological data11BUFR tables, complete replacement or update12Surface data (satellite)13 19Reserved20Status information21Radiances (satellite measured)22 30Reserved31Oceanographic data32 100Reserved101Image data102 239Reserved240 254For experimental use255Indicator for local use, with sub-category As with BUFR, the setting of one of the code figures for Table A in Section 1 is redundant. The descriptors in Section 1 of a CREX message define the data in Section 2 regardless of the Table A code figure. However, users of CREX messages, as well as automated decoding programs, may well refer to Table A, as it may be useful to have a general classification of the data available prior to actually decoding the information and passing it on to some subsequent application program. 3.2.3.2 Table B Classification of Elements CREX Table B defines the element descriptors, and is therefore is the heart of the CREX data description language. CREX was designed to be closely related to BUFR. One of the consequences of this design perspective is that CREX and BUFR element descriptors have many similarities. First, if one entry in CREX Table B and one entry in BUFR Table B have the same table reference, they will also have the same element name (64 characters maximum). This design philosophy makes it possible to have only one TABLE B, with entries for both BUFR and CREX for each element descriptor. The only exception to this is that BUFR Class 31 Data description operator qualifiers does not exist in CREX. Second, as with BUFR, parameters in classes 01 09 remain in effect until redefined. CREX descriptors have three characteristics that are needed to encode and/or decode data values; Unit, Scale, and Data width (in characters). Since CREX can depict negative numbers, a Reference value is not necessary. Units: The units of CREX Table B entries refer to the format of how the data is represented in Section 2. In CREX, meteorological or oceanographic parameters are represented in either Standard International (SI) units or standard common usage units used by the data producers and the users. For example, note Class 12 (Temperature) reproduced below. The units of most elements in Class 12 are the SI standard degrees Kelvin in BUFR, but the more familiar, and therefore user-friendlier, degrees Centigrade in CREX. However, this is not exclusively true, for elements B 12 064, B 12 065, and B 12 071 use degrees Kelvin for both BUFR And CREX, and radiance type elements B 12 0972, B 12 075, and B 12 076 use the SI standard W m-2 sr-1 for both BUFR and CREX. As with BUFR, the data may also be numeric, as in the case of a WMO block number, or character, as in the case of an aircraft identifier. Furthermore, the units may also refer to a code table or a flag table, where the code or flag table is described in the WMO Manual On Codes. Scale: The scale refers to the power of 10 that the element in CREX Section 2 has been multiplied by in order to retain the desired precision in the transmitted data. No decimal points are used in the CREX data section, so a positive scale gives the number of figures after the decimal point included in the data values in Section 2. For example, B 12 001 (Temperature/dry-bulb temperature) has a scale of +1, which means temperatures encoded in a CREX message will have values in tenths of degrees Centigrade (thus, a temperature of 15.7 oC will appear in CREX Section 2 as 157). In a similar manner, a negative scale gives the number of digits before the decimal point that are not included in the data values in Section 2. For example, B 10 002 (Height) has a scale of 1, which means that heights encoded in a CREX message will have values in decameters (thus, a height of 1260 m will appear in CREX Section 2 as 126). Data Width: In CREX, the data width of Table B entries is a count of how many characters the largest possible value of an individual data item of Section 2 occupies, after multiplying by the scale factor. Positive numerical values are unsigned. Only negative numerical values are signed, with the negative sign immediately preceding the data value. The data width given in CREX Table B does not include the negative sign. Each numeric value includes leading zeroes when the number of digits required to represent the value is smaller than the number of characters defined in the corresponding Table B entry. Each character value is left justified, and includes trailing blanks when the number of characters required to represent the data value is smaller than the number of characters defined in the corresponding CREX Table B entry. In those instances where a Table B descriptor defines an element of data in Section 2 that is missing for a given subset, a group of solidi / characters equal in number to the number of characters defined in the corresponding CREX Table B entry will be coded in the Data Section. Thus, every data value in the Data Section will have precisely the number of characters defined in the corresponding CREX Table B entry. Obviously, without an up-to-date Table B, a decoder program would not be able to determine the form or content of data appearing in the Data Section. Class 12 (Temperature) from Table B is presented below as an example of CREX entries in Table B. Class 12 - Temperature TABLE REFERENCE TABLE ELEMENT NAMEBUFRCREX UNIT SCALE REFERENCE VALUEDATA WIDTH (Bits) UNIT  SCALE DATA WIDTH (Characters)FXY012001Temperature/dry-bulb temperatureK1012C13012002Wet-bulb temperatureK1012C13012003Dew-point temperatureK1012C13012004Dry-bulb temperature at 2 mK1012C13012005Wet-bulb temperature at 2 mK1012C13012006Dew-point temperature at 2 mK1012C13012007Virtual temperatureK1012C13012011Maximum temperature, at height and over period specifiedK1012C13012012Minimum temperature, at height and over period specifiedK1012C13012013Ground minimum temperature, past 12 hoursK1012C13012014Maximum temperature at 2 m, past 12 hoursK1012C13012015Minimum temperature at 2 m, past 12 hoursK1012C13012016Maximum temperature at 2 m, past 24 hoursK1012C13012017Minimum temperature at 2 m, past 24 hoursK1012C13012021Maximum temperature at 2mK2016C24012022Minimum temperature at 2mK2016C24012030Soil temperatureK1012C13012051Standard deviation temperatureK1010C13012052Highest daily mean temperatureK1012C13012053Lowest daily mean temperatureK1012C13012061Skin temperatureK1012C13012062Equivalent black body temperatureK1012C13012063Brightness temperatureK1012C13012064Instrument temperatureK1012K14012065Standard deviation brightness temperatureK1012K14012071Coldest cluster temperatureK1012K14012072RadianceW m-2 sr-16031W m-2sr-169012075Spectral radianceW m-3 sr-1-3016W m-3sr-1-35012076RadianceW m-2 sr-13016W m-2sr-135012101Temperature/dry-bulb temperatureK2016C24012102Wet-bulb temperatureK2016C24012103Dew-point temperatureK2016C24012104Dry-bulb temperature at 2mK2016C24012105Web-bulb temperature at 2mK2016C24012106Dew-point temperature at 2mK2016C24 3.2.3.3 CREX Table C Data Description Operators Descriptors with F = 2 refer to CREX Table C - Data Description Operators. One of the crucial attributes of CREX is its human readability. Because use of Data Description Operators inevitably interferes with this human readability, the number of CREX Data Description Operators has been kept more limited and the functions they perform more simple than was the case with BUFR. Furthermore, it is strongly recommended that the available CREX Data Description Operators be used only as a last resort. In all cases, the action specified by the CREX operator descriptor applies only to the data value corresponding to the following element descriptor. The original Table B value is back in force again for that element when subsequently referenced in the data description section until a new change is specified. C 01 YYY: Data Width Replacement When this operator is used, YYY characters (from 000 to 999) replace the specified Table B data width for the following descriptor. C 02 YYY: Scale Factor Replacement When this operator is used, YYY (from 99 to 999) replaces the specified Table B Scale Factor for the following descriptor. This is the case (for Scale Factors from 99 to 01) referenced in Chapter 3.2.2.1 when the yyy part of the descriptor consists not of three digits but of a minus sign followed by 2 digits. C 05 YYY: Character Insertion When this operator is used, YYY characters (from 001 to 999), including spaces, are inserted as a data field. C 07 YYY: Units Replacement When this operator is used, the unit specified by code figure YYY in Common code table C-6 replaces the specified Table B unit for the following descriptor. For example, YYY = 201 changes unit to knot and YYY = 741 changes unit to km h-1. C 60 YYY: National Letters Insertion When this operator is used, YYY national letters, including spaces, are inserted as a data field. One should note, however, that only the characters from the International Telegraphic Alphabet No. 2 (ITA2) are likely to be transmitted accurately to all recipients. 3.2.3.4 Table D - Lists of Common Sequences From a conceptual point of view, CREX Table D is not necessary. The Data Description Section of a CREX message can fully and completely describe the data using only element descriptors, operator descriptors, and the rules of description. However, such a means of defining the data would involve considerable overhead in terms of the length of the Data Description Section. Table D is a device to reduce this overhead. Table D contains descriptors that describe additional descriptors. A single descriptor used in Section 2 with F = 3 is a pointer to a Table D entry. As with Table B, CREX Table D is organized into various classes, or categories, of sequences that have common characteristics. The xx value of the sequence descriptor identifies the category to which that particular sequence descriptor belongs. The yyy value of the sequence descriptor is the entry in that category for that particular sequence descriptor. There are currently defined 19 categories of common sequences in Table D: CREX Table D list of common sequences F XX CATEGORY OF SEQUENCES 3 00 BUFR table entries sequences 3 01 Location and identification sequences 3 02 Meteorological sequences common to surface data 3 03 Meteorological sequences common to vertical sounding data 3 04 Meteorological sequences common to satellite observations 3 05 Reserved 3 06 Meteorological or oceanographic sequences common to oceanographic observations 3 07 Surface report sequences (land) 3 08 Surface report sequences (sea) 3 09 Vertical sounding sequences (conventional data) 3 10 Vertical sounding sequences (satellite data) 3 11 Single level report sequences (conventional data) 3 12 Single level report sequences (satellite data) 3 13 Sequences common to image data 3 14 Reserved 3 15 Oceanographic report sequences 3 16 Synoptic feature sequences 3 18 Radiological report sequences 3 21 Radar report sequences 3 35 Monitoring Information As with Table B, BUFR and CREX sequence descriptors share many similarities. Because of these, common sequences are not defined in both CREX Table D and BUFR Table D unless the conversion between both Table D entries is not completed by a simple replacement of the F part of each descriptor. If a new CREX Table D descriptor is not defined in BUFR Table D, it is assigned a number not used by any BUFR sequence. Similarly, a new BUFR Table D sequence is assigned a number not used by any CREX Table D sequence. As a simple example of this relationship, consider the CREX Table D descriptor D 07 004 used in the sample CREX report in Figure 3.2.1-1. CREX Table D, defines D 07 004 as: +D 07 002 D 07 004 - ----> R 01 000 +D 02 005 However, D 02 005 and D 07 002 are not given in CREX Table D. Applying the above rule, since these are not given in CREX Table D, it follows that the sequences are in BUFR Table D with only the F part of the descriptors different. Thus, to find the composition of D 02 005 and D 07 002, one looks for 3 02 005 and 3 07 002 in BUFR Table D. This relationship between BUFR and CREX Tables A, B, and D helps maintain the close relationship between the BUFR and CREX code forms that was the intention of their developers. It also substantially eases the task of maintaining the Tables, a task that grows ever greater for the WMO Secretariat as the tables expand. The sample CREX report illustrated in Figure 3.2.1-1 will be decomposed in detail in Chapter 3.2.4. Hopefully, that example will clarify any remaining questions about the relationship between the CREX and BUFR data description tables. 3.2.3.5 Code Tables and Flag Tables Since some meteorological parameters are qualitative or semi-qualitative, they are best represented with reference to a code table or a flag table. Code Tables A code table lists a number of possibilities the parameter to which the code table applies can use. Only one of the possibilities can be chosen, and one of the possibilities is always missing value. Many of the code tables that have been included in the CREX specification are similar to existing WMO code tables for representing character data. However, there is not a one-to-one CREX code table relationship to the character code tables. The character Code Table 3333, Quadrant of the Globe, for example, has no meaning in CREX, as all points on the globe in CREX are completely expressed as latitude and longitude values. Relationship Between CREX and BUFR Code Tables CREX code tables have the same code figures as BUFR code tables. However, since CREX Code Tables are generally longer than the corresponding BUFR Code Tables (for example 99 entries rather than 63), the values in a CREX code table corresponding to code figures larger than the code figure for Missing in the BUFR Code Table are declared Not Used within the CREX table. Flag tables A flag table also lists a number of possibilities the parameter to which the flag table applies can use. However, in a flag table, any combination of the possibilities can be chosen. The flag table accomplishes this with a string of bits, where each bit indicates an item of significance. A bit set to 1 indicates an item is included, or is true, while a bit set to 0 indicates omission, or false. In any flag table, when all bits are set it is an indication of a missing value. However, in order to allow the possibility of all the possibilities being chosen and still allow for the possibility of a missing value, flag tables always have one more bit than the number of items of significance. Relationship Between CREX and BUFR Flag Tables CREX flag tables are the same as BUFR flag tables. However, CREX is character-oriented, not bit oriented, and this means a special procedure is needed to express the flag table values in a CREX message. Flag Table values in CREX are expressed using an octal representation. In the octal representation, a set of 3 bits is represented by a figure from 0 to 7, with zeroes added on the left when the number of flags is not a multiple of 3. Thus: 000 = 0 (no bit set) 001 = 1 (bit 3 set) 010 = 2 (bit 2 set) 011 = 3 (bits 2 and 3 set) 100 = 4 (bit 1 set) 101 = 5 (bits 1 and 3 set) 110 = 6 (bits 1 and 2 set) 111 = 7 (bits 1, 2, and 3 set) For example, the seven flags 1100110 are first augmented by adding two zeroes on the left, which produces 001100110. Using the above table, this would be translated to the character string 146 (since 001 in bits 1, 2, 3 ( 1, 100 in bits 4, 5, 6 ( 4, and 110 in bits 7, 8, 9 ( 6). The character string 146 would then appear in the CREX message. In CREX, missing value for flag table shall be indicated by a set of solidi / covering the data width. 3.2.3.6 Local Tables Since a data processing center may need to represent data conforming to a local requirement, and this data may not be defined within Table B, specific areas of Table B and D are reserved for local use (Figure 3.2.3-4). These areas are defined as entries 192 to 255 inclusive of all classes. Centers defining classes or categories for local use should restrict their use to the range 48 to 63 inclusive. The Local portions of the Tables can be updated, changed, augmented, etc. at will by the local group concerned. No international notice is required or expected. Some of these local use entries may require local tables as well. CLASS 0 FOR INTERNATIONAL USE 35 FOR LOCAL USE RESERVED FOR FUTURE USE  FOR LOCAL USE (IF NEEDED)48 FOR LOCAL USE (IF NEEDED) 63 FOR LOCAL USE 0 192 255 ENTRY WITHIN CLASS Figure 3.2.3-4. Table reservations Local descriptor entries and local tables to support them present a problem for users of CREX. Whereas there is an operator descriptor within BUFR to note the presence of a local descriptor that allows a software program to skip that local descriptor, no corresponding feature is available in CREX. Because of the human readability factor, it is best to simply not disseminate CREX messages with local descriptors. 3.2.4 Decomposition of the Sample CREX Message 3.2.4.1 Decomposition of the Descriptor Sequence in the Sample CREX Message Let us recall once again the sample CREX message given in figure 3.2.1-1: CREX++ T000103 A000 D07004++ 03 075 1 1989 01 09 09 00 5845 00308 09962 10001 0019 03 240 0013 073 /// /// 3000 015 07 02 075 07 06 0120 38 20 10 0001 07 05 08 0120++ 7777 Figure 3.2.4-1: Sample CREX Report The sequence descriptor in the sample report, D07004, refers to an entry in CREX Table D. CREX Table D defines D 07 004 as: +D 07 002 D 07 004 -----> R 01 000 +D 02 005 Figure 3.2.4-2: Level 1 Decomposition of the Basic Sequence Descriptor from the Sample CREX Message As we noted during the discussion of CREX Table D (Chapter 3.2.3.4), the definitions of D 02 005 and D 07 001 are not to be found in CREX Table D. Rather, they are found under descriptors 3 02 005 and 3 07 001 in BUFR Table D. Remembering that in this case the BUFR Table D definitions convert to CREX definitions by substituting F = D for F = 3 and F = B for F = 0, the second level decomposition of the basic sequence descriptor is: +D 01 032 +D 07 002 -----> +D 02 011 D 07 004 R 01 000 +B 08 002 +D 02 005 -----> B 20 011 B 20 012 +B 20 013 Figure 3.2.4-3: Level 2 Decomposition of the Basic Sequence Descriptor from the Sample CREX Message In the second level decomposition, there are two more sequence descriptors that must be decomposed, D 01 032 and D 02 011. Once again, they are found in BUFR Table D, under 3 01 032 and 3 02 011. Again by substituting F = D for F = 3 and F = B for F = 0, the third level decomposition of the basic sequence descriptor becomes: +D 01 001 +B 02 001 +D 01 032D 01 011 D 01 012 +D 01 024 +D 07 002 +D 02 001 +3 02 011 D 02 003 D 07 004 +D 02 004 R 01 000 +B 08 002 +D 02 005 -----------> B 20 011 B 20 012 +B 20 013 Figure 3.2.4-4: Level 3 Decomposition of the Basic Sequence Descriptor from the Sample CREX Message In the third level decomposition, there are now 7 Table D descriptors to be decomposed, D 01 001, D 01 011, D 01 012, D 01 024, D 02 001, D 02 003, and D 02 004. As before, they are all found in BUFR Table B, under 3 01 001, 3 01 011, 3 01 012, 3 01 024, 3 02 001, 3 02 003, and 3 02 004, respectively. Substituting F = D for F = 3 and F = B for F = 0, the fourth level decomposition of the basic sequence descriptor becomes: +B 01 001 +D 01 001 -----> +B 01 002 +B 02 001 +B 04 001 +D 01 032| D 01 011 -----> B 04 002 +B 04 003 +B 04 004 D 01 012 ------> B 04 005 +B 05 002 | +D 01 024 -----> B 06 002 +B 07 001 +B 10 004 +D 07 002 +D 02 001 -----> B 10 051 B 10 061 +B 10 063 +B 11 011 B 11 012 B 12 004 D 02 003-------->B 12 006 B 13 003 B 20 001 +D 02 011 B 20 003 B 20 004 +B 20 005 D 07 004 +B 20 010 B 08 002 B 20 011 +D 02 004--------B 20 013 B 20 012 B 20 012 +B 20 012 R 01 000 +B 08 002 +D 02 005 ---------------------------------> B 20 011 B 20 012 +B 20 013 Figure 3.2.4-5: Level 4 Decomposition of the Basic Sequence Descriptor from the Sample CREX Message There are no longer any Table D descriptors in the level 4 decomposition of the basic descriptor sequence. Therefore, we now look up the meaning and data width (in characters) of each CREX Table B descriptor. Now we look under the CREX columns of the combined BUFR/CREX Table B and obtain the fifth (and, gratefully, final) level decomposition of the basic descriptor sequence from the sample CREX message: SECTION 2 Data Width (characters) +B 01 001 WMO Block Number --------- 2 +D 01 001 -----> +B 01 002 WMO Station Number ------- 3 +B 02 001 ----------------------Type of Station ---------------- 1 +B 04 001 Year ------------------------------- 4 +D 01 032| D 01 011 -----> B 04 002 Month ----------------------------- 2 +B 04 003 Day -------------------------------- 2 +B 04 004 Hour ------------------------------- 2 D 01 012 ------> B 04 005 Minute ----------------------------- 2 +B 05 002 Latitude (coarse accuracy) ---4 | +D 01 024 -----> B 06 002 Longitude (coarse accuracy) 5 +B 07 001 Height of Station ----------------5 +B 10 004 Station pressure --------------- 5 +D 07 002 +D 02 001 -----> B 10 051 Pressure (MSL) -----------------5 B 10 061 3-hour pressure change------ 4 +B 10 063 Characteristic of pressure | | | tendency ---- 2 +B 11 011---> Wind direction (10 m) ---- 3 B 11 012---> Wind speed (10 m) --------4 B 12 004---> Temperature (2 m) --------3 D 02 003 --------- B 12 006---> Dew point (2 m) ----------- 3 B 13 003---> Relative humidity --------- 3 B 20 001---> Horizontal visibility ------- 4 +D 02 011 B 20 003---> Present weather - ---------3 B 20 004---> Past weather (1) ----------2 +B 20 005---> Past weather (2) ----------2 D 07 004 +B 20 010---> Cloud cover (total) ------- 3 B 08 002---> Vertical significance ----- 2 B 20 011---> Cloud amount ------------- 2 +D 02 004----------B 20 013---> Height of base of cloud --4 B 20 012---> Cloud type ------------------2 B 20 012---> Cloud type ------------------2 +B 20 012---> Cloud type ------------------2 R 01 000------------------------------------------->Delayed replication of 1 descriptor-4 +B 08 002---> Vertical significance ----- 2 +D 02 005 -----------------------------------> B 20 011---> Cloud amount ------------- 2 B 20 012---> Cloud type ------------------2 +B 20 013---> Height of base of cloud - 4 Total number of characters ---------106 Figure 3.2.4-6: Level 5 Decomposition of the Basic Sequence Descriptor from the Sample CREX Message Note that there are 35 element descriptors and one replication descriptor in the final decomposition of the original sequence descriptor. If the fully expanded form had been in the sample CREX message, the message would have been 245 characters longer (36 descriptors at 6 characters each (216) + 35 space separators (216 + 35 = 251) less 6 characters for the one sequence descriptor). This is a quite substantial saving of space. The cost in readability is the lack of a complete map to the contents of the Data Section. However, by having the CREX Tables on hand, or prepared lists of complete expansions of the more common sequence descriptors, one can have readily available the contents of a CREX message using the single Table descriptor D 07 004. In practice, as is the case with the current character code forms, frequent usage would probably soon lead to memorization of the contents of standard messages like this one. 3.2.4.2 Decomposition of the Data Section in the Sample CREX Message The Data Section of the sample CREX message shown in Figure 3.2.4-1 is: 03 075 1 1989 01 09 09 00 5845 00308 09962 10001 0019 03 240 0013 073 /// /// 3000 015 07 02 075 07 06 0120 38 20 10 0001 07 05 08 0120++ Figure 3.2.4-7 Data Section from the Sample CREX Message With the complete expansion of the descriptor sequence now available, we are ready to decompose the Data Section of the sample CREX message. There is a one-to-one correspondence between each element descriptor in Section 1 and each data value in Section 2. With the units, scale values, and data widths and units from CREX Table B, it is therefore very simple to interpret the CREX message Data Section. This one-to-one correspondence is one of the strengths of the CREX code form, for it facilitates human encoding and interpretation. The result of this exercise is given in Figure 3.2.4-8. SECTION 2 CREX Data Data Descriptor Element Name Width Decoded value (characters) B 01 001 ---> WMO Block Number ------ 2 03 B 01 002 ---> WMO Station Number -----3 075 Station 03975 B 02 001 ---> Type of Station --------------1 1 Manned station B 04 001 ---> Year --------------------------- 4 1989 B 04 002 ---> Month ------------------------- 2 01 B 04 003 ---> Day ---------------------------- 2 09 Date: January 9, 1989 B 04 004 ---> Hour --------------------------- 2 09 B 04 005 ---> Minute ------------------------ 2 00 Time: Hour 9, minute 0 B 05 002 ---> Latitude (coarse accuracy)4 5845 Latitude: 58.45 deg. East B 06 002 ---> Longitude (coarse accur.)-5 -00308 Longitude: 3.08 deg. South B 10 004 ---> Station pressure ------------5 09962 Station Pressure: 996.2 hPa B 10 051 ---> Pressure (MSL) ------------ 5 10001 MSL Pressure: 1000.1 hPa B 10 061 ---> 3-hour pressure change-- 4 0019 Pressure Change: + 1.9 hPa B 10 063 ---> Characteristic of pressure tendency ------------------- 2 03 Pressure tend.: higher than 3 hours ago. B 11 011 ---> Wind direction (10 m) ----- 3 240 B 11 012 ---> Wind speed (10 m) -------- 4 0013 Wind: from 240o at 13 m s-1 B 12 004 ---> Temperature (2 m) -------- 3 -073 Temperature: 7.3 oC B 12 006 ---> Dew point (2 m) ------------ 3 /// Dew point: missing B 13 003 ---> Relative humidity -----------3 /// Relative humidity: missing B 20 001 ---> Horizontal visibility ---------4 3000 Visibility: 3,000 m B 20 003 ---> Present weather ------------3 015 Precipitation within sight B 20 004 ---> Past weather (1) ------------2 07 Past weather (1): Snow B 20 005 ---> Past weather (2) ----------- 2 02 Past weather (2): > than of sky covered B 20 010 ---> Cloud cover (total) --------- 3 075 Sky: 75% covered B 08 002 ---> Vertical significance ------- 2 07 Low cloud B 20 011 ---> Cloud amount --------------- 2 06 Cloud cover: 6/8 B 20 013 ---> Height of base of cloud --- 4 0120 Cloud base: 1200 m (120 decameters) B 20 012 ---> Cloud type ------------------- 2 38 Clouds type: Cu and Sc B 20 012 ---> Cloud type ------------------- 2 20 Clouds: no CM B 20 012 ---> Cloud type ------------------- 2 10 Clouds: no CH R 01 000 ---> Delayed replication of 1 descriptor----------------- 4 0001 Delayed replication of the following 1 descriptor (D 02 005) 1 time 1 sequence only: B 08 002 ---> Vertical significance ------ 2 07 Low cloud B 20 011 ---> Cloud amount -------------- 2 05 Cloud cover 5/8 B 20 012 ---> Cloud type ------------------ 2 08 Cloud type: Cu B 20 013 ---> Height of base of cloud -- 4 0120 Cloud base: 1200 m (120 decameters) Figure 3.2.4-8 Decomposition of the Data Section from the Sample CREX Message Note in this report the dew point is missing and is therefore encoded as three solidi (///), since the data width for dew point is three characters. Since the dew point is missing, the relative humidity is also missing. This is likewise indicated by the three solidi, since the data width for relative humidity is also three characters. The final cloud group is replicated only once. Had the delayed replication number been greater than one, that group would have been repeated a corresponding number of times. Appendix to Chapter 3.1.6.7 3.1.6.7 Quality Assessment Information 3.1.6.7.1 Introduction Table C operator descriptors 2 22 000 through 2 37 255 provide a more sophisticated method of including quality assessment information in BUFR than does use of the Add associated field operator. Table C defines these descriptors as: Table ReferenceOperandOperator NameOperation Definition2 22000Quality information followsThe values of Class 33 elements which follow relate to the data defined by the data present bit-map.2 23000Substituted values operatorThe substituted values which follow relate to the data defined by the data present bit-map.2 23255Substituted values marker operatorThis operator shall signify a data item containing a substituted value; the element descriptor for the substituted value is obtained by the application of the data present bit-map associated with the substituted values operator.2 24000First order statistical values followThe statistical values which follow relate to the data defined by the data present bit map.2 24255First order statistical values marker operatorThis operator shall signify a data item containing a first order statistical value of the type indicated by the preceding 0 08 023 element descriptor; the element descriptor to which the first order statistic relates is obtained by the application of the data present bit-map associated with the first order statistical values follow operator; first order statistical values shall be represented as defined by this element descriptor.2 25000Difference statistical values followThe statistical values which follow relate to the data defined by the data present bit-map.2 25255Difference statistical values marker operatorThis operator shall signify a data item containing a difference statistical value of the type indicated by the preceding 0 08 024 element descriptor; the element descriptor to which the first order statistic relates is obtained by the application of the data present bit-map associated with the difference statistical values follow operator; difference statistical values shall be represented as defined by this element descriptor, but with a reference value of 2n and a data width of (n+1), where n is the data width given by the original descriptor. This special reference value allows the statistical difference values to be centered around zero.2 32000Replaced/retained values followThe replaced/retained values which follow relate to the data defined by the data present bit-map.2 32255Replaced/retained value marker operatorThis operator shall signify a data item containing the original of an element which has been replaced by a substituted value. The element descriptor for the retained value is obtained by the application of the data present bit-map associated with the substituted values operator.2 35000Cancel backward data referenceThis operator terminates all previously defined backward references and cancels any previously defined data present bit-map; it causes the next data present bit-map to refer to the data descriptors which immediately precede the operator to which it relates.2 36000Define data present bit-mapThis operator defines the data present bit-map which follows for possible re-use; only one data present bit-map may be defined between this operator and the cancel use defined data present bit-map operator.2 37000Use defined data present bit-mapThis operator causes the defined data present bit-map to be used again.2 37255Cancel use defined data present bit-mapThis operator cancels the re-use of the defined data present bit-map. Since these operator descriptors are sophisticated, however, they are also difficult to understand and challenging to program. Therefore, their use will be explained with the aid of a simple example. Consider a BUFR message with 10 element descriptors in the Data Description Section (ED0 ED9) and 10 corresponding data values in the Data Section (DV0 DV9): Descriptor Data value ED0 DV0 ED1 DV1 ED2 DV2 ED3 DV3 ED4 DV4 ED5 DV5 ED6 DV6 ED7 DV7 ED8 DV8 ED9 DV9 3.1.6.7.2 First Order Statistics Initiation of the Descriptor Sequence Table C operators 2 24 000 and 2 24 255 allow first order statistics about the data values to be conveyed. Use of 2 24 000 initiates the descriptor sequence to accomplish this. Immediately after initiating the sequence, a data present bit map must be defined to determine to which of the 10 data values the statistical information will apply. Construction of a Data Present Bit Map The data present bit-map is a bit string containing bits equal in number to the number of data values. It is constructed by replicating the Data present indicator from Class 31 of BUFR Table B (0 31 031), using either regular or delayed replication. In this example, regular replication will be chosen. If the bit map will be not be subsequently re-used by any other Table C operators, the bit map may be defined immediately. However, when the bit map will be subsequently re-used by other Table C operators, as in this part of our example, its definition must be preceded by Table C operator 2 36 000. The Data present bit-map appropriate for this part of our example is thus: 2 36 000 1 01 010 0 31 031 The replication produces a string of 10 bits, one bit corresponding to each data value (DV0 DV9). In a bit map produced with 0 31 031, a bit set to 0 means data present and a bit set to 1 means data not present. For this example, let us assume the bit string corresponding to the above replication operation, the data present bit-map, is 1100000111. The result of applying this data present bit-map to the 10 values in our fictitious Data Section is illustrated below: Data Bit Value Value Result DV0 1 DV0 not present DV1 1 DV1 not present DV2 0 DV2 present DV3 0 DV3 present DV4 0 DV4 present DV5 0 DV5 present DV6 0 DV6 present DV7 1 DV7 not present DV8 1 DV8 not present DV9 1 DV9 not present This means that data values DV2, DV3, DV4, DV5, and DV6 are available to accumulate first order statistical values. Later re-uses of this data present bit map will be indicated by operator descriptor 2 37 000. Specification of the Type of First Order Statistic The type of first order statistical information conveyed is specified by use of Table B descriptor 0 08 023 - First order statistics, which refers to Code Table 0 08 023 (reproduced below). 0 08 023 First Order Statistics Code Figure0Reserved1Reserved2Maximum value3Minimum value4Mean value5Median value6Modal value7Mean absolute error8Reserved9Best estimate of standard deviation (N-1)10Standard deviation (N)11Harmonic mean12Root-mean-square vector error13-31Reserved32Vector mean33-62Reserved for local use63Missing value NOTE: All first order statistics are in the units defined by the original data descriptors. In this example, the type of first order statistic is Best estimate of standard deviation, identified by Code figure 9. Specification of the Statistical Values The first order statistics themselves are depicted by using 2 24 255 one time for each data value indicated to be present by the data present bit map. The value in the data section corresponding to each of these descriptors will be the statistical value itself. Thus, the complete descriptor string to depict first order statistics is: Descriptor Data value Comments 2 24 000 (no corresponding DV) First order statistics follow 2 36 000 (no corresponding DV) Define a data present bit map for future re-use 1 01 010 (no corresponding DV) 0 31 031 1100000111 The data present bit map 0 08 023 9 Best estimate of standard deviation (N-1) 2 24 255 FOSV2 This first order statistical value applies to DV2 2 24 255 FOSV3 This first order statistical value applies to DV3 2 24 255 FOSV4 This first order statistical value applies to DV4 2 24 255 FOSV5 This first order statistical value applies to DV5 2 24 255 FOSV6 This first order statistical value applies to DV6 In the above, FOSV2 is the best estimate of standard deviation for data value DV2, FOSV3 is the best estimate of standard deviation for data value DV3, and etc. Note there are 5 iterations of descriptor 2 24 255 because the data present bit map resulted in 5 data values present for which first order statistics will be specified. This form of backward referencing is used with the other operator descriptors explained in this section. To summarize, the descriptor list and corresponding data values in our example so far are: Descriptor Data value Comments ED1 DV1 ED2 DV2 ED3 DV3 ED4 DV4 ED5 DV5 ED6 DV6 ED7 DV7 ED8 DV8 ED9 DV9 2 24 000 (no corresponding DV) First order statistics follow 2 36 000 (no corresponding DV) Define a data present bit map for future re-use 1 01 010 (no corresponding DV) 0 31 031 1100000111 The data present bit map 0 08 023 9 Best estimate of standard deviation (N-1) 2 24 255 FOSV2 This first order statistical value applies to DV2 2 24 255 FOSV3 This first order statistical value applies to DV3 2 24 255 FOSV4 This first order statistical value applies to DV4 2 24 255 FOSV5 This first order statistical value applies to DV5 2 24 255 FOSV6 This first order statistical value applies to DV6 3.1.6.7.3 Specification of the Type of Difference Statistics Initiation of the Descriptor Sequence Table C operators 2 25 000 and 2 25 255 allow difference statistics about the data values to be conveyed. Use of 2 25 000 initiates the descriptor sequence to accomplish this. As before, a data present bit map must be defined Immediately after initiating the sequence to determine to which of the 10 data values the statistical information will apply. Construction of a Data Present Bit Map This time, the data present bit map defined previously for depiction of first order statistics will be re-used. This is indicated by operator descriptor 2 37 000. Specification of the Type of First Order Statistic The type of difference statistical information conveyed is specified by use of Table B descriptor 0 08 024 Difference statistics, which refers to Code Table 0 08 024 (reproduced below). 0 08 024 Difference Statistics Code Figure0Reserved1Reserved2Observed minus maximum3Observed minus minimum4Observed minus mean5Observed minus median6Observed minus mode7-10Reserved11Observed minus climatology (anomaly)12Observed minus analyzed value13Observed minus initialized analysed value14Observed minus forecast value15-20Reserved21Observed minus interpolated value22Observed minus hydrostatically calculated value23-31Reserved32-62Reserved for local use63Missing value Notes: Difference statistics are difference values; they have dimensions the same as the corresponding reported values with respect to units, but assume a range centered on zero (e.g., the difference between reported and analyzed values, the difference between reported and forecast values, etc.). Where observed minus forecast values are represented, the period of the forecast shall be indicated by an appropriate descriptor from class 4. In this example, the type of difference statistic is Observed minus forecast value, identified by Code figure 14. Specification of the Statistical Values The difference statistics themselves are depicted by using 2 25 255 one time for each data value indicated to be present by the data present bit map. The value in the data section corresponding to each of these descriptors will be the statistical value itself. Thus, the complete descriptor string to depict difference statistics is: Descriptor Data value Comments 2 25 000 (no corresponding DV) Difference statistics follow 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 08 024 14 Observed minus forecast value 2 25 255 DSV2 This difference statistical value applies to DV2 2 25 255 DSV3 This difference statistical value applies to DV3 2 25 255 DSV4 This difference statistical value applies to DV4 2 25 255 DSV5 This difference statistical value applies to DV5 2 25 255 DSV6 This difference statistical value applies to DV6 In the above, DSV2 is the best estimate of standard deviation for data value DV2, DSV3 is the best estimate of standard deviation for data value DV3, and etc. The descriptor list and corresponding data values in our example so far are: Descriptor Data value Comments ED1 DV1 ED2 DV2 ED3 DV3 ED4 DV4 ED5 DV5 ED6 DV6 ED7 DV7 ED8 DV8 ED9 DV9 2 24 000 (no corresponding DV) First order statistics follow 2 36 000 (no corresponding DV) Define a data present bit map for future re-use 1 01 010 (no corresponding DV) 0 31 031 1100000111 Data present bit map 0 08 023 9 Best estimate of standard deviation (N-1) 2 24 255 FOSV2 This first order statistical value applies to DV2 2 24 255 FOSV3 This first order statistical value applies to DV3 2 24 255 FOSV4 This first order statistical value applies to DV4 2 24 255 FOSV5 This first order statistical value applies to DV5 2 24 255 FOSV6 This first order statistical value applies to DV6 2 25 000 (no corresponding DV) Difference statistics follow 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 08 024 14 Observed minus forecast value 2 25 255 DSV2 This difference statistical value applies to DV2 2 25 255 DSV3 This difference statistical value applies to DV3 2 25 255 DSV4 This difference statistical value applies to DV4 2 25 255 DSV5 This difference statistical value applies to DV5 2 25 255 DSV6 This difference statistical value applies to DV6 3.1.6.7.4 Quality Information Initiation of the Descriptor Sequence Table C operator 2 22 000 allows quality information about the data values to be conveyed. Use of 2 22 000 initiates the descriptor sequence to accomplish this. As before, a data present bit map must be defined Immediately after initiating the sequence to determine to which of the 10 data values the statistical information will apply. Construction of a Data Present Bit Map As with the descriptor sequence to depict difference statistics, the quality information sequence will also re-use the data present bit map defined in the sequence to depict first order statistics. This re-use is indicated by operator descriptor 2 37 000. Specification of the Type of Quality Information The type of quality information conveyed is specified by use of one of the Table B descriptors from Class 33 Quality Information. Class 33 is reproduced below: Class 33 - Quality information TABLE REFERENCE TABLE ELEMENT NAMEBUFRCREX UNIT SCALE REFERENCE VALUEDATA WIDTH (Bits) UNIT SCALEDATA WIDTH (Characters)FXY033001Reserved033002Quality informationCode table002Code table01033003Quality informationCode table003Code table01033004Reserved033007Per cent confidence%007%03033020Quality control indication of following valueCode table003Code table01033021Quality of following valueCode table002Code table01033022Quality of buoy satellite transmissionCode table002Code table01033023Quality of buoy locationCode table002Code table01033024Station elevation quality mark (for mobile stations)Code table004Code table02033025ACARS interpolated valuesCode table003Code table01033026Moisture qualityCode table006Code table02033027Location quality class (range of radius of 66 % confidence)Code table003Code table01033030Scan line status flags for ATOVSFlag table0024Flag table08033031Scan line quality flags for ATOVSFlag table0024Flag table08033032Channel quality flags for ATOVSFlag table0024Flag table08033033Field of view quality flags for ATOVSFlag table0024Flag table08033035Manual/automatic quality controlCode table004Code table02033036Nominal confidence threshold%007%03033037Wind correlation errorFlag table0020Flag table07033040Confidence interval%007Percent03033041Attribute of following valueCode table002Code table01 For this example, we will choose Class 33 descriptor 0 33 003, Quality information. 0 33 003 refers to the following code table for the meanings of its values: Code Table 0 33 003: Quality Information Code Figure0Data not suspect1Data slightly suspect2Data highly suspect3Data considered unfit for use4-6Reserved7Quality information not given Thus, each of the data values present after applying the data present bit-map to the original data values will have a value from Code table 33. The result looks like this: Descriptor Data value Comments 2 22 000 (no corresponding DV) Quality information follows 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 33 003 0 This code figure applies to DV2 0 33 003 0 This code figure applies to DV3 0 33 003 2 This code figure applies to DV4 0 33 003 3 This code figure applies to DV5 0 33 003 0 This code figure applies to DV6 There are 5 iterations of descriptor 0 33 003 because there are 5 data values present to which this information will be added. The descriptor list and corresponding data values in our example so far are now: Descriptor Data value Comments ED1 DV1 ED2 DV2 ED3 DV3 ED4 DV4 ED5 DV5 ED6 DV6 ED7 DV7 ED8 DV8 ED9 DV9 2 24 000 (no corresponding DV) First order statistics follow 2 36 000 (no corresponding DV) Define a data present bit map for future re-use 1 01 010 (no corresponding DV) 0 31 031 1100000111 Data present bit map 0 08 023 9 Best estimate of standard deviation (N-1) 2 24 255 FOSV2 This first order statistical value applies to DV2 2 24 255 FOSV3 This first order statistical value applies to DV3 2 24 255 FOSV4 This first order statistical value applies to DV4 2 24 255 FOSV5 This first order statistical value applies to DV5 2 24 255 FOSV6 This first order statistical value applies to DV6 2 25 000 (no corresponding DV) Difference statistics follow 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 08 024 14 Observed minus forecast value 2 25 255 DSV2 This difference statistical value applies to DV2 2 25 255 DSV3 This difference statistical value applies to DV3 2 25 255 DSV4 This difference statistical value applies to DV4 2 25 255 DSV5 This difference statistical value applies to DV5 2 25 255 DSV6 This difference statistical value applies to DV6 2 22 000 (no corresponding DV) Quality information follows 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 33 003 0 This code figure applies to DV2 0 33 003 0 This code figure applies to DV3 0 33 003 2 This code figure applies to DV4 0 33 003 3 This code figure applies to DV5 0 33 003 0 This code figure applies to DV6 DV2, DV3, and DV6 are considered not suspect. However, note that DV4 is highly suspect and DV5 is considered unfit for use. We will conclude this example by assuming that based on these quality marks, it is desired to provide a substitute value for DV4 and replace DV5 with a (presumably) better value. This will require new data present bit maps. To prepare for this, it is necessary to first cancel the previously defined data present bit map. 3.1.6.7.5 Cancel use data present bit map Operator descriptor 2 37 255 terminates use of the previously defined data present bit map that had been defined for re-use with operator descriptor 2 36 000. Our evolving descriptor sequence now becomes: Descriptor Data value Comments ED0 DV0 ED1 DV1 ED2 DV2 ED3 DV3 ED4 DV4 ED5 DV5 ED6 DV6 ED7 DV7 ED8 DV8 ED9 DV9 2 24 000 (no corresponding DV) First order statistics follow 2 36 000 (no corresponding DV) Define a data present bit map for future re-use 1 01 010 (no corresponding DV) 0 31 031 1100000111 Data present bit map 0 08 023 9 Best estimate of standard deviation (N-1) 2 24 255 FOSV2 This first order statistical value applies to DV2 2 24 255 FOSV3 This first order statistical value applies to DV3 2 24 255 FOSV4 This first order statistical value applies to DV4 2 24 255 FOSV5 This first order statistical value applies to DV5 2 24 255 FOSV6 This first order statistical value applies to DV6 2 25 000 (no corresponding DV) Difference statistics follow 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 08 024 14 Observed minus forecast value 2 25 255 DSV2 This difference statistical value applies to DV2 2 25 255 DSV3 This difference statistical value applies to DV3 2 25 255 DSV4 This difference statistical value applies to DV4 2 25 255 DSV5 This difference statistical value applies to DV5 2 25 255 DSV6 This difference statistical value applies to DV6 2 22 000 (no corresponding DV) Quality information follows 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 33 003 0 This code figure applies to DV2) 0 33 003 0 This code figure applies to DV3) 0 33 003 2 This code figure applies to DV4) 0 33 003 3 This code figure applies to DV5) 0 33 003 0 This code figure applies to DV6) 2 37 255 (no corresponding DV) Cancel use defined data present bit map 3.1.6.7.6 Substituted Values Initiation of the Descriptor Sequence Table C operator descriptors 2 23 000 and 2 23 255 allow provision of (presumably better) values to substitute for original values when the original values are thought to be of poor quality. Use of 2 23 000 initiates the descriptor sequence to accomplish this. Construction of a Data Present Bit Map Since in this example a substitute value is to be provided only for DV4, a new data present bit map must be defined. This one will not be reused, so 2 36 000 is not needed. Having just cancelled the previously defined data present bit map, we are now in a position to define the required new one. In this case, the following accomplishes our objective: Descriptor Data value Comments 1 01 010 (no corresponding DV) 0 31 031 1111011111 Data present bit map to provide a substitute for DV4 Provision of the Substitute Value The substitute value itself is depicted by using 2 23 255 one time for each substitute data value provided. The value in the data section corresponding to each of these descriptors will be the substitute value itself. Thus, the complete descriptor string to provide a substitute value for the original data value DV4 is: Descriptor Data value Comments 2 23 000 (no corresponding DV) Substitute values follow 1 01 010 (no corresponding DV) 0 31 031 1111011111 Data present bit map to provide a substitute for DV4 2 23 255 SDV4 This value is the substitute for DV4 2 37 255 (no corresponding DV) Cancel use defined data present bit map The only value in the Data Section corresponding to the 2 23 000 operator is SDV4, because the new data present bit map only produced one data value present, DV4. SDV4 stands for substituted value for data value 4. We must then cancel the data present bit map just defined because we will need a different one in the next sub-sequence. Also note that 2 37 255 was used to cancel the data present bit map just defined. With these additions, the descriptor list and corresponding data values now become: Descriptor Data value Comments ED0 DV0 ED1 DV1 ED2 DV2 ED3 DV3 ED4 DV4 ED5 DV5 ED6 DV6 ED7 DV7 ED8 DV8 ED9 DV9 2 24 000 (no corresponding DV) First order statistics follow 2 36 000 (no corresponding DV) Define a data present bit map for future re-use 1 01 010 (no corresponding DV) 0 31 031 1100000111 Data present bit map 0 08 023 9 Best estimate of standard deviation (N-1) 2 24 255 FOSV2 This first order statistical value applies to DV2 2 24 255 FOSV3 This first order statistical value applies to DV3 2 24 255 FOSV4 This first order statistical value applies to DV4 2 24 255 FOSV5 This first order statistical value applies to DV5 2 24 255 FOSV6 This first order statistical value applies to DV6 2 25 000 (no corresponding DV) Difference statistics follow 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 08 024 14 Observed minus forecast value 2 25 255 DSV2 This difference statistical value applies to DV2 2 25 255 DSV3 This difference statistical value applies to DV3 2 25 255 DSV4 This difference statistical value applies to DV4 2 25 255 DSV5 This difference statistical value applies to DV5 2 25 255 DSV6 This difference statistical value applies to DV6 2 22 000 (no corresponding DV) Quality information follows 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 33 003 0 This code figure applies to DV2 0 33 003 0 This code figure applies to DV3 0 33 003 2 This code figure applies to DV4 0 33 003 3 This code figure applies to DV5 0 33 003 0 This code figure applies to DV6 2 37 255 (no corresponding DV) Cancel previously defined data present bit map 2 23 000 (no corresponding DV) Substitute values follow 1 01 010 (no corresponding DV) 0 31 031 1111011111 Data present bit map to provide a substitute for DV4 2 23 255 SDV4 This value is the substitute for DV4 2 37 255 (no corresponding DV) Cancel use defined data present bit map 3.1.6.7.7 Replaced/retained Values Initiation of the Descriptor Sequence Table C operator descriptors 2 32 000 and 2 32 255 allow replacement of original data values with (presumably) better ones when the original values are thought to be of unacceptable quality. Use of 2 32 000 initiates the descriptor sequence to accomplish this. Construction of a Data Present Bit Map Since, in this case, a replacement value is to be provided only for DV5, a new data present bit map must be defined. This one will not be reused, so 2 36 000 is not needed. Having just cancelled the previously defined data present bit map, we are now in a position to define the required new one. In our example, the following accomplishes this: Descriptor Data value Comments 1 01 010 (no corresponding DV) 0 31 031 1111101111 Data present bit map to provide a replacement for DV5 Provision of the Replacement Value The replaced (original) value itself is depicted by using 2 32 255 one time for each replacement data value provided. Each time 2 32 255 is used, the replacement value is place in the original report and the replaced (original) value is the position corresponding to the 2 32 255 operator. The complete descriptor string to provide a replacement value for the original data value DV5 is: Descriptor Data value Comments 2 32 000 (no corresponding DV) Replaced values follow 1 01 010 (no corresponding DV) 0 31 031 1111101111 Data present bit map to provide a replacement for DV5 2 32 255 DV5 Replaced (original) data value DV5 With these additions, the descriptor list and corresponding data values now become: Descriptor Data value Comments ED0 DV0 ED1 DV1 ED2 DV2 ED3 DV3 ED4 DV4 ED5 RDV5 Replacement for original data value DV5 ED6 DV6 ED7 DV7 ED8 DV8 ED9 DV9 2 24 000 (no corresponding DV) First order statistics follow 2 36 000 (no corresponding DV) Define a data present bit map for future re-use 1 01 010 (no corresponding DV) 0 31 031 1100000111 Data present bit map 0 08 023 9 Best estimate of standard deviation (N-1) 2 24 255 FOSV2 This first order statistical value applies to DV2 2 24 255 FOSV3 This first order statistical value applies to DV3 2 24 255 FOSV4 This first order statistical value applies to DV4 2 24 255 FOSV5 This first order statistical value applies to DV5 2 24 255 FOSV6 This first order statistical value applies to DV6 2 25 000 (no corresponding DV) Difference statistics follow 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 08 024 14 Observed minus forecast value 2 25 255 DSV2 This difference statistical value applies to DV2 2 25 255 DSV3 This difference statistical value applies to DV3 2 25 255 DSV4 This difference statistical value applies to DV4 2 25 255 DSV5 This difference statistical value applies to DV5 2 25 255 DSV6 This difference statistical value applies to DV6 2 22 000 (no corresponding DV) Quality information follows 2 37 000 (no corresponding DV) Re-use previously defined data present bit map 0 33 003 0 This code figure applies to DV2 0 33 003 0 This code figure applies to DV3 0 33 003 2 This code figure applies to DV4 0 33 003 3 This code figure applies to DV5 0 33 003 0 This code figure applies to DV6 2 37 255 (no corresponding DV) Cancel previously defined data present bit map 2 23 000 (no corresponding DV) Substitute values follow 1 01 010 (no corresponding DV) 0 31 031 1111011111 Data present bit map to provide a substitute for DV4 2 23 255 SDV4 This value is the substitute for DV4 2 37 255 (no corresponding DV) Cancel previously defined data present bit map 2 32 000 (no corresponding DV) Replaced values follow 1 01 010 (no corresponding DV) 0 31 031 1111101111 Data present bit map to provide a replacement for DV5 2 32 255 DV5 Replaced (original) data value DV5 2 35 000 (no corresponding DV) Cancel backward data reference Note the original data value, DV5, follows the 2 32 255 operator and the replacement data value (RDV5) is in the original report in the position DV5 had been. Operator 2.35 000 terminates all previously defined backward references and cancels any previously defined data present bit-map. It will cause the next data present bit-map, if any, to refer to the data descriptors which immediately precede the operator to which it relates. * Descriptor 0 01 027 should be used instead of 0 01 026 to encode this element. L3- PAGE 46 App. 3.1.6.7 -  PAGE 135 L|i $ R S e   < = l m - . \ ] @A`a3»»޻޲§»5>*B*ph5B*mH phsH B*mH phsH  5B*ph B*ph5B*CJ ph B*CJ(ph B*CJph 6B*ph6B*CJph5B*CJph5B*CJ(ph>)*+,-89=>IJKL|$a$:iR$h i $ R S e j k x  pD%^ pD%$a$$a$``$a$$a$  = m  : \ } . ]  pD%p0^p`0 pG%^ pG%^ pD%^ (GAa9_ pD% pD% pD%^ pD%^ pD%^'(BnK{= pD%^ pD%p0^p`0 pD%^ pD%^ pD%^Jm4 $$Ifa$$^a$^ p#G%^ pG% $$If^a$ $$Ifa$V$$Ifx&$04 xat kd"e"$$%%&&8'G'''''''''((G*_*,,557799999999:;:E:p:>>DAݺ躲諺ݜݺ푅z>*B*mH phsH 5>*B*mH phsH 5B*mH phsH B*CJOJQJmH phsH >*B*ph5>*B*ph 5B*ph jB*CJOJQJph jB*CJOJQJphB*CJOJQJph B*phB*mH phsH B*mH phsH 0IxCCCC$If$$Ifxֈ N &04 xat#mn||s0||||||T $$Ifa$$If|$$IfxF` &dR0    4 xat npBCERtuwsss|$$IfxF` &dR0    4 xat $$Ifa$$If klm !!!i"#g#h#$$%%%A&&&&'8'^$^a$8'9''''''''''''''''' $$If^a$ $$Ifa$#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^'''(IPCC$If$$Ifxֈ &04 xaf(((Q(R(X((((((G*,(ll#$ 2( Px 4 #\'*.25@9^a$$Ifi$$Ifx0& 04 xaf ,/2577*77778{8|8899899999#$ 2( Px 4 #\'*.25@9^a$^$^a$#$ 2( Px 4 #\'*.25@9^a$999:0:1:9:;:C:E:M:O:W:Y:rrrr $$If^a$V$$Ifx~&$04 xaf $$Ifa$  2( Px 4 #\'*.25@9^ Y:b:d:m:o:p:3P$$Ifxֈ| vql~&04 xaf $$If^a$ $$Ifa$p:z:::::::;;;9<:<<<q<r<t<@Ti$$Ifx0~& 04 xaf$Ift<<<<<<<===3=4=6=S=T=W==i$$Ifx0~& 04 xaf$If======$>%>(>9>:>=>C>D>G>K>L>D,T( $$Ifi$$Ifx0~& 04 xafL>O>T>U>X>_>`>e>>>DAC,lc$^a$#$ 2( Px 4 #\'*.25@9^a$i$$Ifx0~& 04 xaf$If DAACC#E?E@FWF(G9G)LELLMST6ZZZ ]@]]]]]ddddddddee;eeejjAjBjLjzjjjjjjZllwwzz{{{||||'6_jΆφ·Y5B*mH phsH 5>*B*ph 5B*phB*CJOJQJphB*mH phsH  B*ph >*B*phMC#E@F(GJJJ,J-J;JGJHJKJkJlJl{{TB$$Ifi0njL4 ia/$$Ifinj4 ia$If$^a$lJoJJJJJJJJJJJJJJJJJJJKK(Pph\ldB$$Ifi0njL4 ia$IfK KK K#K5K6K9KIKJKsKtKKKKKXPl/$$Ifinj4 iaB$$Ifi0njL4 ia$IfKKKKKKKKKKKKKKKKLLL(L)L,LH@t8t@LB$$Ifi0njL4 ia$If,L;L*B*ph5>*B*ph B*CJph5B*CJmH phsH 5B*CJph B*ph 5B*phB*CJOJQJph6B*CJOJQJph7=>CDIJPQas$ 2d$$Ifa$ $d$$Ifa$ stvxz{|H0<<<<< $d$$Ifa$$$Ifl4ֈb]Y"Q' ` ````n04 la|}~$ 2d$$Ifa$ $d$$Ifa$" $d$$Ifa$$$Ifl4ִ b]Y"Q'v 0    4 la d$$If $d$$Ifa$" $d$$Ifa$$$Ifl4ִ b]Y"Q'v n0    4 laŌ͌όьԌ d$$If $d$$Ifa$ԌՌ׌# $d$$Ifa$$$Iflִ b]Y"Q'v n0    4 la׌ڌތ d$$If $d$$Ifa$#$^a$$$Iflִ b]Y"Q'v n0    4 laʐː01X $$Ifa$  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$^$^a$!#+-57?AJLUW $$If^a$ $$Ifa$X$$Ifx~&$04 xaf WXbkIPCC$If$$Ifxֈg D~&04 xafklr78lm(llfffff^#$ 2( Px 4 #\'*.25@9^a$$Ifi$$Ifx0~& 04 xaf 1@aޗp#$ 2( Px 4 #\'*.25@9`a$#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$^ ؙϚԛ՛ߛ\V$$Ifx# !04 xaH$If#$ 2( Px 4 #\'*.25@9^a$#$ 2( Px 4 #\'*.25@9(^(a$ ߛ !,6BMWbmw$If֝I&&#$ 2( Px 4 #\'*.25@9^a$$$IfxֈpP#04 xaH֝םo mnG>?  2( Px 4 #\'*.25@9^^Vvߤ-=>M|fm} JKѫ 󵬝ΕΕΕΕΎΎ΅z>*B*mH phsH B*mH phsH  >*B*ph jB*phB*CJOJQJmH phsH B*mH phsH 5B*CJOJQJmH phsH 5>*B*ph B*ph 5B*ph jB*CJOJQJphB*CJOJQJph5B*CJOJQJph0?|}fg $$Ifa$#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$  dwwwwww $$Ifa$~$$Ifl0Fb V^d0    4 la !" D]]:::#$ 2( Px 4 #\'*.25@9p^pa$#$ 2( Px 4 #\'*.25@9^a$~$$IflDFb V^d0    4 laDѫ ζ`#$ 2( Px 4 #\'*.25@9^a$$^a$#$ 2( Px 4 #\'*.25@9^a$#$ 2( Px 4 #\'*.25@9p^pa$$ 2d$$Ifa$ $d$$Ifa$$ U-=%d$a$$^a$KTZfnzt~&/S'}5<J[ar    G I T V 8 9 9B*mH phsH 0JB*CJph B*EHph5B*mH phsH B*H*ph >*B*ph @B*phB*mH phsH 5>*B*ph5B*mH phsH  B*ph 5B*ph>ld```````` $d$$Ifa$$$Ifl4N\b'6@ 04 la #(.;"$ ) p@ P !d$$Ifa$$ 8Td$$Ifa$$ 2d$$Ifa$ ;<<$$Ifl4 bY"'H-H16@ nJRS0$$$$4 la<>@BCDEFGHIJKMPTY^`beސ d$$IfFf$ 2d$$Ifa$ $d$$Ifa$ejlnoqtx~ؘFfZ d$$If $d$$Ifa$Ff+"$ ) p@ P !d$$Ifa$̌Ff d$$IfFf"$ ) p@ P !d$$Ifa$ $d$$Ifa$ %')*,/̤Ff d$$IfFf "$ ) p@ P !d$$Ifa$ $d$$Ifa$/3BGIORWY[\^aetz|Ff\Ff1"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$Ff"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$ #%'(*-1@GIORFf d$$If $d$$Ifa$Ff"$ ) p@ P !d$$Ifa$RY[]^`cgtFf3 d$$If $d$$Ifa$Ff"$ ) p@ P !d$$Ifa$%'-068:;=@D`Ff d$$IfFf^"$ ) p@ P !d$$Ifa$ $d$$Ifa$`dflosuwxz} Ff$ d$$IfFf""$ ) p@ P !d$$Ifa$ $d$$Ifa$&(.18:<= ,Ff5)Ff '"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$=?BFsxz|~<Ff`+"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$ "$%'*.>BDFH8Ff/ d$$If $d$$Ifa$Ff-"$ ) p@ P !d$$Ifa$HLNPQSVZ؈Ff 4 d$$If $d$$Ifa$Ff1"$ ) p@ P !d$$Ifa$#%)+-.037Y Ffb8 d$$IfFf76"$ ) p@ P !d$$Ifa$ $d$$Ifa$Y^`eglnpqsvz$d$a$Ff< d$$IfFf:"$ ) p@ P !d$$Ifa$ $d$$Ifa$UQ-$XD$$Ifi,0 |D%q4 iat$If$^a$^$;d$^`;a$d$efo9:<\]RST,$^$^a$D$$Ifi,0 |D%q4 iat$IfTf{s $If^ $$Ifa$#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^ #$&EFH{\X$If $$Ifa$i$$Ifx0"04 xaf{|~8Tl$If $$Ifa$i$$Ifx0"04 xaf  LMPijr{|XtH\$If $$Ifa$i$$Ifx0"04 xafH\L@$If $$Ifa$i$$Ifx0"04 xaf  56:efgPc#$ 2( Px 4 #\'*.25@9^a$$If $$Ifa$i$$Ifx0"04 xaf g&'T$If $$Ifa$#$ 2( Px 4 #\'*.25@9^a$#$ 2( Px 4 #\'*.25@9^a$/014Cfgjz`yssyssyss$If $$Ifa$|$$IfxF& ,0    4 xa{ 8wqq$If $$Ifa$~$$IfxF& ,0    4 xa{~!"yssyssyss$If $$Ifa$|$$IfxF& ,0    4 xa{ "%9ss8s|$$IfxF& ,0    4 xa{$If $$Ifa$ abey|s|Ds|8s $$Ifa$|$$IfxF& ,0    4 xa{$If 3458JK|ps|s|\s $$Ifa$|$$IfxF& ,0    4 xa{$If KLOb4yss@ysspysst$If $$Ifa$|$$IfxF& ,0    4 xa{ slspsx|$$IfxF& ,0    4 xa{$If $$Ifa$ ;vwz'~|s|s|8s $$Ifa$|$$IfxF& ,0    4 xa{$If |,s|s|ds $$Ifa$|$$IfxF& ,0    4 xa{$If *+,TyssPP#$ 2( Px 4 #\'*.25@9^a$$If $$Ifa$|$$IfxF& ,0    4 xa{[5<J[O#$ 2( Px 4 #\'*.25@9^a$$$ , Px 4 #\'*.25@9 D^ `Da$$ 2d$$Ifa$ $d$$Ifa$$ cP+!d$a$ cP+!d$   (l````````` $d$$Ifa$$$Ifl44\H-'(5@t  04 la (:;@AGL_"$ ) p@ P !d$$Ifa$$ xd$$Ifa$$ 2d$$Ifa$_` H$$Ifl44 H(#-'L,0(5@t T8T80$$$$4 la`acdfgijklmnopqrtw{ d$$IfFf>$ xd$$Ifa$$ 2d$$Ifa$ $d$$Ifa$ 8Ff@C d$$IfFfA"$ ) p@ P !d$$Ifa$ $d$$Ifa$(*,-/26W_acemoqrtw{FfG d$$IfFfkE"$ ) p@ P !d$$Ifa$ $d$$Ifa${FfKFfI"$ ) p@ P !d$$Ifa$ $d$$Ifa$ d$$If     + - / 0 2 5 9 V ` b d g q s u FfN"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$u v x {                    |FfmR"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$FfBP      # J T V X [ e g i j l o s     @tFfV d$$If $d$$Ifa$FfT"$ ) p@ P !d$$Ifa$                     D J 8Ff[ d$$IfFfX"$ ) p@ P !d$$Ifa$ $d$$Ifa$J L N Q W Y [ \ ^ a e z            Ffo_ d$$IfFfD]"$ ) p@ P !d$$Ifa$ $d$$Ifa$                   ! $ % ' FfcFfa"$ ) p@ P !d$$Ifa$ $d$$Ifa$ d$$If' * . B J L N P X Z \ ] _ b f         Ffe"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$                       $FfFj"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$Ffh   ! # & * : D F H K U W Y Z \ _ c w    Ffn d$$If $d$$Ifa$Ffql"$ ) p@ P !d$$Ifa$                 !p̤Ffr d$$IfFfp"$ ) p@ P !d$$Ifa$ $d$$Ifa$prtvhxFfHw d$$IfFfu"$ ) p@ P !d$$Ifa$ $d$$Ifa$(*,.9;=>@CG|À$ 2d$$Ifa$Ffsy"$ ) p@ P !d$$Ifa$ $d$$Ifa$ d$$If  HNP\_eFf}"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$Ff{9:;KMbd=g56Zdeu%%%%%%%%%&&& &&&&&7&9&<&?&I&K&M&O&'u,,,5B*CJmH phsH 5B*CJphB*CJOJQJphB*EHH*phB*mH phsH 5B*mH phsH  5B*ph @B*ph B*H*ph B*EHph B*ph=egjkmptؘFf d$$If $d$$Ifa$Ff"$ ) p@ P !d$$Ifa$=GIKNXZ]^`cg$XFfu d$$IfFfJ"$ ) p@ P !d$$Ifa$ $d$$Ifa$Ffˊ d$$IfFf"$ ) p@ P !d$$Ifa$ $d$$Ifa$&(*-79;<>AEWacehrtvwyFf!Ff"$ ) p@ P !d$$Ifa$ $d$$Ifa$ d$$Ify|0$ 2d$$Ifa$FfL"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$  9CEGKUWZ[]`dLlFf$ 2d$$Ifa$ d$$IfFfw $d$$Ifa$%`pzX $d$^a$$;d$^`;a$d$$ cP+!d$a$Ff͗ $d$$Ifa$X HJu}.M56FGMZ $d$$Ifa$$ H-=%d$a$"$ 2( Px 4 #\'*.25@9d$a$$;d$^`;a$Z_defghmntSl$$Ifl\' 5hJ 04 la $d$$Ifa$$ 2d$$Ifa$ tu"$ ) p@ P !d$$Ifa$%$ /`0p@ P !d$$Ifa$$ 2d$$Ifa$ $d$$Ifa$ <$$Ifl Uh#'D,%0 5hnnnn0$$$$4 la  d$$IfFf$ 2d$$Ifa$ $d$$Ifa$        ( * , . 1 4 6 8 9 ; > B X Z \ ؼFfH d$$If $d$$Ifa$Ff "$ ) p@ P !d$$Ifa$\ ^ a d f h i k n r              Ff d$$IfFfp"$ ) p@ P !d$$Ifa$ $d$$Ifa$               !!! ! ! !!!Ff d$$IfFf"$ ) p@ P !d$$Ifa$ $d$$Ifa$!!)!+!-!/!2!5!7!9!:!$B$`$b$d$f$i$l$n$p$q$s$v$z$$$$$$$$ìFf"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$$$$$$$$$$$$$$$$$$$$$$$%Ffl d$$If $d$$Ifa$FfD"$ ) p@ P !d$$Ifa$%%%% % %%%)%+%-%/%2%4%6%8%9%;%>%B%l%n%p% Ff d$$If $d$$Ifa$Ff"$ ) p@ P !d$$Ifa$p%r%u%w%y%{%|%~%%%%%%%%%%%%%%%%Ff "$ ) p@ P !d$$Ifa$ d$$IfFf $d$$Ifa$%%%%%%%%%%%%% & &&&&&!&"&$&'&Ff\ d$$IfFf4"$ ) p@ P !d$$Ifa$ $d$$Ifa$'&+&4&?&A&C&F&P&R&T&U&W&Z&^&&&&&&&&&&FfFf"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$&&&&&&&&&&&&&&&&&&&&&&&Ff"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$&&&&&&''''''!'#'$'&')'-'H'J'L'N'Q'Ff$ d$$If $d$$Ifa$Ff"$ ) p@ P !d$$Ifa$Q'T'V'X'Y'['^'b'~''''''''''s,t,u,$^a$^Fft d$$If $d$$Ifa$FfL"$ ) p@ P !d$$Ifa$u,,,,,,,,,,,$ 2d$$Ifa$ $d$$Ifa$ ,,,,,,,H0<<<<< $d$$Ifa$$$Ifl4ֈb]Y"Q' ` ````n04 la,,,,$ 2d$$Ifa$ $d$$Ifa$,,," $d$$Ifa$$$Ifl4ִ b]Y"Q'v 0    4 la,,,,,,,, d$$If $d$$Ifa$,,,,-!-<-G-....00011w333f78<@@@BBpBQE[E\EbEqEEBJeJN OR SWW\]7]]]]]]]]]]]]]]]]]]] B*H*phB*mH phsH 56B*CJOJQJphB*CJOJQJmH phsH 5B*CJOJQJph5>*B*ph 5B*phB*CJOJQJph B*ph B*CJph>,,," $d$$Ifa$$$Ifl4ִ b]Y"Q'v n0    4 la,,,----- d$$If $d$$Ifa$---# $d$$Ifa$$$Iflִ b]Y"Q'v n0    4 la--!-=-?-A-C-F- d$$If $d$$Ifa$F-G-H-#$^a$$$Iflִ b]Y"Q'v n0    4 laH-I-...001v33334Y4444@5Z55#$ 2( Px 4 #\'*.25@9^a$^#$ 2( Px 4 #\'*.25@9^a$$^a$5556Z666667E7f78:8O888::Z:::::$^a$#$ 2( Px 4 #\'*.25@9^a$^:,;E;^;w;;; <!<<@@2@3@ ( P 4 # \ ,!^ & ( P 4 #T \ ,<!^ # ( P 4 #T \ ,!^#$ 2( Px 4 #\'*.25@9^a$$^a$ 3@o@@@@@ A A-AHAqAAAAAB-B?B[BmBBBBB % ( Px 4 # H!0^`0 % ( Px 4 # H!^BC C@CNCtCCCCCD4DHD_DrDDDDDD EBEMEaEbE  x H^ % ( Px 4 # H!^bEEE^GXIYI[ImIvI~IIII K$If^K$If#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^$^a$ IIIIIII }ttt} $$Ifa$$If{$$Ifir P&]A4 ia(IIIIIII\|vvvv$If$If}$$Ifi4r P&`]A4 ia(IIIIJJ%J&J'J)J+J-JAJ|sssmp|sssm$If $$Ifa$$If}$$Ifi4r P&A4 ia( AJBJeJiJnJqJJ,|sss| $$Ifa$$If}$$Ifi4r P&A4 ia(JJJJJJJl|sssm$If $$Ifa$$If}$$Ifi4r P&`]A4 ia(JJJJJJJJJJJJJ|sssm|sssm$If $$Ifa$$If}$$Ifi4r P&A4 ia( JJJKKK,K-K.K0K3K5KQK|sssm|sssm$If $$Ifa$$If}$$Ifi4r P&A4 ia( QKRKSKVKYK[KqKrKsKvKyK{KK|sssm|sssm$If $$Ifa$$If}$$Ifi4r P&A4 ia( KKKKKKKKKKKKK|sssml|sssm$If $$Ifa$$If}$$Ifi4r P&A4 ia( KKKKKKKKKKKKK@|sssm<|sssm$If $$Ifa$$If}$$Ifi4r P&A4 ia( KKLLLL LLLLLLL<|sssmD|sssm$If $$Ifa$$If}$$Ifi4r P&A4 ia( LL L#L&L(LLLLLLLL|sssm8msssm$If $$Ifa$$If}$$Ifi4r P&A4 ia( LLLLLLLH|sssm$If $$Ifa$$If}$$Ifi4r P&`]A4 ia(LLLLLLMMMMMM;M|sssm|sssm$If $$Ifa$$If}$$Ifi4r P&A4 ia( ;M>>>#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^}$$Ifir P&]A4 ia(QQRR#R/R0RNRRRVR[RRt|{$$Ifir h z%]B"4 iat $$Ifa$$If RRRRRRR|sssm$If $$Ifa$$If}$$Ifi4r h z%`]B"4 iatRRRRRRRRRRRRRp|sssm(|mmmm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat RR S SSS0S,|sss| $$Ifa$$If}$$Ifi4r h z%B"4 iat0S1S2S4S7S9SKSl|sssm$If $$Ifa$$If}$$Ifi4r h z%`]B"4 iatKSLSMSQSWSZSSSSSSSS|sssm|sssm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat SSSSSSSSSSSSS|sssm|sssm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat SSSSSSTTTTTT>T|sssm|sssm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat >T?T@TCTFTHTgThTiTlToTrTT|sssml|sssm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat TTTTTTTTTTTTT@|sssm<|sssm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat TTTTTTTTTTTTT<|sssmD|sssm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat TTTTTT,U-URUVU\U_UzU|sssm8msssm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat zU{U|U~UUUUL|sssm$If $$Ifa$$If}$$Ifi4r h z%`]B"4 iatUUUUUUUUUUUUU|sssm|sssm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat UUUUUU*V+V,V/V2V4VkV$|sssm|sssm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat kVlVVVVVV|sss| $$Ifa$$If}$$Ifi4r h z%B"4 iatVVVVVVVH|sssm$If $$Ifa$$If}$$Ifi4r h z%`]B"4 iatVVVVVVSWTWlWpW}WWWD|sssmhmsssm$If $$Ifa$$If}$$Ifi4r h z%B"4 iat WW X XY\\`====#$ 2( Px 4 #\'*.25@9^a$#$ 2( Px 4 #\'*.25@9^a${$$Ifir h z%]B"4 iat\\7]] ^_a)d*dOdKfZfii.m/mEmnr r$^a$^  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$]]]]]^^^^^^^^^^^^^ ^*d3dNdOdKfVfWfii/m8mDmEmr r>r?rtrurrrrrtt&u@uGuHuOuauuuBvLvovvxx{ɾɾұҢB*CJOJQJmH phsH 6B*CJOJQJph>*B*mH phsH B*mH phsH B*CJOJQJph >*B*ph5>*B*ph 5B*ph B*H*ph B*ph: r r rrr%r&r'r(r)r,r-r.r/r0r>r $$Ifa$$If>r?r@rXrYrZrhrtr$If $$Ifa$m$$Ifl4d0PV#d 04 laXtrurxrrrrrrr $$Ifa$$Ifk$$Iflt0PV#d 04 laXrrrrrNt^tktjjGAA$If#$ 2( Px 4 #\'*.25@9^a$#$ 2( Px 4 #\'*.25@9^a$^k$$Ifl0PV#d 04 laXktqtwtttttttttta$$Ifiֈ ^"D%SDv4 ia( $$Ifa$$If ttt%u@uQu]uiuxunNNNNNNN  2( Px 4 #\'*.25@9^$$Ifi8ֈ ^"D%SDv4 ia(xuuuuuAvLvavvxx^Q   #!^ & ( P 4 #T \ ,<!^#$ 2( Px 4 #\'*.25@9^a$^  2( Px 4 #\'*.25@9H^H & F / Px 4 #\'*.25@9  2( Px 4 #\'*.25@9^vvv w+wEw]w^wwwwwwx4xbxxxxxxx"yGy % ( Px 4 # H!0^`0 % ( Px 4 # H!^Gyfytyyyyyyz@zezzzzzzz{0{R{t{{{{{  x H^ % ( Px 4 # H!^{{{{{3|`o dmБّŔƔДҔ֔הܔݔ˟/0s-<}ļļļ١١١١١١١١ԚļԼٍļ6B*CJOJQJph >*B*ph>*B*CJOJQJph5>*B*CJOJQJph5>*B*ph 5B*phB*mH phsH  B*phB*CJOJQJph5B*CJOJQJph56B*CJOJQJph7{{{3|4||6}}9΁܁$If#$ 2( Px 4 #\'*.25@9p^pa$#$ 2( Px 4 #\'*.25@9^a$$^a$^ 0 }}}}}$If{$$Ifir$ \ HP&e8[4 ia(012468G\|vvvv$If$If}$$Ifi4r$ \ HP&`e8[4 ia(GHIMQWxyz|~|vvvvp|vvvv,$If$If}$$Ifi4r$ \ HP&8[4 ia( Ă߂|lv$If}$$Ifi4r$ \ HP&`e8[4 ia($If  012479PQ|vvvv|vvvv$If$If}$$Ifi4r$ \ HP&8[4 ia( QRTWYvv}$$Ifi4r$ \ HP&8[4 ia($If$If ăŃƃɃ̃΃|v|v$If}$$Ifi4r$ \ HP&8[4 ia($If "2347:|lv|@v$If}$$Ifi4r$ \ HP&8[4 ia($If :<BCDGJMQRSVY[|<v|<v$If}$$Ifi4r$ \ HP&8[4 ia($If [`abehjqrsvy{܄|Dv|v$If}$$Ifi4r$ \ HP&8[4 ia($If ܄݄ *8|||||$If}$$Ifi4r$ \ HP&8[4 ia(*+,.13=L|vvvv$If$If}$$Ifi4r$ \ HP&`e8[4 ia(=>?CIMdefhks|vvvv|vvvv$If$If}$$Ifi4r$ \ HP&8[4 ia( ŅƅDžɅ˅ԅv|v}$$Ifi4r$ \ HP&8[4 ia($If$If &'@DJPk|}$$Ifi4r$ \ HP&8[4 ia($If klmort}H|vvvv$If$If}$$Ifi4r$ \ HP&`e8[4 ia(}~ -2]|vvvvhvvvvv$If$If}$$Ifi4r$ \ HP&8[4 ia( ]^`a>#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^}$$IfiXr$ \ HP&e8[4 ia(`abcd"S$If#$ 2( Px 4 #\'*.25@9^a$$^a$  2( Px 4 #\'*.25@9^  2( Px 4 #\'*.25@9^FGPVp( $IfW$$IfiJF&K    4 ia(ƌ JKMTrsu},,W$$IfiJF&K    4 ia($If   +,5;vwx,$IfW$$IfiJF&K    4 ia(ˎ̎3яΑϑБ~~~~~~~~#$ 2( Px 4 #\'*.25@9^a$W$$Ifi/F&K    4 ia($If Ɣ4q~}}w$If  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$#$ 2( Px 4 #\'*.25@9^a$$ # ( x 4 #l<!^a$ }~Ș|W$$IfiJF%K    4 ia($IfTU^dʙ˙̙ԙ p( ,$IfW$$IfiJF%K    4 ia(XY[b0W$$IfiJF%K    4 ia($If#:;DJٛ($IfW$$IfiJF%K    4 ia(ٛڛۛP˟0~~$If#$ 2( Px 4 #\'*.25@9^a$W$$Ifi/F%K    4 ia(%9:CI\]_f|lU$$IfiF%K    4 ia($If\]_g U$$IfiF%K    4 ia($IfhsɫddOOOO  Px  ^#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^W$$IfiF%K    4 ia( .@a{Ь ">d3Uwʮ  Px  ^  Px  ^ʮ=\z-}$ # ( x 4 #l<!^a$#$ 2( Px 4 #\'*.25@9^a$`#$ 2( Px 4 #\'*.25@9^a$  Px  ^Tùƹ/236|+,vwn>?{IX>M_ngv5B*CJOJQJph jB*ph >*B*ph5>*B*ph>*B*CJOJQJphB*CJOJQJph B*ph 5B*phHޱ-T MOW_ht~$If$`a$$^a$`#$ 2( Px 4 #\'*.25@9^a$$ # ( x 4 #l<!^a$~p\jjjjjjpjjjj$If$$Ifiֈ OE  !DW3E4 iat ùǹ͹ѹչֹ߹jj$$Ifiֈ OE  !DW3E4 iat$If jj$$Ifiֈ OE  !DW3E4 iat$If !%)/378AEIOSj$$Ifiֈ OE  !DW3E4 iat$If SWX579HWhbXbV ^`^$$Ifi\ֈ OE  !DW3E4 iat$If Wanyzgd$$Ifi4zֈ OE  !DW3E4 iat$If p\jjjjjjp\jjjj$If$$Ifiֈ OE  !DW3E4 iat ʻͻϻ׻ڻݻ޻jtjX$$Ifiֈ OE  !DW3E4 iat$If  j\$$Ifiֈ OE  !DW3E4 iat$If  c)nee_RLLL$If $%&P#$/If^$^a$$$Ifi\ֈ OE  !DW3E4 iat)6AB_behknoh[[[[[[hh $%&P#$/If$$Ifi;ֈ2  H!,& R4 ia$If o~5aXO$p^pa$$^a$$$Ifi;ֈ2  H!,& R4 ia $%&P#$/If 5/EFdefGH^$^a$^^$^a$p^p$a$$p^pa$34tu>?Ob$^a$ ( P   ( P  ^=>Ou| 9:z{^  ( Px 4 ^  P  ^^ ( P  ^$^a$DEUh$^a$^ ( P   ( P  ^+,=cjkl+vn$^a$ $^`a$ $p0^p`0a$$^a$  ( Px 4 ^  P  ^^ ( P  ^n>y{ !Lj ( Px $ d^` ( Px $ l^ ( Px pl^^$^a$ $^`a$ $p0^p`0a$$^a$ju?c '?i ( Px $ d^`1;rHI34 ( Px $ l^ ( Px pl^$^a$ ( Px $ d^ ( Px $ d^`4^{ +Pt (8$Pw ( Px $ d^`?I=>| ( Px $ l^ ( Px pl^$^a$ ( Px $ d^ ( Px $ d^`"#PnyCg +F ( Px $ d^`Fp8B|^_ ( Px pl^$^a$ ( Px $ d^ ( Px $ d^`/JKx&Ej&4BR ( Px $ d^` ( Px $ l^>jYcfg $^a$`^$^a$^ ( Px $ d^`   4DE45Q i     / Q fu$$(%---111W7f777777:":@@@@zBHZjejlj|jjɼɼɼɦ6B*CJOJQJphB*mH phsH 5B*CJOJQJphB*CJOJQJph >*B*ph B*H*phB*mH phsH  5B*ph B*ph5>*B*phA>HP^sty{}0h$$Ifi\ ?D%V4 ia($If$^a$ %'4,$Ifh$$Ifi\ ?D%V4 ia( $$Ifa$  a:Q i / }}}$ & Fa$^$^a$j$$Ifi\ ?D%V4 ia(/ Q ufu  89PV$ & Fa$$^a$$^a$^\k#2Xc?@nFG$^a$$a$ $ ^$ `G56de. H |    !!0!!!!!N"]""" ##y###$^a$####Z$[$$$$'%(%'*--.1[1111  2( Px 4 #\'*.25@9^` ^`$`a$$^a$$a$ p^p`11111 2%2B2V2o22223*3H3Z3{3333  Px  ^ xP^`P  Px  P^`P  Px  ^33 4%4<4X4~444445+5M5o5555 6676W6v666667  Px  ^7707A7W7777999999$If$^a$`$a$  Px  ^  Px  ^ 99999::::::: :":7::,$Ifh$$Ifi\ ?D%V4 ia(::;;{;;#<<$=s=l?S@@vm$`a$$^a$$ & F#a$$ & F#a$$a$j$$Ifif\ ?D%V4 ia( @@@A,AEAnAAAAAAA BFBeBxBzBCEHJJKKKK$a$$^a$$^a$`KKK3L5LLLLLLLMN>N?N}N~N`OaOvOOO$P]PnPpPZQ$a$$^a$ ($`a$ZQ[QQQQQ,R~RRSoSSTT0T1T3U>UMUUU/V $^a$  ( Px  ( Px4$^a$$a$/VnVVV1WoWWW@XXXYDYYYYYZZ[[[[@\$^a$  ( Px  ( Px4   ( Px4@\\\H]R]]]^Z^^_a_b__`e``(aaaxcyccc4d5ddd$a$$^a$ddde$eHefexeeeeef'fCfZfvfffffg9gIgkg  Px  ^  Px  ^kggggg h1hOhghhhhhh i0iNifiiiiiij7jVjlj  Px  ^ljjjllllllm mm m5mxh$$Ifi\ ?D%V4 ia($If$^a$`$`a$ jjj6mImmnqrFuOuuuz0zq~z~~>$3BJhi)]wxљ$BԠ)2<=ػ >*B*phB*mH phsH  6B*ph6B*H*ph5B*CJOJQJph56B*CJOJQJphB*CJOJQJmH phsH B*CJOJQJphB*mH phsH B*ph5>*B*ph 5B*ph85m6m;m=m?mAmBmGmIm[mm0$Ifh$$Ifi\ ?D%V4 ia( mmmm nMnunnnnsoqq\q{vq$a$$a$$^a$^`j$$Ifi\ ?D%V4 ia( \qqq!r^rrFuwuyyyyyyy|h$$Ifi\ ?D%V4 ia($If`$^a$$a$yyzzz"z$z&z(z)z.z0zrzz4<h$$Ifi\ ?D%V4 ia($If zz8|p~~~~~dR ( Px ^ & ( P 4 #T \ , !!^ $  !^a$$^a$j$$Ifi\\ ?D%V4 ia(~~=`?Ut܀ % ( Px 4 # H!0^`0 % ( Px 4 # H!^   #!^  ( Px 4 !^` );[pB[q߂-@Xỹ % ( Px 4 # H!^̃$gh$$Ifi\ ?(#V 4 ia($If`$`a$ % ( Px 4 # H!^ 238:<>?DHY0 $$Ifa$h$$Ifi\ ?(#V 4 ia($IfABiyyyy$If^$^a$`j$$Ifi\ ?(#V 4 ia( Ήωԉ؉YZ_cۊ, $$Ifa$$Ifj$$Ifi\ D%W 4 ia(ۊ܊H $$Ifa$$Ifj$$Ifi\ D%W 4 ia(y0 $$Ifa$$Ifj$$Ifi\ D%W 4 ia(yzfglp), $$Ifa$$Ifj$$Ifi\ D%W 4 ia(ߑABGKs0, $$Ifa$$Ifj$$Ifi\ D%W 4 ia(ݔו %)Q$Ifj$$Ifi\ D%W 4 ia((3Uxљٙۙzqdqd $$If^a$ $$Ifa$$^a$^$^a$j$$Ifi\ D%W 4 ia( Fx$$Ifxro &sX04 xat $$If^a$ $$Ifa$ !"$6YZ\uYZ||s| $$Ifa$|$$IfxF` &d0    4 xat$If Z\i*+||||$$IfxF` &d0    4 xat$If +$%,BϠԠ)13;= $$If^a$ $$Ifa$  2( Px 4 #\'*.25@9^^#$ 2( Px 4 #\'*.25@9^a$^$^a$ $ ^a$=EGOQY[\iF|$$IfxrR (#04 xaf $$If^a$ $$Ifa$irz{} ysssySS  2( Px 4 #\'*.25@9^$If|$$IfxFg (#y#0    4 xaf $$Ifa$   (ɢ 12<FPfm$dy!? =?]-.ghݯޯͰɱұ *y_|ºº jB*ph>*B*CJOJQJph5>*B*ph 5B*phB*CJOJQJmH phsH  5B*CJOJQJmH phsH B*CJOJQJph B*ph >*B*ph>  (y2<DFNPXZbd $$If^a$ $$Ifa$  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$^dlno|F@@@$If$$Ifxr] t"T04 xaf $$If^a$ $$Ifa$0aˤ|||n||||||1$If^1`$If|$$IfxFg t"y0    4 xaf   '`|||||||n|||1$If^1`$If|$$IfxFg t"y0    4 xaf $`nn|$$IfxFg t"y0    4 xaf1$If^1`$If fmԩdey@s$^ $  4^#$ 2( Px 4 #\'*.25@9^a$^  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$sӫ-^'aׯ{{{#$ 2( Px 4 #\'*.25@9p^pa$#$ 2( Px 4 #\'*.25@9^a$ $ x4^  2( Px 4 #\'*.25@9^$^ $4^4`ׯͰȱɱ  $$If^a$ $$Ifa$  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$#$ 2( Px 4 #\'*.25@9p^pa$%'(5A|FT@@@$If$$Ifxr!2D%04 xaf $$If^a$ $$Ifa$|}  *w4|||nKK#$ 2( Px 4 #\'*.25@9^a$U$If^`U$If|$$IfxFg D%y&0    4 xafw5y_f|ͻ Qtot  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$^#$ 2( Px 4 #\'*.25@9^a$|Qtntѿҿܿ%/:;EcdMU[`oʾʳʪܓ蓪܋܋܋ jB*phB*CJOJQJmH phsH 5>*B*phB*mH phsH >*B*mH phsH 5>*B*mH phsH 5B*mH phsH  >*B*ph B*ph 5B*phB*CJOJQJph5B*CJOJQJph6ҿܿ&.$If $If^ $$Ifa$  2( Px 4 #\'*.25@9^ ./<H\TVVV$If$$Ifxr!2D%04 xaf&';||||||smm^$^a$$If|$$IfxFg D%y!0    4 xaf ;EMQadtx$If $If^ $$Ifa$  2( Px 4 #\'*.25@9^ \TVVV$If$$Ifxr!2D%04 xafMU[x|||sssmmmm^$^a$$If|$$IfxFg D%y!0    4 xaf [` $$Ifa$p^p#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$^  |wwwwwwqp^p $$Ifa$~$$IflHFb: f0    4 la  Gds ) x$^a$#$ 2( Px 4 #\'*.25@9p^pa$#$ 2( Px 4 #\'*.25@9^a$MNds ) xGi/{}Uc;TUyѸB*EHH*phB*mH phsH  B*H*phB*mH phsH 5B*mH phsH 5>*B*ph 5B*ph >*B*ph jB*ph B*phEFGbcstz$ 2d$$Ifa$ $d$$Ifa$$ U-=%d$a$$^a$ld```````` $d$$Ifa$$$Ifl4N\b'6@ 04 la "$ ) p@ P !d$$Ifa$$ 8Td$$Ifa$$ 2d$$Ifa$ <$$Ifl4 bY"'H-H16@ nJRS0$$$$4 la ސ d$$IfFf$ 2d$$Ifa$ $d$$Ifa$ #'-3579?ACDFIMQUWؘFf d$$If $d$$Ifa$Ff"$ ) p@ P !d$$Ifa$WY[_acdfimrwy{}̌FfL d$$IfFf!"$ ) p@ P !d$$Ifa$ $d$$Ifa$̤Ff d$$IfFfw"$ ) p@ P !d$$Ifa$ $d$$Ifa$   #)+14:<>?FfFf"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$?ADHW[]cfjlnoqtxFf#"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$Ffy d$$If $d$$Ifa$FfN"$ ) p@ P !d$$Ifa$   LSU[^egijlostFf d$$If $d$$Ifa$Ff"$ ) p@ P !d$$Ifa$Ff% d$$IfFf"$ ) p@ P !d$$Ifa$ $d$$Ifa$"$&'),0LQSY\acefhk Ff{  d$$IfFfP "$ ) p@ P !d$$Ifa$ $d$$Ifa$ko ,FfFf"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$"')+-24679<@mtvxz<Ff"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$8FfR d$$If $d$$Ifa$Ff'"$ ) p@ P !d$$Ifa$ FNPRU]_abdgk؈Ff d$$If $d$$Ifa$Ff}"$ ) p@ P !d$$Ifa$ Ff d$$IfFf"$ ) p@ P !d$$Ifa$ $d$$Ifa$  "%)KRTY[bdfgh$d$a$FfT$ d$$IfFf)""$ ) p@ P !d$$Ifa$ $d$$Ifa$hoIRchi| / Px 4 #\'*.25@9^  2( Px 4 #\'*.25@9^$^a$^$;d$^`;a$d$<\i$$Ifx0"04 xaf $If^ $$Ifa$#$ 2( Px 4 #\'*.25@9^a$#$ 2( Px 4 #\'*.25@9^a$./1[\^}~X $$Ifa$i$$Ifx0"04 xaf$If#$&>?B8TlX $$Ifa$i$$Ifx0"04 xaf$IfBTUXtH\ $$Ifa$i$$Ifx0"04 xaf$If )*.9:DH\L@P $$Ifa$i$$Ifx0"04 xaf$IfDMNXmnrccc#$ 2( Px 4 #\'*.25@9^a$ $$Ifa$i$$Ifx0"04 xaf$If UVWcC;<=T"$ 2( Px 4 #\'*.25@9d$a$#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^TUefly~$ 2d$$Ifa$ $d$$Ifa$$ H-=%d$a$olcccccccc $d$$Ifa$$$Ifl\' 5&J 04 la "$ ) p@ P !d$$Ifa$%$ /`0p@ P !d$$Ifa$$ 2d$$Ifa$<$$Ifl h#'D,%0 5'nn0$$$$4 la    !  d$$IfFf&$ 2d$$Ifa$ $d$$Ifa$! $ & ( ) + . 2 G I K M P S U W X Z ] a w y { ؼFf* d$$If $d$$Ifa$Ff("$ ) p@ P !d$$Ifa${ }                      Ff/ d$$IfFf,"$ ) p@ P !d$$Ifa$ $d$$Ifa$                # & ( * + - 0 Ffo3 d$$IfFfG1"$ ) p@ P !d$$Ifa$ $d$$Ifa$0 4 H J L N Q T V X Y [ ^ b          LLFf7Ff5"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$                2 4 6 8 ; > @ Ff9"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$@ B C E H L v x z |              Ff;> d$$If $d$$Ifa$Ff<"$ ) p@ P !d$$Ifa$                    B D F FfB d$$If $d$$Ifa$Ffc@"$ ) p@ P !d$$Ifa$F H K N P R S U X \ v x z |          FfF d$$IfFfD"$ ) p@ P !d$$Ifa$ $d$$Ifa$                       ̬Ff+K d$$IfFfI"$ ) p@ P !d$$Ifa$ $d$$Ifa$           ! $ ( G I K M P S U W X Ff{OFfSM"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$X Z ] a                    ìFfQ"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$                  FfU d$$If $d$$Ifa$FfS"$ ) p@ P !d$$Ifa$ #%'(*-1HJLNQSUWXZ]a FfCZ d$$If $d$$Ifa$FfX"$ ) p@ P !d$$Ifa$Ff^"$ ) p@ P !d$$Ifa$ d$$IfFfk\ $d$$Ifa$ ),.1;>@ACFFfb d$$IfFf`"$ ) p@ P !d$$Ifa$ $d$$Ifa$!#&)468:VX[^hjln29 I##N'W's'((**/,:,.(/12 >*B*ph5>*B*ph 5B*phB*CJH*OJQJph>*B*CJOJQJph5>*B*CJOJQJph5B*CJOJQJphB*CJOJQJph B*ph B*H*ph9FJS^`beoqstvy}Ff3gFf e"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$  Ff[i"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$  2468;>@BCEHLgikmpFfm d$$If $d$$Ifa$Ffk"$ ) p@ P !d$$Ifa$psuwxz}^Ffq d$$If $d$$Ifa$Ffo"$ ) p@ P !d$$Ifa$239:$^a$#$ 2( Px 4 #\'*.25@9^a$+,GiGU)[^#$ 2( Px 4 #\'*.25@9^a$  2( Px 4 #\'*.25@9^ < _ {  "I#e#y####a&M'N's'((**/,;,#$ 2( Px 4 #\'*.25@9^a$^;,.(/01171X1r11113336676=6$^a$^  2( Px 4 #\'*.25@9^$^a$^#$ 2( Px 4 #\'*.25@9^a$222222<333333376=6h6i66666678889J9K9999E:T::};;;=???-AEETTTVVVVkizizmmmmnnn&qԩ橛5>*B*CJOJQJph5B*CJOJQJphB*CJOJQJmH phsH 5>*B*ph 5B*ph B*phB*CJOJPJQJphB*CJOJQJph jB*CJOJQJph==6?6U6V6Y6Z6h6i6j6666666m$$Ifl40PV#d 04 laX $$Ifa$$If666666666666 $$Ifa$$Ifk$$Iflt0PV#d 04 laX 6667(7*7jjJ  2( Px 4 #\'*.25@9^#$ 2( Px 4 #\'*.25@9^a$^k$$IflG0PV#d 04 laX*7888K99999:@:E:i:j:k:: ;%;?;Z;$^a$#$ 2( Px 4 #\'*.25@9^a$^#$ 2( Px 4 #\'*.25@9^a$Z;|;};;;===>J>~>>>>>?I?}?~???,A-A^#$ 2( Px 4 #\'*.25@9^a$$^a$$^a$-AiAAA BABuBBB!C*B*ph B*H*ph 6B*ph6B*H*ph5>*B*ph 5B*ph5B*CJ ph B*phB*CJH*OJQJphB*CJH*OJQJphB*CJOJQJph5B*CJOJQJph:istPtttuduuu*vovvwQwww7xsxx yUyyyyypz$  PP^P` $P^P`$^pzzzz>{{{{}}~~-~D~.579;$If^$^a$^ $P^P`$^;<FN\qrw{"~,H$Ifj$$Ifi\ 4W <4 ia(0j$$Ifi\ 4W <4 ia($If "&U 7˄WX, 0$Ifj$$Ifi\ 4W <4 ia(X]a./48WYZ_,j$$Ifi\ 4W <4 ia($If_cNOTXy‹Njˋ9j$$Ifi\ 4W <4 ia($If 9:;<ʍԍލyyyyyyyyy ^`^$^a$j$$Ifi\ 4W <4 ia( "#$/EFlʏƔȔ͔ϔܔߔ%(-.:=BCORWYdglmy| >*B*ph B*CJph5>*B*ph 5B*ph B*ph B*H*phU$%Flmɏʏܔ "7L$a$$^a$^^ ^`Lav•˖̖  $$$If $$$$Ifa$$$$a$$^a$^˖ܘFněΛϛٛۛ01?AqrÝ56JK͞ΞKUV`cknostwx|}B*mH phsH  >*B*ph5>*B*ph56B*ph 5B*ph B*CJph B*ph B*H*phN   !"$235CDFQRTab00DD8@< $$$If $$$$Ifa$D$$Ifl404 labdpqsĘۘܘߘ\0lHD$$Ifl404 la $$$If $$$$Ifa$ #/06MNQ_`aəʙ@@xH$$ $$$$Ifa$D$$Ifl404 la $$$IfʙDFnoÛě!p2s78 $ ^a$ ^` @ ^` @ HH^H`$a$$^a$Jlu~6LlšաRa ^`^ ^`^ $ ^a$)._`ot013=pq%˥9:GIc߬ȭ˭  ;<JM|}Ÿ >*B*ph>*B*CJOJQJphB*CJOJQJph6>*B*CJOJQJph B*CJph5>*B*ph 5B*ph B*ph B*H*phFޢ#23pq%&ʥ˥:;$$$a$$^a$^ ^`^;@GHIKTUW`acz{}00hh\d $$$$Ifa$D$$Ifl40h4 la $$$Ifħŧǧۧܧ569cdg\<D$$Ifl40h4 la $$$If $$$$Ifa$g!/@@xH $$$$Ifa$D$$Ifl40h4 la $$$If/0189\]bc||w|$a$$^a$$$$ & F2 a$$$$a$$$$ & F1 a$$$`$$D$$Ifl40h4 la ެ=}=~!*3<ENW` ^` ^`^^$^a$̮ϮPQVW #$(),-1256:;>?CDGHLMPQUVYZ^_ȱͱDETYвѲϳг޳"'WXfk >*B*ph B*ph B*H*ph^:dt7F}òҲO_³ѳJY ^`^Ѵ&'}~ٷڷ}~$ cPH!d$a$$ % +-!d$a$$a$$^a$^^ ^`޴&~ٷ~ø޸5lƹHd޺!=Ļ eվÿĿʿѿӿh !+/7 !OP~ʿ >*B*ph>*B*mH phsH B*mH phsH 5B*mH phsH  B*CJph5>*B*ph 5B*ph B*ph B*H*phHøȸ͸θϸиR`$$Ifl4\b'(5 Xn 04 la$ 2d$$Ifa$ $d$$Ifa$ иѸָ׸ݸ޸ %"$ ) p@ P !d$$Ifa$$ 8Td$$Ifa$$ 2d$$Ifa$ $d$$Ifa$%&<$$Ifl4 b]p#',/(5 nJK0$$$$4 la&(*,-./0123457:>GHIJKLMNOQThFfNv d$$IfFf#t $d$$Ifa$TXlwy{}ƹȹʹ˹hFfzFfyx"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$˹͹йԹݹ޹߹  "$ ) p@ P !d$$Ifa$Ff| d$$If $d$$Ifa$HSUWYdfhiknr`Ff% d$$If $d$$Ifa$Ff~"$ ) p@ P !d$$Ifa$޺!,.D Ff{ d$$If $d$$Ifa$FfP"$ ) p@ P !d$$Ifa$.02=?ABDGKĻ|Ffщ d$$IfFf"$ ) p@ P !d$$Ifa$ $d$$Ifa$Ļϻѻӻջ   "%Ff' d$$IfFf"$ ) p@ P !d$$Ifa$ $d$$Ifa$%)eprtv¼ͼϼѼҼ04Ff}FfR"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$ҼԼ׼ۼ  !$(HSUWZeg,Ff"$ ) p@ P !d$$Ifa$ d$$If $d$$Ifa$gijlosĽD,Ff d$$If $d$$Ifa$FfӖ"$ ) p@ P !d$$Ifa$ ,.02468:;=@D[fhFfT d$$If $d$$Ifa$Ff)"$ ) p@ P !d$$Ifa$hjmxz|}վFf d$$IfFf"$ ) p@ P !d$$Ifa$ $d$$Ifa$վĿſʿѿҿ $$$If $$$$Ifa$$$$$`^Ffգ"$ ) p@ P !d$$Ifa$ $d$$Ifa$ҿӿտ78<EFHfgPd\8 $$$If $$$$Ifa$D$$Ifl40he 4 lagh8t"Q h^`h ^` ^`^$a$CDRV  OPFGTX  JK/0]^ B*H*ph >*B*ph B*ph]2sEQH L1_ ^` ^`^_~x2{ ^` p@ W^$^a$$^a$^yEFTXQRIJW[ >*B*ph5>*B*ph 5B*ph B*ph B*H*phXGS KO7f  )^ ^`^  MN45cd )*PYpqunoxy%&04<?@DFIJNORSWX >*B*ph>*B*CJH*ph>*B*CJph B*CJph5>*B*ph 5B*ph B*ph B*H*phM)*PQWY (jrt6U p`^p`` ^`$a$$^a$^^=GPYbkt}$Cn p@ W^$^a$^ ^`X[\`adeijmnrsvw{|*+9=mn|+,9=lmz~01^_OP]^5>*B*ph 5B*ph B*H*ph B*phX,o1w-n+qz2`> ^`^>Q GH"68:^$a$ $^`a$ $^`a$$a$$^a$^^ ^` GH45;^3=>HLTWX\^abfgjkopstxy|}* B*H*ph >*B*ph>*B*CJH*ph>*B*CJph B*ph B*CJphS^_?^23U_hqz p@ W^^$a$ $^`a$$^a$$a$ah,o8t/p3nF ^`^*+9=mn|67-.;?no|12DErs+LMVW=>DEGHZ[abefi0J j0JU0J>*B*CJH*ph>*B*CJph B*ph B*H*phTFt)HOn+,341$$^a$$a$ ^` ^`^456789:IJghij$^a$$a$1$ ij B*ph. 00&P 1h/R . A!n"n#$%/0&P 1hP/R . A!n"n#$%+&P 1h0/R A .!"#n$n%(&P 1h/R . A!n"n#$%+&P 1h0/R A .!"#n$n%(&P 1h/R . A!n"n#$%+&P 1h0/R A .!"#n$n%(&P 1h/R . A!n"n#$%+&P 1h0/R A .!"#n$n%(&P 1h/R . A!n"n#$%+&P 1h0/R A .!"#n$n%(&P 1h/R . A!n"n#$%+&P 1h0/R A .!"#n$n%(&P 1h/R . A!n"n#$%(&P 1h/R . A!n"n#$%'&P 1h0A .!"#$%' 0&P 1h. A!"#$%'&P 1h0A .!"#$%' 0&P 1h. A!"#$%)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la-$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la0$$Ifl44 H(#-'L,0(5t T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la)$$Ifl4 H(#-'L,0(5vt T8T80,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la*$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la&$$Ifl Uh#'D,%0 5vnnnn0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la-$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la)$$Ifl4 bY"'H-H16v nJRS0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la*$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la&$$Ifl h#'D,%0 5v'nn0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la)$$Ifl4 b]p#',/(5v nJK0,,,,4 la i@@@ Normal CJOJQJ_HaJmH sH tH @@@ Heading 1$@&^ >*CJaJL@L Heading 2 $$@&56CJOJQJ\]aJ@@@ Heading 3$$@&a$5\mH sH <A@< Default Paragraph Font2U@2 Hyperlink>*B*`JphBV@B FollowedHyperlink>*B* `J phe@ HTML Preformatted7 2( Px 4 #\'*.25@9CJOJPJQJ^JaJ:^@": Normal (Web)dd[$\$0O10 endnote refeCJaJvOv Texte Octet=$ @xd$-1$5$7$8$9DH$^x`a$CJaJmH sH @&@Q@ Footnote Reference CJH*aJV@bV Footnote Text1$5$7$8$9DH$CJaJmH sH uC@r Body Text IndentE$ 2( Px 4 #\'*.25@9^a$ @OJQJ8Y@8 Document Map-D OJQJ,@, Header  9r , @, Footer  9r &)@& Page NumberNR@N Body Text Indent 2$^a$CJaJ8 jWZ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWZ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~il#י}#F< y.{<~j  0 a     < f     A k    + +!+ !+!+!+!^s!+!+!+! +! +! +! +! +!+!+!+!+!+!+!+!+!^s!+!+!+!^s!^s!+!+!+!+! +!!+!"+!#^s%$^s%%^s!&^s!'^s!(^s!)+!*+!++!,+!-+!.+!/+!0+!1+!2+!3+!4+!5+!6+!7+!8+!9+!:+!;+!<+!=+!>+!?+!@+!A+!B+!C+!D+!E+!F+!G+!H+!I+!J+!K+!L+!M+!N+!O+!P+!Q+!R+!S+!T+!U+!V+ W+ X+ Y+ Z+ [+ \+ ]+ ^+ _+ `^s a^s b+ c+ d+ e+ f^s g^s h+ i+ j+ k+ l+ m+ n+ o+ p+ q+ r+ s+ t^s u^s@v+@w+@x+@y+@z+@{+@|+@}+ ~^s ^s@+@+@+@+@+@+@+@+i l#/5:FfILRY`fQoxbי}JTtbk #w/:<AHN T`nBr3xdЍiT6{}d %-3<3H4Q^`fpqz{)fɭRMtFbVW<  ra"-4;CRe'mxy.{X<<EKߨ~yX;tj r+   5 %-!) !*" #$:%&'()*2+, -./01M23 456789: ;P<=u>?@A#B#C#D+EFG7H7IJ KL4MN OP Q"RSTUVWVWXY.Z["\"]^_`a9bc)d/e fghijkl1mInWopqrstuvwxyz!{~|!}~J""C#.)*+,-89=>IJKL|R$hi$RSejkx=m:\}. ] ( G  A a    9 _  ' ( B n K{=Jm4#mnpBCERtuwklmigh !!!A""""#8#9###################$$$Q$R$X$$$$$$G&(+.133*33334{4|4455859555556061696;6C6E6M6O6W6Y6b6d6m6o6p6z666666677798:8<8q8r8t8888888999394969S9T9W9999999$:%:(:9:::=:C:D:G:K:L:O:T:U:X:_:`:e:::D=?#A@B(CFFF,F-F;FGFHFKFkFlFoFFFFFFFFFFFFFFFFFFFGG GG G#G5G6G9GIGJGsGtGGGGGGGGGGGGGGGGGGGGHHH(H)H,H;HCDIJPQastvxz{|}~ň͈ψшԈՈ׈ڈވʌˌ01X!#+-57?AJLUWXbklr78lm1@aޓؕϖԗ՗ߗ !,6BMWbmw֙יo mnG>?|}fg  !" Dѧ β#(.;<>@BCDEFGHIJKMPTY^`bejlnoqtx~ %')*,/3BGIORWY[\^aetz| #%'(*-1@GIORY[]^`cg%'-068:;=@D`dflosuwxz}&(.18:<=?BFsxz|~ "$%'*.>BDFHLNPQSVZ#%)+-.037Y^`eglnpqsvzUQ-$efo9:<\]RSTf{s#$&EFH{|~  LMPijr{|  56:efg&'T/014Cfgjz~!"%9abey3458JKLOb;vwz'~*+,[5<J[O   (:;@AGL_`acdfgijklmnopqrtw{ (*,-/26W_acemoqrtw{ +-/0259V`bdgqsuvx{ #JTVX[egijlos DJLNQWY[\^aez !$%'*.BJLNPXZ\]_bf        ! # & * : D F H K U W Y Z \ _ c w                        ! p r t v                     ( * , . 9 ; = > @ C G |                        H N P \ _ e g j k m p t                         = G I K N X Z ] ^ ` c g                       &(*-79;<>AEWacehrtvwy|  9CEGKUWZ[]`d%`pzX HJu}.M56FGMZdefghmntu   (*,.14689;>BXZ\^adfhiknr   )+-/2579:<?C|~!#$&)-WY[]`ceghjmq#%'),/13469=WY[]`ceghjmq    ( * , . 1 4 6 8 9 ; > B ` b d f i l n p q s v z                             !!!! ! !!!)!+!-!/!2!4!6!8!9!;!>!B!l!n!p!r!u!w!y!{!|!~!!!!!!!!!!!!!!!!!!!!!!!!!!!! " """""!"""$"'"+"4"?"A"C"F"P"R"T"U"W"Z"^"""""""""""""""""""""""""""""""""""""######!###$#&#)#-#H#J#L#N#Q#T#V#X#Y#[#^#b#~##########s(t(u((((((((((((((((((((((((((((((((())))))))!)=)?)A)C)F)G)H)I)***,,-v////0Y0000@1Z11112Z222223E3f34:4O44466Z66666,7E7^7w777 8!88<<2<3<o<<<<< = =-=H=q=====>->?>>>>>? ?@?N?t?????@4@H@_@r@@@@@@ ABAMAaAbAAA^CXEYE[EmEvE~EEEEEEEEEEEEEEEEEEEFF%F&F'F)F+F-FAFBFeFiFnFqFFFFFFFFFFFFFFFFFFFFFFGGG,G-G.G0G3G5GQGRGSGVGYG[GqGrGsGvGyG{GGGGGGGGGGGGGGGGGGGGGGGGGGGHHHH HHHHHHHH H#H&H(HHHHHHHHHHHHHHHHHHHIIIIII;IP?P@PCPFPHPgPhPiPlPoPrPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP,Q-QRQVQ\Q_QzQ{Q|Q~QQQQQQQQQQQQQQQQQQQQQ*R+R,R/R2R4RkRlRRRRRRRRRRRRRRRRRSSTSlSpS}SSSS T TUXXX7YY Z[])`*`O`KbZbee.i/iEijn n n nnn%n&n'n(n)n,n-n.n/n0n>n?n@nXnYnZnhntnunxnnnnnnnnnnnNp^pkpqpwpppppppppppp%qiqxqqqqqArLrarrrr s+sEs]s^sssssst4tbttttt"uGufutuuuuuuv@vevvvvvvvw0wRwtwwwwwww3x4xx6yy9{{}}}}}}}~ ~~~0~1~2~4~6~8~G~H~I~M~Q~W~x~y~z~|~~~~~~~~~~~~~~~~~~~~ 012479PQRTWY"2347:<BCDGJMQRSVY[`abehjqrsvy{܀݀ *+,.13=>?CIMdefhksŁƁǁɁˁԁ&'@DJPklmort}~ -2]^``abcd"SFGPVƈ JKMTrsu}   +,5;vwxˊ̊3ы΍ύЍƐ4q~}~ȔTU^dʕ˕̕ԕ XY[b#:;DJٗڗۗP˛0%9:CI\]_f\]_ghsɧ.@a{Ш ">d3Uwʪ=\z-}ޭ-T MOW_ht~õǵ͵ѵյֵߵ!%)/378AEIOSWX579HWanyzʷͷϷ׷ڷݷ޷  c)6AB_behkno~5/EFdefGH^34tu>?Ob=>Ou| 9:z{DEUh+,=cjkl+vn>y{ !Lju?c '?i1;rHI34^{ +Pt (8$Pw?I=>|"#PnyCg +Fp8B|^_/JKx&Ej&4BR>jYcfg >HP^sty{} %'4 a:Qi/Q  u   fu  89PV\k#2Xc?@nFG56de.H|!0N] yZ [    '!(!#&)).-[-------- .%.B.V.o..../*/H/Z/{///// 0%0<0X0~000001+1M1o1111 2272W2v222223303A3W333355555555556666666 6"67666;7{77#88$9s9l;S<<<<=,=E=n======= >F>e>x>z>?ADFFGGGGGG3H5HHHHHHHIJ>J?J}J~J`KaKvKKK$L]LnLpLZM[MMMMM,N~NNOoOOPP0P1P3Q>QMQQQ/RnRRR1SoSSS@TTTUDUUUUUVVWWWW@XXXHYRYYYZZZZ[a[b[[\e\\(]]]x_y___4`5`````a$aHafaxaaaaab'bCbZbvbbbbbc9cIckccccc d1dOdgdddddd e0eNefeeeeeef7fVflfffhhhhhhi ii i5i6i;i=i?iAiBiGiIi[iiiii jMjujjjjskmm\mmm!n^nnFqwquuuuuuuuvvv"v$v&v(v)v.v0vrvvv8xpzzzzz{={`{{{{{{{|?|U|t||||| }[}p}}}}}~~B~[~q~~~~-@Xy$238:<>?DHYABi΅υԅ؅YZ_cۆ܆yzfglp)ߍABGKsݐב %)Q(3Uxѕ !"$6YZ\uYZ\i*+ϜԜ)13;=EGOQY[\irz{}  y2<DFNPXZbdlno|0aˠ  '`$`fԥdey@sӧ-^'a׫ͬȭɭ %'(5A|}  *w5y_ͷ Qtot&./<H¼ּ&';EMQadtxMU[`   Gds ) xFGbcstz  #'-3579?ACDFIMQUWY[_acdfimrwy{}   #)+14:<>?ADHW[]cfjlnoqtx   LSU[^egijlos"$&'),0LQSY\acefhko"')+-24679<@mtvxz FNPRU]_abdgk  "%)KRTY[bdfghoIRchi|./1[\^}~#$&>?BTUX )*.9:DMNXmnrUVWcC;<=TUefly!$&()+.2GIKMPSUWXZ]awy{} #&(*+-04HJLNQTVXY[^b2468;>@BCEHLvxz|  BDFHKNPRSUX\vxz|         ! $ ( G I K M P S U W X Z ] a                                          # % ' ( * - 1 H J L N Q S U W X Z ] a                                      ) , . 1 ; > @ A C F J S ^ ` b e o q s t v y }                                     2 4 6 8 ; > @ B C E H L g i k m p s u w x z }              239:+,GiGU)[<_{Ieya"M#N#s#$$&&/(;(*(+,--7-X-r----///6272=2?2U2V2Y2Z2h2i2j222222222222222222223(3*3444K5556@6E6i6j6k66 7%7?7Z7|7}777999:J:~:::::;I;};~;;;,=-=i=== >A>u>>>!?wwwwyyzz-zDz.{5{7{9{;{<{F{N{\{q{r{w{{{{{{||"|~|||||}}}}}~~"~&~U~ 7ˀWX]a./48WYZ_cNOTXy‡LJˇ9:;<ʉԉމ$%Flmɋʋܐ "7Lav‘˒̒   !"$235CDFQRTabdpqsĔ۔ܔߔ #/06MNQ_`aɕʕDFno×ė!p2s78Jlu~6Llŝ՝Raޞ#23pq%&ʡˡ:;@GHIKTUW`acz{}ģţǣۣܣ569cdg!/0189\]bcި=}=~!*3<ENW`:dt7F}îҮO_¯ѯJYѰ&'}~ٳڳ}~ôȴʹδϴдѴִ״ݴ޴ %&(*,-./0123457:>GHIJKLMNOQTXlwy{}Ƶȵʵ˵͵еԵݵ޵ߵ  HSUWYdfhiknr޶!,.02=?ABDGKķϷѷӷշ   "%)eprtv¸͸ϸѸҸԸ׸۸  !$(HSUWZegijlosĹ ,.02468:;=@D[fhjmxz|}պĻŻʻѻһӻջ78<EFHfgh8tĽ"Qȿѿڿ2sEQH L1_~x2{GS KO7f  )*PQWY (jrt6U=GPYbkt}$Cn,o1w-n+qz2`>Q GH"68:^_?^23U_hqzah,o8t/p3nFt)HOn+,3456789:IJgk`(SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSS`SSSSSSSSSSSSSSSSSSSSSSSSS@SSSSSSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSSS0S0S0S0S0S0S0S0SSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSSSSSSSSSSSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSSSSSSSSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SS`SSSSSSSSSSSSSSSSSSSSSSSSS`SSSSSSSSSS0S0S0S0S0S0S0S0S0SSSSSSSSSSSSSSSSSSSSSSSSSS`SSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSS`SSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSSSSSSSSSSSS`SSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S`0SSSSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWW0S0S0S0S0S0S0S0S0SWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWW W W WWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S# W# ;7W# ;7W# W# W# W# WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWWWWWWW@WWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWW`WWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWW`WWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S`0SWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0SWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW`WWWWW@WWWWW0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S`WWWWWWWWWWWWWWWWFFFʋʋʋʋʋʋʋʋʋʋʋʋʋʋʋʋʋʋʋʋʋʋʋʋ00000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFqqqˡˡˡˡˡˡˡ000000000000000000000000000000000000000000000000000000001 2 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@@@@@@00...........................1DAYV9,]{j|2&qX*ij6JP0E]is n8''(,9Y:p:t<=L>ClJKK,LLeMMvN OOPQ$RSeS]ad:eNegjjj]k?tÆ=s|Ԍ׌Wkߛ֝? D;<e/R`=HYT{g"K(_`{u   J  '    peyXZt \  !!!""'###9$$%p%%'&&&Q'u,,,,,,,--F-H-5:3@BbEIIIAJJJJQKKKKLLL;MMNNNQRRR0SKSSS>TTTTzUUUkVVVW\ r>rtrrkttxuvGy{0GQ:[܄*=k}]ٛʮ~SW )o5nj4F/ G#1379:@KZQ/V@\dkglj5mm\qyz~̃ۊyZ+=i dsׯ|w.;[W?khBDT! {  0  @  F   X   F p;,=666*7Z;-AEOVraymispz;X_9L bʙ;g/и%&T˹.Ļ%Ҽghվҿg_)>^F4j      !"#$%&'()*+,-./012345789:;<=>?@ABCDEFGHIKLMNOQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./123456789:;<=>?@ABCDFGHIJKLMNOPQRSTUVWXYZ[\^_`abcdefghjklmnopqrtuvwxyz{|}~i '+1!!Chapter2fkkS: _ =#R$X(G</sb< r 9 [!!#$u(=)-;.v//\7HJJNYYYYYYYY ZQQX\9H:I::b>s>t>>>]?^???????0@1@B@ioooooooLpOphpkpppppp:=HZfhk9<}L%(SVin    !!!!A"G"""""##3!393B333h7l7@@EECVJVLVVVVYYYYUZ[ZZZ4[:[c[k[[[[` ggCgb~X8>mx"*Y\ot GM$ MOcVYt(`:s01tubwa  . 9 [ |!!!!#$u()-;.v//223"3E3E7883<h<r<<==II&J*J+JJwNNQQQQ4R8RRRRRRRSSv]w]qrrrrrss*{/{W~\~~~ Yb"&{3;MSswPV29r'-8>Ő^ḑ-˫ګ߭.2OV_ghstwֵܵ8>W_alnqzǷϷַ޷')46903FO$?IO]OREOUc =@ vBESVzIL/6mptxcl  u z z~?G=Djp)))X*d*....,/G/00CCGGsI}IFJLJ~JJ%N+NwN}NNNOOgOnOOO PPQQ'R.RfRmRRRRR)S0ShSnSSSSS8T?TwT~TTTTUVe0?̇$ 0W F>B,?bFg'@ 0gcBJ,IjuKF^lt0SMF?Mm+gQBŎ BgXi:-X[[F$$T:]|u`_ݴ aQ.dfK[jdnЁe.l^' pP`yrtT[]tb Xn#w~D+zz>*B{"2:o{Ғ3 |E~|h`^``o(`^``o(.` `` ^` ``o(..@ `@ ^@ ``o(...  ` ^ ``o( .... `^``o( ..... `^``o( ...... ((^(`o(....... ^`o(........`^``o(`^``o(.` `` ^` ``o(..@ `@ ^@ ``o(...  ` ^ ``o( .... `^``o( ..... `^``o( ...... `^``o(....... ^`o(........@0^`0()&m&^&`mo(()^`. L ^ `L.k k ^k `.;;^;`. L ^ `L.^`.^`.{L{^{`L.0^`0o(808^8`0o(.0^`0o(..0^`0o(...   ^ `o( ....  ` ^ ``o( ..... `^``o( ...... ^`o(....... HH^H`o(........@0^`0()@0^`0()0^`0o(0^`0o(.0^`0o(..0^`0o(... 88^8`o( .... 88^8`o( ..... `^``o( ...... `^``o(....... ^`o(........^`()^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.VV^V`>*o(FF^F`>*o(.66^6`>*o(..&&^&`>*o(... ^`>*o( .... P `P ^P ``>*o( ..... @ `@ ^@ ``>*o( ......   ^ `>*o(....... ^`>*o(........`^``o(`^``o(.` `` ^` ``o(..@ `@ ^@ ``o(...  ` ^ ``o( .... `^``o( ..... `^``o( ...... ((^(`o(....... ^`o(........@0^`0()VV^V`^`.&&^&`..^`...   ^ ` ....  ` ^ `` ..... `^`` ...... ^`....... HH^H`........0^`0o(808^8`0o(.0^`0o(..0^`0o(...   ^ `o( ....  ` ^ ``o( ..... `^``o( ...... ^`o(....... HH^H`o(........`^``o(`^``o(.` `` ^` ``o(..@ `@ ^@ ``o(...  ` ^ ``o( .... `^``o( ..... `^``o( ...... ((^(`o(....... ^`o(........"^`"o(&"&^&`"o(-n "n ^n `"o(-.^`o(-.. XX^X`o( -... `^``o( -.... P`P^P``o( -..... ^`o(-...... H!H!^H!`o(-.......VV^V`^`.&&^&`..^`...   ^ ` ....  ` ^ `` ..... `^`` ...... ^`....... HH^H`........VV^V`5o(FF^F`5o(.66^6`5o(..&&^&`5o(... ^`5o( .... P `P ^P ``5o( ..... @ `@ ^@ ``5o( ......   ^ `5o(....... ^`5o(........`^``o(`^``o(.` `` ^` ``o(..@ `@ ^@ ``o(...  ` ^ ``o( .... `^``o( ..... `^``o( ...... ((^(`o(....... ^`o(........@0^`0()0^`0o(0^`0o(.0^`0o(..0^`0o(... 88^8`o( .... `^``o( ..... `^``o( ...... ^`o(....... ^`o(........`^``o(`^``o(.` `` ^` ``o(..@ `@ ^@ ``o(...  ` ^ ``o( .... `^``o( ..... `^``o( ...... ((^(`o(....... ^`o(........`^``o(`^``o(.` `` ^` ``o(..@ `@ ^@ ``o(...  ` ^ ``o( .... `^``o( ..... `^``o( ...... ((^(`o(....... ^`o(........0^`0o(.0^`0o(.0^`0o(..0^`0o(... ^`o( .... p`p^p``o( ..... p`p^p``o( ......   ^ `o(.......   ^ `o(........ `^``OJQJo( `^``OJQJo(. ` `` ^` ``OJQJo(.. @ `@ ^@ ``OJQJo(...  ` ^ ``OJQJo( .... `^``OJQJo( ..... `^``OJQJo( ......  ((^(`OJQJo(.......  ^`OJQJo(........0^`0o(0^`0o(.0^`0o(..0^`0o(... ^`o( .... P `P ^P ``o( ..... @ `@ ^@ ``o( ......   ^ `o(....... ^`o(........@0^`0()@0^`0()^`o()  ^ `. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.`^``o(`^``o(.` `` ^` ``o(..@ `@ ^@ ``o(...  ` ^ ``o( .... `^``o( ..... `^``o( ...... ((^(`o(....... ^`o(........^`.^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.@0^`0()0^`00^`0.0^`0..0^`0... 88^8` .... 88^8` ..... `^`` ...... `^``....... ^`........`^``o(`^``o(.` `` ^` ``o(..@ `@ ^@ ``o(...  ` ^ ``o( .... `^``o( ..... `^``o( ...... ((^(`o(....... ^`o(........0^`0o(()p0p^p`0o(() L ^ `L.  ^ `.xx^x`.HLH^H`L.^`.^`.L^`L.tt^t`dd^d`.TT^T`..DD^D`... 44^4` .... P `P ^P `` ..... @ `@ ^@ `` ......   ^ `....... ^`........VV^V`o(FF^F`o(.66^6`o(..&&^&`o(... ^`o( .... P `P ^P ``o( ..... @ `@ ^@ ``o( ......   ^ `o(....... ^`o(........@0^`0()`^``o(`^``o(.` `` ^` ``o(..@ `@ ^@ ``o(...  ` ^ ``o( .... `^``o( ..... `^``o( ...... ((^(`o(....... ^`o(........^`o()  ^ `. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.0^`0808^8`0.0^`0..0^`0...   ^ ` ....  ` ^ `` ..... `^`` ...... ^`....... HH^H`........^`o()  ^ `. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.@0^`0()2:o{P} 0$Z^)/r!)_#} 0l^ e.le.l} 0:o{)_#F>F>4} 0[]t[]t} 0jr,jr, 0G*ry {T(t0SM$ 0>Ve0B,?ddP 0?M`_3 |*B{gQz,?5$T:]yr,IL#/% BgXjuK'@n#wagV pcB+z'SX[[E~|[j 70 70 70 70 70++#mnpBCERtuw##########$$$Q$R$X$$$$$$560616;6E6O6Y6d6o6p6z666666677798:8<8q8r8t8888888999394969S9T9W9999999$:%:(:9:::=:C:D:G:K:L:O:T:U:X:_:`:e:::FF,F-F;FGFHFKFkFlFoFFFFFFFFFFFFFFFFFFFGG GG G#G5G6G9GIGJGsGtGGGGGGGGGGGGGGGGGGGGHHH(H)H,H;H@BCDEFGHIJKMPTY^`bejlnoqtx~ %')*,/3BGIORWY[\^aetz| #%'(*-1@GIORY[]^`cg%'-068:;=@D`dflosuwxz}&(.18:<=?BFsxz|~ "$%'*.>BDFHLNPQSVZ#%)+-.037Y^`eglnpqsvz$efo9:<\]s#$&EFH{|~  LMPijr{|  56:ef/014Cfgjz~!"%9abey3458JKLOb;vwz'~*+,  (:@G_`cfijklmnopqrtw{ (*,-/26W_acemoqrtw{ +-/0259V`bdgqsuvx{ #JTVX[egijlos DJLNQWY[\^aez !$%'*.BJLNPXZ\]_bf        ! # & * : D F H K U W Y Z \ _ c w                        ! p r t v                     ( * , . 9 ; = > @ C G |                        H N P \ _ e g j k m p t                         = G I K N X Z ] ^ ` c g                       &(*-79;<>AEWacehrtvwy|  9CEGKUWZ[]`d56FZ_defgmt   (*,.14689;>BXZ\^adfhiknr   )+-/2579:<?C|~!#$&)-WY[]`ceghjmq#%'),/13469=WY[]`ceghjmq    ( * , . 1 4 6 8 9 ; > B ` b d f i l n p q s v z                             !!!! ! !!!)!+!-!/!2!4!6!8!9!;!>!B!l!n!p!r!u!w!y!{!|!~!!!!!!!!!!!!!!!!!!!!!!!!!!!! " """""!"""$"'"+"4"?"A"C"F"P"R"T"U"W"Z"^"""""""""""""""""""""""""""""""""""""######!###$#&#)#-#H#J#L#N#Q#T#V#X#Y#[#^#b#~#########t(u((((((((((((((((((((((((((((())))))))!)=)?)A)C)F)G)XEYE[EmE~EEEEEEEEEEEEEEEEEEFF%F&F'F)F+F-FAFBFeFiFnFqFFFFFFFFFFFFFFFFFFFFFFGGG,G-G.G0G3G5GQGRGSGVGYG[GqGrGsGvGyG{GGGGGGGGGGGGGGGGGGGGGGGGGGGHHHH HHHHHHHH H#H&H(HHHHHHHHHHHHHHHHHHHIIIIII;IP?P@PCPFPHPgPhPiPlPoPrPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP,Q-QRQVQ\Q_QzQ{Q|Q~QQQQQQQQQQQQQQQQQQQQQ*R+R,R/R2R4RkRlRRRRRRRRRRRRRRRRRSSTSlSpS}SSSSn n,n>n?nYntnunnnnnNp^pkpqpwppppppppppp{}}}}}}}~ ~~~0~1~2~4~6~8~G~H~I~M~Q~W~x~y~z~|~~~~~~~~~~~~~~~~~~~ 012479PQRTWY"2347:<BCDGJMQRSVY[`abehjqrsvy{܀݀ *+,.13=>?CIMdefhksŁƁǁɁˁԁ&'@DJPklmort}~ -2]^SFGPVƈ JKMTrsu}   +,5;vwxˊ̊}~ȔTU^dʕ˕̕ԕ XY[b#:;DJٗڗ%9:CI\]_f\]_g MOW_ht~õǵ͵ѵյֵߵ!%)/378AEIOSWX579HWanyzʷͷϷ׷ڷݷ޷  )6AB_behkno~>HP^sty{} %'455555555556666666 6"67666hhhhhhi ii i5i6i;i=i?iAiBiGiIi[iiiwquuuuuuuuvvv"v$v&v(v)v.v0vrvvv238:<>?DHYi΅υԅ؅YZ_cۆ܆yzfglp)ߍABGKsݐב %)Qxѕە!"$6YZ\uYZ\i*+)3=GQ[\irz{}2<FPZdno|' '(5A|}  һܻ./<H¼ּ;EQdx bcs  #'-3579?ACDFIMQUWY[_acdfimrwy{}   #)+14:<>?ADHW[]cfjlnoqtx   LSU[^egijlos"$&'),0LQSY\acefhko"')+-24679<@mtvxz FNPRU]_abdgk  "%)KRTY[bdfg./1[\^}~#$&>?BTUX )*.9:DMNXmnrTUey~!$&()+.2GIKMPSUWXZ]awy{} #&(*+-04HJLNQTVXY[^b2468;>@BCEHLvxz|  BDFHKNPRSUX\vxz|         ! $ ( G I K M P S U W X Z ] a                                          # % ' ( * - 1 H J L N Q S U W X Z ] a                                      ) , . 1 ; > @ A C F J S ^ ` b e o q s t v y }                                     2 4 6 8 ; > @ B C E H L g i k m p s u w x z }           72=2Y2h2i2222222Dz.{5{7{9{;{<{F{N{\{q{r{w{{{{{{||"|~|||||}}}}}~~"~&~U~ 7ˀWX]a./48WYZ_cNOTXy‡LJˇ9:   !"$235CDFQRTabdpqsĔ۔ܔߔ #/06MNQ_`:;GHIKTUW`acz{}ģţǣۣܣ569cdg!/0ôȴʹδϴдִݴ %&(*,-./0123457:>GHIJKLMNOQTXlwy{}Ƶȵʵ˵͵еԵݵ޵ߵ  HSUWYdfhiknr޶!,.02=?ABDGKķϷѷӷշ   "%)eprtv¸͸ϸѸҸԸ׸۸  !$(HSUWZegijlosĹ ,.02468:;=@D[fhjmxz|}պĻŻѻһӻջ78<EFHfg:k@ JJ} JJj@UnknownGz Times New Roman5Symbol3& z Arial;WingdingsC"UniversArial?5 z Courier New5& z!Tahoma"1hZ&Szaf?̑?Yn0d`"Guide to FM-94 BUFR (Chapters 1-3)Clifford Harlan Dey Martellet JOh+'0   4@ \ h t #Guide to FM-94 BUFR (Chapters 1-3)suidClifford Harlan Deyliflif Normal.dotr Martellet J63tMicrosoft Word 9.0@n@D(@>Z@H̑?՜.+,0  hp|    #Guide to FM-94 BUFR (Chapters 1-3) Title  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry F!Data 1TableWordDocument9SummaryInformation(DocumentSummaryInformation8CompObjjObjectPool!!  FMicrosoft Word Document MSWordDocWord.Document.89q