-
Notifications
You must be signed in to change notification settings - Fork 461
/
unioffice.go
249 lines (218 loc) · 59.6 KB
/
unioffice.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
//
// Copyright 2020 FoxyUtils ehf. All rights reserved.
//
// This is a commercial product and requires a license to operate.
// A trial license can be obtained at https://unidoc.io
//
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
//
// Use of this source code is governed by the UniDoc End User License Agreement
// terms that can be accessed at https://unidoc.io/eula/
/*
Package unioffice provides creation, reading, and writing of ECMA 376 Office Open
XML documents, spreadsheets and presentations. It is still early in
development, but is progressing quickly. This library takes a slightly
different approach from others, in that it starts by trying to support all of
the ECMA-376 standard when marshaling/unmarshaling XML documents. From there it
adds wrappers around the ECMA-376 derived types that provide a more convenient
interface.
The raw XML based types reside in the `schema/“ directory. These types are
always accessible from the wrapper types via a `X() method that returns the
raw type. Except for the base documents (document.Document,
spreadsheet.Workbook and presentation.Presentation), the other wrapper types are
value types with non-pointer methods. They exist solely to modify and return
data from one or more XML types.
The packages of interest are github.com/unidoc/unioffice/document,
unidoc/unioffice/spreadsheet and github.com/unidoc/unioffice/presentation.
*/
package unioffice ;import (_a "encoding/xml";_ef "errors";_ed "fmt";_f "github.com/unidoc/unioffice/algo";_eg "github.com/unidoc/unioffice/common/logger";_d "log";_ca "reflect";_e "strings";_ab "unicode";);
// NeedsSpacePreserve returns true if the string has leading or trailing space.
func NeedsSpacePreserve (s string )bool {if len (s )==0{return false ;};switch s [0]{case '\t','\n','\v','\f','\r',' ',0x85,0xA0:return true ;};switch s [len (s )-1]{case '\t','\n','\v','\f','\r',' ',0x85,0xA0:return true ;};return false ;};
// UnmarshalXML implements the xml.Unmarshaler interface.
func (_eef *XSDAny )UnmarshalXML (d *_a .Decoder ,start _a .StartElement )error {_bf :=any {};if _cfb :=d .DecodeElement (&_bf ,&start );_cfb !=nil {return _cfb ;};_fc (&_bf );_eef .XMLName =_bf .XMLName ;_eef .Attrs =_bf .Attrs ;_eef .Data =_bf .Data ;
_eef .Nodes =_fbg (_bf .Nodes );return nil ;};
// Uint32 returns a copy of v as a pointer.
func Uint32 (v uint32 )*uint32 {_ga :=v ;return &_ga };
// Float32 returns a copy of v as a pointer.
func Float32 (v float32 )*float32 {_bd :=v ;return &_bd };const _cf =true ;type nsSet struct{_ge map[string ]string ;_dag map[string ]string ;_dfa []string ;};
// Uint64 returns a copy of v as a pointer.
func Uint64 (v uint64 )*uint64 {_bc :=v ;return &_bc };
// Float64 returns a copy of v as a pointer.
func Float64 (v float64 )*float64 {_ccb :=v ;return &_ccb };const (ContentTypesFilename ="\u005b\u0043\u006f\u006ete\u006e\u0074\u005f\u0054\u0079\u0070\u0065\u0073\u005d\u002e\u0078\u006d\u006c";BaseRelsFilename ="_\u0072\u0065\u006c\u0073\u002f\u002e\u0072\u0065\u006c\u0073";
);
// Int64 returns a copy of v as a pointer.
func Int64 (v int64 )*int64 {_bg :=v ;return &_bg };
// Any is the interface used for marshaling/unmarshaling xsd:any
type Any interface{MarshalXML (_dg *_a .Encoder ,_df _a .StartElement )error ;UnmarshalXML (_b *_a .Decoder ,_da _a .StartElement )error ;};var _ce =map[string ]interface{}{};const (OfficeDocumentTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072g\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063u\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006de\u006e\u0074";
StylesTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006frg\u002fo\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044o\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0073\u0074\u0079\u006c\u0065\u0073";
ThemeTypeStrict ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0074\u0068\u0065\u006d\u0065";
ControlTypeStrict ="\u0068t\u0074\u0070\u003a\u002f\u002f\u0070\u0075rl\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006dl\u002f\u006ff\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068ip\u0073\u002f\u0063o\u006e\u0074\u0072\u006f\u006c";
SettingsTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002eo\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006ff\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0073e\u0074\u0074i\u006eg\u0073";
ImageTypeStrict ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0069\u006d\u0061\u0067\u0065";
CommentsTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002eo\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006ff\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0063o\u006d\u006de\u006et\u0073";
ThumbnailTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c\u002eo\u0063\u006c\u0063\u002e\u006f\u0072\u0067/\u006f\u006f\u0078m\u006c\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063u\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u006d\u0065\u0074\u0061\u0064\u0061\u0074\u0061\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061\u0069\u006c";
DrawingTypeStrict ="\u0068t\u0074\u0070\u003a\u002f\u002f\u0070\u0075rl\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006dl\u002f\u006ff\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068ip\u0073\u002f\u0064r\u0061\u0077\u0069\u006e\u0067";
ChartTypeStrict ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0063\u0068\u0061\u0072\u0074";
ExtendedPropertiesTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c\u002eo\u0063\u006c\u0063\u002e\u006f\u0072\u0067/\u006f\u006f\u0078m\u006c\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063u\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0065\u0078\u0074\u0065\u006e\u0064\u0065\u0064\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073";
CustomXMLTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0063\u0075s\u0074\u006f\u006d\u0058\u006d\u006c";
WorksheetTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0077\u006fr\u006b\u0073\u0068\u0065\u0065\u0074";
SharedStringsTypeStrict ="h\u0074\u0074p\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078m\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074/\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0073\u0068\u0061\u0072\u0065\u0064\u0053\u0074\u0072\u0069\u006eg\u0073";
SharedStingsTypeStrict =SharedStringsTypeStrict ;TableTypeStrict ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0074\u0061\u0062\u006c\u0065";
HeaderTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006frg\u002fo\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044o\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0068\u0065\u0061\u0064\u0065\u0072";
FooterTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006frg\u002fo\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044o\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0066\u006f\u006f\u0074\u0065\u0072";
NumberingTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006e\u0075m\u0062\u0065\u0072\u0069\u006e\u0067";
FontTableTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0066\u006fn\u0074\u0054\u0061\u0062\u006c\u0065";
WebSettingsTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f/\u0070\u0075\u0072\u006c\u002eo\u0063\u006c\u0063\u002e\u006f\u0072g\u002f\u006f\u006f\u0078\u006dl\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006de\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0077\u0065\u0062\u0053\u0065\u0074\u0074i\u006e\u0067\u0073";
FootNotesTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0066\u006fo\u0074\u006e\u006f\u0074\u0065\u0073";
EndNotesTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002eo\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006ff\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0065n\u0064\u006eo\u0074e\u0073";
SlideTypeStrict ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0073\u006c\u0069\u0064\u0065";
VMLDrawingTypeStrict ="\u0068\u0074t\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006fo\u0078\u006d\u006c\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065l\u0061\u0074i\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0076\u006dl\u0044\u0072\u0061\u0077\u0069\u006e\u0067";
OfficeDocumentType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072g\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006fc\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074";
StylesType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0073\u0074\u0079\u006c\u0065\u0073";
ThemeType ="\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0074\u0068\u0065\u006d\u0065";
ThemeContentType ="\u0061\u0070\u0070\u006c\u0069\u0063\u0061t\u0069\u006f\u006e/\u0076\u006e\u0064.\u006f\u0070e\u006e\u0078\u006d\u006c\u0066\u006fr\u006dat\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0074\u0068\u0065\u006d\u0065\u002b\u0078\u006d\u006c";
SettingsType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0073\u0065\u0074\u0074\u0069\u006eg\u0073";
ImageType ="\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0069\u006d\u0061\u0067\u0065";
ControlType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063h\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006f\u0072\u006d\u0061t\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006es\u0068\u0069\u0070\u0073\u002f\u0063\u006f\u006e\u0074\u0072\u006f\u006c";
CommentsType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0063\u006f\u006d\u006d\u0065\u006et\u0073";
CommentsContentType ="a\u0070pl\u0069c\u0061t\u0069\u006f\u006e\u002f\u0076n\u0064\u002e\u006fp\u0065\u006e\u0078\u006d\u006cf\u006f\u0072\u006da\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006fc\u0075\u006d\u0065nt.\u0073\u0070\u0072\u0065\u0061\u0064s\u0068\u0065\u0065\u0074\u006d\u006c\u002e\u0063\u006f\u006d\u006d\u0065n\u0074s\u002b\u0078\u006d\u006c";
ThumbnailType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u0070\u0061\u0063\u006b\u0061g\u0065\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006d\u0065t\u0061\u0064\u0061\u0074\u0061\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061i\u006c";
DrawingType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063h\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006f\u0072\u006d\u0061t\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006es\u0068\u0069\u0070\u0073\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067";
DrawingContentType ="\u0061\u0070\u0070\u006ci\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006ed\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066f\u0069\u0063\u0065\u0064\u006fc\u0075\u006d\u0065\u006e\u0074\u002e\u0064\u0072\u0061\u0077\u0069\u006e\u0067\u002b\u0078\u006d\u006c";
ChartType ="\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0063\u0068\u0061\u0072\u0074";
ChartContentType ="\u0061\u0070\u0070\u006c\u0069c\u0061\u0074\u0069\u006f\u006e/\u0076n\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066f\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0064\u0072\u0061\u0077\u0069\u006e\u0067\u006d\u006c\u002e\u0063\u0068a\u0072\u0074\u002b\u0078\u006d\u006c";
HyperLinkType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0068\u0079\u0070\u0065\u0072\u006c\u0069\u006e\u006b";
ExtendedPropertiesType ="\u0068t\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069p\u0073\u002f\u0065x\u0074\u0065\u006e\u0064\u0065d\u002d\u0070\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073";
CorePropertiesType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0070\u0061\u0063\u006ba\u0067\u0065\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006d\u0065\u0074\u0061\u0064\u0061\u0074\u0061/\u0063\u006f\u0072\u0065\u002d\u0070\u0072\u006f\u0070e\u0072\u0074i\u0065\u0073";
CorePropertiesAltType ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070e\u006e\u0078\u006dl\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006ff\u0066\u0069c\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u00300\u0036/\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006d\u0065t\u0061\u0064\u0061\u0074\u0061\u002f\u0063\u006f\u0072\u0065\u002d\u0070\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073";
CustomPropertiesType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069c\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0063u\u0073\u0074\u006f\u006d\u002d\u0070\u0072\u006f\u0070e\u0072\u0074i\u0065\u0073";
CustomXMLType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0063\u0075\u0073\u0074\u006f\u006d\u0058\u006d\u006c";
TableStylesType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0074\u0061\u0062\u006c\u0065\u0053\u0074\u0079\u006ce\u0073";
ViewPropertiesType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0076\u0069\u0065\u0077\u0050\u0072\u006f\u0070\u0073";
FontEmbeddingType ="h\u0074tp\u003a/\u002fs\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070e\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061t\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063ume\u006e\u0074\u002f\u0032\u0030\u00306\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069p\u0073/\u0066\u006f\u006e\u0074";
WorksheetType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0077\u006f\u0072\u006b\u0073\u0068\u0065\u0065\u0074";
WorksheetContentType ="\u0061p\u0070l\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064.\u006f\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0073\u0070\u0072\u0065\u0061\u0064\u0073\u0068\u0065\u0065\u0074\u006dl\u002e\u0077\u006f\u0072\u006b\u0073\u0068\u0065e\u0074\u002b\u0078\u006d\u006c";
SharedStringsType ="h\u0074\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002eo\u0072\u0067\u002fo\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074/\u0032\u0030\u0030\u0036/\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0073\u0068\u0061\u0072\u0065\u0064\u0053\u0074r\u0069\u006e\u0067\u0073";
SharedStingsType =SharedStringsType ;SharedStringsContentType ="ap\u0070\u006c\u0069\u0063\u0061\u0074\u0069on\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0073p\u0072\u0065\u0061\u0064\u0073\u0068e\u0065\u0074\u006d\u006c\u002e\u0073\u0068\u0061\u0072e\u0064S\u0074\u0072\u0069\u006e\u0067\u0073\u002b\u0078\u006d\u006c";
SMLStyleSheetContentType ="\u0061\u0070\u0070\u006c\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065n\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063e\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0073\u0070\u0072\u0065\u0061\u0064\u0073\u0068\u0065\u0065\u0074\u006d\u006c\u002e\u0073t\u0079\u006c\u0065\u0073\u002bx\u006d\u006c";
TableType ="\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0074\u0061\u0062\u006c\u0065";
TableContentType ="a\u0070\u0070l\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075m\u0065\u006e\u0074\u002e\u0073\u0070\u0072\u0065\u0061\u0064\u0073\u0068\u0065e\u0074\u006d\u006c\u002e\u0074\u0061\u0062\u006c\u0065\u002b\u0078m\u006c";
HeaderType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0068\u0065\u0061\u0064\u0065\u0072";
FooterType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0066\u006f\u006f\u0074\u0065\u0072";
NumberingType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u006e\u0075\u006d\u0062\u0065\u0072\u0069\u006e\u0067";
FontTableType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0066\u006f\u006e\u0074\u0054\u0061\u0062\u006c\u0065";
WebSettingsType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0077\u0065\u0062\u0053\u0065\u0074\u0074\u0069\u006eg\u0073";
FootNotesType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0066\u006f\u006f\u0074\u006e\u006f\u0074\u0065\u0073";
EndNotesType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0065\u006e\u0064\u006e\u006f\u0074e\u0073";
SlideType ="\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0073\u006c\u0069\u0064\u0065";
SlideContentType ="\u0061\u0070\u0070\u006c\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065n\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063e\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u006d\u006c\u002es\u006c\u0069\u0064\u0065\u002bx\u006d\u006c";
SlideMasterType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0073\u006c\u0069\u0064\u0065\u004d\u0061\u0073\u0074e\u0072";
SlideMasterContentType ="\u0061\u0070\u0070\u006c\u0069c\u0061\u0074\u0069\u006f\u006e\u002f\u0076n\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061t\u0069\u006f\u006e\u006d\u006c\u002e\u0073\u006c\u0069\u0064\u0065\u004da\u0073\u0074\u0065\u0072\u002b\u0078m\u006c";
SlideLayoutType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0073\u006c\u0069\u0064\u0065\u004c\u0061\u0079\u006fu\u0074";
SlideLayoutContentType ="\u0061\u0070\u0070\u006c\u0069c\u0061\u0074\u0069\u006f\u006e\u002f\u0076n\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061t\u0069\u006f\u006e\u006d\u006c\u002e\u0073\u006c\u0069\u0064\u0065\u004ca\u0079\u006f\u0075\u0074\u002b\u0078m\u006c";
PresentationPropertiesType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0070\u0072\u0065\u0073\u0050\u0072\u006f\u0070\u0073";
HandoutMasterType ="h\u0074\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002eo\u0072\u0067\u002fo\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074/\u0032\u0030\u0030\u0036/\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0068\u0061\u006e\u0064\u006f\u0075\u0074\u004da\u0073\u0074\u0065\u0072";
NotesMasterType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u006e\u006f\u0074\u0065\u0073\u004d\u0061\u0073\u0074e\u0072";
VMLDrawingType ="\u0068\u0074tp\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002fof\u0066\u0069c\u0065D\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u00300\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0076m\u006c\u0044\u0072\u0061\u0077\u0069\u006e\u0067";
VMLDrawingContentType ="\u0061\u0070\u0070\u006c\u0069\u0063a\u0074\u0069\u006fn\u002f\u0076\u006ed\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006fr\u006d\u0061\u0074\u0073\u002dof\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0076\u006d\u006c\u0044\u0072\u0061\u0077\u0069\u006e\u0067";
);
// Int32 returns a copy of v as a pointer.
func Int32 (v int32 )*int32 {_cd :=v ;return &_cd };
// DocType represents one of the three document types supported (docx/xlsx/pptx)
type DocType byte ;
// RegisterConstructor registers a constructor function used for unmarshaling
// xsd:any elements.
func RegisterConstructor (ns ,name string ,fn interface{}){_ce [ns +"\u002f"+name ]=fn };
// Uint16 returns a copy of v as a pointer.
func Uint16 (v uint16 )*uint16 {_cgd :=v ;return &_cgd };
// CreateElement creates an element with the given namespace and name. It is
// used to unmarshal some xsd:any elements to the appropriate concrete type.
func CreateElement (start _a .StartElement )(Any ,error ){_dfb ,_dc :=_ce [start .Name .Space +"\u002f"+start .Name .Local ];if !_dc {_ac :=&XSDAny {};return _ac ,nil ;};_aba :=_ca .ValueOf (_dfb );_cc :=_aba .Call (nil );if len (_cc )!=1{return nil ,_ed .Errorf ("\u0063\u006fn\u0073\u0074\u0072\u0075\u0063t\u006f\u0072\u0020\u0066\u0075n\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u006f\u006e\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0064",len (_cc ));
};_dae ,_dc :=_cc [0].Interface ().(Any );if !_dc {return nil ,_ef .New ("\u0063o\u006e\u0073t\u0072\u0075\u0063\u0074o\u0072\u0020\u0066u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0068ou\u006c\u0064\u0020r\u0065\u0074u\u0072\u006e\u0020\u0061\u006e\u0079 \u0027\u0041n\u0079\u0027");
};return _dae ,nil ;};
// XSDAny is used to marshal/unmarshal xsd:any types in the OOXML schema.
type XSDAny struct{XMLName _a .Name ;Attrs []_a .Attr ;Data []byte ;Nodes []*XSDAny ;};
// Stringf formats according to a format specifier and returns a pointer to the
// resulting string.
func Stringf (f string ,args ...interface{})*string {_cb :=_ed .Sprintf (f ,args ...);return &_cb };
// DisableLogging sets the Log function to a no-op so that any log messages are
// silently discarded.
func DisableLogging (){Log =func (string ,...interface{}){}};
// Uint8 returns a copy of v as a pointer.
func Uint8 (v uint8 )*uint8 {_db :=v ;return &_db };
// String returns a copy of v as a pointer.
func String (v string )*string {_aga :=v ;return &_aga };type any struct{XMLName _a .Name ;Attrs []_a .Attr `xml:",any,attr"`;Nodes []*any `xml:",any"`;Data []byte `xml:",chardata"`;};const (Unknown DocType =iota ;DocTypeSpreadsheet ;DocTypeDocument ;DocTypePresentation ;
);const MinGoVersion =_cf ;
// AddPreserveSpaceAttr adds an xml:space="preserve" attribute to a start
// element if it is required for the string s.
func AddPreserveSpaceAttr (se *_a .StartElement ,s string ){if NeedsSpacePreserve (s ){se .Attr =append (se .Attr ,_a .Attr {Name :_a .Name {Local :"\u0078m\u006c\u003a\u0073\u0070\u0061\u0063e"},Value :"\u0070\u0072\u0065\u0073\u0065\u0072\u0076\u0065"});
};};var _cba =func ()map[string ]string {_cbag :=map[string ]string {};for _fd ,_acb :=range _eae {_cbag [_acb ]=_fd ;};return _cbag ;}();
// AbsoluteImageFilename returns the full path to an image from the root of the
// zip container.
func AbsoluteImageFilename (dt DocType ,index int ,fileExtension string )string {_g :=AbsoluteFilename (dt ,ImageType ,index );return _g [0:len (_g )-3]+fileExtension ;};func (_gc nsSet )applyToNode (_gdd *any ){if _gdd .XMLName .Space ==""{return ;};_edd :=_gc .getPrefix (_gdd .XMLName .Space );
_gdd .XMLName .Space ="";_gdd .XMLName .Local =_edd +"\u003a"+_gdd .XMLName .Local ;_dbb :=_gdd .Attrs ;_gdd .Attrs =nil ;for _ ,_gacb :=range _dbb {if _gacb .Name .Space =="\u0078\u006d\u006cn\u0073"{continue ;};if _gacb .Name .Space !=""{_bdb :=_gc .getPrefix (_gacb .Name .Space );
_gacb .Name .Space ="";_gacb .Name .Local =_bdb +"\u003a"+_gacb .Name .Local ;};_gdd .Attrs =append (_gdd .Attrs ,_gacb );};for _ ,_ede :=range _gdd .Nodes {_gc .applyToNode (_ede );};};func _edf (_bdba []*XSDAny )[]*any {_fcf :=[]*any {};for _ ,_aad :=range _bdba {_gce :=&any {};
_gce .XMLName =_aad .XMLName ;_egc :=[]_a .Attr {};for _ ,_dagg :=range _aad .Attrs {if _dagg .Name .Local !="\u0078\u006d\u006cn\u0073"{_egc =append (_egc ,_dagg );};};_gce .Attrs =_egc ;_gce .Data =_aad .Data ;_gce .Nodes =_edf (_aad .Nodes );_fcf =append (_fcf ,_gce );
};return _fcf ;};
// AbsoluteFilename returns the full path to a file from the root of the zip
// container. Index is used in some cases for files which there may be more than
// one of (e.g. worksheets/drawings/charts)
func AbsoluteFilename (dt DocType ,typ string ,index int )string {switch typ {case CorePropertiesType :return "\u0064\u006f\u0063\u0050\u0072\u006f\u0070\u0073\u002f\u0063\u006f\u0072e\u002e\u0078\u006d\u006c";case CustomPropertiesType :return "\u0064\u006f\u0063\u0050ro\u0070\u0073\u002f\u0063\u0075\u0073\u0074\u006f\u006d\u002e\u0078\u006d\u006c";
case ExtendedPropertiesType ,ExtendedPropertiesTypeStrict :return "\u0064\u006fc\u0050\u0072\u006fp\u0073\u002f\u0061\u0070\u0070\u002e\u0078\u006d\u006c";case ThumbnailType ,ThumbnailTypeStrict :return "\u0064\u006f\u0063Pr\u006f\u0070\u0073\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061\u0069\u006c\u002e\u006a\u0070\u0065\u0067";
case CustomXMLType :return _ed .Sprintf ("c\u0075s\u0074\u006f\u006d\u0058\u006d\u006c\u002f\u0069t\u0065\u006d\u0025\u0064.x\u006d\u006c",index );case PresentationPropertiesType :return "\u0070\u0070\u0074\u002f\u0070\u0072\u0065\u0073\u0050\u0072\u006f\u0070s\u002e\u0078\u006d\u006c";
case ViewPropertiesType :switch dt {case DocTypePresentation :return "\u0070\u0070\u0074\u002f\u0076\u0069\u0065\u0077\u0050\u0072\u006f\u0070s\u002e\u0078\u006d\u006c";case DocTypeSpreadsheet :return "\u0078\u006c/\u0076\u0069\u0065w\u0050\u0072\u006f\u0070\u0073\u002e\u0078\u006d\u006c";
case DocTypeDocument :return "\u0077o\u0072d\u002f\u0076\u0069\u0065\u0077P\u0072\u006fp\u0073\u002e\u0078\u006d\u006c";};case TableStylesType :switch dt {case DocTypePresentation :return "\u0070\u0070\u0074\u002fta\u0062\u006c\u0065\u0053\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c";
case DocTypeSpreadsheet :return "\u0078l\u002ft\u0061\u0062\u006c\u0065\u0053t\u0079\u006ce\u0073\u002e\u0078\u006d\u006c";case DocTypeDocument :return "w\u006fr\u0064\u002f\u0074\u0061\u0062\u006c\u0065\u0053t\u0079\u006c\u0065\u0073.x\u006d\u006c";};
case HyperLinkType :return "";case OfficeDocumentType ,OfficeDocumentTypeStrict :switch dt {case DocTypeSpreadsheet :return "\u0078l\u002fw\u006f\u0072\u006b\u0062\u006f\u006f\u006b\u002e\u0078\u006d\u006c";case DocTypeDocument :return "\u0077\u006f\u0072\u0064\u002f\u0064\u006f\u0063\u0075\u006d\u0065\u006et\u002e\u0078\u006d\u006c";
case DocTypePresentation :return "p\u0070t\u002f\u0070\u0072\u0065\u0073\u0065\u006e\u0074a\u0074\u0069\u006f\u006e.x\u006d\u006c";default:_eg .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );
};case ThemeType ,ThemeTypeStrict ,ThemeContentType :switch dt {case DocTypeSpreadsheet :return _ed .Sprintf ("x\u006c/\u0074\u0068\u0065\u006d\u0065\u002f\u0074\u0068e\u006d\u0065\u0025\u0064.x\u006d\u006c",index );case DocTypeDocument :return _ed .Sprintf ("\u0077\u006f\u0072\u0064/t\u0068\u0065\u006d\u0065\u002f\u0074\u0068\u0065\u006d\u0065\u0025\u0064\u002e\u0078m\u006c",index );
case DocTypePresentation :return _ed .Sprintf ("p\u0070\u0074\u002f\u0074he\u006de\u002f\u0074\u0068\u0065\u006de\u0025\u0064\u002e\u0078\u006d\u006c",index );default:_eg .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );
};case StylesType ,StylesTypeStrict :switch dt {case DocTypeSpreadsheet :return "\u0078\u006c\u002f\u0073\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c";case DocTypeDocument :return "\u0077o\u0072d\u002f\u0073\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c";
case DocTypePresentation :return "\u0070\u0070\u0074\u002f\u0073\u0074\u0079\u006c\u0065s\u002e\u0078\u006d\u006c";default:_eg .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );
};case ChartType ,ChartTypeStrict ,ChartContentType :switch dt {case DocTypeSpreadsheet :return _ed .Sprintf ("x\u006c\u002f\u0063\u0068ar\u0074s\u002f\u0063\u0068\u0061\u0072t\u0025\u0064\u002e\u0078\u006d\u006c",index );case DocTypeDocument :return _ed .Sprintf ("\u0077\u006f\u0072d/\u0063\u0068\u0061\u0072\u0074\u0073\u002f\u0063\u0068\u0061\u0072\u0074\u0025\u0064\u002e\u0078\u006d\u006c",index );
case DocTypePresentation :return _ed .Sprintf ("\u0070\u0070\u0074\u002fch\u0061\u0072\u0074\u0073\u002f\u0063\u0068\u0061\u0072\u0074\u0025\u0064\u002e\u0078m\u006c",index );default:_eg .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );
};case TableType ,TableTypeStrict ,TableContentType :return _ed .Sprintf ("x\u006c\u002f\u0074\u0061bl\u0065s\u002f\u0074\u0061\u0062\u006ce\u0025\u0064\u002e\u0078\u006d\u006c",index );case DrawingType ,DrawingTypeStrict ,DrawingContentType :switch dt {case DocTypeSpreadsheet :return _ed .Sprintf ("\u0078l\u002f\u0064\u0072\u0061w\u0069\u006e\u0067\u0073\u002fd\u0072a\u0077i\u006e\u0067\u0025\u0064\u002e\u0078\u006dl",index );
default:_eg .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );};case CommentsType ,CommentsTypeStrict ,CommentsContentType :switch dt {case DocTypeSpreadsheet :return _ed .Sprintf ("\u0078\u006c\u002f\u0063\u006f\u006d\u006d\u0065\u006e\u0074\u0073\u0025d\u002e\u0078\u006d\u006c",index );
default:_eg .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );};case VMLDrawingType ,VMLDrawingTypeStrict ,VMLDrawingContentType :switch dt {case DocTypeSpreadsheet :return _ed .Sprintf ("\u0078\u006c\u002f\u0064r\u0061\u0077\u0069\u006e\u0067\u0073\u002f\u0076\u006d\u006cD\u0072a\u0077\u0069\u006e\u0067\u0025\u0064\u002ev\u006d\u006c",index );
default:_eg .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );};case ImageType ,ImageTypeStrict :switch dt {case DocTypeDocument :return _ed .Sprintf ("\u0077\u006f\u0072\u0064/m\u0065\u0064\u0069\u0061\u002f\u0069\u006d\u0061\u0067\u0065\u0025\u0064\u002e\u0070n\u0067",index );
case DocTypeSpreadsheet :return _ed .Sprintf ("x\u006c/\u006d\u0065\u0064\u0069\u0061\u002f\u0069\u006da\u0067\u0065\u0025\u0064.p\u006e\u0067",index );case DocTypePresentation :return _ed .Sprintf ("p\u0070\u0074\u002f\u006ded\u0069a\u002f\u0069\u006d\u0061\u0067e\u0025\u0064\u002e\u0070\u006e\u0067",index );
default:_eg .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );};case WorksheetType ,WorksheetTypeStrict ,WorksheetContentType :return _ed .Sprintf ("\u0078l\u002f\u0077\u006f\u0072k\u0073\u0068\u0065\u0065\u0074s\u002fs\u0068e\u0065\u0074\u0025\u0064\u002e\u0078\u006dl",index );
case SharedStringsType ,SharedStringsTypeStrict ,SharedStringsContentType :return "x\u006c/\u0073\u0068\u0061\u0072\u0065\u0064\u0053\u0074r\u0069\u006e\u0067\u0073.x\u006d\u006c";case FontTableType ,FontTableTypeStrict :return "\u0077o\u0072d\u002f\u0066\u006f\u006e\u0074T\u0061\u0062l\u0065\u002e\u0078\u006d\u006c";
case EndNotesType ,EndNotesTypeStrict :return "\u0077\u006f\u0072\u0064\u002f\u0065\u006e\u0064\u006e\u006f\u0074\u0065s\u002e\u0078\u006d\u006c";case FootNotesType ,FootNotesTypeStrict :return "\u0077o\u0072d\u002f\u0066\u006f\u006f\u0074n\u006f\u0074e\u0073\u002e\u0078\u006d\u006c";
case NumberingType ,NumberingTypeStrict :return "\u0077o\u0072d\u002f\u006e\u0075\u006d\u0062e\u0072\u0069n\u0067\u002e\u0078\u006d\u006c";case WebSettingsType ,WebSettingsTypeStrict :return "w\u006fr\u0064\u002f\u0077\u0065\u0062\u0053\u0065\u0074t\u0069\u006e\u0067\u0073.x\u006d\u006c";
case SettingsType ,SettingsTypeStrict :return "\u0077\u006f\u0072\u0064\u002f\u0073\u0065\u0074\u0074\u0069\u006e\u0067s\u002e\u0078\u006d\u006c";case HeaderType ,HeaderTypeStrict :return _ed .Sprintf ("\u0077\u006f\u0072\u0064\u002f\u0068\u0065\u0061\u0064\u0065\u0072\u0025d\u002e\u0078\u006d\u006c",index );
case FooterType ,FooterTypeStrict :return _ed .Sprintf ("\u0077\u006f\u0072\u0064\u002f\u0066\u006f\u006f\u0074\u0065\u0072\u0025d\u002e\u0078\u006d\u006c",index );case ControlType ,ControlTypeStrict :switch dt {case DocTypeSpreadsheet :return _ed .Sprintf ("\u0078l\u002f\u0061\u0063\u0074\u0069\u0076\u0065\u0058\u002f\u0061\u0063t\u0069\u0076\u0065\u0058\u0025\u0064\u002e\u0078\u006d\u006c",index );
case DocTypeDocument :return _ed .Sprintf ("\u0077\u006f\u0072\u0064\u002f\u0061\u0063\u0074\u0069\u0076\u0065X\u002f\u0061\u0063\u0074\u0069\u0076\u0065\u0058\u0025\u0064.\u0078\u006d\u006c",index );case DocTypePresentation :return _ed .Sprintf ("\u0070p\u0074\u002f\u0061\u0063t\u0069\u0076\u0065\u0058\u002fa\u0063t\u0069v\u0065\u0058\u0025\u0064\u002e\u0078\u006dl",index );
default:_eg .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );};case SlideType ,SlideTypeStrict :return _ed .Sprintf ("\u0070\u0070\u0074\u002fsl\u0069\u0064\u0065\u0073\u002f\u0073\u006c\u0069\u0064\u0065\u0025\u0064\u002e\u0078m\u006c",index );
case SlideLayoutType :return _ed .Sprintf ("\u0070\u0070\u0074/s\u006c\u0069\u0064\u0065\u004c\u0061\u0079\u006f\u0075t\u0073/\u0073l\u0069d\u0065\u004c\u0061\u0079\u006f\u0075\u0074\u0025\u0064\u002e\u0078\u006d\u006c",index );case SlideMasterType :return _ed .Sprintf ("\u0070\u0070\u0074/s\u006c\u0069\u0064\u0065\u004d\u0061\u0073\u0074\u0065r\u0073/\u0073l\u0069d\u0065\u004d\u0061\u0073\u0074\u0065\u0072\u0025\u0064\u002e\u0078\u006d\u006c",index );
case HandoutMasterType :return _ed .Sprintf ("\u0070\u0070\u0074\u002f\u0068\u0061\u006e\u0064\u006f\u0075\u0074\u004d\u0061\u0073\u0074\u0065\u0072\u0073\u002f\u0068\u0061\u006e\u0064\u006fu\u0074\u004d\u0061\u0073\u0074e\u0072\u0025d\u002e\u0078\u006d\u006c",index );
case NotesMasterType :return _ed .Sprintf ("\u0070\u0070\u0074/n\u006f\u0074\u0065\u0073\u004d\u0061\u0073\u0074\u0065r\u0073/\u006eo\u0074e\u0073\u004d\u0061\u0073\u0074\u0065\u0072\u0025\u0064\u002e\u0078\u006d\u006c",index );default:_eg .Log .Debug ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0073",typ );
};return "";};func (_gg *XSDAny )collectNS (_dbe *nsSet ){if _gg .XMLName .Space !=""{_dbe .getPrefix (_gg .XMLName .Space );};for _ ,_cfd :=range _gg .Attrs {if _cfd .Name .Space !=""&&_cfd .Name .Space !="\u0078\u006d\u006cn\u0073"{_dbe .getPrefix (_cfd .Name .Space );
};};for _ ,_bbd :=range _gg .Nodes {_bbd .collectNS (_dbe );};};
// Bool returns a copy of v as a pointer.
func Bool (v bool )*bool {_bcb :=v ;return &_bcb };
// MarshalXML implements the xml.Marshaler interface.
func (_ba *any )MarshalXML (e *_a .Encoder ,start _a .StartElement )error {start .Name =_ba .XMLName ;start .Attr =_ba .Attrs ;if _eda :=e .EncodeToken (start );_eda !=nil {return _eda ;};if len (_ba .Nodes )> 0{for _ ,_be :=range _ba .Nodes {if _dbc :=e .Encode (_be );
_dbc !=nil {return _dbc ;};};};if len (_ba .Data )> 0{if _agc :=e .EncodeToken (_a .CharData (_ba .Data ));_agc !=nil {return _agc ;};};return e .EncodeToken (start .End ());};func _fbg (_dfab []*any )[]*XSDAny {_ega :=[]*XSDAny {};for _ ,_eba :=range _dfab {_eaf :=&XSDAny {};
_eaf .XMLName =_eba .XMLName ;_eaf .Attrs =_eba .Attrs ;_eaf .Data =_eba .Data ;_eaf .Nodes =_fbg (_eba .Nodes );_ega =append (_ega ,_eaf );};return _ega ;};var Log =_d .Printf ;
// RelativeImageFilename returns an image filename relative to the source file referenced
// from a relationships file. It is identical to RelativeFilename but is used particularly for images
// in order to handle different image formats.
func RelativeImageFilename (dt DocType ,relToTyp ,typ string ,index int ,fileExtension string )string {_abf :=RelativeFilename (dt ,relToTyp ,typ ,index );return _abf [0:len (_abf )-3]+fileExtension ;};func (_agcd *nsSet )getPrefix (_efb string )string {if _bfa ,_gea :=_cba [_efb ];
_gea {if _ ,_dbd :=_agcd ._dag [_bfa ];!_dbd {_agcd ._dag [_bfa ]=_efb ;_agcd ._ge [_efb ]=_bfa ;_agcd ._dfa =append (_agcd ._dfa ,_bfa );};return _bfa ;};_efb =_e .TrimFunc (_efb ,func (_ff rune )bool {return !_ab .IsLetter (_ff )});if _ceg ,_dbf :=_agcd ._ge [_efb ];
_dbf {return _ceg ;};_gd :=_e .Split (_efb ,"\u002f");_gd =_e .Split (_gd [len (_gd )-1],"\u003a");_dcb :=_gd [len (_gd )-1];_addf :=0;_gb :=[]byte {};for {if _addf < len (_dcb ){_gb =append (_gb ,_dcb [_addf ]);}else {_gb =append (_gb ,'_');};_addf ++;
if _ ,_dd :=_agcd ._dag [string (_gb )];!_dd {_agcd ._dag [string (_gb )]=_efb ;_agcd ._ge [_efb ]=string (_gb );_agcd ._dfa =append (_agcd ._dfa ,string (_gb ));return string (_gb );};};};var _eae =map[string ]string {"\u0061":"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065m\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006cf\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067m\u006c\u002f\u0032\u0030\u0030\u0036\u002f\u006d\u0061\u0069\u006e","\u0064\u0063":"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0072\u0067/\u0064c\u002f\u0065\u006c\u0065\u006d\u0065\u006e\u0074\u0073\u002f\u0031\u002e\u0031\u002f","\u0064c\u0074\u0065\u0072\u006d\u0073":"\u0068t\u0074\u0070\u003a\u002f/\u0070\u0075\u0072\u006c\u002eo\u0072g\u002fd\u0063\u002f\u0074\u0065\u0072\u006d\u0073/","\u006d\u0063":"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006d\u0061\u0072\u006b\u0075\u0070\u002d\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006ci\u0074\u0079\u002f\u0032\u00300\u0036","\u006d\u006f":"\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068e\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066fi\u0063\u0065\u002f\u006d\u0061\u0063\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0032\u0030\u0030\u0038\u002f\u006d\u0061\u0069\u006e","\u0077":"ht\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073.\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065s\u0073i\u006e\u0067\u006d\u006c\u002f\u0032\u0030\u00306\u002fm\u0061\u0069n","\u0077\u0031\u0030":"\u0075\u0072n\u003a\u0073\u0063\u0068e\u006d\u0061s\u002d\u006d\u0069\u0063\u0072\u006f\u0073\u006ff\u0074\u002d\u0063\u006f\u006d\u003a\u006f\u0066\u0066\u0069\u0063\u0065:\u0077\u006f\u0072\u0064","\u0077\u0031\u0034":"\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u006d\u006c","\u0077\u0031\u0035":"\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0032\u002f\u0077\u006f\u0072\u0064\u006d\u006c","\u0077\u006e\u0065":"\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0030\u0036\u002f\u0077\u006f\u0072\u0064\u006d\u006c","\u0077\u0070":"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0064\u0072a\u0077\u0069\u006e\u0067\u006d\u006c\u002f\u0032\u0030\u0030\u0036\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069n\u0067\u0044\u0072\u0061\u0077i\u006e\u0067","\u0077\u0070\u0031\u0034":"\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006d\u0069\u0063\u0072o\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006fr\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063e\u0073\u0073\u0069\u006e\u0067\u0044\u0072\u0061w\u0069\u006e\u0067","\u0077\u0070\u0063":"\u0068\u0074t\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006ff\u0074\u002e\u0063\u006f\u006d\u002fo\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u00310\u002f\u0077o\u0072\u0064\u0070\u0072o\u0063\u0065\u0073\u0073\u0069n\u0067\u0043\u0061\u006e\u0076\u0061\u0073","\u0077\u0070\u0067":"\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065m\u0061s\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069c\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069n\u0067\u0047\u0072\u006f\u0075\u0070","\u0077\u0070\u0069":"\u0068t\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d/\u006f\u0066\u0066i\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072d\u0070\u0072oc\u0065\u0073\u0073i\u006e\u0067\u0049\u006e\u006b","\u0077\u0070\u0073":"\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065m\u0061s\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069c\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069n\u0067\u0053\u0068\u0061\u0070\u0065","\u0078\u0073\u0069":"\u0068\u0074\u0074\u0070\u003a/\u002f\u0077\u0077\u0077\u002e\u0077\u0033\u002e\u006f\u0072\u0067\u002f\u00320\u0030\u0031\u002f\u0058\u004d\u004c\u0053\u0063\u0068\u0065\u006d\u0061\u002d\u0069\u006e\u0073\u0074\u0061\u006e\u0063\u0065","\u0078\u0031\u0035a\u0063":"ht\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0073\u0070\u0072\u0065\u0061\u0064\u0073h\u0065e\u0074\u006d\u006c\u002f\u0032\u0030\u0031\u0030/\u00311\u002f\u0061c","\u0077\u0031\u0036s\u0065":"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006d\u0069\u0063\u0072\u006fs\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006ff\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u00315\u002f\u0077\u006f\u0072\u0064\u006dl\u002f\u0073\u0079m\u0065\u0078","\u0077\u0031\u0036\u0063\u0069\u0064":"\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068e\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066fi\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0036\u002f\u0077\u006f\u0072\u0064\u006d\u006c\u002f\u0063\u0069\u0064","\u0077\u0031\u0036":"\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0038\u002f\u0077\u006f\u0072\u0064\u006d\u006c","\u0077\u0031\u0036\u0063\u0065\u0078":"\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068e\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066fi\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0038\u002f\u0077\u006f\u0072\u0064\u006d\u006c\u002f\u0063\u0065\u0078","\u0078\u006d\u006c":"\u0068\u0074tp\u003a\u002f\u002fw\u0077\u0077\u002e\u00773.o\u0072g/\u0058\u004d\u004c\u002f\u0031\u0039\u00398/\u006e\u0061\u006d\u0065\u0073\u0070\u0061c\u0065"};
var _fb =map[string ]bool {"\u0077\u0031\u0030":true ,"\u0077\u0031\u0034":true ,"\u0077\u0070\u0031\u0034":true ,"\u0077\u0031\u0035":true ,"\u0078\u0031\u0035a\u0063":true ,"\u0077\u0031\u0036s\u0065":true ,"\u0077\u0031\u0036\u0063\u0069\u0064":true ,"\u0077\u0031\u0036":true ,"\u0077\u0031\u0036\u0063\u0065\u0078":true };
// RelativeFilename returns a filename relative to the source file referenced
// from a relationships file. Index is used in some cases for files which there
// may be more than one of (e.g. worksheets/drawings/charts)
func RelativeFilename (dt DocType ,relToTyp ,typ string ,index int )string {_de :=AbsoluteFilename (dt ,typ ,index );if relToTyp ==""{return _de ;};_ag :=AbsoluteFilename (dt ,relToTyp ,index );_ad :=_e .Split (_ag ,"\u002f");_def :=_e .Split (_de ,"\u002f");
_cg :=0;for _ea :=0;_ea < len (_ad );_ea ++{if _ad [_ea ]==_def [_ea ]{_cg ++;};if _ea +1==len (_def ){break ;};};_ad =_ad [_cg :];_def =_def [_cg :];_aca :=len (_ad )-1;if _aca > 0{return _f .RepeatString ("\u002e\u002e\u002f",_aca )+_e .Join (_def ,"\u002f");
};return _e .Join (_def ,"\u002f");};
// Int8 returns a copy of v as a pointer.
func Int8 (v int8 )*int8 {_dga :=v ;return &_dga };func _fc (_bb *any ){for _ ,_ee :=range _bb .Nodes {_fc (_ee );};};
// MarshalXML implements the xml.Marshaler interface.
func (_ada *XSDAny )MarshalXML (e *_a .Encoder ,start _a .StartElement )error {start .Name =_ada .XMLName ;start .Attr =_ada .Attrs ;_cce :=any {};_cce .XMLName =_ada .XMLName ;_cce .Attrs =_ada .Attrs ;_cce .Data =_ada .Data ;_cce .Nodes =_edf (_ada .Nodes );
_abd :=[]string {};_aa :=false ;_gac :=nsSet {_ge :map[string ]string {},_dag :map[string ]string {}};_ada .collectNS (&_gac );_gac .applyToNode (&_cce );for _ ,_ec :=range _gac ._dfa {if _ ,_ccg :=_fb [_ec ];_ccg {_abd =append (_abd ,_ec );};_add :=_gac ._dag [_ec ];
_cce .Attrs =append (_cce .Attrs ,_a .Attr {Name :_a .Name {Local :"\u0078\u006d\u006c\u006e\u0073\u003a"+_ec },Value :_add });if _ec =="\u006d\u0063"{_aa =true ;};};for _ ,_efg :=range _cce .Attrs {if _efg .Name .Local =="\u006d\u0063\u003aI\u0067\u006e\u006f\u0072\u0061\u0062\u006c\u0065"{_aa =false ;
break ;};};if _aa &&len (_abd )> 0{_cce .Attrs =append (_cce .Attrs ,_a .Attr {Name :_a .Name {Local :"\u006d\u0063\u003aI\u0067\u006e\u006f\u0072\u0061\u0062\u006c\u0065"},Value :_e .Join (_abd ,"\u0020")});};return e .Encode (&_cce );};