1*b1cdbd2cSJim Jagielski/**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_i18n_NumberFormatIndex_idl__
25*b1cdbd2cSJim Jagielski#define __com_sun_star_i18n_NumberFormatIndex_idl__
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski//=============================================================================
28*b1cdbd2cSJim Jagielski
29*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module i18n {
30*b1cdbd2cSJim Jagielski
31*b1cdbd2cSJim Jagielski//=============================================================================
32*b1cdbd2cSJim Jagielski
33*b1cdbd2cSJim Jagielski//! Do NOT insert any new values!
34*b1cdbd2cSJim Jagielski//! Locale data number format creation must match these values!
35*b1cdbd2cSJim Jagielski//! Number formatter internals must match these values!
36*b1cdbd2cSJim Jagielski
37*b1cdbd2cSJim Jagielski/**
38*b1cdbd2cSJim Jagielski	Number format indices to be passed as the index argument to
39*b1cdbd2cSJim Jagielski    <member>XNumberFormatCode::getFormatCode()</member>
40*b1cdbd2cSJim Jagielski    or
41*b1cdbd2cSJim Jagielski    <member scope="::com::sun::star::util">XNumberFormatTypes::getFormatIndex()</member>.
42*b1cdbd2cSJim Jagielski
43*b1cdbd2cSJim Jagielski    <p> Each locale can support up to about 5000 arbitrary format
44*b1cdbd2cSJim Jagielski    codes. But for backward compatiblity reasons, each locale
45*b1cdbd2cSJim Jagielski    <b>MUST</b> support some predefined format codes. These predefined
46*b1cdbd2cSJim Jagielski    format codes are accessed through indices as the following, and
47*b1cdbd2cSJim Jagielski    the locale data format code definitions in
48*b1cdbd2cSJim Jagielski    i18npool\source\localedata\data\*.xml <b>MUST</b> have matching
49*b1cdbd2cSJim Jagielski    entries in the form <br/>
50*b1cdbd2cSJim Jagielski
51*b1cdbd2cSJim Jagielski    <code>&lt;FormatElement formatindex="0"&gt;</code> <br/>
52*b1cdbd2cSJim Jagielski
53*b1cdbd2cSJim Jagielski    (see also <member>FormatElement::formatIndex</member>).
54*b1cdbd2cSJim Jagielski
55*b1cdbd2cSJim Jagielski    The index values are also used to define the <code>enum
56*b1cdbd2cSJim Jagielski    NfIndexTableOffset</code> in file svtools/inc/zforlist.hxx </p>
57*b1cdbd2cSJim Jagielski
58*b1cdbd2cSJim Jagielski    <p> Note: This index has <b>nothing</b> to do with the index key
59*b1cdbd2cSJim Jagielski    used internally by the number formatter. </p> <br/>
60*b1cdbd2cSJim Jagielski
61*b1cdbd2cSJim Jagielski    <p> Date formats may have a comment of DIN/EN/ISO, meaning
62*b1cdbd2cSJim Jagielski        <ul>
63*b1cdbd2cSJim Jagielski            <li> DIN 5008 (Deutsche Industrie Norm) </li>
64*b1cdbd2cSJim Jagielski            <li> EN 28601 (European Norm) </li>
65*b1cdbd2cSJim Jagielski            <li> ISO 8601 (International Standards Organisation) </li>
66*b1cdbd2cSJim Jagielski        </ul>
67*b1cdbd2cSJim Jagielski    </p>
68*b1cdbd2cSJim Jagielski
69*b1cdbd2cSJim Jagielski    <p> Some names of date format constants indicate a special
70*b1cdbd2cSJim Jagielski    behavior of those formats in StarOffice 5.2 or older. Those are:
71*b1cdbd2cSJim Jagielski
72*b1cdbd2cSJim Jagielski    <dl>
73*b1cdbd2cSJim Jagielski    <dt> <a name="SYSTEM"> DATE_SYSTEM_... </a> </dt>
74*b1cdbd2cSJim Jagielski        <dd> On Windows platforms these formats were entirely
75*b1cdbd2cSJim Jagielski        retrieved from the system's Regional Settings. OpenOffice.org
76*b1cdbd2cSJim Jagielski        / StarOffice 6 don't use those Windows settings anymore in
77*b1cdbd2cSJim Jagielski        order to provide the same functionality and document layout on
78*b1cdbd2cSJim Jagielski        every platform. Like all other formats these formats are now
79*b1cdbd2cSJim Jagielski        defined in the i18n framework locale data files under
80*b1cdbd2cSJim Jagielski        i18npool\source\localedata\data\*.xml </dd>
81*b1cdbd2cSJim Jagielski
82*b1cdbd2cSJim Jagielski    <dt> <a name="SYS"> DATE_SYS_... </a> </dt>
83*b1cdbd2cSJim Jagielski        <dd> On Windows platforms these formats used separators and
84*b1cdbd2cSJim Jagielski        YMD order retrieved from the Regional Settings, but appearance
85*b1cdbd2cSJim Jagielski        of short/long days/months/years was defined by the
86*b1cdbd2cSJim Jagielski        application. </dd>
87*b1cdbd2cSJim Jagielski
88*b1cdbd2cSJim Jagielski    <dt> <a name="DEF"> DATE_DEF_... </a> </dt>
89*b1cdbd2cSJim Jagielski        <dd> The format code was hard defined, only the date separator
90*b1cdbd2cSJim Jagielski        was taken from the Windows Regional Settings, but not the YMD
91*b1cdbd2cSJim Jagielski        order. </dd>
92*b1cdbd2cSJim Jagielski
93*b1cdbd2cSJim Jagielski    </dl>
94*b1cdbd2cSJim Jagielski    </p>
95*b1cdbd2cSJim Jagielski */
96*b1cdbd2cSJim Jagielskipublished constants NumberFormatIndex
97*b1cdbd2cSJim Jagielski{
98*b1cdbd2cSJim Jagielski	/// Start of simple numerical formats (first format)
99*b1cdbd2cSJim Jagielski	const short NUMBER_START				= 0;
100*b1cdbd2cSJim Jagielski	/// The "General" standard format
101*b1cdbd2cSJim Jagielski	const short NUMBER_STANDARD				= NUMBER_START;
102*b1cdbd2cSJim Jagielski	/// 0           <br/>Integer number
103*b1cdbd2cSJim Jagielski	const short NUMBER_INT					= NUMBER_START+1;
104*b1cdbd2cSJim Jagielski	/// 0.00        <br/>Decimal number with 2 decimals
105*b1cdbd2cSJim Jagielski	const short NUMBER_DEC2 				= NUMBER_START+2;
106*b1cdbd2cSJim Jagielski	/// #,##0       <br/>Integer number with group separator
107*b1cdbd2cSJim Jagielski	const short NUMBER_1000INT				= NUMBER_START+3;
108*b1cdbd2cSJim Jagielski	/// #,##0.00    <br/>Decimal number with group separator
109*b1cdbd2cSJim Jagielski	const short NUMBER_1000DEC2				= NUMBER_START+4;
110*b1cdbd2cSJim Jagielski	/// #,##0.00    <br/> In SO5/Win this format was retrieved from the Regional Settings
111*b1cdbd2cSJim Jagielski	const short NUMBER_SYSTEM				= NUMBER_START+5;
112*b1cdbd2cSJim Jagielski    /// End of simple numerical formats (last format)
113*b1cdbd2cSJim Jagielski	const short NUMBER_END					= NUMBER_SYSTEM ;
114*b1cdbd2cSJim Jagielski
115*b1cdbd2cSJim Jagielski
116*b1cdbd2cSJim Jagielski	/// Start of Scientific formats (first format)
117*b1cdbd2cSJim Jagielski	const short SCIENTIFIC_START			= NUMBER_END+1;
118*b1cdbd2cSJim Jagielski	/// 0.00E+000   <br/>Number in scientific notation with exponent in 3 digit placeholders
119*b1cdbd2cSJim Jagielski	const short SCIENTIFIC_000E000			= SCIENTIFIC_START;
120*b1cdbd2cSJim Jagielski	/// 0.00E+00    <br/>Number in scientific notation with exponent in 2 digit placeholders
121*b1cdbd2cSJim Jagielski	const short SCIENTIFIC_000E00			= SCIENTIFIC_START+1;
122*b1cdbd2cSJim Jagielski	/// End of Scientific formats (last format)
123*b1cdbd2cSJim Jagielski	const short SCIENTIFIC_END				= SCIENTIFIC_000E00;
124*b1cdbd2cSJim Jagielski
125*b1cdbd2cSJim Jagielski
126*b1cdbd2cSJim Jagielski	/// Start of Percent formats (first format)
127*b1cdbd2cSJim Jagielski	const short PERCENT_START				= SCIENTIFIC_END+1;
128*b1cdbd2cSJim Jagielski	/// 0%          <br/>Percentage format, rounded to integer
129*b1cdbd2cSJim Jagielski	const short PERCENT_INT					= PERCENT_START;
130*b1cdbd2cSJim Jagielski	/// 0.00%       <br/>Percentage format, rounded to 2 decimals
131*b1cdbd2cSJim Jagielski	const short PERCENT_DEC2				= PERCENT_START+1;
132*b1cdbd2cSJim Jagielski	/// End of Percent formats (last format)
133*b1cdbd2cSJim Jagielski	const short PERCENT_END					= PERCENT_DEC2;
134*b1cdbd2cSJim Jagielski
135*b1cdbd2cSJim Jagielski
136*b1cdbd2cSJim Jagielski	/// Start of Fraction formats (first format)
137*b1cdbd2cSJim Jagielski	const short FRACTION_START				= PERCENT_END+1;
138*b1cdbd2cSJim Jagielski	/// # ?/?       <br/>Number with decimal in fraction in 1 digit placeholder
139*b1cdbd2cSJim Jagielski	const short FRACTION_1					= FRACTION_START;
140*b1cdbd2cSJim Jagielski	/// # ??/??     <br/>Number with decimal in fraction in 2 digit placeholders
141*b1cdbd2cSJim Jagielski	const short FRACTION_2					= FRACTION_START+1;
142*b1cdbd2cSJim Jagielski	/// End of Fraction formats (last format)
143*b1cdbd2cSJim Jagielski	const short FRACTION_END				= FRACTION_2;
144*b1cdbd2cSJim Jagielski
145*b1cdbd2cSJim Jagielski
146*b1cdbd2cSJim Jagielski	/// Start of Currency formats (first format)
147*b1cdbd2cSJim Jagielski	const short CURRENCY_START				= FRACTION_END+1;
148*b1cdbd2cSJim Jagielski	/// #,##0 DM    <br/>Integer currency format with group separator
149*b1cdbd2cSJim Jagielski	const short CURRENCY_1000INT			= CURRENCY_START;
150*b1cdbd2cSJim Jagielski	/// #,##0.00 DM <br/>Decimal currency format with group separator
151*b1cdbd2cSJim Jagielski	const short CURRENCY_1000DEC2			= CURRENCY_START+1;
152*b1cdbd2cSJim Jagielski	/// #,##0 DM    <br/>Integer currency format with negative in red
153*b1cdbd2cSJim Jagielski	const short CURRENCY_1000INT_RED		= CURRENCY_START+2;
154*b1cdbd2cSJim Jagielski	/// #,##0.00 DM <br/>Decimal currency format with negative in red
155*b1cdbd2cSJim Jagielski	const short CURRENCY_1000DEC2_RED		= CURRENCY_START+3;
156*b1cdbd2cSJim Jagielski	/// #,##0.00 DEM <br/>Currency in ISO-4217 abbreviation format
157*b1cdbd2cSJim Jagielski	const short CURRENCY_1000DEC2_CCC		= CURRENCY_START+4;
158*b1cdbd2cSJim Jagielski	/// #,##0.-- DM <br/>Currency format with dash representing 0 in decimals
159*b1cdbd2cSJim Jagielski	const short CURRENCY_1000DEC2_DASHED	= CURRENCY_START+5;
160*b1cdbd2cSJim Jagielski	/// End of Currency formats (last format)
161*b1cdbd2cSJim Jagielski	const short CURRENCY_END				= CURRENCY_1000DEC2_DASHED;
162*b1cdbd2cSJim Jagielski
163*b1cdbd2cSJim Jagielski
164*b1cdbd2cSJim Jagielski	/// Start of Date formats (first format)
165*b1cdbd2cSJim Jagielski	const short DATE_START					= CURRENCY_END+1;
166*b1cdbd2cSJim Jagielski	/// 08.10.97        <br/> see also DATE_SYSTEM_... <a href="#SYSTEM">explanation</a>
167*b1cdbd2cSJim Jagielski    const short DATE_SYSTEM_SHORT			= DATE_START;
168*b1cdbd2cSJim Jagielski    /// Wednesday, 8. October 1997  <br/> see also DATE_SYSTEM_... <a href="#SYSTEM">explanation</a>
169*b1cdbd2cSJim Jagielski	const short DATE_SYSTEM_LONG			= DATE_START+1;
170*b1cdbd2cSJim Jagielski	/// 08.10.97        <br/> see also DATE_SYS_... <a href="#SYS">explanation</a>
171*b1cdbd2cSJim Jagielski	const short DATE_SYS_DDMMYY   			= DATE_START+2;
172*b1cdbd2cSJim Jagielski	/** 08.10.1997      <br/> see also DATE_SYS_... <a href="#SYS">explanation</a>
173*b1cdbd2cSJim Jagielski        <br/><b>Note:</b> When editing already existing date data this
174*b1cdbd2cSJim Jagielski        format is forced in order to always edit the full century.  */
175*b1cdbd2cSJim Jagielski	const short DATE_SYS_DDMMYYYY 			= DATE_START+3;
176*b1cdbd2cSJim Jagielski	/// 8. Oct 97       <br/> see also DATE_SYS_... <a href="#SYS">explanation</a>
177*b1cdbd2cSJim Jagielski	const short DATE_SYS_DMMMYY   			= DATE_START+4;
178*b1cdbd2cSJim Jagielski	/// 8. Oct 1997     <br/> see also DATE_SYS_... <a href="#SYS">explanation</a>
179*b1cdbd2cSJim Jagielski	const short DATE_SYS_DMMMYYYY 			= DATE_START+5;
180*b1cdbd2cSJim Jagielski	/// 8. Oct. 1997    <br/> DIN/EN
181*b1cdbd2cSJim Jagielski	const short DATE_DIN_DMMMYYYY 			= DATE_START+6;
182*b1cdbd2cSJim Jagielski	/// 8. October 1997 <br/> see also DATE_SYS_... <a href="#SYS">explanation</a>
183*b1cdbd2cSJim Jagielski	const short DATE_SYS_DMMMMYYYY			= DATE_START+7;
184*b1cdbd2cSJim Jagielski	/// 8. October 1997 <br/> DIN/EN
185*b1cdbd2cSJim Jagielski	const short DATE_DIN_DMMMMYYYY			= DATE_START+8;
186*b1cdbd2cSJim Jagielski	/// Wed, 8. Oct 97  <br/> see also DATE_SYS_... <a href="#SYS">explanation</a>
187*b1cdbd2cSJim Jagielski	const short DATE_SYS_NNDMMMYY 			= DATE_START+9;
188*b1cdbd2cSJim Jagielski	/// Wed 08.Oct 97   <br/> see also DATE_DEF_... <a href="#DEF">explanation</a>
189*b1cdbd2cSJim Jagielski	const short DATE_DEF_NNDDMMMYY			= DATE_START+10;
190*b1cdbd2cSJim Jagielski	/// Wed, 8. October 1997    <br/> see also DATE_SYS_... <a href="#SYS">explanation</a>
191*b1cdbd2cSJim Jagielski	const short DATE_SYS_NNDMMMMYYYY		= DATE_START+11;
192*b1cdbd2cSJim Jagielski	/// Wednesday, 8. October 1997
193*b1cdbd2cSJim Jagielski	const short DATE_SYS_NNNNDMMMMYYYY		= DATE_START+12;
194*b1cdbd2cSJim Jagielski	/// 10-08           <br/> DIN/EN
195*b1cdbd2cSJim Jagielski	const short DATE_DIN_MMDD				= DATE_START+13;
196*b1cdbd2cSJim Jagielski	/// 97-10-08        <br/> DIN/EN/ISO
197*b1cdbd2cSJim Jagielski	const short DATE_DIN_YYMMDD				= DATE_START+14;
198*b1cdbd2cSJim Jagielski	/// 1997-10-08      <br/> DIN/EN/ISO
199*b1cdbd2cSJim Jagielski	const short DATE_DIN_YYYYMMDD			= DATE_START+15;
200*b1cdbd2cSJim Jagielski	/// 10.97           <br/> see also DATE_SYS_... <a href="#SYS">explanation</a>
201*b1cdbd2cSJim Jagielski	const short DATE_SYS_MMYY				= DATE_START+16;
202*b1cdbd2cSJim Jagielski	/// 08.Oct          <br/> see also DATE_SYS_... <a href="#SYS">explanation</a>
203*b1cdbd2cSJim Jagielski	const short DATE_SYS_DDMMM				= DATE_START+17;
204*b1cdbd2cSJim Jagielski	/// October
205*b1cdbd2cSJim Jagielski	const short DATE_MMMM					= DATE_START+18;
206*b1cdbd2cSJim Jagielski	/// 4th quarter 97
207*b1cdbd2cSJim Jagielski	const short DATE_QQJJ					= DATE_START+19;
208*b1cdbd2cSJim Jagielski	/// week of year
209*b1cdbd2cSJim Jagielski	const short DATE_WW						= DATE_START+20;
210*b1cdbd2cSJim Jagielski	/// End of Date formats (last format)
211*b1cdbd2cSJim Jagielski	const short DATE_END					= DATE_WW;
212*b1cdbd2cSJim Jagielski
213*b1cdbd2cSJim Jagielski
214*b1cdbd2cSJim Jagielski	/// Start of Time formats (first format)
215*b1cdbd2cSJim Jagielski	const short TIME_START					= DATE_END+1;
216*b1cdbd2cSJim Jagielski	/// HH:MM           <br/>Time format with hour and minute
217*b1cdbd2cSJim Jagielski	const short TIME_HHMM					= TIME_START;
218*b1cdbd2cSJim Jagielski	/// HH:MM:SS        <br/>Time format with hour, minute and second
219*b1cdbd2cSJim Jagielski	const short TIME_HHMMSS					= TIME_START+1;
220*b1cdbd2cSJim Jagielski	/// HH:MM AM/PM     <br/>Time format with hour, minute and morning/afternoon notation
221*b1cdbd2cSJim Jagielski	const short TIME_HHMMAMPM				= TIME_START+2;
222*b1cdbd2cSJim Jagielski	/// HH:MM:SS AM/PM  <br/>Time format with hour, minute, second and morning/afternoon notation
223*b1cdbd2cSJim Jagielski	const short TIME_HHMMSSAMPM				= TIME_START+3;
224*b1cdbd2cSJim Jagielski	/// [HH]:MM:SS      <br/>Time format with amount of hours
225*b1cdbd2cSJim Jagielski	const short TIME_HH_MMSS				= TIME_START+4;
226*b1cdbd2cSJim Jagielski	/// MM:SS,00        <br/>Time format with second in fraction
227*b1cdbd2cSJim Jagielski	const short TIME_MMSS00					= TIME_START+5;
228*b1cdbd2cSJim Jagielski	/// [HH]:MM:SS,00   <br/>Time format with amount of hours and seconds with fraction
229*b1cdbd2cSJim Jagielski	const short TIME_HH_MMSS00				= TIME_START+6;
230*b1cdbd2cSJim Jagielski	/// End of Time formats (last format)
231*b1cdbd2cSJim Jagielski	const short TIME_END					= TIME_HH_MMSS00;
232*b1cdbd2cSJim Jagielski
233*b1cdbd2cSJim Jagielski
234*b1cdbd2cSJim Jagielski	/// Start of DateTime formats (first format)
235*b1cdbd2cSJim Jagielski	const short DATETIME_START				= TIME_END + 1;
236*b1cdbd2cSJim Jagielski	/// 08.10.97 01:23 Date/time format
237*b1cdbd2cSJim Jagielski	const short DATETIME_SYSTEM_SHORT_HHMM	= DATETIME_START;
238*b1cdbd2cSJim Jagielski	/** 08.10.1997 01:23:45 Date/time format with second
239*b1cdbd2cSJim Jagielski        <br/><b>Note:</b> When editing already existing date/time data this
240*b1cdbd2cSJim Jagielski        format is forced in order to always edit the full century.  */
241*b1cdbd2cSJim Jagielski	const short DATETIME_SYS_DDMMYYYY_HHMMSS= DATETIME_START+1;
242*b1cdbd2cSJim Jagielski	/// End of DateTime formats (last format)
243*b1cdbd2cSJim Jagielski	const short DATETIME_END				= DATETIME_SYS_DDMMYYYY_HHMMSS;
244*b1cdbd2cSJim Jagielski
245*b1cdbd2cSJim Jagielski
246*b1cdbd2cSJim Jagielski	/**
247*b1cdbd2cSJim Jagielski		BOOLEAN format
248*b1cdbd2cSJim Jagielski
249*b1cdbd2cSJim Jagielski		@ATTENTION
250*b1cdbd2cSJim Jagielski			<b>Not</b> defined in locale data, but generated by the number
251*b1cdbd2cSJim Jagielski	 		formatter. If you want to access this format you <b>MUST</b>
252*b1cdbd2cSJim Jagielski			do it via <member scope="com::sun::star::util">XNumberFormatTypes::getFormatIndex()</member>
253*b1cdbd2cSJim Jagielski			instead of <member>XNumberFormatCode::getFormatCode()</member>.
254*b1cdbd2cSJim Jagielski	*/
255*b1cdbd2cSJim Jagielski	const short BOOLEAN						= DATETIME_END+1;
256*b1cdbd2cSJim Jagielski
257*b1cdbd2cSJim Jagielski	/**
258*b1cdbd2cSJim Jagielski		Text format
259*b1cdbd2cSJim Jagielski
260*b1cdbd2cSJim Jagielski		@ATTENTION
261*b1cdbd2cSJim Jagielski			<b>Not</b> defined in locale data, but generated by the number
262*b1cdbd2cSJim Jagielski	 		formatter. If you want to access this format you <b>MUST</b>
263*b1cdbd2cSJim Jagielski			do it via <member scope="com::sun::star::util">XNumberFormatTypes::getFormatIndex()</member>
264*b1cdbd2cSJim Jagielski			instead of <member>XNumberFormatCode::getFormatCode()</member>
265*b1cdbd2cSJim Jagielski    */
266*b1cdbd2cSJim Jagielski	const short TEXT						= BOOLEAN+1;
267*b1cdbd2cSJim Jagielski
268*b1cdbd2cSJim Jagielski	/// count of built-in format codes.
269*b1cdbd2cSJim Jagielski	const short INDEX_TABLE_ENTRIES			= TEXT+1;
270*b1cdbd2cSJim Jagielski};
271*b1cdbd2cSJim Jagielski
272*b1cdbd2cSJim Jagielski
273*b1cdbd2cSJim Jagielski//=============================================================================
274*b1cdbd2cSJim Jagielski}; }; }; };
275*b1cdbd2cSJim Jagielski#endif
276*b1cdbd2cSJim Jagielski
277