DocumentServer/OfficeWeb/sdk/Excel/model/Serialize.js
nikolay ivanov a8be6b9e72 init repo
2014-07-05 18:22:49 +00:00

8478 lines
402 KiB
JavaScript

/*
* (c) Copyright Ascensio System SIA 2010-2014
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
var c_oSerFormat = {
Version: 2,
Signature: "XLSY"
};
var g_nCurFileVersion = c_oSerFormat.Version;
var c_oSerTableTypes = {
Other: 0,
SharedStrings: 1,
Styles: 2,
Workbook: 3,
Worksheets: 4,
CalcChain: 5
};
var c_oSerStylesTypes = {
Borders: 0,
Border: 1,
CellXfs: 2,
Xfs: 3,
Fills: 4,
Fill: 5,
Fonts: 6,
Font: 7,
NumFmts: 8,
NumFmt: 9,
Dxfs: 10,
Dxf: 11,
TableStyles: 12,
CellStyleXfs: 14,
CellStyles: 15,
CellStyle: 16
};
var c_oSerBorderTypes = {
Bottom: 0,
Diagonal: 1,
End: 2,
Horizontal: 3,
Start: 4,
Top: 5,
Vertical: 6,
DiagonalDown: 7,
DiagonalUp: 8,
Outline: 9
};
var c_oSerBorderPropTypes = {
Color: 0,
Style: 1
};
var c_oSerXfsTypes = {
ApplyAlignment: 0,
ApplyBorder: 1,
ApplyFill: 2,
ApplyFont: 3,
ApplyNumberFormat: 4,
ApplyProtection: 5,
BorderId: 6,
FillId: 7,
FontId: 8,
NumFmtId: 9,
PivotButton: 10,
QuotePrefix: 11,
XfId: 12,
Aligment: 13,
Protection: 14
};
var c_oSerAligmentTypes = {
Horizontal: 0,
Indent: 1,
JustifyLastLine: 2,
ReadingOrder: 3,
RelativeIndent: 4,
ShrinkToFit: 5,
TextRotation: 6,
Vertical: 7,
WrapText: 8
};
var c_oSerFillTypes = {
PatternFill: 0,
PatternFillBgColor: 1
};
var c_oSerFontTypes = {
Bold: 0,
Color: 1,
Italic: 3,
RFont: 4,
Strike: 5,
Sz: 6,
Underline: 7,
VertAlign: 8,
Scheme: 9
};
var c_oSerNumFmtTypes = {
FormatCode: 0,
NumFmtId: 1
};
var c_oSerSharedStringTypes = {
Si: 0,
Run: 1,
RPr: 2,
Text: 3
};
var c_oSerWorkbookTypes = {
WorkbookPr: 0,
BookViews: 1,
WorkbookView: 2,
DefinedNames: 3,
DefinedName: 4
};
var c_oSerWorkbookPrTypes = {
Date1904: 0,
DateCompatibility: 1
};
var c_oSerWorkbookViewTypes = {
ActiveTab: 0
};
var c_oSerDefinedNameTypes = {
Name: 0,
Ref: 1,
LocalSheetId: 2
};
var c_oSerWorksheetsTypes = {
Worksheet: 0,
WorksheetProp: 1,
Cols: 2,
Col: 3,
Dimension: 4,
Hyperlinks: 5,
Hyperlink: 6,
MergeCells: 7,
MergeCell: 8,
SheetData: 9,
Row: 10,
SheetFormatPr: 11,
Drawings: 12,
Drawing: 13,
PageMargins: 14,
PageSetup: 15,
PrintOptions: 16,
Autofilter: 17,
TableParts: 18,
Comments: 19,
Comment: 20,
ConditionalFormatting: 21,
SheetViews: 22,
SheetView: 23,
SheetPr: 24
};
var c_oSerWorksheetPropTypes = {
Name: 0,
SheetId: 1,
State: 2
};
var c_oSerWorksheetColTypes = {
BestFit: 0,
Hidden: 1,
Max: 2,
Min: 3,
Style: 4,
Width: 5,
CustomWidth: 6
};
var c_oSerHyperlinkTypes = {
Ref: 0,
Hyperlink: 1,
Location: 2,
Tooltip: 3
};
var c_oSerSheetFormatPrTypes = {
DefaultColWidth: 0,
DefaultRowHeight: 1,
BaseColWidth: 2
};
var c_oSerRowTypes = {
Row: 0,
Style: 1,
Height: 2,
Hidden: 3,
Cells: 4,
Cell: 5,
CustomHeight: 6
};
var c_oSerCellTypes = {
Ref: 0,
Style: 1,
Type: 2,
Value: 3,
Formula: 4
};
var c_oSerFormulaTypes = {
Aca: 0,
Bx: 1,
Ca: 2,
Del1: 3,
Del2: 4,
Dt2D: 5,
Dtr: 6,
R1: 7,
R2: 8,
Ref: 9,
Si: 10,
T: 11,
Text: 12
};
var c_oSer_DrawingFromToType = {
Col: 0,
ColOff: 1,
Row: 2,
RowOff: 3
};
var c_oSer_DrawingPosType = {
X: 0,
Y: 1
};
var c_oSer_DrawingExtType = {
Cx: 0,
Cy: 1
};
var c_oSer_OtherType = {
Media: 0,
MediaItem: 1,
MediaId: 2,
MediaSrc: 3,
EmbeddedFonts: 4,
Theme: 5
};
var c_oSer_CalcChainType = {
CalcChainItem: 0,
Array: 1,
SheetId: 2,
DependencyLevel: 3,
Ref: 4,
ChildChain: 5,
NewThread: 6
};
var c_oSer_ColorObjectType = {
Rgb: 0,
Type: 1,
Theme: 2,
Tint: 3
};
var c_oSer_ColorType = {
Auto: 0
};
var c_oSer_PageMargins = {
Left: 0,
Top: 1,
Right: 2,
Bottom: 3,
Header: 4,
Footer: 5
};
var c_oSer_PageSetup = {
Orientation: 0,
PaperSize: 1
};
var c_oSer_PrintOptions = {
GridLines: 0,
Headings: 1
};
var c_oSer_TablePart = {
Table: 0,
Ref: 1,
TotalsRowCount: 2,
DisplayName: 3,
AutoFilter: 4,
SortState: 5,
TableColumns: 6,
TableStyleInfo: 7,
HeaderRowCount: 8
};
var c_oSer_TableStyleInfo = {
Name: 0,
ShowColumnStripes: 1,
ShowRowStripes: 2,
ShowFirstColumn: 3,
ShowLastColumn: 4
};
var c_oSer_TableColumns = {
TableColumn: 0,
Name: 1,
DataDxfId: 2,
TotalsRowLabel: 3,
TotalsRowFunction: 4,
TotalsRowFormula: 5,
CalculatedColumnFormula: 6
};
var c_oSer_SortState = {
Ref: 0,
CaseSensitive: 1,
SortConditions: 2,
SortCondition: 3,
ConditionRef: 4,
ConditionSortBy: 5,
ConditionDescending: 6,
ConditionDxfId: 7
};
var c_oSer_AutoFilter = {
Ref: 0,
FilterColumns: 1,
FilterColumn: 2,
SortState: 3
};
var c_oSer_FilterColumn = {
ColId: 0,
Filters: 1,
Filter: 2,
DateGroupItem: 3,
CustomFilters: 4,
ColorFilter: 5,
Top10: 6,
DynamicFilter: 7,
HiddenButton: 8,
ShowButton: 9,
FiltersBlank: 10
};
var c_oSer_Filter = {
Val: 0
};
var c_oSer_DateGroupItem = {
DateTimeGrouping: 0,
Day: 1,
Hour: 2,
Minute: 3,
Month: 4,
Second: 5,
Year: 6
};
var c_oSer_CustomFilters = {
And: 0,
CustomFilters: 1,
CustomFilter: 2,
Operator: 3,
Val: 4
};
var c_oSer_DynamicFilter = {
Type: 0,
Val: 1,
MaxVal: 2
};
var c_oSer_ColorFilter = {
CellColor: 0,
DxfId: 1
};
var c_oSer_Top10 = {
FilterVal: 0,
Percent: 1,
Top: 2,
Val: 3
};
var c_oSer_Dxf = {
Alignment: 0,
Border: 1,
Fill: 2,
Font: 3,
NumFmt: 4
};
var c_oSer_TableStyles = {
DefaultTableStyle: 0,
DefaultPivotStyle: 1,
TableStyles: 2,
TableStyle: 3
};
var c_oSer_TableStyle = {
Name: 0,
Pivot: 1,
Table: 2,
Elements: 3,
Element: 4,
DisplayName: 5
};
var c_oSer_TableStyleElement = {
DxfId: 0,
Size: 1,
Type: 2
};
var c_oSer_Comments = {
Row: 0,
Col: 1,
CommentDatas: 2,
CommentData: 3,
Left: 4,
LeftOffset: 5,
Top: 6,
TopOffset: 7,
Right: 8,
RightOffset: 9,
Bottom: 10,
BottomOffset: 11,
LeftMM: 12,
TopMM: 13,
WidthMM: 14,
HeightMM: 15,
MoveWithCells: 16,
SizeWithCells: 17
};
var c_oSer_CommentData = {
Text: 0,
Time: 1,
UserId: 2,
UserName: 3,
QuoteText: 4,
Solved: 5,
Document: 6,
Replies: 7,
Reply: 8
};
var c_oSer_ConditionalFormatting = {
Pivot: 0,
SqRef: 1,
ConditionalFormattingRule: 2
};
var c_oSer_ConditionalFormattingRule = {
AboveAverage: 0,
Bottom: 1,
DxfId: 2,
EqualAverage: 3,
Operator: 4,
Percent: 5,
Priority: 6,
Rank: 7,
StdDev: 8,
StopIfTrue: 9,
Text: 10,
TimePeriod: 11,
Type: 12,
ColorScale: 14,
DataBar: 15,
FormulaCF: 16,
IconSet: 17
};
var c_oSer_ConditionalFormattingRuleColorScale = {
CFVO: 0,
Color: 1
};
var c_oSer_ConditionalFormattingDataBar = {
CFVO: 0,
Color: 1,
MaxLength: 2,
MinLength: 3,
ShowValue: 4
};
var c_oSer_ConditionalFormattingIconSet = {
CFVO: 0,
IconSet: 1,
Percent: 2,
Reverse: 3,
ShowValue: 4
};
var c_oSer_ConditionalFormattingValueObject = {
Gte: 0,
Type: 1,
Val: 2
};
var c_oSer_SheetView = {
ColorId: 0,
DefaultGridColor: 1,
RightToLeft: 2,
ShowFormulas: 3,
ShowGridLines: 4,
ShowOutlineSymbols: 5,
ShowRowColHeaders: 6,
ShowRuler: 7,
ShowWhiteSpace: 8,
ShowZeros: 9,
TabSelected: 10,
TopLeftCell: 11,
View: 12,
WindowProtection: 13,
WorkbookViewId: 14,
ZoomScale: 15,
ZoomScaleNormal: 16,
ZoomScalePageLayoutView: 17,
ZoomScaleSheetLayoutView: 18
};
var c_oSer_CellStyle = {
BuiltinId: 0,
CustomBuiltin: 1,
Hidden: 2,
ILevel: 3,
Name: 4,
XfId: 5
};
var c_oSer_SheetPr = {
CodeName: 0,
EnableFormatConditionsCalculation: 1,
FilterMode: 2,
Published: 3,
SyncHorizontal: 4,
SyncRef: 5,
SyncVertical: 6,
TransitionEntry: 7,
TransitionEvaluation: 8,
TabColor: 9
};
var EBorderStyle = {
borderstyleDashDot: 0,
borderstyleDashDotDot: 1,
borderstyleDashed: 2,
borderstyleDotted: 3,
borderstyleDouble: 4,
borderstyleHair: 5,
borderstyleMedium: 6,
borderstyleMediumDashDot: 7,
borderstyleMediumDashDotDot: 8,
borderstyleMediumDashed: 9,
borderstyleNone: 10,
borderstyleSlantDashDot: 11,
borderstyleThick: 12,
borderstyleThin: 13
};
var EUnderline = {
underlineDouble: 0,
underlineDoubleAccounting: 1,
underlineNone: 2,
underlineSingle: 3,
underlineSingleAccounting: 4
};
var EVerticalAlignRun = {
verticalalignrunBaseline: 0,
verticalalignrunSubscript: 1,
verticalalignrunSuperscript: 2
};
var ECellAnchorType = {
cellanchorAbsolute: 0,
cellanchorOneCell: 1,
cellanchorTwoCell: 2
};
var EVisibleType = {
visibleHidden: 0,
visibleVeryHidden: 1,
visibleVisible: 2
};
var EHorizontalAlignment = {
horizontalalignmentCenter: 0,
horizontalalignmentcenterContinuous: 1,
horizontalalignmentDistributed: 2,
horizontalalignmentFill: 3,
horizontalalignmentGeneral: 4,
horizontalalignmentJustify: 5,
horizontalalignmentLeft: 6,
horizontalalignmentRight: 7
};
var EVerticalAlignment = {
verticalalignmentBottom: 0,
verticalalignmentCenter: 1,
verticalalignmentDistributed: 2,
verticalalignmentJustify: 3,
verticalalignmentTop: 4
};
var ECellTypeType = {
celltypeBool: 0,
celltypeDate: 1,
celltypeError: 2,
celltypeInlineStr: 3,
celltypeNumber: 4,
celltypeSharedString: 5,
celltypeStr: 6
};
var ECellFormulaType = {
cellformulatypeArray: 0,
cellformulatypeDataTable: 1,
cellformulatypeNormal: 2,
cellformulatypeShared: 3
};
var EPageOrientation = {
pageorientLandscape: 0,
pageorientPortrait: 1
};
var EPageSize = {
pagesizeLetterPaper: 1,
pagesizeLetterSmall: 2,
pagesizeTabloidPaper: 3,
pagesizeLedgerPaper: 4,
pagesizeLegalPaper: 5,
pagesizeStatementPaper: 6,
pagesizeExecutivePaper: 7,
pagesizeA3Paper: 8,
pagesizeA4Paper: 9,
pagesizeA4SmallPaper: 10,
pagesizeA5Paper: 11,
pagesizeB4Paper: 12,
pagesizeB5Paper: 13,
pagesizeFolioPaper: 14,
pagesizeQuartoPaper: 15,
pagesizeStandardPaper1: 16,
pagesizeStandardPaper2: 17,
pagesizeNotePaper: 18,
pagesize9Envelope: 19,
pagesize10Envelope: 20,
pagesize11Envelope: 21,
pagesize12Envelope: 22,
pagesize14Envelope: 23,
pagesizeCPaper: 24,
pagesizeDPaper: 25,
pagesizeEPaper: 26,
pagesizeDLEnvelope: 27,
pagesizeC5Envelope: 28,
pagesizeC3Envelope: 29,
pagesizeC4Envelope: 30,
pagesizeC6Envelope: 31,
pagesizeC65Envelope: 32,
pagesizeB4Envelope: 33,
pagesizeB5Envelope: 34,
pagesizeB6Envelope: 35,
pagesizeItalyEnvelope: 36,
pagesizeMonarchEnvelope: 37,
pagesize6_3_4Envelope: 38,
pagesizeUSStandardFanfold: 39,
pagesizeGermanStandardFanfold: 40,
pagesizeGermanLegalFanfold: 41,
pagesizeISOB4: 42,
pagesizeJapaneseDoublePostcard: 43,
pagesizeStandardPaper3: 44,
pagesizeStandardPaper4: 45,
pagesizeStandardPaper5: 46,
pagesizeInviteEnvelope: 47,
pagesizeLetterExtraPaper: 50,
pagesizeLegalExtraPaper: 51,
pagesizeTabloidExtraPaper: 52,
pagesizeA4ExtraPaper: 53,
pagesizeLetterTransversePaper: 54,
pagesizeA4TransversePaper: 55,
pagesizeLetterExtraTransversePaper: 56,
pagesizeSuperA_SuperA_A4Paper: 57,
pagesizeSuperB_SuperB_A3Paper: 58,
pagesizeLetterPlusPaper: 59,
pagesizeA4PlusPaper: 60,
pagesizeA5TransversePaper: 61,
pagesizeJISB5TransversePaper: 62,
pagesizeA3ExtraPaper: 63,
pagesizeA5ExtraPaper: 64,
pagesizeISOB5ExtraPaper: 65,
pagesizeA2Paper: 66,
pagesizeA3TransversePaper: 67,
pagesizeA3ExtraTransversePaper: 68
};
var ETotalsRowFunction = {
totalrowfunctionAverage: 1,
totalrowfunctionCount: 2,
totalrowfunctionCountNums: 3,
totalrowfunctionCustom: 4,
totalrowfunctionMax: 5,
totalrowfunctionMin: 6,
totalrowfunctionNone: 7,
totalrowfunctionStdDev: 8,
totalrowfunctionSum: 9,
totalrowfunctionVar: 10
};
var ESortBy = {
sortbyCellColor: 1,
sortbyFontColor: 2,
sortbyIcon: 3,
sortbyValue: 4
};
var ECustomFilter = {
customfilterEqual: 1,
customfilterGreaterThan: 2,
customfilterGreaterThanOrEqual: 3,
customfilterLessThan: 4,
customfilterLessThanOrEqual: 5,
customfilterNotEqual: 6
};
var EDateTimeGroup = {
datetimegroupDay: 1,
datetimegroupHour: 2,
datetimegroupMinute: 3,
datetimegroupMonth: 4,
datetimegroupSecond: 5,
datetimegroupYear: 6
};
var ETableStyleType = {
tablestyletypeBlankRow: 0,
tablestyletypeFirstColumn: 1,
tablestyletypeFirstColumnStripe: 2,
tablestyletypeFirstColumnSubheading: 3,
tablestyletypeFirstHeaderCell: 4,
tablestyletypeFirstRowStripe: 5,
tablestyletypeFirstRowSubheading: 6,
tablestyletypeFirstSubtotalColumn: 7,
tablestyletypeFirstSubtotalRow: 8,
tablestyletypeFirstTotalCell: 9,
tablestyletypeHeaderRow: 10,
tablestyletypeLastColumn: 11,
tablestyletypeLastHeaderCell: 12,
tablestyletypeLastTotalCell: 13,
tablestyletypePageFieldLabels: 14,
tablestyletypePageFieldValues: 15,
tablestyletypeSecondColumnStripe: 16,
tablestyletypeSecondColumnSubheading: 17,
tablestyletypeSecondRowStripe: 18,
tablestyletypeSecondRowSubheading: 19,
tablestyletypeSecondSubtotalColumn: 20,
tablestyletypeSecondSubtotalRow: 21,
tablestyletypeThirdColumnSubheading: 22,
tablestyletypeThirdRowSubheading: 23,
tablestyletypeThirdSubtotalColumn: 24,
tablestyletypeThirdSubtotalRow: 25,
tablestyletypeTotalRow: 26,
tablestyletypeWholeTable: 27
};
var EFontScheme = {
fontschemeMajor: 0,
fontschemeMinor: 1,
fontschemeNone: 2
};
var DocumentPageSize = new
function () {
this.oSizes = [{
id: EPageSize.pagesizeLetterPaper,
w_mm: 215.9,
h_mm: 279.4
},
{
id: EPageSize.pagesizeLetterSmall,
w_mm: 215.9,
h_mm: 279.4
},
{
id: EPageSize.pagesizeTabloidPaper,
w_mm: 279.4,
h_mm: 431.7
},
{
id: EPageSize.pagesizeLedgerPaper,
w_mm: 431.8,
h_mm: 279.4
},
{
id: EPageSize.pagesizeLegalPaper,
w_mm: 215.9,
h_mm: 355.6
},
{
id: EPageSize.pagesizeStatementPaper,
w_mm: 495.3,
h_mm: 215.9
},
{
id: EPageSize.pagesizeExecutivePaper,
w_mm: 184.2,
h_mm: 266.7
},
{
id: EPageSize.pagesizeA3Paper,
w_mm: 297,
h_mm: 420.1
},
{
id: EPageSize.pagesizeA4Paper,
w_mm: 210,
h_mm: 297
},
{
id: EPageSize.pagesizeA4SmallPaper,
w_mm: 210,
h_mm: 297
},
{
id: EPageSize.pagesizeA5Paper,
w_mm: 148.1,
h_mm: 209.9
},
{
id: EPageSize.pagesizeB4Paper,
w_mm: 250,
h_mm: 353
},
{
id: EPageSize.pagesizeB5Paper,
w_mm: 176,
h_mm: 250.1
},
{
id: EPageSize.pagesizeFolioPaper,
w_mm: 215.9,
h_mm: 330.2
},
{
id: EPageSize.pagesizeQuartoPaper,
w_mm: 215,
h_mm: 275
},
{
id: EPageSize.pagesizeStandardPaper1,
w_mm: 254,
h_mm: 355.6
},
{
id: EPageSize.pagesizeStandardPaper2,
w_mm: 279.4,
h_mm: 431.8
},
{
id: EPageSize.pagesizeNotePaper,
w_mm: 215.9,
h_mm: 279.4
},
{
id: EPageSize.pagesize9Envelope,
w_mm: 98.40000000000001,
h_mm: 225.4
},
{
id: EPageSize.pagesize10Envelope,
w_mm: 104.8,
h_mm: 241.3
},
{
id: EPageSize.pagesize11Envelope,
w_mm: 114.3,
h_mm: 263.5
},
{
id: EPageSize.pagesize12Envelope,
w_mm: 120.7,
h_mm: 279.4
},
{
id: EPageSize.pagesize14Envelope,
w_mm: 127,
h_mm: 292.1
},
{
id: EPageSize.pagesizeCPaper,
w_mm: 431.8,
h_mm: 558.8
},
{
id: EPageSize.pagesizeDPaper,
w_mm: 558.8,
h_mm: 863.6
},
{
id: EPageSize.pagesizeEPaper,
w_mm: 863.6,
h_mm: 1117.6
},
{
id: EPageSize.pagesizeDLEnvelope,
w_mm: 110.1,
h_mm: 220.1
},
{
id: EPageSize.pagesizeC5Envelope,
w_mm: 162,
h_mm: 229
},
{
id: EPageSize.pagesizeC3Envelope,
w_mm: 324,
h_mm: 458
},
{
id: EPageSize.pagesizeC4Envelope,
w_mm: 229,
h_mm: 324
},
{
id: EPageSize.pagesizeC6Envelope,
w_mm: 114,
h_mm: 162
},
{
id: EPageSize.pagesizeC65Envelope,
w_mm: 114,
h_mm: 229
},
{
id: EPageSize.pagesizeB4Envelope,
w_mm: 250,
h_mm: 353
},
{
id: EPageSize.pagesizeB5Envelope,
w_mm: 176,
h_mm: 250
},
{
id: EPageSize.pagesizeB6Envelope,
w_mm: 176,
h_mm: 125
},
{
id: EPageSize.pagesizeItalyEnvelope,
w_mm: 110,
h_mm: 230
},
{
id: EPageSize.pagesizeMonarchEnvelope,
w_mm: 98.40000000000001,
h_mm: 190.5
},
{
id: EPageSize.pagesize6_3_4Envelope,
w_mm: 92.09999999999999,
h_mm: 165.1
},
{
id: EPageSize.pagesizeUSStandardFanfold,
w_mm: 377.8,
h_mm: 279.4
},
{
id: EPageSize.pagesizeGermanStandardFanfold,
w_mm: 215.9,
h_mm: 304.8
},
{
id: EPageSize.pagesizeGermanLegalFanfold,
w_mm: 215.9,
h_mm: 330.2
},
{
id: EPageSize.pagesizeISOB4,
w_mm: 250,
h_mm: 353
},
{
id: EPageSize.pagesizeJapaneseDoublePostcard,
w_mm: 200,
h_mm: 148
},
{
id: EPageSize.pagesizeStandardPaper3,
w_mm: 228.6,
h_mm: 279.4
},
{
id: EPageSize.pagesizeStandardPaper4,
w_mm: 254,
h_mm: 279.4
},
{
id: EPageSize.pagesizeStandardPaper5,
w_mm: 381,
h_mm: 279.4
},
{
id: EPageSize.pagesizeInviteEnvelope,
w_mm: 220,
h_mm: 220
},
{
id: EPageSize.pagesizeLetterExtraPaper,
w_mm: 235.6,
h_mm: 304.8
},
{
id: EPageSize.pagesizeLegalExtraPaper,
w_mm: 235.6,
h_mm: 381
},
{
id: EPageSize.pagesizeTabloidExtraPaper,
w_mm: 296.9,
h_mm: 457.2
},
{
id: EPageSize.pagesizeA4ExtraPaper,
w_mm: 236,
h_mm: 322
},
{
id: EPageSize.pagesizeLetterTransversePaper,
w_mm: 210.2,
h_mm: 279.4
},
{
id: EPageSize.pagesizeA4TransversePaper,
w_mm: 210,
h_mm: 297
},
{
id: EPageSize.pagesizeLetterExtraTransversePaper,
w_mm: 235.6,
h_mm: 304.8
},
{
id: EPageSize.pagesizeSuperA_SuperA_A4Paper,
w_mm: 227,
h_mm: 356
},
{
id: EPageSize.pagesizeSuperB_SuperB_A3Paper,
w_mm: 305,
h_mm: 487
},
{
id: EPageSize.pagesizeLetterPlusPaper,
w_mm: 215.9,
h_mm: 12.69
},
{
id: EPageSize.pagesizeA4PlusPaper,
w_mm: 210,
h_mm: 330
},
{
id: EPageSize.pagesizeA5TransversePaper,
w_mm: 148,
h_mm: 210
},
{
id: EPageSize.pagesizeJISB5TransversePaper,
w_mm: 182,
h_mm: 257
},
{
id: EPageSize.pagesizeA3ExtraPaper,
w_mm: 322,
h_mm: 445
},
{
id: EPageSize.pagesizeA5ExtraPaper,
w_mm: 174,
h_mm: 235
},
{
id: EPageSize.pagesizeISOB5ExtraPaper,
w_mm: 201,
h_mm: 276
},
{
id: EPageSize.pagesizeA2Paper,
w_mm: 420,
h_mm: 594
},
{
id: EPageSize.pagesizeA3TransversePaper,
w_mm: 297,
h_mm: 420
},
{
id: EPageSize.pagesizeA3ExtraTransversePaper,
w_mm: 322,
h_mm: 445
}];
this.getSizeByWH = function (widthMm, heightMm) {
for (index in this.oSizes) {
var item = this.oSizes[index];
if (widthMm == item.w_mm && heightMm == item.h_mm) {
return item;
}
}
return this.oSizes[8];
};
this.getSizeById = function (id) {
for (index in this.oSizes) {
var item = this.oSizes[index];
if (id == item.id) {
return item;
}
}
return this.oSizes[8];
};
};
var g_nodeAttributeStart = 250;
var g_nodeAttributeEnd = 251;
function BinaryTableWriter(memory, aDxfs) {
this.memory = memory;
this.aDxfs = aDxfs;
this.bs = new BinaryCommonWriter(this.memory);
this.Write = function (aTables) {
var oThis = this;
for (var i = 0, length = aTables.length; i < length; ++i) {
this.bs.WriteItem(c_oSer_TablePart.Table, function () {
oThis.WriteTable(aTables[i]);
});
}
};
this.WriteTable = function (table) {
var oThis = this;
if (null != table.Ref) {
this.memory.WriteByte(c_oSer_TablePart.Ref);
this.memory.WriteString2(table.Ref);
}
if (null != table.HeaderRowCount) {
this.bs.WriteItem(c_oSer_TablePart.HeaderRowCount, function () {
oThis.memory.WriteLong(table.HeaderRowCount);
});
}
if (null != table.TotalsRowCount) {
this.bs.WriteItem(c_oSer_TablePart.TotalsRowCount, function () {
oThis.memory.WriteLong(table.TotalsRowCount);
});
}
if (null != table.DisplayName) {
this.memory.WriteByte(c_oSer_TablePart.DisplayName);
this.memory.WriteString2(table.DisplayName);
}
if (null != table.AutoFilter) {
this.bs.WriteItem(c_oSer_TablePart.AutoFilter, function () {
oThis.WriteAutoFilter(table.AutoFilter);
});
}
if (null != table.SortState) {
this.bs.WriteItem(c_oSer_TablePart.SortState, function () {
oThis.WriteSortState(table.SortState);
});
}
if (null != table.TableColumns) {
this.bs.WriteItem(c_oSer_TablePart.TableColumns, function () {
oThis.WriteTableColumns(table.TableColumns);
});
}
if (null != table.TableStyleInfo) {
this.bs.WriteItem(c_oSer_TablePart.TableStyleInfo, function () {
oThis.WriteTableStyleInfo(table.TableStyleInfo);
});
}
};
this.WriteAutoFilter = function (autofilter) {
var oThis = this;
if (null != autofilter.Ref) {
this.memory.WriteByte(c_oSer_AutoFilter.Ref);
this.memory.WriteString2(autofilter.Ref);
}
if (null != autofilter.FilterColumns) {
this.bs.WriteItem(c_oSer_AutoFilter.FilterColumns, function () {
oThis.WriteFilterColumns(autofilter.FilterColumns);
});
}
if (null != autofilter.SortState) {
this.bs.WriteItem(c_oSer_AutoFilter.SortState, function () {
oThis.WriteSortState(autofilter.SortState);
});
}
};
this.WriteFilterColumns = function (filterColumns) {
var oThis = this;
for (var i = 0, length = filterColumns.length; i < length; ++i) {
this.bs.WriteItem(c_oSer_AutoFilter.FilterColumn, function () {
oThis.WriteFilterColumn(filterColumns[i]);
});
}
};
this.WriteFilterColumn = function (filterColumn) {
var oThis = this;
if (null != filterColumn.ColId) {
this.bs.WriteItem(c_oSer_FilterColumn.ColId, function () {
oThis.memory.WriteLong(filterColumn.ColId);
});
}
if (null != filterColumn.Filters) {
this.bs.WriteItem(c_oSer_FilterColumn.Filters, function () {
oThis.WriteFilters(filterColumn.Filters);
});
}
if (null != filterColumn.CustomFiltersObj) {
this.bs.WriteItem(c_oSer_FilterColumn.CustomFilters, function () {
oThis.WriteCustomFilters(filterColumn.CustomFiltersObj);
});
}
if (null != filterColumn.DynamicFilter) {
this.bs.WriteItem(c_oSer_FilterColumn.DynamicFilter, function () {
oThis.WriteDynamicFilter(filterColumn.DynamicFilter);
});
}
if (null != filterColumn.ColorFilter) {
this.bs.WriteItem(c_oSer_FilterColumn.ColorFilter, function () {
oThis.WriteColorFilter(filterColumn.ColorFilter);
});
}
if (null != filterColumn.Top10) {
this.bs.WriteItem(c_oSer_FilterColumn.Top10, function () {
oThis.WriteTop10(filterColumn.Top10);
});
}
if (null != filterColumn.ShowButton) {
this.bs.WriteItem(c_oSer_FilterColumn.ShowButton, function () {
oThis.memory.WriteBool(filterColumn.ShowButton);
});
}
};
this.WriteFilters = function (filters) {
var oThis = this;
if (null != filters.Values) {
for (var i = 0, length = filters.Values.length; i < length; ++i) {
this.bs.WriteItem(c_oSer_FilterColumn.Filter, function () {
oThis.WriteFilter(filters.Values[i]);
});
}
}
if (null != filters.Dates) {
for (var i = 0, length = filters.Dates.length; i < length; ++i) {
this.bs.WriteItem(c_oSer_FilterColumn.DateGroupItem, function () {
oThis.WriteDateGroupItem(filters.Dates[i]);
});
}
}
if (null != filters.Blank) {
this.bs.WriteItem(c_oSer_FilterColumn.FiltersBlank, function () {
oThis.memory.WriteBool(filters.Blank);
});
}
};
this.WriteFilter = function (val) {
var oThis = this;
if (null != val) {
this.memory.WriteByte(c_oSer_Filter.Val);
this.memory.WriteString2(val);
}
};
this.WriteDateGroupItem = function (dateGroupItem) {
var oThis = this;
if (null != dateGroupItem.DateTimeGrouping) {
this.memory.WriteByte(c_oSer_DateGroupItem.DateTimeGrouping);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(dateGroupItem.DateTimeGrouping);
}
if (null != dateGroupItem.Day) {
this.memory.WriteByte(c_oSer_DateGroupItem.Day);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(dateGroupItem.Day);
}
if (null != dateGroupItem.Hour) {
this.memory.WriteByte(c_oSer_DateGroupItem.Hour);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(dateGroupItem.Hour);
}
if (null != dateGroupItem.Minute) {
this.memory.WriteByte(c_oSer_DateGroupItem.Minute);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(dateGroupItem.Minute);
}
if (null != dateGroupItem.Month) {
this.memory.WriteByte(c_oSer_DateGroupItem.Month);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(dateGroupItem.Month);
}
if (null != dateGroupItem.Second) {
this.memory.WriteByte(c_oSer_DateGroupItem.Second);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(dateGroupItem.Second);
}
if (null != dateGroupItem.Year) {
this.memory.WriteByte(c_oSer_DateGroupItem.Year);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(dateGroupItem.Year);
}
};
this.WriteCustomFilters = function (customFilters) {
var oThis = this;
if (null != customFilters.And) {
this.bs.WriteItem(c_oSer_CustomFilters.And, function () {
oThis.memory.WriteBool(customFilters.And);
});
}
if (null != customFilters.CustomFilters && customFilters.CustomFilters.length > 0) {
this.bs.WriteItem(c_oSer_CustomFilters.CustomFilters, function () {
oThis.WriteCustomFiltersItems(customFilters.CustomFilters);
});
}
};
this.WriteCustomFiltersItems = function (aCustomFilters) {
var oThis = this;
for (var i = 0, length = aCustomFilters.length; i < length; ++i) {
this.bs.WriteItem(c_oSer_CustomFilters.CustomFilter, function () {
oThis.WriteCustomFiltersItem(aCustomFilters[i]);
});
}
};
this.WriteCustomFiltersItem = function (customFilter) {
var oThis = this;
if (null != customFilter.Operator) {
this.memory.WriteByte(c_oSer_CustomFilters.Operator);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(customFilter.Operator);
}
if (null != customFilter.Val) {
this.memory.WriteByte(c_oSer_CustomFilters.Val);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(customFilter.Val);
}
};
this.WriteDynamicFilter = function (dynamicFilter) {
var oThis = this;
if (null != dynamicFilter.Type) {
this.memory.WriteByte(c_oSer_DynamicFilter.Type);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(dynamicFilter.Type);
}
if (null != dynamicFilter.Val) {
this.memory.WriteByte(c_oSer_DynamicFilter.Val);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(dynamicFilter.Val);
}
if (null != dynamicFilter.MaxVal) {
this.memory.WriteByte(c_oSer_DynamicFilter.MaxVal);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(dynamicFilter.MaxVal);
}
};
this.WriteColorFilter = function (colorFilter) {
var oThis = this;
if (null != colorFilter.CellColor) {
this.memory.WriteByte(c_oSer_ColorFilter.CellColor);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(colorFilter.CellColor);
}
if (null != colorFilter.dxf) {
this.memory.WriteByte(c_oSer_ColorFilter.DxfId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(this.aDxfs.length);
this.aDxfs.push(colorFilter.dxf);
}
};
this.WriteTop10 = function (top10) {
var oThis = this;
if (null != top10.FilterVal) {
this.memory.WriteByte(c_oSer_Top10.FilterVal);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(top10.FilterVal);
}
if (null != top10.Percent) {
this.memory.WriteByte(c_oSer_Top10.Percent);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(top10.Percent);
}
if (null != top10.Top) {
this.memory.WriteByte(c_oSer_Top10.Top);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(top10.Top);
}
if (null != top10.Val) {
this.memory.WriteByte(c_oSer_Top10.Val);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(top10.Val);
}
};
this.WriteSortState = function (sortState) {
var oThis = this;
if (null != sortState.Ref) {
this.memory.WriteByte(c_oSer_SortState.Ref);
this.memory.WriteString2(sortState.Ref);
}
if (null != sortState.CaseSensitive) {
this.bs.WriteItem(c_oSer_SortState.CaseSensitive, function () {
oThis.memory.WriteBool(sortState.CaseSensitive);
});
}
if (null != sortState.SortConditions) {
this.bs.WriteItem(c_oSer_SortState.SortConditions, function () {
oThis.WriteSortConditions(sortState.SortConditions);
});
}
};
this.WriteSortConditions = function (sortConditions) {
var oThis = this;
for (var i = 0, length = sortConditions.length; i < length; ++i) {
this.bs.WriteItem(c_oSer_SortState.SortCondition, function () {
oThis.WriteSortCondition(sortConditions[i]);
});
}
};
this.WriteSortCondition = function (sortCondition) {
var oThis = this;
if (null != sortCondition.Ref) {
this.memory.WriteByte(c_oSer_SortState.ConditionRef);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(sortCondition.Ref);
}
if (null != sortCondition.ConditionSortBy) {
this.memory.WriteByte(c_oSer_SortState.ConditionSortBy);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(sortCondition.ConditionSortBy);
}
if (null != sortCondition.ConditionDescending) {
this.memory.WriteByte(c_oSer_SortState.ConditionDescending);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sortCondition.ConditionDescending);
}
if (null != sortCondition.dxf) {
this.memory.WriteByte(c_oSer_SortState.ConditionDxfId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(this.aDxfs.length);
this.aDxfs.push(sortCondition.dxf);
}
};
this.WriteTableColumns = function (tableColumns) {
var oThis = this;
for (var i = 0, length = tableColumns.length; i < length; ++i) {
this.bs.WriteItem(c_oSer_TableColumns.TableColumn, function () {
oThis.WriteTableColumn(tableColumns[i]);
});
}
};
this.WriteTableColumn = function (tableColumn) {
var oThis = this;
if (null != tableColumn.Name) {
this.memory.WriteByte(c_oSer_TableColumns.Name);
this.memory.WriteString2(tableColumn.Name);
}
if (null != tableColumn.TotalsRowLabel) {
this.memory.WriteByte(c_oSer_TableColumns.TotalsRowLabel);
this.memory.WriteString2(tableColumn.TotalsRowLabel);
}
if (null != tableColumn.TotalsRowFunction) {
this.bs.WriteItem(c_oSer_TableColumns.TotalsRowFunction, function () {
oThis.memory.WriteByte(tableColumn.TotalsRowFunction);
});
}
if (null != tableColumn.TotalsRowFormula) {
this.memory.WriteByte(c_oSer_TableColumns.TotalsRowFormula);
this.memory.WriteString2(tableColumn.TotalsRowFormula);
}
if (null != tableColumn.dxf) {
this.bs.WriteItem(c_oSer_TableColumns.DataDxfId, function () {
oThis.memory.WriteLong(oThis.aDxfs.length);
});
this.aDxfs.push(tableColumn.dxf);
}
if (null != tableColumn.CalculatedColumnFormula) {
this.memory.WriteByte(c_oSer_TableColumns.CalculatedColumnFormula);
this.memory.WriteString2(tableColumn.CalculatedColumnFormula);
}
};
this.WriteTableStyleInfo = function (tableStyleInfo) {
var oThis = this;
if (null != tableStyleInfo.Name) {
this.memory.WriteByte(c_oSer_TableStyleInfo.Name);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(tableStyleInfo.Name);
}
if (null != tableStyleInfo.ShowColumnStripes) {
this.memory.WriteByte(c_oSer_TableStyleInfo.ShowColumnStripes);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(tableStyleInfo.ShowColumnStripes);
}
if (null != tableStyleInfo.ShowRowStripes) {
this.memory.WriteByte(c_oSer_TableStyleInfo.ShowRowStripes);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(tableStyleInfo.ShowRowStripes);
}
if (null != tableStyleInfo.ShowFirstColumn) {
this.memory.WriteByte(c_oSer_TableStyleInfo.ShowFirstColumn);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(tableStyleInfo.ShowFirstColumn);
}
if (null != tableStyleInfo.ShowLastColumn) {
this.memory.WriteByte(c_oSer_TableStyleInfo.ShowLastColumn);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(tableStyleInfo.ShowLastColumn);
}
};
}
function BinarySharedStringsTableWriter(memory, oSharedStrings) {
this.memory = memory;
this.bs = new BinaryCommonWriter(this.memory);
this.bsw = new BinaryStylesTableWriter(this.memory);
this.oSharedStrings = oSharedStrings;
this.Write = function () {
var oThis = this;
this.bs.WriteItemWithLength(function () {
oThis.WriteSharedStringsContent();
});
};
this.WriteSharedStringsContent = function () {
var oThis = this;
var aSharedStrings = new Array();
for (var i in this.oSharedStrings.strings) {
var item = this.oSharedStrings.strings[i];
if (null != item.t) {
aSharedStrings[item.t.id] = {
t: item.t.val
};
}
if (null != item.a) {
for (var j = 0, length2 = item.a.length; j < length2; ++j) {
var oCurText = item.a[j];
aSharedStrings[oCurText.id] = {
a: oCurText.val
};
}
}
}
for (var i = 0, length = aSharedStrings.length; i < length; ++i) {
var si = aSharedStrings[i];
if (null != si) {
this.bs.WriteItem(c_oSerSharedStringTypes.Si, function () {
oThis.WriteSi(si);
});
}
}
};
this.WriteSi = function (si) {
var oThis = this;
if (null != si.t) {
this.memory.WriteByte(c_oSerSharedStringTypes.Text);
this.memory.WriteString2(si.t);
} else {
if (null != si.a) {
for (var i = 0, length = si.a.length; i < length; ++i) {
var run = si.a[i];
this.bs.WriteItem(c_oSerSharedStringTypes.Run, function () {
oThis.WriteRun(run);
});
}
}
}
};
this.WriteRun = function (run) {
var oThis = this;
if (null != run.format) {
this.bs.WriteItem(c_oSerSharedStringTypes.RPr, function () {
oThis.bsw.WriteFont(run.format);
});
}
if (null != run.text) {
this.memory.WriteByte(c_oSerSharedStringTypes.Text);
this.memory.WriteString2(run.text);
}
};
}
function BinaryStylesTableWriter(memory, wb, oBinaryWorksheetsTableWriter) {
this.memory = memory;
this.bs = new BinaryCommonWriter(this.memory);
this.wb = wb;
this.aDxfs = null;
this.oXfsStylesMap = null;
this.oXfsMap = null;
this.oFontMap = null;
this.oFillMap = null;
this.oBorderMap = null;
this.oNumMap = null;
this.oBinaryWorksheetsTableWriter = oBinaryWorksheetsTableWriter;
if (null != oBinaryWorksheetsTableWriter) {
this.aDxfs = oBinaryWorksheetsTableWriter.aDxfs;
this.oXfsStylesMap = oBinaryWorksheetsTableWriter.oXfsStylesMap;
this.oXfsMap = oBinaryWorksheetsTableWriter.oXfsMap;
this.oFontMap = oBinaryWorksheetsTableWriter.oFontMap;
this.oFillMap = oBinaryWorksheetsTableWriter.oFillMap;
this.oBorderMap = oBinaryWorksheetsTableWriter.oBorderMap;
this.oNumMap = oBinaryWorksheetsTableWriter.oNumMap;
}
this.Write = function () {
var oThis = this;
this.bs.WriteItemWithLength(function () {
oThis.WriteStylesContent();
});
};
this.WriteStylesContent = function () {
var oThis = this;
var wb = this.wb;
this.bs.WriteItem(c_oSerStylesTypes.Borders, function () {
oThis.WriteBorders();
});
this.bs.WriteItem(c_oSerStylesTypes.Fills, function () {
oThis.WriteFills();
});
this.bs.WriteItem(c_oSerStylesTypes.Fonts, function () {
oThis.WriteFonts();
});
this.bs.WriteItem(c_oSerStylesTypes.CellStyleXfs, function () {
oThis.WriteCellStyleXfs();
});
this.bs.WriteItem(c_oSerStylesTypes.CellXfs, function () {
oThis.WriteCellXfs();
});
this.bs.WriteItem(c_oSerStylesTypes.CellStyles, function () {
oThis.WriteCellStyles(wb.CellStyles.CustomStyles);
});
if (null != wb.TableStyles) {
this.bs.WriteItem(c_oSerStylesTypes.TableStyles, function () {
oThis.WriteTableStyles(wb.TableStyles);
});
}
if (null != this.aDxfs && this.aDxfs.length > 0) {
var oDxfsNumFormatToId = {};
for (var i = 0, length = this.aDxfs.length; i < length; i++) {
var dxf = this.aDxfs[i];
if (dxf && dxf.num) {
oDxfsNumFormatToId[dxf.num.f] = this.oBinaryWorksheetsTableWriter.getNumIdByFormat(dxf.num);
}
}
this.bs.WriteItem(c_oSerStylesTypes.Dxfs, function () {
oThis.WriteDxfs(oThis.aDxfs, oDxfsNumFormatToId);
});
}
this.bs.WriteItem(c_oSerStylesTypes.NumFmts, function () {
oThis.WriteNumFmts();
});
};
this.WriteBorders = function () {
var oThis = this;
var aBorders = new Array();
for (var i in this.oBorderMap) {
var elem = this.oBorderMap[i];
aBorders[elem.index] = elem.val;
}
for (var i = 0, length = aBorders.length; i < length; ++i) {
var border = aBorders[i];
this.bs.WriteItem(c_oSerStylesTypes.Border, function () {
oThis.WriteBorder(border.getDif(g_oDefaultBorderAbs));
});
}
};
this.WriteBorder = function (border) {
if (null == border) {
return;
}
var oThis = this;
if (null != border.b) {
this.bs.WriteItem(c_oSerBorderTypes.Bottom, function () {
oThis.WriteBorderProp(border.b);
});
}
if (null != border.d) {
this.bs.WriteItem(c_oSerBorderTypes.Diagonal, function () {
oThis.WriteBorderProp(border.d);
});
}
if (null != border.r) {
this.bs.WriteItem(c_oSerBorderTypes.End, function () {
oThis.WriteBorderProp(border.r);
});
}
if (null != border.h) {
this.bs.WriteItem(c_oSerBorderTypes.Horizontal, function () {
oThis.WriteBorderProp(border.h);
});
}
if (null != border.l) {
this.bs.WriteItem(c_oSerBorderTypes.Start, function () {
oThis.WriteBorderProp(border.l);
});
}
if (null != border.t) {
this.bs.WriteItem(c_oSerBorderTypes.Top, function () {
oThis.WriteBorderProp(border.t);
});
}
if (null != border.v) {
this.bs.WriteItem(c_oSerBorderTypes.Vertical, function () {
oThis.WriteBorderProp(border.v);
});
}
if (null != border.dd) {
this.bs.WriteItem(c_oSerBorderTypes.DiagonalDown, function () {
oThis.memory.WriteBool(border.dd);
});
}
if (null != border.du) {
this.bs.WriteItem(c_oSerBorderTypes.DiagonalUp, function () {
oThis.memory.WriteBool(border.du);
});
}
};
this.WriteBorderProp = function (borderProp) {
var oThis = this;
if (null != borderProp.c) {
this.memory.WriteByte(c_oSerBorderPropTypes.Color);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.bs.WriteItemWithLength(function () {
oThis.bs.WriteColorSpreadsheet(borderProp.c);
});
}
if (null != borderProp.s) {
var nStyle = EBorderStyle.borderstyleNone;
switch (borderProp.s) {
case c_oAscBorderStyles.DashDot:
nStyle = EBorderStyle.borderstyleDashDot;
break;
case c_oAscBorderStyles.DashDotDot:
nStyle = EBorderStyle.borderstyleDashDotDot;
break;
case c_oAscBorderStyles.Dashed:
nStyle = EBorderStyle.borderstyleDashed;
break;
case c_oAscBorderStyles.Dotted:
nStyle = EBorderStyle.borderstyleDotted;
break;
case c_oAscBorderStyles.Double:
nStyle = EBorderStyle.borderstyleDouble;
break;
case c_oAscBorderStyles.Hair:
nStyle = EBorderStyle.borderstyleHair;
break;
case c_oAscBorderStyles.Medium:
nStyle = EBorderStyle.borderstyleMedium;
break;
case c_oAscBorderStyles.MediumDashDot:
nStyle = EBorderStyle.borderstyleMediumDashDot;
break;
case c_oAscBorderStyles.MediumDashDotDot:
nStyle = EBorderStyle.borderstyleMediumDashDotDot;
break;
case c_oAscBorderStyles.MediumDashed:
nStyle = EBorderStyle.borderstyleMediumDashed;
break;
case c_oAscBorderStyles.None:
nStyle = EBorderStyle.borderstyleNone;
break;
case c_oAscBorderStyles.SlantDashDot:
nStyle = EBorderStyle.borderstyleSlantDashDot;
break;
case c_oAscBorderStyles.Thick:
nStyle = EBorderStyle.borderstyleThick;
break;
case c_oAscBorderStyles.Thin:
nStyle = EBorderStyle.borderstyleThin;
break;
}
this.memory.WriteByte(c_oSerBorderPropTypes.Style);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(nStyle);
}
};
this.WriteFills = function () {
var oThis = this;
var aFills = new Array();
for (var i in this.oFillMap) {
var elem = this.oFillMap[i];
aFills[elem.index] = elem.val;
}
aFills[1] = aFills[0];
for (var i = 0, length = aFills.length; i < length; ++i) {
var fill = aFills[i];
this.bs.WriteItem(c_oSerStylesTypes.Fill, function () {
oThis.WriteFill(fill);
});
}
};
this.WriteFill = function (fill) {
var oThis = this;
this.bs.WriteItem(c_oSerFillTypes.PatternFill, function () {
oThis.WritePatternFill(fill);
});
};
this.WritePatternFill = function (fill) {
var oThis = this;
if (null != fill.bg) {
this.bs.WriteItem(c_oSerFillTypes.PatternFillBgColor, function () {
oThis.bs.WriteColorSpreadsheet(fill.bg);
});
}
};
this.WriteFonts = function () {
var oThis = this;
var aFonts = new Array();
for (var i in this.oFontMap) {
var elem = this.oFontMap[i];
aFonts[elem.index] = elem.val;
}
for (var i = 0, length = aFonts.length; i < length; ++i) {
var font = aFonts[i];
var fontMinimized = font.getDif(g_oDefaultFontAbs);
if (null == fontMinimized) {
fontMinimized = new Font();
}
if (null == fontMinimized.fn) {
fontMinimized.fn = g_oDefaultFontAbs.fn;
}
if (null == fontMinimized.scheme) {
fontMinimized.scheme = g_oDefaultFontAbs.scheme;
}
if (null == fontMinimized.fs) {
fontMinimized.fs = g_oDefaultFontAbs.fs;
}
if (null == fontMinimized.c) {
fontMinimized.c = g_oDefaultFontAbs.c;
}
this.bs.WriteItem(c_oSerStylesTypes.Font, function () {
oThis.WriteFont(fontMinimized);
});
}
};
this.WriteFont = function (font) {
var oThis = this;
if (null != font.b) {
this.memory.WriteByte(c_oSerFontTypes.Bold);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(font.b);
}
if (null != font.c) {
this.memory.WriteByte(c_oSerFontTypes.Color);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.bs.WriteItemWithLength(function () {
oThis.bs.WriteColorSpreadsheet(font.c);
});
}
if (null != font.i) {
this.memory.WriteByte(c_oSerFontTypes.Italic);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(font.i);
}
if (null != font.fn) {
this.memory.WriteByte(c_oSerFontTypes.RFont);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(font.fn);
}
if (null != font.scheme) {
this.memory.WriteByte(c_oSerFontTypes.Scheme);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(font.scheme);
}
if (null != font.s) {
this.memory.WriteByte(c_oSerFontTypes.Strike);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(font.s);
}
if (null != font.fs) {
this.memory.WriteByte(c_oSerFontTypes.Sz);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(font.fs);
}
if (null != font.u) {
var nUnderline = EUnderline.underlineNone;
switch (font.u) {
case "double":
nUnderline = EUnderline.underlineDouble;
break;
case "doubleAccounting":
nUnderline = EUnderline.underlineDoubleAccounting;
break;
case "none":
nUnderline = EUnderline.underlineNone;
break;
case "single":
nUnderline = EUnderline.underlineSingle;
break;
case "singleAccounting":
nUnderline = EUnderline.underlineSingleAccounting;
break;
}
this.memory.WriteByte(c_oSerFontTypes.Underline);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(nUnderline);
}
if (null != font.va) {
var nVertAlign = EVerticalAlignRun.verticalalignrunBaseline;
switch (font.va) {
case "baseline":
nVertAlign = EVerticalAlignRun.verticalalignrunBaseline;
break;
case "subscript":
nVertAlign = EVerticalAlignRun.verticalalignrunSubscript;
break;
case "superscript":
nVertAlign = EVerticalAlignRun.verticalalignrunSuperscript;
break;
}
this.memory.WriteByte(c_oSerFontTypes.VertAlign);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(nVertAlign);
}
};
this.WriteNumFmts = function () {
var oThis = this;
var index = 0;
var aNums = new Array();
for (var i in this.oNumMap) {
var num = this.oNumMap[i];
if (false == num.val.isEqual(g_oDefaultNumAbs)) {
this.bs.WriteItem(c_oSerStylesTypes.NumFmt, function () {
oThis.WriteNum({
id: num.index,
f: num.val.f
});
});
}
}
};
this.WriteNum = function (num) {
if (null != num.f) {
this.memory.WriteByte(c_oSerNumFmtTypes.FormatCode);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(num.f);
}
if (null != num.id) {
this.memory.WriteByte(c_oSerNumFmtTypes.NumFmtId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(num.id);
}
};
this.WriteCellStyleXfs = function () {
var oThis = this;
for (var i = 0, length = this.oXfsStylesMap.length; i < length; ++i) {
var cellStyleXfs = this.oXfsStylesMap[i];
this.bs.WriteItem(c_oSerStylesTypes.Xfs, function () {
oThis.WriteXfs(cellStyleXfs);
});
}
};
this.WriteCellXfs = function () {
var oThis = this;
var aXfs = new Array();
for (var i in this.oXfsMap) {
var elem = this.oXfsMap[i];
aXfs[elem.index] = elem.val;
}
for (var i = 0, length = aXfs.length; i < length; ++i) {
var cellxfs = aXfs[i];
this.bs.WriteItem(c_oSerStylesTypes.Xfs, function () {
oThis.WriteXfs(cellxfs);
});
}
};
this.WriteXfs = function (xfs) {
var oThis = this;
if (null != xfs.borderid) {
if (0 != xfs.borderid) {
this.memory.WriteByte(c_oSerXfsTypes.ApplyBorder);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(true);
}
this.memory.WriteByte(c_oSerXfsTypes.BorderId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xfs.borderid);
}
if (null != xfs.fillid) {
if (0 != xfs.fillid) {
this.memory.WriteByte(c_oSerXfsTypes.ApplyFill);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(true);
}
this.memory.WriteByte(c_oSerXfsTypes.FillId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xfs.fillid);
}
if (null != xfs.fontid) {
if (0 != xfs.fontid) {
this.memory.WriteByte(c_oSerXfsTypes.ApplyFont);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(true);
}
this.memory.WriteByte(c_oSerXfsTypes.FontId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xfs.fontid);
}
if (null != xfs.numid) {
if (0 != xfs.numid) {
this.memory.WriteByte(c_oSerXfsTypes.ApplyNumberFormat);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(true);
}
this.memory.WriteByte(c_oSerXfsTypes.NumFmtId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xfs.numid);
}
if (null != xfs.align) {
var alignMinimized = xfs.align.getDif(g_oDefaultAlignAbs);
if (null != alignMinimized) {
this.memory.WriteByte(c_oSerXfsTypes.ApplyAlignment);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(true);
this.memory.WriteByte(c_oSerXfsTypes.Aligment);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.bs.WriteItemWithLength(function () {
oThis.WriteAlign(alignMinimized);
});
}
}
if (null != xfs.QuotePrefix) {
this.memory.WriteByte(c_oSerXfsTypes.QuotePrefix);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xfs.QuotePrefix);
}
if (null != xfs.XfId) {
this.memory.WriteByte(c_oSerXfsTypes.XfId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xfs.XfId);
}
};
this.WriteAlign = function (align) {
if (null != align.hor) {
var nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentGeneral;
switch (align.hor) {
case "center":
nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentCenter;
break;
case "justify":
nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentJustify;
break;
case "none":
nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentGeneral;
break;
case "left":
nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentLeft;
break;
case "right":
nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentRight;
break;
}
this.memory.WriteByte(c_oSerAligmentTypes.Horizontal);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(nHorizontalAlignment);
}
if (null != align.indent) {
this.memory.WriteByte(c_oSerAligmentTypes.Indent);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(align.indent);
}
if (null != align.RelativeIndent) {
this.memory.WriteByte(c_oSerAligmentTypes.RelativeIndent);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(align.RelativeIndent);
}
if (null != align.shrink) {
this.memory.WriteByte(c_oSerAligmentTypes.ShrinkToFit);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(align.shrink);
}
if (null != align.angle) {
this.memory.WriteByte(c_oSerAligmentTypes.TextRotation);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(align.angle);
}
if (null != align.ver) {
var nVerticalAlignment = EHorizontalAlignment.horizontalalignmentGeneral;
switch (align.ver) {
case "bottom":
nVerticalAlignment = EVerticalAlignment.verticalalignmentBottom;
break;
case "center":
nVerticalAlignment = EVerticalAlignment.verticalalignmentCenter;
break;
case "distributed":
nVerticalAlignment = EVerticalAlignment.verticalalignmentDistributed;
break;
case "justify":
nVerticalAlignment = EVerticalAlignment.verticalalignmentJustify;
break;
case "top":
nVerticalAlignment = EVerticalAlignment.verticalalignmentTop;
break;
}
this.memory.WriteByte(c_oSerAligmentTypes.Vertical);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(nVerticalAlignment);
}
if (null != align.wrap) {
this.memory.WriteByte(c_oSerAligmentTypes.WrapText);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(align.wrap);
}
};
this.WriteDxfs = function (Dxfs, oDxfsNumFormatToId) {
var oThis = this;
for (var i = 0, length = Dxfs.length; i < length; ++i) {
this.bs.WriteItem(c_oSerStylesTypes.Dxf, function () {
oThis.WriteDxf(Dxfs[i], oDxfsNumFormatToId);
});
}
};
this.WriteDxf = function (Dxf, oDxfsNumFormatToId) {
var oThis = this;
if (null != Dxf.align) {
this.bs.WriteItem(c_oSer_Dxf.Alignment, function () {
oThis.WriteAlign(Dxf.align);
});
}
if (null != Dxf.border) {
this.bs.WriteItem(c_oSer_Dxf.Border, function () {
oThis.WriteBorder(Dxf.border);
});
}
if (null != Dxf.fill) {
this.bs.WriteItem(c_oSer_Dxf.Fill, function () {
oThis.WriteFill(Dxf.fill);
});
}
if (null != Dxf.font) {
this.bs.WriteItem(c_oSer_Dxf.Font, function () {
oThis.WriteFont(Dxf.font);
});
}
if (null != Dxf.num && null != oDxfsNumFormatToId) {
var numId = oDxfsNumFormatToId[Dxf.num.f];
if (null != numId) {
this.bs.WriteItem(c_oSer_Dxf.NumFmt, function () {
oThis.WriteNum({
id: numId,
f: Dxf.num.f
});
});
}
}
};
this.WriteCellStyles = function (cellStyles) {
var oThis = this;
for (var i = 0, length = cellStyles.length; i < length; ++i) {
var style = cellStyles[i];
this.bs.WriteItem(c_oSerStylesTypes.CellStyle, function () {
oThis.WriteCellStyle(style);
});
}
};
this.WriteCellStyle = function (oCellStyle) {
var oThis = this;
if (null != oCellStyle.BuiltinId) {
this.bs.WriteItem(c_oSer_CellStyle.BuiltinId, function () {
oThis.memory.WriteLong(oCellStyle.BuiltinId);
});
}
if (null != oCellStyle.CustomBuiltin) {
this.bs.WriteItem(c_oSer_CellStyle.CustomBuiltin, function () {
oThis.memory.WriteBool(oCellStyle.CustomBuiltin);
});
}
if (null != oCellStyle.Hidden) {
this.bs.WriteItem(c_oSer_CellStyle.Hidden, function () {
oThis.memory.WriteBool(oCellStyle.Hidden);
});
}
if (null != oCellStyle.ILevel) {
this.bs.WriteItem(c_oSer_CellStyle.ILevel, function () {
oThis.memory.WriteLong(oCellStyle.ILevel);
});
}
if (null != oCellStyle.Name) {
this.memory.WriteByte(c_oSer_CellStyle.Name);
this.memory.WriteString2(oCellStyle.Name);
}
if (null != oCellStyle.XfId) {
this.bs.WriteItem(c_oSer_CellStyle.XfId, function () {
oThis.memory.WriteLong(oCellStyle.XfId);
});
}
};
this.WriteTableStyles = function (tableStyles) {
var oThis = this;
if (null != tableStyles.DefaultTableStyle) {
this.memory.WriteByte(c_oSer_TableStyles.DefaultTableStyle);
this.memory.WriteString2(tableStyles.DefaultTableStyle);
}
if (null != tableStyles.DefaultPivotStyle) {
this.memory.WriteByte(c_oSer_TableStyles.DefaultPivotStyle);
this.memory.WriteString2(tableStyles.DefaultPivotStyle);
}
var bEmptyCustom = true;
for (var i in tableStyles.CustomStyles) {
bEmptyCustom = false;
break;
}
if (false == bEmptyCustom) {
this.bs.WriteItem(c_oSer_TableStyles.TableStyles, function () {
oThis.WriteTableCustomStyles(tableStyles.CustomStyles);
});
}
};
this.WriteTableCustomStyles = function (customStyles) {
var oThis = this;
for (var i in customStyles) {
var style = customStyles[i];
this.bs.WriteItem(c_oSer_TableStyles.TableStyle, function () {
oThis.WriteTableCustomStyle(style);
});
}
};
this.WriteTableCustomStyle = function (customStyle) {
var oThis = this;
if (null != customStyle.name) {
this.memory.WriteByte(c_oSer_TableStyle.Name);
this.memory.WriteString2(customStyle.name);
}
if (null != customStyle.pivot) {
this.bs.WriteItem(c_oSer_TableStyle.Pivot, function () {
oThis.memory.WriteBool(customStyle.pivot);
});
}
if (null != customStyle.table) {
this.bs.WriteItem(c_oSer_TableStyle.Table, function () {
oThis.memory.WriteBool(customStyle.table);
});
}
this.bs.WriteItem(c_oSer_TableStyle.Elements, function () {
oThis.WriteTableCustomStyleElements(customStyle);
});
};
this.WriteTableCustomStyleElements = function (customStyle) {
var oThis = this;
if (null != customStyle.blankRow) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeBlankRow, customStyle.blankRow);
});
}
if (null != customStyle.firstColumn) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstColumn, customStyle.firstColumn);
});
}
if (null != customStyle.firstColumnStripe) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstColumnStripe, customStyle.firstColumnStripe);
});
}
if (null != customStyle.firstColumnSubheading) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstColumnSubheading, customStyle.firstColumnSubheading);
});
}
if (null != customStyle.firstHeaderCell) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstHeaderCell, customStyle.firstHeaderCell);
});
}
if (null != customStyle.firstRowStripe) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstRowStripe, customStyle.firstRowStripe);
});
}
if (null != customStyle.firstRowSubheading) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstRowSubheading, customStyle.firstRowSubheading);
});
}
if (null != customStyle.firstSubtotalColumn) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstSubtotalColumn, customStyle.firstSubtotalColumn);
});
}
if (null != customStyle.firstSubtotalRow) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstSubtotalRow, customStyle.firstSubtotalRow);
});
}
if (null != customStyle.firstTotalCell) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstTotalCell, customStyle.firstTotalCell);
});
}
if (null != customStyle.headerRow) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeHeaderRow, customStyle.headerRow);
});
}
if (null != customStyle.lastColumn) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeLastColumn, customStyle.lastColumn);
});
}
if (null != customStyle.lastHeaderCell) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeLastHeaderCell, customStyle.lastHeaderCell);
});
}
if (null != customStyle.lastTotalCell) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeLastTotalCell, customStyle.lastTotalCell);
});
}
if (null != customStyle.pageFieldLabels) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypePageFieldLabels, customStyle.pageFieldLabels);
});
}
if (null != customStyle.pageFieldValues) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypePageFieldValues, customStyle.pageFieldValues);
});
}
if (null != customStyle.secondColumnStripe) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondColumnStripe, customStyle.secondColumnStripe);
});
}
if (null != customStyle.secondColumnSubheading) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondColumnSubheading, customStyle.secondColumnSubheading);
});
}
if (null != customStyle.secondRowStripe) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondRowStripe, customStyle.secondRowStripe);
});
}
if (null != customStyle.secondRowSubheading) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondRowSubheading, customStyle.secondRowSubheading);
});
}
if (null != customStyle.secondSubtotalColumn) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondSubtotalColumn, customStyle.secondSubtotalColumn);
});
}
if (null != customStyle.secondSubtotalRow) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondSubtotalRow, customStyle.secondSubtotalRow);
});
}
if (null != customStyle.thirdColumnSubheading) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeThirdColumnSubheading, customStyle.thirdColumnSubheading);
});
}
if (null != customStyle.thirdRowSubheading) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeThirdRowSubheading, customStyle.thirdRowSubheading);
});
}
if (null != customStyle.thirdSubtotalColumn) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeThirdSubtotalColumn, customStyle.thirdSubtotalColumn);
});
}
if (null != customStyle.thirdSubtotalRow) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeThirdSubtotalRow, customStyle.thirdSubtotalRow);
});
}
if (null != customStyle.totalRow) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeTotalRow, customStyle.totalRow);
});
}
if (null != customStyle.wholeTable) {
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeWholeTable, customStyle.wholeTable);
});
}
};
this.WriteTableCustomStyleElement = function (type, customElement) {
if (null != type) {
this.memory.WriteByte(c_oSer_TableStyleElement.Type);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(type);
}
if (null != customElement.size) {
this.memory.WriteByte(c_oSer_TableStyleElement.Size);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(customElement.size);
}
if (null != customElement.dxf && null != this.aDxfs) {
this.memory.WriteByte(c_oSer_TableStyleElement.DxfId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(this.aDxfs.length);
this.aDxfs.push(customElement.dxf);
}
};
}
function BinaryWorkbookTableWriter(memory, wb) {
this.memory = memory;
this.bs = new BinaryCommonWriter(this.memory);
this.wb = wb;
this.Write = function () {
var oThis = this;
this.bs.WriteItemWithLength(function () {
oThis.WriteWorkbookContent();
});
};
this.WriteWorkbookContent = function () {
var oThis = this;
this.bs.WriteItem(c_oSerWorkbookTypes.WorkbookPr, function () {
oThis.WriteWorkbookPr();
});
this.bs.WriteItem(c_oSerWorkbookTypes.BookViews, function () {
oThis.WriteBookViews();
});
this.bs.WriteItem(c_oSerWorkbookTypes.DefinedNames, function () {
oThis.WriteDefinedNames();
});
};
this.WriteWorkbookPr = function () {
var oWorkbookPr = this.wb.WorkbookPr;
if (null != oWorkbookPr) {
if (null != oWorkbookPr.Date1904) {
this.memory.WriteByte(c_oSerBorderPropTypes.Date1904);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oWorkbookPr.Date1904);
} else {
if (null != oWorkbookPr.DateCompatibility) {
this.memory.WriteByte(c_oSerBorderPropTypes.DateCompatibility);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oWorkbookPr.DateCompatibility);
}
}
}
};
this.WriteBookViews = function () {
var oThis = this;
this.bs.WriteItem(c_oSerWorkbookTypes.WorkbookView, function () {
oThis.WriteWorkbookView();
});
};
this.WriteWorkbookView = function () {
if (null != this.wb.nActive) {
this.memory.WriteByte(c_oSerWorkbookViewTypes.ActiveTab);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(this.wb.nActive);
}
};
this.WriteDefinedNames = function () {
var oThis = this;
var allDefined = new Object();
if (null != this.wb.oRealDefinedNames) {
for (var i in this.wb.oRealDefinedNames) {
var oDefinedName = this.wb.oRealDefinedNames[i];
if (null == allDefined[oDefinedName.Name]) {
allDefined[oDefinedName.Name] = {
global: oDefinedName,
local: {}
};
}
}
}
for (var i = 0, length = this.wb.aWorksheets.length; i < length; ++i) {
var ws = this.wb.aWorksheets[i];
if (null != ws.DefinedNames) {
for (var j in ws.DefinedNames) {
var oDefinedName = ws.DefinedNames[j];
var elem = allDefined[oDefinedName.Name];
if (null == elem) {
elem = {
global: null,
local: {}
};
allDefined[oDefinedName.Name] = elem;
}
elem.local[i] = oDefinedName;
}
}
}
for (var i in allDefined) {
var elem = allDefined[i];
for (var j in elem.local) {
var localElem = elem.local[j];
var nLocalIndex = j - 0;
if (null != localElem) {
this.bs.WriteItem(c_oSerWorkbookTypes.DefinedName, function () {
oThis.WriteDefinedName(localElem, nLocalIndex);
});
}
}
if (null != elem.global) {
this.bs.WriteItem(c_oSerWorkbookTypes.DefinedName, function () {
oThis.WriteDefinedName(elem.global);
});
}
}
};
this.WriteDefinedName = function (oDefinedName, LocalSheetId) {
var oThis = this;
if (null != oDefinedName.Name) {
this.memory.WriteByte(c_oSerDefinedNameTypes.Name);
this.memory.WriteString2(oDefinedName.Name);
}
if (null != oDefinedName.Ref) {
this.memory.WriteByte(c_oSerDefinedNameTypes.Ref);
this.memory.WriteString2(oDefinedName.Ref);
}
if (null != LocalSheetId) {
this.bs.WriteItem(c_oSerDefinedNameTypes.LocalSheetId, function () {
oThis.memory.WriteLong(LocalSheetId);
});
}
};
}
function BinaryWorksheetsTableWriter(memory, wb, oSharedStrings, aDxfs, aXfs, aFonts, aFills, aBorders, aNums, idWorksheet) {
this.memory = memory;
this.bs = new BinaryCommonWriter(this.memory);
this.wb = wb;
this.oSharedStrings = oSharedStrings;
this.aDxfs = aDxfs;
this.aXfs = aXfs;
this.aFonts = aFonts;
this.aFills = aFills;
this.aBorders = aBorders;
this.aNums = aNums;
this.oXfsStylesMap = [];
this.oXfsMap = new Object();
this.nXfsMapIndex = 0;
this.oFontMap = new Object();
this.nFontMapIndex = 0;
this.oFillMap = new Object();
this.nFillMapIndex = 0;
this.oBorderMap = new Object();
this.nBorderMapIndex = 0;
this.oNumMap = new Object();
this.nNumMapIndex = 0;
this.idWorksheet = idWorksheet;
this.oAllColXfsId = null;
this._getCrc32FromObjWithProperty = function (val) {
return Asc.crc32(this._getStringFromObjWithProperty(val));
};
this._getStringFromObjWithProperty = function (val) {
var sRes = "";
if (val.getProperties) {
var properties = val.getProperties();
for (var i in properties) {
var oCurProp = val.getProperty(properties[i]);
if (null != oCurProp && oCurProp.getProperties) {
sRes += this._getStringFromObjWithProperty(oCurProp);
} else {
sRes += oCurProp;
}
}
}
return sRes;
};
this._prepeareStyles = function () {
this.oFontMap[this._getStringFromObjWithProperty(g_oDefaultFont)] = {
index: this.nFontMapIndex++,
val: g_oDefaultFont
};
this.oFillMap[this._getStringFromObjWithProperty(g_oDefaultFill)] = {
index: this.nFillMapIndex++,
val: g_oDefaultFill
};
this.nFillMapIndex++;
this.oBorderMap[this._getStringFromObjWithProperty(g_oDefaultBorder)] = {
index: this.nBorderMapIndex++,
val: g_oDefaultBorder
};
this.nNumMapIndex = g_nNumsMaxId;
var sAlign = "0";
var oAlign = null;
if (false == g_oDefaultAlign.isEqual(g_oDefaultAlignAbs)) {
oAlign = g_oDefaultAlign;
sAlign = this._getStringFromObjWithProperty(g_oDefaultAlign);
}
this.prepareXfsStyles();
var xfs = {
borderid: 0,
fontid: 0,
fillid: 0,
numid: 0,
align: oAlign,
QuotePrefix: null
};
this.oXfsMap["0|0|0|0|" + sAlign] = {
index: this.nXfsMapIndex++,
val: xfs
};
};
this.Write = function () {
var oThis = this;
this._prepeareStyles();
this.bs.WriteItemWithLength(function () {
oThis.WriteWorksheetsContent();
});
};
this.WriteWorksheetsContent = function () {
var oThis = this;
for (var i = 0, length = this.wb.aWorksheets.length; i < length; ++i) {
var ws = this.wb.aWorksheets[i];
if (null == this.idWorksheet || this.idWorksheet == ws.getId()) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Worksheet, function () {
oThis.WriteWorksheet(ws, i);
});
}
}
};
this.WriteWorksheet = function (ws, index) {
var oThis = this;
this.bs.WriteItem(c_oSerWorksheetsTypes.WorksheetProp, function () {
oThis.WriteWorksheetProp(ws, index);
});
if (ws.aCols.length > 0 || null != ws.oAllCol) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Cols, function () {
oThis.WriteWorksheetCols(ws);
});
}
this.bs.WriteItem(c_oSerWorksheetsTypes.SheetViews, function () {
oThis.WriteSheetViews(ws);
});
if (null !== ws.sheetPr) {
this.bs.WriteItem(c_oSerWorksheetsTypes.SheetPr, function () {
oThis.WriteSheetPr(ws.sheetPr);
});
}
this.bs.WriteItem(c_oSerWorksheetsTypes.SheetFormatPr, function () {
oThis.WriteSheetFormatPr(ws);
});
if (null != ws.PagePrintOptions) {
this.bs.WriteItem(c_oSerWorksheetsTypes.PageMargins, function () {
oThis.WritePageMargins(ws.PagePrintOptions.asc_getPageMargins());
});
this.bs.WriteItem(c_oSerWorksheetsTypes.PageSetup, function () {
oThis.WritePageSetup(ws.PagePrintOptions.asc_getPageSetup());
});
this.bs.WriteItem(c_oSerWorksheetsTypes.PrintOptions, function () {
oThis.WritePrintOptions(ws.PagePrintOptions);
});
}
this.bs.WriteItem(c_oSerWorksheetsTypes.SheetData, function () {
oThis.WriteSheetData(ws);
});
this.bs.WriteItem(c_oSerWorksheetsTypes.Hyperlinks, function () {
oThis.WriteHyperlinks(ws);
});
this.bs.WriteItem(c_oSerWorksheetsTypes.MergeCells, function () {
oThis.WriteMergeCells(ws);
});
if (ws.Drawings && (ws.Drawings.length)) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Drawings, function () {
oThis.WriteDrawings(ws.Drawings);
});
}
if (ws.aComments.length > 0 && ws.aCommentsCoords.length > 0) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Comments, function () {
oThis.WriteComments(ws.aComments, ws.aCommentsCoords);
});
}
if (null != ws.AutoFilter) {
var oBinaryTableWriter = new BinaryTableWriter(this.memory, this.aDxfs);
this.bs.WriteItem(c_oSerWorksheetsTypes.Autofilter, function () {
oBinaryTableWriter.WriteAutoFilter(ws.AutoFilter);
});
}
if (null != ws.TableParts && ws.TableParts.length > 0) {
var oBinaryTableWriter = new BinaryTableWriter(this.memory, this.aDxfs);
this.bs.WriteItem(c_oSerWorksheetsTypes.TableParts, function () {
oBinaryTableWriter.Write(ws.TableParts);
});
}
};
this.WriteWorksheetProp = function (ws, index) {
var oThis = this;
this.memory.WriteByte(c_oSerWorksheetPropTypes.Name);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(ws.sName);
this.memory.WriteByte(c_oSerWorksheetPropTypes.SheetId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(index + 1);
if (null != ws.bHidden) {
this.memory.WriteByte(c_oSerWorksheetPropTypes.State);
this.memory.WriteByte(c_oSerPropLenType.Byte);
if (true == ws.bHidden) {
this.memory.WriteByte(EVisibleType.visibleHidden);
} else {
this.memory.WriteByte(EVisibleType.visibleVisible);
}
}
};
this.WriteWorksheetCols = function (ws) {
var oThis = this;
var aCols = ws.aCols;
var oPrevCol = null;
var nPrevIndexStart = null;
var nPrevIndex = null;
var aIndexes = new Array();
for (var i in aCols) {
aIndexes.push(i - 0);
}
aIndexes.sort(fSortAscending);
var fInitCol = function (col, nMin, nMax) {
var oRes = {
BestFit: col.BestFit,
hd: col.hd,
Max: nMax,
Min: nMin,
xfsid: null,
width: col.width,
CustomWidth: col.CustomWidth
};
if (null == oRes.width) {
if (null != ws.dDefaultColWidth) {
oRes.width = ws.dDefaultColWidth;
} else {
oRes.width = gc_dDefaultColWidthCharsAttribute;
}
}
if (null != col.xfs) {
oRes.xfsid = oThis.prepareXfs(col.xfs);
}
return oRes;
};
var oAllCol = null;
if (null != ws.oAllCol) {
oAllCol = fInitCol(ws.oAllCol, 0, gc_nMaxCol0);
this.oAllColXfsId = oAllCol.xfsid;
}
for (var i = 0, length = aIndexes.length; i < length; ++i) {
var nIndex = aIndexes[i];
var col = aCols[nIndex];
if (null != col) {
if (false == col.isEmptyToSave()) {
if (null != oAllCol && null == nPrevIndex && nIndex > 0) {
oAllCol.Min = 1;
oAllCol.Max = nIndex;
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
oThis.WriteWorksheetCol(oAllCol);
});
}
if (null != nPrevIndex && (nPrevIndex + 1 != nIndex || false == oPrevCol.isEqual(col))) {
var oColToWrite = fInitCol(oPrevCol, nPrevIndexStart + 1, nPrevIndex + 1);
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
oThis.WriteWorksheetCol(oColToWrite);
});
nPrevIndexStart = null;
if (null != oAllCol && nPrevIndex + 1 != nIndex) {
oAllCol.Min = nPrevIndex + 2;
oAllCol.Max = nIndex;
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
oThis.WriteWorksheetCol(oAllCol);
});
}
}
oPrevCol = col;
nPrevIndex = nIndex;
if (null == nPrevIndexStart) {
nPrevIndexStart = nPrevIndex;
}
}
}
}
if (null != nPrevIndexStart && null != nPrevIndex && null != oPrevCol) {
var oColToWrite = fInitCol(oPrevCol, nPrevIndexStart + 1, nPrevIndex + 1);
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
oThis.WriteWorksheetCol(oColToWrite);
});
}
if (null != oAllCol) {
if (null == nPrevIndex) {
oAllCol.Min = 1;
oAllCol.Max = gc_nMaxCol0 + 1;
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
oThis.WriteWorksheetCol(oAllCol);
});
} else {
if (gc_nMaxCol0 != nPrevIndex) {
oAllCol.Min = nPrevIndex + 2;
oAllCol.Max = gc_nMaxCol0 + 1;
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
oThis.WriteWorksheetCol(oAllCol);
});
}
}
}
};
this.WriteWorksheetCol = function (oCol) {
if (null != oCol.BestFit) {
this.memory.WriteByte(c_oSerWorksheetColTypes.BestFit);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oCol.BestFit);
}
if (null != oCol.hd) {
this.memory.WriteByte(c_oSerWorksheetColTypes.Hidden);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oCol.hd);
}
if (null != oCol.Max) {
this.memory.WriteByte(c_oSerWorksheetColTypes.Max);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oCol.Max);
}
if (null != oCol.Min) {
this.memory.WriteByte(c_oSerWorksheetColTypes.Min);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oCol.Min);
}
if (null != oCol.xfsid) {
this.memory.WriteByte(c_oSerWorksheetColTypes.Style);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oCol.xfsid);
}
if (null != oCol.width) {
this.memory.WriteByte(c_oSerWorksheetColTypes.Width);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(oCol.width);
}
if (null != oCol.CustomWidth) {
this.memory.WriteByte(c_oSerWorksheetColTypes.CustomWidth);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oCol.CustomWidth);
}
};
this.WriteSheetViews = function (ws) {
var oThis = this;
for (var i = 0, length = ws.sheetViews.length; i < length; ++i) {
this.bs.WriteItem(c_oSerWorksheetsTypes.SheetView, function () {
oThis.WriteSheetView(ws.sheetViews[i]);
});
}
};
this.WriteSheetView = function (oSheetView) {
var oThis = this;
if (null !== oSheetView.showGridLines) {
this.bs.WriteItem(c_oSer_SheetView.ShowGridLines, function () {
oThis.memory.WriteBool(oSheetView.showGridLines);
});
}
if (null !== oSheetView.showRowColHeaders) {
this.bs.WriteItem(c_oSer_SheetView.ShowRowColHeaders, function () {
oThis.memory.WriteBool(oSheetView.showRowColHeaders);
});
}
};
this.WriteSheetPr = function (sheetPr) {
var oThis = this;
if (null !== sheetPr.CodeName) {
this.bs.WriteItem(c_oSer_SheetPr.CodeName, function () {
oThis.memory.WriteString3(sheetPr.CodeName);
});
}
if (null !== sheetPr.EnableFormatConditionsCalculation) {
this.bs.WriteItem(c_oSer_SheetPr.EnableFormatConditionsCalculation, function () {
oThis.memory.WriteBool(sheetPr.EnableFormatConditionsCalculation);
});
}
if (null !== sheetPr.FilterMode) {
this.bs.WriteItem(c_oSer_SheetPr.FilterMode, function () {
oThis.memory.WriteBool(sheetPr.FilterMode);
});
}
if (null !== sheetPr.Published) {
this.bs.WriteItem(c_oSer_SheetPr.Published, function () {
oThis.memory.WriteBool(sheetPr.Published);
});
}
if (null !== sheetPr.SyncHorizontal) {
this.bs.WriteItem(c_oSer_SheetPr.SyncHorizontal, function () {
oThis.memory.WriteBool(sheetPr.SyncHorizontal);
});
}
if (null !== sheetPr.SyncRef) {
this.bs.WriteItem(c_oSer_SheetPr.SyncRef, function () {
oThis.memory.WriteString3(sheetPr.SyncRef);
});
}
if (null !== sheetPr.SyncVertical) {
this.bs.WriteItem(c_oSer_SheetPr.SyncVertical, function () {
oThis.memory.WriteBool(sheetPr.SyncVertical);
});
}
if (null !== sheetPr.TransitionEntry) {
this.bs.WriteItem(c_oSer_SheetPr.TransitionEntry, function () {
oThis.memory.WriteBool(sheetPr.TransitionEntry);
});
}
if (null !== sheetPr.TransitionEvaluation) {
this.bs.WriteItem(c_oSer_SheetPr.TransitionEvaluation, function () {
oThis.memory.WriteBool(sheetPr.TransitionEvaluation);
});
}
if (null !== sheetPr.TabColor) {
this.bs.WriteItem(c_oSer_SheetPr.TabColor, function () {
oThis.bs.WriteColorSpreadsheet(sheetPr.TabColor);
});
}
};
this.WriteSheetFormatPr = function (ws) {
if (null !== ws.dDefaultColWidth) {
this.memory.WriteByte(c_oSerSheetFormatPrTypes.DefaultColWidth);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(ws.dDefaultColWidth);
}
if (null !== ws.dDefaultheight) {
this.memory.WriteByte(c_oSerSheetFormatPrTypes.DefaultRowHeight);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(ws.dDefaultheight);
}
if (null !== ws.nBaseColWidth) {
this.memory.WriteByte(c_oSerSheetFormatPrTypes.BaseColWidth);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(ws.nBaseColWidth);
}
};
this.WritePageMargins = function (oMargins) {
var dLeft = oMargins.asc_getLeft();
if (null != dLeft) {
this.memory.WriteByte(c_oSer_PageMargins.Left);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(dLeft);
}
var dTop = oMargins.asc_getTop();
if (null != dTop) {
this.memory.WriteByte(c_oSer_PageMargins.Top);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(dTop);
}
var dRight = oMargins.asc_getRight();
if (null != dRight) {
this.memory.WriteByte(c_oSer_PageMargins.Right);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(dRight);
}
var dBottom = oMargins.asc_getBottom();
if (null != dBottom) {
this.memory.WriteByte(c_oSer_PageMargins.Bottom);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(dBottom);
}
this.memory.WriteByte(c_oSer_PageMargins.Header);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(12.7);
this.memory.WriteByte(c_oSer_PageMargins.Footer);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(12.7);
};
this.WritePageSetup = function (oPageSetup) {
var byteOrientation = oPageSetup.asc_getOrientation();
if (null != byteOrientation) {
var byteFormatOrientation = null;
switch (byteOrientation) {
case c_oAscPageOrientation.PagePortrait:
byteFormatOrientation = EPageOrientation.pageorientPortrait;
break;
case c_oAscPageOrientation.PageLandscape:
byteFormatOrientation = EPageOrientation.pageorientLandscape;
break;
}
if (null != byteFormatOrientation) {
this.memory.WriteByte(c_oSer_PageSetup.Orientation);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(byteFormatOrientation);
}
}
var dWidth = oPageSetup.asc_getWidth();
var dHeight = oPageSetup.asc_getHeight();
if (null != dWidth && null != dHeight) {
var item = DocumentPageSize.getSizeByWH(dWidth, dHeight);
this.memory.WriteByte(c_oSer_PageSetup.PaperSize);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(item.id);
}
};
this.WritePrintOptions = function (oPrintOptions) {
var bGridLines = oPrintOptions.asc_getGridLines();
if (null != bGridLines) {
this.memory.WriteByte(c_oSer_PrintOptions.GridLines);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(bGridLines);
}
var bHeadings = oPrintOptions.asc_getHeadings();
if (null != bHeadings) {
this.memory.WriteByte(c_oSer_PrintOptions.Headings);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(bHeadings);
}
};
this.WriteHyperlinks = function (ws) {
var oThis = this;
var oHyperlinks = ws.hyperlinkManager.getAll();
for (var i in oHyperlinks) {
var elem = oHyperlinks[i];
this.bs.WriteItem(c_oSerWorksheetsTypes.Hyperlink, function () {
oThis.WriteHyperlink(elem.data);
});
}
};
this.WriteHyperlink = function (oHyperlink) {
if (null != oHyperlink.Ref) {
this.memory.WriteByte(c_oSerHyperlinkTypes.Ref);
this.memory.WriteString2(oHyperlink.Ref.getName());
}
if (null != oHyperlink.Hyperlink) {
this.memory.WriteByte(c_oSerHyperlinkTypes.Hyperlink);
this.memory.WriteString2(oHyperlink.Hyperlink);
}
if (null !== oHyperlink.getLocation()) {
this.memory.WriteByte(c_oSerHyperlinkTypes.Location);
this.memory.WriteString2(oHyperlink.getLocation());
}
if (null != oHyperlink.Tooltip) {
this.memory.WriteByte(c_oSerHyperlinkTypes.Tooltip);
this.memory.WriteString2(oHyperlink.Tooltip);
}
};
this.WriteMergeCells = function (ws) {
var oThis = this;
var oMerged = ws.mergeManager.getAll();
for (var i in oMerged) {
var elem = oMerged[i];
var bbox = elem.bbox;
if (bbox.r1 != bbox.r2 || bbox.c1 != bbox.c2) {
var oFirst = new CellAddress(bbox.r1, bbox.c1, 0);
var oLast = new CellAddress(bbox.r2, bbox.c2, 0);
this.memory.WriteByte(c_oSerWorksheetsTypes.MergeCell);
this.memory.WriteString2(oFirst.getID() + ":" + oLast.getID());
}
}
};
this.WriteDrawings = function (aDrawings) {
var oThis = this;
for (var i = 0, length = aDrawings.length; i < length; ++i) {
var oDrawing = aDrawings[i];
this.bs.WriteItem(c_oSerWorksheetsTypes.Drawing, function () {
oThis.WriteDrawing(oDrawing);
});
}
};
this.WriteDrawing = function (oDrawing) {
var oThis = this;
if (null != oDrawing.Type) {
this.bs.WriteItem(c_oSer_DrawingType.Type, function () {
oThis.memory.WriteByte(ECellAnchorType.cellanchorOneCell);
});
}
if (null != oDrawing.from) {
this.bs.WriteItem(c_oSer_DrawingType.From, function () {
oThis.WriteFromTo(oDrawing.from);
});
}
if (null != oDrawing.to) {
this.bs.WriteItem(c_oSer_DrawingType.To, function () {
oThis.WriteFromTo(oDrawing.to);
});
}
if (oDrawing.isChart()) {
var oBinaryChartWriter = new BinaryChartWriter(this.memory);
this.bs.WriteItem(c_oSer_DrawingType.GraphicFrame, function () {
oBinaryChartWriter.Write(oDrawing.graphicObject);
});
} else {
this.bs.WriteItem(c_oSer_DrawingType.pptxDrawing, function () {
window.global_pptx_content_writer.WriteDrawing(oThis.memory, oDrawing.graphicObject, null, null, null);
});
}
};
this.WriteFromTo = function (oFromTo) {
if (null != oFromTo.col) {
this.memory.WriteByte(c_oSer_DrawingFromToType.Col);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oFromTo.col);
}
if (null != oFromTo.colOff) {
this.memory.WriteByte(c_oSer_DrawingFromToType.ColOff);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(oFromTo.colOff);
}
if (null != oFromTo.row) {
this.memory.WriteByte(c_oSer_DrawingFromToType.Row);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oFromTo.row);
}
if (null != oFromTo.rowOff) {
this.memory.WriteByte(c_oSer_DrawingFromToType.RowOff);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(oFromTo.rowOff);
}
};
this.WritePos = function (oPos) {
if (null != oPos.X) {
this.memory.WriteByte(c_oSer_DrawingPosType.X);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(oPos.X);
}
if (null != oPos.Y) {
this.memory.WriteByte(c_oSer_DrawingPosType.Y);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(oPos.Y);
}
};
this.WriteSheetData = function (ws) {
var oThis = this;
var aIndexes = new Array();
for (var i in ws.aGCells) {
aIndexes.push(i - 0);
}
aIndexes.sort(fSortAscending);
for (var i = 0, length = aIndexes.length; i < length; ++i) {
var row = ws.aGCells[aIndexes[i]];
if (null != row) {
if (false == row.isEmptyToSave()) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Row, function () {
oThis.WriteRow(row);
});
}
}
}
};
this.WriteRow = function (oRow) {
var oThis = this;
if (null != oRow.r) {
this.memory.WriteByte(c_oSerRowTypes.Row);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oRow.r);
}
if (null != oRow.xfs) {
var nXfsId = this.prepareXfs(oRow.xfs);
this.memory.WriteByte(c_oSerRowTypes.Style);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(nXfsId);
}
if (null != oRow.h) {
this.memory.WriteByte(c_oSerRowTypes.Height);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(oRow.h);
}
if (null != oRow.CustomHeight) {
this.memory.WriteByte(c_oSerRowTypes.CustomHeight);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oRow.CustomHeight);
}
if (null != oRow.hd) {
this.memory.WriteByte(c_oSerRowTypes.Hidden);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oRow.hd);
}
this.memory.WriteByte(c_oSerRowTypes.Cells);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.bs.WriteItemWithLength(function () {
oThis.WriteCells(oRow.c);
});
};
this.WriteCells = function (aCells) {
var oThis = this;
var aIndexes = new Array();
for (var i in aCells) {
aIndexes.push(i - 0);
}
aIndexes.sort(fSortAscending);
for (var i = 0, length = aIndexes.length; i < length; ++i) {
var cell = aCells[aIndexes[i]];
var nXfsId = this.prepareXfs(cell.xfs);
if (0 != nXfsId || false == cell.isEmptyText()) {
this.bs.WriteItem(c_oSerRowTypes.Cell, function () {
oThis.WriteCell(cell, nXfsId);
});
}
}
};
this.prepareXfsStyles = function () {
var styles = this.wb.CellStyles.CustomStyles;
var xfs = null;
for (var i = 0, length = styles.length; i < length; ++i) {
xfs = styles[i].xfs;
if (xfs) {
var sStyle = this.prepareXfsStyle(xfs);
var oXfs = {
borderid: sStyle.borderid,
fontid: sStyle.fontid,
fillid: sStyle.fillid,
numid: sStyle.numid,
align: null,
QuotePrefix: null,
XfId: xfs.XfId
};
if ("0" != sStyle.align) {
oXfs.align = xfs.align;
}
if (null != xfs.QuotePrefix) {
oXfs.QuotePrefix = xfs.QuotePrefix;
}
this.oXfsStylesMap.push(oXfs);
}
}
};
this.prepareXfsStyle = function (xfs) {
var sStyle = {
val: "",
borderid: 0,
fontid: 0,
fillid: 0,
numid: 0,
align: "0"
};
if (null != xfs) {
if (null != xfs.font) {
var sHash = this._getStringFromObjWithProperty(xfs.font);
var elem = this.oFontMap[sHash];
if (null == elem) {
sStyle.fontid = this.nFontMapIndex++;
this.oFontMap[sHash] = {
index: sStyle.fontid,
val: xfs.font
};
} else {
sStyle.fontid = elem.index;
}
}
sStyle.val += sStyle.fontid.toString();
if (null != xfs.fill) {
var sHash = this._getStringFromObjWithProperty(xfs.fill);
var elem = this.oFillMap[sHash];
if (null == elem) {
sStyle.fillid = this.nFillMapIndex++;
this.oFillMap[sHash] = {
index: sStyle.fillid,
val: xfs.fill
};
} else {
sStyle.fillid = elem.index;
}
}
sStyle.val += "|" + sStyle.fillid.toString();
if (null != xfs.border) {
var sHash = this._getStringFromObjWithProperty(xfs.border);
var elem = this.oBorderMap[sHash];
if (null == elem) {
sStyle.borderid = this.nBorderMapIndex++;
this.oBorderMap[sHash] = {
index: sStyle.borderid,
val: xfs.border
};
} else {
sStyle.borderid = elem.index;
}
}
sStyle.val += "|" + sStyle.borderid.toString();
if (null != xfs.num) {
sStyle.numid = this.getNumIdByFormat(xfs.num);
}
sStyle.val += "|" + sStyle.numid.toString();
if (null != xfs.align && false == xfs.align.isEqual(g_oDefaultAlignAbs)) {
sStyle.align = this._getStringFromObjWithProperty(xfs.align);
}
sStyle.val += "|" + sStyle.align;
}
return sStyle;
};
this.getNumIdByFormat = function (num) {
var numid = null;
var nStandartId = aStandartNumFormatsId[num.f];
if (null == nStandartId) {
var sHash = this._getStringFromObjWithProperty(num);
var elem = this.oNumMap[sHash];
if (null == elem) {
numid = this.nNumMapIndex++;
this.oNumMap[sHash] = {
index: numid,
val: num
};
} else {
numid = elem.index;
}
} else {
numid = nStandartId;
}
return numid;
};
this.prepareXfs = function (xfs) {
var nXfsId = 0;
if (null != xfs) {
var sStyle = this.prepareXfsStyle(xfs);
var oXfsMapObj = this.oXfsMap[sStyle.val];
if (null == oXfsMapObj) {
nXfsId = this.nXfsMapIndex;
var oXfs = {
borderid: sStyle.borderid,
fontid: sStyle.fontid,
fillid: sStyle.fillid,
numid: sStyle.numid,
align: null,
QuotePrefix: null,
XfId: xfs.XfId
};
if ("0" != sStyle.align) {
oXfs.align = xfs.align;
}
if (null != xfs.QuotePrefix) {
oXfs.QuotePrefix = xfs.QuotePrefix;
}
this.oXfsMap[sStyle.val] = {
index: this.nXfsMapIndex++,
val: oXfs
};
} else {
nXfsId = oXfsMapObj.index;
}
}
return nXfsId;
};
this.WriteCell = function (cell, nXfsId) {
var oThis = this;
if (null != cell.oId) {
this.memory.WriteByte(c_oSerCellTypes.Ref);
this.memory.WriteString2(cell.oId.getID());
}
if (null != nXfsId) {
this.bs.WriteItem(c_oSerCellTypes.Style, function () {
oThis.memory.WriteLong(nXfsId);
});
}
var nCellType = cell.getType();
if (null != nCellType) {
var nType = ECellTypeType.celltypeNumber;
switch (nCellType) {
case CellValueType.Bool:
nType = ECellTypeType.celltypeBool;
break;
case CellValueType.Error:
nType = ECellTypeType.celltypeError;
break;
case CellValueType.Number:
nType = ECellTypeType.celltypeNumber;
break;
case CellValueType.String:
nType = ECellTypeType.celltypeSharedString;
break;
}
if (ECellTypeType.celltypeNumber != nType) {
this.bs.WriteItem(c_oSerCellTypes.Type, function () {
oThis.memory.WriteByte(nType);
});
}
}
if (null != cell.sFormula) {
this.bs.WriteItem(c_oSerCellTypes.Formula, function () {
oThis.WriteFormula(cell.sFormula, cell.sFormulaCA);
});
}
if (null != cell.oValue && false == cell.oValue.isEmpty()) {
var dValue = 0;
if (CellValueType.Error == nCellType || CellValueType.String == nCellType) {
var sText = "";
var aText = null;
if (null != cell.oValue.text) {
sText = cell.oValue.text;
} else {
if (null != cell.oValue.multiText) {
aText = cell.oValue.multiText;
for (var i = 0, length = cell.oValue.multiText.length; i < length; ++i) {
sText += cell.oValue.multiText[i].text;
}
}
}
var item = this.oSharedStrings.strings[sText];
var bAddItem = false;
if (null == item) {
item = {
t: null,
a: []
};
bAddItem = true;
}
if (null == aText) {
if (null == item.t) {
dValue = this.oSharedStrings.index++;
item.t = {
id: dValue,
val: sText
};
} else {
dValue = item.t.id;
}
} else {
var bFound = false;
for (var i = 0, length = item.a.length; i < length; ++i) {
var oCurItem = item.a[i];
if (oCurItem.val.length == aText.length) {
var bEqual = true;
for (var j = 0, length2 = aText.length; j < length2; ++j) {
if (false == aText[j].isEqual(oCurItem.val[j])) {
bEqual = false;
break;
}
}
if (bEqual) {
bFound = true;
dValue = oCurItem.id;
break;
}
}
}
if (false == bFound) {
dValue = this.oSharedStrings.index++;
item.a.push({
id: dValue,
val: aText
});
}
}
if (bAddItem) {
this.oSharedStrings.strings[sText] = item;
}
} else {
if (null != cell.oValue.number) {
dValue = cell.oValue.number;
}
}
this.bs.WriteItem(c_oSerCellTypes.Value, function () {
oThis.memory.WriteDouble2(dValue);
});
}
};
this.WriteFormula = function (sFormula, sFormulaCA) {
if (null != sFormulaCA) {
this.memory.WriteByte(c_oSerFormulaTypes.Ca);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sFormulaCA);
}
this.memory.WriteByte(c_oSerFormulaTypes.Text);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(sFormula);
};
this.WriteComments = function (aComments, aCommentsCoords) {
var oThis = this;
var oNewComments = new Object();
for (var i = 0, length = aComments.length; i < length; ++i) {
var elem = aComments[i];
var nRow = elem.asc_getRow();
if (null == nRow) {
nRow = 0;
}
var nCol = elem.asc_getCol();
if (null == nCol) {
nCol = 0;
}
var row = oNewComments[nRow];
if (null == row) {
row = new Object();
oNewComments[nRow] = row;
}
var comment = row[nCol];
if (null == comment) {
comment = {
data: new Array(),
coord: null
};
row[nCol] = comment;
}
comment.data.push(elem);
}
for (var i = 0, length = aCommentsCoords.length; i < length; ++i) {
var elem = aCommentsCoords[i];
var nRow = elem.asc_getRow();
if (null == nRow) {
nRow = 0;
}
var nCol = elem.asc_getCol();
if (null == nCol) {
nCol = 0;
}
var row = oNewComments[nRow];
if (null == row) {
row = new Object();
oNewComments[nRow] = row;
}
var comment = row[nCol];
if (null == comment) {
comment = {
data: new Array(),
coord: null
};
row[nCol] = comment;
}
comment.coord = elem;
}
for (var i in oNewComments) {
var row = oNewComments[i];
for (var j in row) {
var comment = row[j];
if (null == comment.coord || 0 == comment.data.length) {
continue;
}
var coord = comment.coord;
if (null == coord.asc_getLeft() || null == coord.asc_getTop() || null == coord.asc_getRight() || null == coord.asc_getBottom() || null == coord.asc_getLeftOffset() || null == coord.asc_getTopOffset() || null == coord.asc_getRightOffset() || null == coord.asc_getBottomOffset() || null == coord.asc_getLeftMM() || null == coord.asc_getTopMM() || null == coord.asc_getWidthMM() || null == coord.asc_getHeightMM()) {
continue;
}
this.bs.WriteItem(c_oSerWorksheetsTypes.Comment, function () {
oThis.WriteComment(comment);
});
}
}
};
this.WriteComment = function (comment) {
var oThis = this;
this.memory.WriteByte(c_oSer_Comments.Row);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(comment.coord.asc_getRow());
this.memory.WriteByte(c_oSer_Comments.Col);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(comment.coord.asc_getCol());
this.memory.WriteByte(c_oSer_Comments.CommentDatas);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.bs.WriteItemWithLength(function () {
oThis.WriteCommentDatas(comment.data);
});
this.memory.WriteByte(c_oSer_Comments.Left);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(comment.coord.asc_getLeft());
this.memory.WriteByte(c_oSer_Comments.Top);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(comment.coord.asc_getTop());
this.memory.WriteByte(c_oSer_Comments.Right);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(comment.coord.asc_getRight());
this.memory.WriteByte(c_oSer_Comments.Bottom);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(comment.coord.asc_getBottom());
this.memory.WriteByte(c_oSer_Comments.LeftOffset);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(comment.coord.asc_getLeftOffset());
this.memory.WriteByte(c_oSer_Comments.TopOffset);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(comment.coord.asc_getTopOffset());
this.memory.WriteByte(c_oSer_Comments.RightOffset);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(comment.coord.asc_getRightOffset());
this.memory.WriteByte(c_oSer_Comments.BottomOffset);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(comment.coord.asc_getBottomOffset());
this.memory.WriteByte(c_oSer_Comments.LeftMM);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(comment.coord.asc_getLeftMM());
this.memory.WriteByte(c_oSer_Comments.TopMM);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(comment.coord.asc_getTopMM());
this.memory.WriteByte(c_oSer_Comments.WidthMM);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(comment.coord.asc_getWidthMM());
this.memory.WriteByte(c_oSer_Comments.HeightMM);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(comment.coord.asc_getHeightMM());
this.memory.WriteByte(c_oSer_Comments.MoveWithCells);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(comment.coord.asc_getMoveWithCells());
this.memory.WriteByte(c_oSer_Comments.SizeWithCells);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(comment.coord.asc_getSizeWithCells());
};
this.WriteCommentDatas = function (aDatas) {
var oThis = this;
for (var i = 0, length = aDatas.length; i < length; ++i) {
this.bs.WriteItem(c_oSer_Comments.CommentData, function () {
oThis.WriteCommentData(aDatas[i]);
});
}
};
this.WriteCommentData = function (oCommentData) {
var oThis = this;
var sText = oCommentData.asc_getText();
if (null != sText) {
this.memory.WriteByte(c_oSer_CommentData.Text);
this.memory.WriteString2(sText);
}
var sTime = oCommentData.asc_getTime();
if (null != sTime) {
var oDate = new Date(sTime - 0);
this.memory.WriteByte(c_oSer_CommentData.Time);
this.memory.WriteString2(this.DateToISO8601(oDate));
}
var sUserId = oCommentData.asc_getUserId();
if (null != sUserId) {
this.memory.WriteByte(c_oSer_CommentData.UserId);
this.memory.WriteString2(sUserId);
}
var sUserName = oCommentData.asc_getUserName();
if (null != sUserName) {
this.memory.WriteByte(c_oSer_CommentData.UserName);
this.memory.WriteString2(sUserName);
}
var sQuoteText = oCommentData.asc_getQuoteText();
if (null != sQuoteText) {
this.memory.WriteByte(c_oSer_CommentData.QuoteText);
this.memory.WriteString2(sQuoteText);
}
var bSolved = oCommentData.asc_getSolved();
if (null != bSolved) {
this.bs.WriteItem(c_oSer_CommentData.Solved, function () {
oThis.memory.WriteBool(bSolved);
});
}
var bDocumentFlag = oCommentData.asc_getDocumentFlag();
if (null != bDocumentFlag) {
this.bs.WriteItem(c_oSer_CommentData.Document, function () {
oThis.memory.WriteBool(bDocumentFlag);
});
}
var aReplies = oCommentData.aReplies;
if (null != aReplies && aReplies.length > 0) {
this.bs.WriteItem(c_oSer_CommentData.Replies, function () {
oThis.WriteReplies(aReplies);
});
}
};
this.DateToISO8601 = function (d) {
function pad(n) {
return n < 10 ? "0" + n : n;
}
return d.getUTCFullYear() + "-" + pad(d.getUTCMonth() + 1) + "-" + pad(d.getUTCDate()) + "T" + pad(d.getUTCHours()) + ":" + pad(d.getUTCMinutes()) + ":" + pad(d.getUTCSeconds()) + "Z";
};
this.WriteReplies = function (aReplies) {
var oThis = this;
for (var i = 0, length = aReplies.length; i < length; ++i) {
this.bs.WriteItem(c_oSer_CommentData.Reply, function () {
oThis.WriteCommentData(aReplies[i]);
});
}
};
}
function BinaryOtherTableWriter(memory, wb) {
this.memory = memory;
this.wb = wb;
this.bs = new BinaryCommonWriter(this.memory);
this.Write = function () {
var oThis = this;
this.bs.WriteItemWithLength(function () {
oThis.WriteOtherContent();
});
};
this.WriteOtherContent = function () {
var oThis = this;
this.bs.WriteItem(c_oSer_OtherType.Theme, function () {
window.global_pptx_content_writer.WriteTheme(oThis.memory, oThis.wb.theme);
});
};
}
function BinaryFileWriter(wb) {
this.Memory = new CMemory();
this.wb = wb;
this.nLastFilePos = 0;
this.nRealTableCount = 0;
this.bs = new BinaryCommonWriter(this.Memory);
this.Write = function (idWorksheet) {
window.global_pptx_content_writer._Start();
this.WriteMainTable(idWorksheet);
window.global_pptx_content_writer._End();
return this.WriteFileHeader(this.Memory.GetCurPosition()) + this.Memory.GetBase64Memory();
};
this.WriteFileHeader = function (nDataSize) {
return c_oSerFormat.Signature + ";v" + c_oSerFormat.Version + ";" + nDataSize + ";";
};
this.WriteMainTable = function (idWorksheet) {
var nTableCount = 128;
this.nRealTableCount = 0;
var nStart = this.Memory.GetCurPosition();
var nmtItemSize = 5;
this.nLastFilePos = nStart + nTableCount * nmtItemSize;
this.Memory.WriteByte(0);
var oSharedStrings = {
index: 0,
strings: new Object()
};
var nSharedStringsPos = this.ReserveTable(c_oSerTableTypes.SharedStrings);
var nStylesTablePos = this.ReserveTable(c_oSerTableTypes.Styles);
this.WriteTable(c_oSerTableTypes.Workbook, new BinaryWorkbookTableWriter(this.Memory, this.wb));
var aXfs = new Array();
var aFonts = new Array();
var aFills = new Array();
var aBorders = new Array();
var aNums = new Array();
var aDxfs = new Array();
var oBinaryWorksheetsTableWriter = new BinaryWorksheetsTableWriter(this.Memory, this.wb, oSharedStrings, aDxfs, aXfs, aFonts, aFills, aBorders, aNums, idWorksheet);
this.WriteTable(c_oSerTableTypes.Worksheets, oBinaryWorksheetsTableWriter);
this.WriteTable(c_oSerTableTypes.Other, new BinaryOtherTableWriter(this.Memory, this.wb));
this.WriteReserved(new BinarySharedStringsTableWriter(this.Memory, oSharedStrings), nSharedStringsPos);
this.WriteReserved(new BinaryStylesTableWriter(this.Memory, this.wb, oBinaryWorksheetsTableWriter), nStylesTablePos);
this.Memory.Seek(nStart);
this.Memory.WriteByte(this.nRealTableCount);
this.Memory.Seek(this.nLastFilePos);
};
this.WriteTable = function (type, oTableSer) {
this.Memory.WriteByte(type);
this.Memory.WriteLong(this.nLastFilePos);
var nCurPos = this.Memory.GetCurPosition();
this.Memory.Seek(this.nLastFilePos);
oTableSer.Write();
this.nLastFilePos = this.Memory.GetCurPosition();
this.Memory.Seek(nCurPos);
this.nRealTableCount++;
};
this.ReserveTable = function (type) {
var res = 0;
this.Memory.WriteByte(type);
res = this.Memory.GetCurPosition();
this.Memory.WriteLong(this.nLastFilePos);
return res;
};
this.WriteReserved = function (oTableSer, nPos) {
this.Memory.Seek(nPos);
this.Memory.WriteLong(this.nLastFilePos);
var nCurPos = this.Memory.GetCurPosition();
this.Memory.Seek(this.nLastFilePos);
oTableSer.Write();
this.nLastFilePos = this.Memory.GetCurPosition();
this.Memory.Seek(nCurPos);
this.nRealTableCount++;
};
}
function Binary_TableReader(stream, ws, Dxfs) {
this.stream = stream;
this.ws = ws;
this.Dxfs = Dxfs;
this.bcr = new Binary_CommonReader(this.stream);
this.Read = function (length, aTables) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTables(t, l, aTables);
});
return res;
};
this.ReadTables = function (type, length, aTables) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_TablePart.Table == type) {
var oNewTable = new Object();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTable(t, l, oNewTable);
});
if (null != oNewTable.Ref && null != oNewTable.DisplayName) {
this.ws.workbook.oNameGenerator.addTableName(oNewTable.DisplayName, this.ws, oNewTable.Ref);
}
aTables.push(oNewTable);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTable = function (type, length, oTable) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_TablePart.Ref == type) {
oTable.Ref = this.stream.GetString2LE(length);
} else {
if (c_oSer_TablePart.HeaderRowCount == type) {
oTable.HeaderRowCount = this.stream.GetULongLE();
} else {
if (c_oSer_TablePart.TotalsRowCount == type) {
oTable.TotalsRowCount = this.stream.GetULongLE();
} else {
if (c_oSer_TablePart.DisplayName == type) {
oTable.DisplayName = this.stream.GetString2LE(length);
} else {
if (c_oSer_TablePart.AutoFilter == type) {
oTable.AutoFilter = new Object();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadAutoFilter(t, l, oTable.AutoFilter);
});
} else {
if (c_oSer_TablePart.SortState == type) {
oTable.SortState = new Object();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSortState(t, l, oTable.SortState);
});
} else {
if (c_oSer_TablePart.TableColumns == type) {
oTable.TableColumns = new Array();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTableColumns(t, l, oTable.TableColumns);
});
} else {
if (c_oSer_TablePart.TableStyleInfo == type) {
oTable.TableStyleInfo = new Object();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadTableStyleInfo(t, l, oTable.TableStyleInfo);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
return res;
};
this.ReadAutoFilter = function (type, length, oAutoFilter) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_AutoFilter.Ref == type) {
oAutoFilter.Ref = this.stream.GetString2LE(length);
} else {
if (c_oSer_AutoFilter.FilterColumns == type) {
oAutoFilter.FilterColumns = new Array();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadFilterColumns(t, l, oAutoFilter.FilterColumns);
});
} else {
if (c_oSer_AutoFilter.SortState == type) {
oAutoFilter.SortState = new Object();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSortState(t, l, oAutoFilter.SortState);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadFilterColumns = function (type, length, aFilterColumns) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_AutoFilter.FilterColumn == type) {
var oFilterColumn = {
ColId: null,
Filters: null,
CustomFiltersObj: null,
DynamicFilter: null,
ColorFilter: null,
Top10: null,
ShowButton: true
};
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadFilterColumn(t, l, oFilterColumn);
});
aFilterColumns.push(oFilterColumn);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadFilterColumn = function (type, length, oFilterColumn) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_FilterColumn.ColId == type) {
oFilterColumn.ColId = this.stream.GetULongLE();
} else {
if (c_oSer_FilterColumn.Filters == type) {
oFilterColumn.Filters = {
Values: new Array(),
Dates: new Array(),
Blank: null
};
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadFilters(t, l, oFilterColumn.Filters);
});
} else {
if (c_oSer_FilterColumn.CustomFilters == type) {
oFilterColumn.CustomFiltersObj = new Object();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCustomFilters(t, l, oFilterColumn.CustomFiltersObj);
});
} else {
if (c_oSer_FilterColumn.DynamicFilter == type) {
oFilterColumn.DynamicFilter = new Object();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadDynamicFilter(t, l, oFilterColumn.DynamicFilter);
});
} else {
if (c_oSer_FilterColumn.ColorFilter == type) {
oFilterColumn.ColorFilter = new Object();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadColorFilter(t, l, oFilterColumn.ColorFilter);
});
} else {
if (c_oSer_FilterColumn.Top10 == type) {
oFilterColumn.Top10 = new Object();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadTop10(t, l, oFilterColumn.Top10);
});
} else {
if (c_oSer_FilterColumn.HiddenButton == type) {
oFilterColumn.ShowButton = !this.stream.GetBool();
} else {
if (c_oSer_FilterColumn.ShowButton == type) {
oFilterColumn.ShowButton = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
return res;
};
this.ReadFilters = function (type, length, oFilters) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_FilterColumn.Filter == type) {
var oFilterVal = new Object();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadFilter(t, l, oFilterVal);
});
if (null != oFilterVal.Val) {
oFilters.Values.push(oFilterVal.Val);
}
} else {
if (c_oSer_FilterColumn.DateGroupItem == type) {
var oDateGroupItem = new Object();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadDateGroupItem(t, l, oDateGroupItem);
});
oFilters.Dates.push(oDateGroupItem);
} else {
if (c_oSer_FilterColumn.FiltersBlank == type) {
oFilters.Blank = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadFilter = function (type, length, oFilter) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_Filter.Val == type) {
oFilter.Val = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadDateGroupItem = function (type, length, oDateGroupItem) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_DateGroupItem.DateTimeGrouping == type) {
oDateGroupItem.DateTimeGrouping = this.stream.GetUChar();
} else {
if (c_oSer_DateGroupItem.Day == type) {
oDateGroupItem.Day = this.stream.GetULongLE();
} else {
if (c_oSer_DateGroupItem.Hour == type) {
oDateGroupItem.Hour = this.stream.GetULongLE();
} else {
if (c_oSer_DateGroupItem.Minute == type) {
oDateGroupItem.Minute = this.stream.GetULongLE();
} else {
if (c_oSer_DateGroupItem.Month == type) {
oDateGroupItem.Month = this.stream.GetULongLE();
} else {
if (c_oSer_DateGroupItem.Second == type) {
oDateGroupItem.Second = this.stream.GetULongLE();
} else {
if (c_oSer_DateGroupItem.Year == type) {
oDateGroupItem.Year = this.stream.GetULongLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
return res;
};
this.ReadCustomFilters = function (type, length, oCustomFilters) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_CustomFilters.And == type) {
oCustomFilters.And = this.stream.GetBool();
} else {
if (c_oSer_CustomFilters.CustomFilters == type) {
oCustomFilters.CustomFilters = new Array();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCustomFiltersItems(t, l, oCustomFilters.CustomFilters);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadCustomFiltersItems = function (type, length, aCustomFilters) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_CustomFilters.CustomFilter == type) {
var oCustomFiltersItem = new Object();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadCustomFiltersItem(t, l, oCustomFiltersItem);
});
aCustomFilters.push(oCustomFiltersItem);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadCustomFiltersItem = function (type, length, oCustomFiltersItem) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_CustomFilters.Operator == type) {
oCustomFiltersItem.Operator = this.stream.GetUChar();
} else {
if (c_oSer_CustomFilters.Val == type) {
oCustomFiltersItem.Val = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadDynamicFilter = function (type, length, oDynamicFilter) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_DynamicFilter.Type == type) {
oDynamicFilter.Type = this.stream.GetUChar();
} else {
if (c_oSer_DynamicFilter.Val == type) {
oDynamicFilter.Val = this.stream.GetDoubleLE();
} else {
if (c_oSer_DynamicFilter.MaxVal == type) {
oDynamicFilter.MaxVal = this.stream.GetDoubleLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadColorFilter = function (type, length, oColorFilter) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_ColorFilter.CellColor == type) {
oColorFilter.CellColor = this.stream.GetBool();
} else {
if (c_oSer_ColorFilter.DxfId == type) {
var DxfId = this.stream.GetULongLE();
var dxf = this.Dxfs[DxfId];
oColorFilter.dxf = dxf;
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadTop10 = function (type, length, oTop10) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_Top10.FilterVal == type) {
oTop10.FilterVal = this.stream.GetDoubleLE();
} else {
if (c_oSer_Top10.Percent == type) {
oTop10.Percent = this.stream.GetBool();
} else {
if (c_oSer_Top10.Top == type) {
oTop10.Top = this.stream.GetBool();
} else {
if (c_oSer_Top10.Val == type) {
oTop10.Val = this.stream.GetDoubleLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
return res;
};
this.ReadSortConditionContent = function (type, length, oSortCondition) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_SortState.ConditionRef == type) {
oSortCondition.Ref = this.stream.GetString2LE(length);
} else {
if (c_oSer_SortState.ConditionSortBy == type) {
oSortCondition.ConditionSortBy = this.stream.GetUChar();
} else {
if (c_oSer_SortState.ConditionDescending == type) {
oSortCondition.ConditionDescending = this.stream.GetBool();
} else {
if (c_oSer_SortState.ConditionDxfId == type) {
var DxfId = this.stream.GetULongLE();
var dxf = this.Dxfs[DxfId];
oSortCondition.dxf = dxf;
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
return res;
};
this.ReadSortCondition = function (type, length, aSortConditions) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_SortState.SortCondition == type) {
var oSortCondition = new Object();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadSortConditionContent(t, l, oSortCondition);
});
aSortConditions.push(oSortCondition);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadSortState = function (type, length, oSortState) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_SortState.Ref == type) {
oSortState.Ref = this.stream.GetString2LE(length);
} else {
if (c_oSer_SortState.CaseSensitive == type) {
oSortState.CaseSensitive = this.stream.GetBool();
} else {
if (c_oSer_SortState.SortConditions == type) {
oSortState.SortConditions = new Array();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSortCondition(t, l, oSortState.SortConditions);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadTableColumn = function (type, length, oTableColumn) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_TableColumns.Name == type) {
oTableColumn.Name = this.stream.GetString2LE(length);
} else {
if (c_oSer_TableColumns.TotalsRowLabel == type) {
oTableColumn.TotalsRowLabel = this.stream.GetString2LE(length);
} else {
if (c_oSer_TableColumns.TotalsRowFunction == type) {
oTableColumn.TotalsRowFunction = this.stream.GetUChar();
} else {
if (c_oSer_TableColumns.TotalsRowFormula == type) {
oTableColumn.TotalsRowFormula = this.stream.GetString2LE(length);
} else {
if (c_oSer_TableColumns.DataDxfId == type) {
var DxfId = this.stream.GetULongLE();
var dxf = this.Dxfs[DxfId];
oTableColumn.dxf = dxf;
} else {
if (c_oSer_TableColumns.CalculatedColumnFormula == type) {
oTableColumn.CalculatedColumnFormula = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
return res;
};
this.ReadTableColumns = function (type, length, aTableColumns) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_TableColumns.TableColumn == type) {
var oTableColumn = new Object();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTableColumn(t, l, oTableColumn);
});
aTableColumns.push(oTableColumn);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTableStyleInfo = function (type, length, oTableStyleInfo) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_TableStyleInfo.Name == type) {
oTableStyleInfo.Name = this.stream.GetString2LE(length);
} else {
if (c_oSer_TableStyleInfo.ShowColumnStripes == type) {
oTableStyleInfo.ShowColumnStripes = this.stream.GetBool();
} else {
if (c_oSer_TableStyleInfo.ShowRowStripes == type) {
oTableStyleInfo.ShowRowStripes = this.stream.GetBool();
} else {
if (c_oSer_TableStyleInfo.ShowFirstColumn == type) {
oTableStyleInfo.ShowFirstColumn = this.stream.GetBool();
} else {
if (c_oSer_TableStyleInfo.ShowLastColumn == type) {
oTableStyleInfo.ShowLastColumn = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
return res;
};
}
function Binary_SharedStringTableReader(stream, wb, aSharedStrings) {
this.stream = stream;
this.wb = wb;
this.aSharedStrings = aSharedStrings;
this.bcr = new Binary_CommonReader(this.stream);
this.Read = function () {
var oThis = this;
return this.bcr.ReadTable(function (t, l) {
return oThis.ReadSharedStringContent(t, l);
});
};
this.ReadSharedStringContent = function (type, length) {
var res = c_oSerConstants.ReadOk;
if (c_oSerSharedStringTypes.Si === type) {
var oThis = this;
var Si = new CCellValue();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSharedString(t, l, Si);
});
if (null != this.aSharedStrings) {
this.aSharedStrings.push(Si);
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadSharedString = function (type, length, Si) {
var res = c_oSerConstants.ReadOk;
if (c_oSerSharedStringTypes.Run == type) {
var oThis = this;
var oRun = new CCellValueMultiText();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadRun(t, l, oRun);
});
if (null == Si.multiText) {
Si.multiText = new Array();
}
Si.multiText.push(oRun);
} else {
if (c_oSerSharedStringTypes.Text == type) {
if (null == Si.text) {
Si.text = "";
}
Si.text += this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadRun = function (type, length, oRun) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSerSharedStringTypes.RPr == type) {
if (null == oRun.format) {
oRun.format = new Font();
}
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadRPr(t, l, oRun.format);
});
this.CheckSchemeFont(oRun.format);
} else {
if (c_oSerSharedStringTypes.Text == type) {
if (null == oRun.text) {
oRun.text = "";
}
oRun.text += this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.CheckSchemeFont = function (font) {
if (null != font.scheme) {
var theme = this.wb.theme;
if (null != theme) {
var fontScheme = theme.themeElements.fontScheme;
var sFontName = null;
switch (font.scheme) {
case EFontScheme.fontschemeMinor:
sFontName = fontScheme.minorFont.latin;
break;
case EFontScheme.fontschemeMajor:
sFontName = fontScheme.majorFont.latin;
break;
}
if (null != sFontName && "" != sFontName) {
font.fn = sFontName;
}
}
}
};
this.ReadRPr = function (type, length, rPr) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerFontTypes.Bold == type) {
rPr.b = this.stream.GetBool();
} else {
if (c_oSerFontTypes.Color == type) {
var color = new OpenColor();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.bcr.ReadColorSpreadsheet(t, l, color);
});
if (null != color.theme) {
rPr.c = g_oColorManager.getThemeColor(color.theme, color.tint);
} else {
if (null != color.rgb) {
rPr.c = new RgbColor(16777215 & color.rgb);
}
}
} else {
if (c_oSerFontTypes.Italic == type) {
rPr.i = this.stream.GetBool();
} else {
if (c_oSerFontTypes.RFont == type) {
rPr.fn = this.stream.GetString2LE(length);
} else {
if (c_oSerFontTypes.Strike == type) {
rPr.s = this.stream.GetBool();
} else {
if (c_oSerFontTypes.Sz == type) {
rPr.fs = this.stream.GetDoubleLE();
} else {
if (c_oSerFontTypes.Underline == type) {
switch (this.stream.GetUChar()) {
case EUnderline.underlineDouble:
rPr.u = "double";
break;
case EUnderline.underlineDoubleAccounting:
rPr.u = "doubleAccounting";
break;
case EUnderline.underlineNone:
rPr.u = "none";
break;
case EUnderline.underlineSingle:
rPr.u = "single";
break;
case EUnderline.underlineSingleAccounting:
rPr.u = "singleAccounting";
break;
default:
rPr.u = "none";
break;
}
} else {
if (c_oSerFontTypes.VertAlign == type) {
switch (this.stream.GetUChar()) {
case EVerticalAlignRun.verticalalignrunBaseline:
rPr.va = "baseline";
break;
case EVerticalAlignRun.verticalalignrunSubscript:
rPr.va = "subscript";
break;
case EVerticalAlignRun.verticalalignrunSuperscript:
rPr.va = "superscript";
break;
default:
rPr.va = "baseline";
break;
}
} else {
if (c_oSerFontTypes.Scheme == type) {
rPr.scheme = this.stream.GetUChar();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
}
return res;
};
}
function Binary_StylesTableReader(stream, wb, aCellXfs, Dxfs) {
this.stream = stream;
this.wb = wb;
this.oStyleManager = wb.oStyleManager;
this.aCellXfs = aCellXfs;
this.Dxfs = Dxfs;
this.bcr = new Binary_CommonReader(this.stream);
this.bssr = new Binary_SharedStringTableReader(this.stream, wb);
this.Read = function () {
var oThis = this;
var oStyleObject = {
aBorders: [],
aFills: [],
aFonts: [],
oNumFmts: {},
aCellStyleXfs: [],
aCellXfs: [],
aCellStyles: [],
oCustomTableStyles: {}
};
var res = this.bcr.ReadTable(function (t, l) {
return oThis.ReadStylesContent(t, l, oStyleObject);
});
this.InitStyleManager(oStyleObject);
return res;
};
this.InitStyleManager = function (oStyleObject) {
var arrStyleMap = {};
var nIndexStyleMap = 1;
var XfIdTmp;
var oCellStyleNames = {};
for (var nIndex in oStyleObject.aCellStyles) {
if (!oStyleObject.aCellStyles.hasOwnProperty(nIndex)) {
continue;
}
var oCellStyle = oStyleObject.aCellStyles[nIndex];
var oCellStyleXfs = oStyleObject.aCellStyleXfs[oCellStyle.XfId];
if (null == oCellStyleXfs) {
continue;
}
oCellStyle.xfs = new CellXfs();
XfIdTmp = oCellStyle.XfId;
if (null !== XfIdTmp) {
if (0 !== XfIdTmp) {
arrStyleMap[XfIdTmp] = nIndexStyleMap;
oCellStyle.XfId = nIndexStyleMap++;
}
} else {
continue;
}
if (null != oCellStyleXfs.borderid) {
var borderCellStyle = oStyleObject.aBorders[oCellStyleXfs.borderid];
if (null != borderCellStyle) {
oCellStyle.xfs.border = borderCellStyle.clone();
}
}
if (null != oCellStyleXfs.fillid) {
var fillCellStyle = oStyleObject.aFills[oCellStyleXfs.fillid];
if (null != fillCellStyle) {
oCellStyle.xfs.fill = fillCellStyle.clone();
}
}
if (null != oCellStyleXfs.fontid) {
var fontCellStyle = oStyleObject.aFonts[oCellStyleXfs.fontid];
if (null != fontCellStyle) {
oCellStyle.xfs.font = fontCellStyle.clone();
}
}
if (null != oCellStyleXfs.numid) {
var oCurNumCellStyle = oStyleObject.oNumFmts[oCellStyleXfs.numid];
if (null != oCurNumCellStyle) {
oCellStyle.xfs.num = this.ParseNum(oCurNumCellStyle, oStyleObject.oNumFmts);
} else {
oCellStyle.xfs.num = this.ParseNum({
id: oCellStyleXfs.numid,
f: null
},
oStyleObject.oNumFmts);
}
}
if (null != oCellStyleXfs.QuotePrefix) {
oCellStyle.xfs.QuotePrefix = oCellStyleXfs.QuotePrefix;
}
if (null != oCellStyleXfs.align) {
oCellStyle.xfs.align = oCellStyleXfs.align.clone();
}
if (null !== oCellStyleXfs.ApplyBorder) {
oCellStyle.ApplyBorder = oCellStyleXfs.ApplyBorder;
}
if (null !== oCellStyleXfs.ApplyFill) {
oCellStyle.ApplyFill = oCellStyleXfs.ApplyFill;
}
if (null !== oCellStyleXfs.ApplyFont) {
oCellStyle.ApplyFont = oCellStyleXfs.ApplyFont;
}
if (null !== oCellStyleXfs.ApplyNumberFormat) {
oCellStyle.ApplyNumberFormat = oCellStyleXfs.ApplyNumberFormat;
}
this.wb.CellStyles.CustomStyles.push(oCellStyle);
if (null !== oCellStyle.Name) {
oCellStyleNames[oCellStyle.Name] = true;
}
}
var nNewStyleIndex = 1,
newStyleName;
for (var i = 0, length = this.wb.CellStyles.CustomStyles.length; i < length; ++i) {
if (null === this.wb.CellStyles.CustomStyles[i].Name) {
do {
newStyleName = "Style" + nNewStyleIndex++;
} while (oCellStyleNames[newStyleName]);
this.wb.CellStyles.CustomStyles[i].Name = newStyleName;
}
}
for (var i = 0, length = oStyleObject.aCellXfs.length; i < length; ++i) {
var xfs = oStyleObject.aCellXfs[i];
var oNewXfs = new CellXfs();
if (null != xfs.borderid) {
var border = oStyleObject.aBorders[xfs.borderid];
if (null != border) {
oNewXfs.border = border.clone();
}
}
if (null != xfs.fillid) {
var fill = oStyleObject.aFills[xfs.fillid];
if (null != fill) {
oNewXfs.fill = fill.clone();
}
}
if (null != xfs.fontid) {
var font = oStyleObject.aFonts[xfs.fontid];
if (null != font) {
oNewXfs.font = font.clone();
}
}
if (null != xfs.numid) {
var oCurNum = oStyleObject.oNumFmts[xfs.numid];
if (null != oCurNum) {
oNewXfs.num = this.ParseNum(oCurNum, oStyleObject.oNumFmts);
} else {
oNewXfs.num = this.ParseNum({
id: xfs.numid,
f: null
},
oStyleObject.oNumFmts);
}
}
if (null != xfs.QuotePrefix) {
oNewXfs.QuotePrefix = xfs.QuotePrefix;
}
if (null != xfs.align) {
oNewXfs.align = xfs.align.clone();
}
if (null !== xfs.XfId) {
XfIdTmp = arrStyleMap[xfs.XfId];
if (null == XfIdTmp) {
XfIdTmp = 0;
}
oNewXfs.XfId = XfIdTmp;
}
if (0 == this.aCellXfs.length) {
this.oStyleManager.init(oNewXfs);
}
this.minimizeXfs(oNewXfs);
this.aCellXfs.push(oNewXfs);
}
for (var i in oStyleObject.oCustomTableStyles) {
var item = oStyleObject.oCustomTableStyles[i];
if (null != item) {
var style = item.style;
var elems = item.elements;
this.initTableStyle(style, elems, this.Dxfs);
this.wb.TableStyles.CustomStyles[i] = style;
}
}
};
this.initTableStyle = function (style, elems, Dxfs) {
for (var j = 0, length2 = elems.length; j < length2; ++j) {
var elem = elems[j];
if (null != elem.DxfId) {
var Dxf = Dxfs[elem.DxfId];
if (null != Dxf) {
this.minimizeXfs(Dxf);
var oTableStyleElement = new CTableStyleElement();
oTableStyleElement.dxf = Dxf;
if (null != elem.Size) {
oTableStyleElement.size = elem.Size;
}
switch (elem.Type) {
case ETableStyleType.tablestyletypeBlankRow:
style.blankRow = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeFirstColumn:
style.firstColumn = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeFirstColumnStripe:
style.firstColumnStripe = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeFirstColumnSubheading:
style.firstColumnSubheading = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeFirstHeaderCell:
style.firstHeaderCell = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeFirstRowStripe:
style.firstRowStripe = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeFirstRowSubheading:
style.firstRowSubheading = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeFirstSubtotalColumn:
style.firstSubtotalColumn = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeFirstSubtotalRow:
style.firstSubtotalRow = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeFirstTotalCell:
style.firstTotalCell = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeHeaderRow:
style.headerRow = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeLastColumn:
style.lastColumn = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeLastHeaderCell:
style.lastHeaderCell = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeLastTotalCell:
style.lastTotalCell = oTableStyleElement;
break;
case ETableStyleType.tablestyletypePageFieldLabels:
style.pageFieldLabels = oTableStyleElement;
break;
case ETableStyleType.tablestyletypePageFieldValues:
style.pageFieldValues = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeSecondColumnStripe:
style.secondColumnStripe = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeSecondColumnSubheading:
style.secondColumnSubheading = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeSecondRowStripe:
style.secondRowStripe = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeSecondRowSubheading:
style.secondRowSubheading = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeSecondSubtotalColumn:
style.secondSubtotalColumn = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeSecondSubtotalRow:
style.secondSubtotalRow = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeThirdColumnSubheading:
style.thirdColumnSubheading = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeThirdRowSubheading:
style.thirdRowSubheading = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeThirdSubtotalColumn:
style.thirdSubtotalColumn = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeThirdSubtotalRow:
style.thirdSubtotalRow = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeTotalRow:
style.totalRow = oTableStyleElement;
break;
case ETableStyleType.tablestyletypeWholeTable:
style.wholeTable = oTableStyleElement;
break;
}
}
}
}
};
this.minimizeXfs = function (xfs) {
if (null != xfs.border && g_oDefaultBorder.isEqual(xfs.border)) {
xfs.border = null;
}
if (null != xfs.fill && g_oDefaultFill.isEqual(xfs.fill)) {
xfs.fill = null;
}
if (null != xfs.font && g_oDefaultFont.isEqual(xfs.font)) {
xfs.font = null;
}
if (null != xfs.num && g_oDefaultNum.isEqual(xfs.num)) {
xfs.num = null;
}
if (null != xfs.align && g_oDefaultAlignAbs.isEqual(xfs.align)) {
xfs.align = null;
}
};
this.ParseNum = function (oNum, oNumFmts) {
var oRes = null;
var sFormat = null;
if (null != oNum && null != oNum.f) {
sFormat = oNum.f;
} else {
if (5 <= oNum.id && oNum.id <= 8) {
switch (oNum.id) {
case 5:
sFormat = "$#,##0_);($#,##0)";
break;
case 6:
sFormat = "$#,##0_);[Red]($#,##0)";
break;
case 7:
sFormat = "$#,##0.00_);($#,##0.00)";
break;
case 8:
sFormat = "$#,##0.00_);[Red]($#,##0.00)";
break;
}
} else {
var sStandartNumFormat = aStandartNumFormats[oNum.id];
if (null != sStandartNumFormat) {
sFormat = sStandartNumFormat;
}
}
if (null == sFormat) {
sFormat = "General";
}
if (null != oNumFmts) {
oNumFmts[oNum.id] = {
id: oNum.id,
f: sFormat
};
}
}
if (null != sFormat && "General" != sFormat) {
oRes = new Num();
oRes.f = sFormat;
}
return oRes;
};
this.ReadStylesContent = function (type, length, oStyleObject) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerStylesTypes.Borders === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadBorders(t, l, oStyleObject.aBorders);
});
} else {
if (c_oSerStylesTypes.Fills === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadFills(t, l, oStyleObject.aFills);
});
} else {
if (c_oSerStylesTypes.Fonts === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadFonts(t, l, oStyleObject.aFonts);
});
} else {
if (c_oSerStylesTypes.NumFmts === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadNumFmts(t, l, oStyleObject.oNumFmts);
});
} else {
if (c_oSerStylesTypes.CellStyleXfs === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCellStyleXfs(t, l, oStyleObject.aCellStyleXfs);
});
} else {
if (c_oSerStylesTypes.CellXfs === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCellXfs(t, l, oStyleObject.aCellXfs);
});
} else {
if (c_oSerStylesTypes.CellStyles === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCellStyles(t, l, oStyleObject.aCellStyles);
});
} else {
if (c_oSerStylesTypes.Dxfs === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadDxfs(t, l, oThis.Dxfs);
});
} else {
if (c_oSerStylesTypes.TableStyles === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTableStyles(t, l, oThis.wb.TableStyles, oStyleObject.oCustomTableStyles);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
}
return res;
};
this.ReadBorders = function (type, length, aBorders) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerStylesTypes.Border == type) {
var oNewBorder = new Border();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadBorder(t, l, oNewBorder);
});
aBorders.push(oNewBorder);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadBorder = function (type, length, oNewBorder) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerBorderTypes.Bottom == type) {
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadBorderProp(t, l, oNewBorder.b);
});
} else {
if (c_oSerBorderTypes.Diagonal == type) {
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadBorderProp(t, l, oNewBorder.d);
});
} else {
if (c_oSerBorderTypes.End == type) {
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadBorderProp(t, l, oNewBorder.r);
});
} else {
if (c_oSerBorderTypes.Horizontal == type) {
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadBorderProp(t, l, oNewBorder.ih);
});
} else {
if (c_oSerBorderTypes.Start == type) {
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadBorderProp(t, l, oNewBorder.l);
});
} else {
if (c_oSerBorderTypes.Top == type) {
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadBorderProp(t, l, oNewBorder.t);
});
} else {
if (c_oSerBorderTypes.Vertical == type) {
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadBorderProp(t, l, oNewBorder.iv);
});
} else {
if (c_oSerBorderTypes.DiagonalDown == type) {
oNewBorder.dd = this.stream.GetBool();
} else {
if (c_oSerBorderTypes.DiagonalUp == type) {
oNewBorder.du = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
}
return res;
};
this.ReadBorderProp = function (type, length, oBorderProp) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerBorderPropTypes.Style == type) {
switch (this.stream.GetUChar()) {
case EBorderStyle.borderstyleDashDot:
oBorderProp.setStyle(c_oAscBorderStyles.DashDot);
break;
case EBorderStyle.borderstyleDashDotDot:
oBorderProp.setStyle(c_oAscBorderStyles.DashDotDot);
break;
case EBorderStyle.borderstyleDashed:
oBorderProp.setStyle(c_oAscBorderStyles.Dashed);
break;
case EBorderStyle.borderstyleDotted:
oBorderProp.setStyle(c_oAscBorderStyles.Dotted);
break;
case EBorderStyle.borderstyleDouble:
oBorderProp.setStyle(c_oAscBorderStyles.Double);
break;
case EBorderStyle.borderstyleHair:
oBorderProp.setStyle(c_oAscBorderStyles.Hair);
break;
case EBorderStyle.borderstyleMedium:
oBorderProp.setStyle(c_oAscBorderStyles.Medium);
break;
case EBorderStyle.borderstyleMediumDashDot:
oBorderProp.setStyle(c_oAscBorderStyles.MediumDashDot);
break;
case EBorderStyle.borderstyleMediumDashDotDot:
oBorderProp.setStyle(c_oAscBorderStyles.MediumDashDotDot);
break;
case EBorderStyle.borderstyleMediumDashed:
oBorderProp.setStyle(c_oAscBorderStyles.MediumDashed);
break;
case EBorderStyle.borderstyleNone:
oBorderProp.setStyle(c_oAscBorderStyles.None);
break;
case EBorderStyle.borderstyleSlantDashDot:
oBorderProp.setStyle(c_oAscBorderStyles.SlantDashDot);
break;
case EBorderStyle.borderstyleThick:
oBorderProp.setStyle(c_oAscBorderStyles.Thick);
break;
case EBorderStyle.borderstyleThin:
oBorderProp.setStyle(c_oAscBorderStyles.Thin);
break;
default:
oBorderProp.setStyle(c_oAscBorderStyles.None);
break;
}
} else {
if (c_oSerBorderPropTypes.Color == type) {
var color = new OpenColor();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.bcr.ReadColorSpreadsheet(t, l, color);
});
if (null != color.theme) {
oBorderProp.c = g_oColorManager.getThemeColor(color.theme, color.tint);
} else {
if (null != color.rgb) {
oBorderProp.c = new RgbColor(16777215 & color.rgb);
}
}
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadCellStyleXfs = function (type, length, aCellStyleXfs) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerStylesTypes.Xfs === type) {
var oNewXfs = {
ApplyAlignment: null,
ApplyBorder: null,
ApplyFill: null,
ApplyFont: null,
ApplyNumberFormat: null,
BorderId: null,
FillId: null,
FontId: null,
NumFmtId: null,
QuotePrefix: null,
Aligment: null
};
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadXfs(t, l, oNewXfs);
});
aCellStyleXfs.push(oNewXfs);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadCellXfs = function (type, length, aCellXfs) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerStylesTypes.Xfs == type) {
var oNewXfs = {
ApplyAlignment: null,
ApplyBorder: null,
ApplyFill: null,
ApplyFont: null,
ApplyNumberFormat: null,
BorderId: null,
FillId: null,
FontId: null,
NumFmtId: null,
QuotePrefix: null,
Aligment: null,
XfId: null
};
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadXfs(t, l, oNewXfs);
});
aCellXfs.push(oNewXfs);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadXfs = function (type, length, oXfs) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerXfsTypes.ApplyAlignment == type) {
oXfs.ApplyAlignment = this.stream.GetBool();
} else {
if (c_oSerXfsTypes.ApplyBorder == type) {
oXfs.ApplyBorder = this.stream.GetBool();
} else {
if (c_oSerXfsTypes.ApplyFill == type) {
oXfs.ApplyFill = this.stream.GetBool();
} else {
if (c_oSerXfsTypes.ApplyFont == type) {
oXfs.ApplyFont = this.stream.GetBool();
} else {
if (c_oSerXfsTypes.ApplyNumberFormat == type) {
oXfs.ApplyNumberFormat = this.stream.GetBool();
} else {
if (c_oSerXfsTypes.BorderId == type) {
oXfs.borderid = this.stream.GetULongLE();
} else {
if (c_oSerXfsTypes.FillId == type) {
oXfs.fillid = this.stream.GetULongLE();
} else {
if (c_oSerXfsTypes.FontId == type) {
oXfs.fontid = this.stream.GetULongLE();
} else {
if (c_oSerXfsTypes.NumFmtId == type) {
oXfs.numid = this.stream.GetULongLE();
} else {
if (c_oSerXfsTypes.QuotePrefix == type) {
oXfs.QuotePrefix = this.stream.GetBool();
} else {
if (c_oSerXfsTypes.XfId === type) {
oXfs.XfId = this.stream.GetULongLE();
} else {
if (c_oSerXfsTypes.Aligment == type) {
if (null == oXfs.Aligment) {
oXfs.align = new Align();
}
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadAligment(t, l, oXfs.align);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
}
}
}
}
return res;
};
this.ReadAligment = function (type, length, oAligment) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerAligmentTypes.Horizontal == type) {
switch (this.stream.GetUChar()) {
case EHorizontalAlignment.horizontalalignmentCenter:
oAligment.hor = "center";
break;
case EHorizontalAlignment.horizontalalignmentContinuous:
oAligment.hor = "center";
break;
case EHorizontalAlignment.horizontalalignmentDistributed:
oAligment.hor = "justify";
break;
case EHorizontalAlignment.horizontalalignmentFill:
oAligment.hor = "justify";
break;
case EHorizontalAlignment.horizontalalignmentGeneral:
oAligment.hor = "none";
break;
case EHorizontalAlignment.horizontalalignmentJustify:
oAligment.hor = "justify";
break;
case EHorizontalAlignment.horizontalalignmentLeft:
oAligment.hor = "left";
break;
case EHorizontalAlignment.horizontalalignmentRight:
oAligment.hor = "right";
break;
}
} else {
if (c_oSerAligmentTypes.Indent == type) {
oAligment.indent = this.stream.GetULongLE();
} else {
if (c_oSerAligmentTypes.RelativeIndent == type) {
oAligment.RelativeIndent = this.stream.GetULongLE();
} else {
if (c_oSerAligmentTypes.ShrinkToFit == type) {
oAligment.shrink = this.stream.GetBool();
} else {
if (c_oSerAligmentTypes.TextRotation == type) {
oAligment.angle = this.stream.GetULongLE();
} else {
if (c_oSerAligmentTypes.Vertical == type) {
switch (this.stream.GetUChar()) {
case EVerticalAlignment.verticalalignmentBottom:
oAligment.ver = "bottom";
break;
case EVerticalAlignment.verticalalignmentCenter:
oAligment.ver = "center";
break;
case EVerticalAlignment.verticalalignmentDistributed:
oAligment.ver = "distributed";
break;
case EVerticalAlignment.verticalalignmentJustify:
oAligment.ver = "justify";
break;
case EVerticalAlignment.verticalalignmentTop:
oAligment.ver = "top";
break;
}
} else {
if (c_oSerAligmentTypes.WrapText == type) {
oAligment.wrap = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
return res;
};
this.ReadFills = function (type, length, aFills) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerStylesTypes.Fill == type) {
var oNewFill = new Fill();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadFill(t, l, oNewFill);
});
aFills.push(oNewFill);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadFill = function (type, length, oFill) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerFillTypes.PatternFill == type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadPatternFill(t, l, oFill);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadPatternFill = function (type, length, oFill) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerFillTypes.PatternFillBgColor == type) {
var color = new OpenColor();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.bcr.ReadColorSpreadsheet(t, l, color);
});
if (null != color.theme) {
oFill.bg = g_oColorManager.getThemeColor(color.theme, color.tint);
} else {
if (null != color.rgb) {
oFill.bg = new RgbColor(16777215 & color.rgb);
}
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadFonts = function (type, length, aFonts) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerStylesTypes.Font == type) {
var oNewFont = new Font();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.bssr.ReadRPr(t, l, oNewFont);
});
this.bssr.CheckSchemeFont(oNewFont);
aFonts.push(oNewFont);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadNumFmts = function (type, length, oNumFmts) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerStylesTypes.NumFmt == type) {
var oNewNumFmt = {
f: null,
id: null
};
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadNumFmt(t, l, oNewNumFmt);
});
if (null != oNewNumFmt.id && null != oNewNumFmt.f) {
oNumFmts[oNewNumFmt.id] = oNewNumFmt;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadNumFmt = function (type, length, oNumFmt) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerNumFmtTypes.FormatCode == type) {
oNumFmt.f = this.stream.GetString2LE(length);
} else {
if (c_oSerNumFmtTypes.NumFmtId == type) {
oNumFmt.id = this.stream.GetULongLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadCellStyles = function (type, length, aCellStyles) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oCellStyle = null;
if (c_oSerStylesTypes.CellStyle === type) {
oCellStyle = new CCellStyle();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCellStyle(t, l, oCellStyle);
});
aCellStyles.push(oCellStyle);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadCellStyle = function (type, length, oCellStyle) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_CellStyle.BuiltinId === type) {
oCellStyle.BuiltinId = this.stream.GetULongLE();
} else {
if (c_oSer_CellStyle.CustomBuiltin === type) {
oCellStyle.CustomBuiltin = this.stream.GetBool();
} else {
if (c_oSer_CellStyle.Hidden === type) {
oCellStyle.Hidden = this.stream.GetBool();
} else {
if (c_oSer_CellStyle.ILevel === type) {
oCellStyle.ILevel = this.stream.GetULongLE();
} else {
if (c_oSer_CellStyle.Name === type) {
oCellStyle.Name = this.stream.GetString2LE(length);
} else {
if (c_oSer_CellStyle.XfId === type) {
oCellStyle.XfId = this.stream.GetULongLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
return res;
};
this.ReadDxfs = function (type, length, aDxfs) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerStylesTypes.Dxf == type) {
var oDxf = new CellXfs();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadDxf(t, l, oDxf);
});
aDxfs.push(oDxf);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadDxf = function (type, length, oDxf) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_Dxf.Alignment == type) {
oDxf.align = new Align();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadAligment(t, l, oDxf.align);
});
} else {
if (c_oSer_Dxf.Border == type) {
var oNewBorder = new Border();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadBorder(t, l, oNewBorder);
});
oDxf.border = oNewBorder;
} else {
if (c_oSer_Dxf.Fill == type) {
var oNewFill = new Fill();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadFill(t, l, oNewFill);
});
oDxf.fill = oNewFill;
} else {
if (c_oSer_Dxf.Font == type) {
var oNewFont = new Font();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.bssr.ReadRPr(t, l, oNewFont);
});
this.bssr.CheckSchemeFont(oNewFont);
oDxf.font = oNewFont;
} else {
if (c_oSer_Dxf.NumFmt == type) {
var oNewNumFmt = {
f: null,
id: null
};
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadNumFmt(t, l, oNewNumFmt);
});
if (null != oNewNumFmt.id) {
oDxf.num = this.ParseNum({
id: oNewNumFmt.id,
f: null
},
null);
}
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
return res;
};
this.ReadTableStyles = function (type, length, oTableStyles, oCustomStyles) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_TableStyles.DefaultTableStyle == type) {
oTableStyles.DefaultTableStyle = this.stream.GetString2LE(length);
} else {
if (c_oSer_TableStyles.DefaultPivotStyle == type) {
oTableStyles.DefaultPivotStyle = this.stream.GetString2LE(length);
} else {
if (c_oSer_TableStyles.TableStyles == type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTableCustomStyles(t, l, oCustomStyles);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadTableCustomStyles = function (type, length, oCustomStyles) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_TableStyles.TableStyle === type) {
var oNewStyle = new CTableStyle();
var aElements = new Array();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTableCustomStyle(t, l, oNewStyle, aElements);
});
if (null != oNewStyle.name && aElements.length > 0) {
if (null === oNewStyle.displayName) {
oNewStyle.displayName = oNewStyle.name;
}
oCustomStyles[oNewStyle.name] = {
style: oNewStyle,
elements: aElements
};
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTableCustomStyle = function (type, length, oNewStyle, aElements) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_TableStyle.Name === type) {
oNewStyle.name = this.stream.GetString2LE(length);
} else {
if (c_oSer_TableStyle.Pivot === type) {
oNewStyle.pivot = this.stream.GetBool();
} else {
if (c_oSer_TableStyle.Table === type) {
oNewStyle.table = this.stream.GetBool();
} else {
if (c_oSer_TableStyle.Elements === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTableCustomStyleElements(t, l, aElements);
});
} else {
if (c_oSer_TableStyle.DisplayName === type) {
oNewStyle.displayName = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
return res;
};
this.ReadTableCustomStyleElements = function (type, length, aElements) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_TableStyle.Element === type) {
var oNewStyleElement = {
Type: null,
Size: null,
DxfId: null
};
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadTableCustomStyleElement(t, l, oNewStyleElement);
});
if (null != oNewStyleElement.Type && null != oNewStyleElement.DxfId) {
aElements.push(oNewStyleElement);
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTableCustomStyleElement = function (type, length, oNewStyleElement) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_TableStyleElement.Type === type) {
oNewStyleElement.Type = this.stream.GetUChar();
} else {
if (c_oSer_TableStyleElement.Size === type) {
oNewStyleElement.Size = this.stream.GetULongLE();
} else {
if (c_oSer_TableStyleElement.DxfId === type) {
oNewStyleElement.DxfId = this.stream.GetULongLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
}
function Binary_WorkbookTableReader(stream, oWorkbook) {
this.stream = stream;
this.oWorkbook = oWorkbook;
this.bcr = new Binary_CommonReader(this.stream);
this.Read = function () {
var oThis = this;
return this.bcr.ReadTable(function (t, l) {
return oThis.ReadWorkbookContent(t, l);
});
};
this.ReadWorkbookContent = function (type, length) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorkbookTypes.WorkbookPr === type) {
if (null == this.oWorkbook.WorkbookPr) {
this.oWorkbook.WorkbookPr = new Object();
}
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadWorkbookPr(t, l, oThis.oWorkbook.WorkbookPr);
});
} else {
if (c_oSerWorkbookTypes.BookViews === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadBookViews(t, l);
});
} else {
if (c_oSerWorkbookTypes.DefinedNames === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadDefinedNames(t, l);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadWorkbookPr = function (type, length, WorkbookPr) {
var res = c_oSerConstants.ReadOk;
if (c_oSerWorkbookPrTypes.Date1904 == type) {
WorkbookPr.Date1904 = this.stream.GetBool();
g_bDate1904 = WorkbookPr.Date1904;
c_DateCorrectConst = g_bDate1904 ? c_Date1904Const : c_Date1900Const;
} else {
if (c_oSerWorkbookPrTypes.DateCompatibility == type) {
WorkbookPr.DateCompatibility = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadBookViews = function (type, length) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorkbookTypes.WorkbookView == type) {
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadWorkbookView(t, l);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadWorkbookView = function (type, length, BookViews) {
var res = c_oSerConstants.ReadOk;
if (c_oSerWorkbookViewTypes.ActiveTab == type) {
this.oWorkbook.nActive = this.stream.GetULongLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadDefinedNames = function (type, length) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorkbookTypes.DefinedName == type) {
var oNewDefinedName = new DefinedName();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadDefinedName(t, l, oNewDefinedName);
});
if (null != oNewDefinedName.Name && null != oNewDefinedName.Ref) {
if (null != oNewDefinedName.LocalSheetId) {
var ws = this.oWorkbook.aWorksheets[oNewDefinedName.LocalSheetId];
if (null != ws) {
ws.DefinedNames[oNewDefinedName.Name] = oNewDefinedName;
this.oWorkbook.oNameGenerator.addLocalDefinedName(oNewDefinedName);
}
} else {
this.oWorkbook.oNameGenerator.addDefinedName(oNewDefinedName);
this.oWorkbook.oRealDefinedNames[oNewDefinedName.Name] = oNewDefinedName;
}
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadDefinedName = function (type, length, oDefinedName) {
var res = c_oSerConstants.ReadOk;
if (c_oSerDefinedNameTypes.Name == type) {
oDefinedName.Name = this.stream.GetString2LE(length);
} else {
if (c_oSerDefinedNameTypes.Ref == type) {
oDefinedName.Ref = this.stream.GetString2LE(length);
} else {
if (c_oSerDefinedNameTypes.LocalSheetId == type) {
oDefinedName.LocalSheetId = this.stream.GetULongLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
}
function Binary_WorksheetTableReader(stream, wb, aSharedStrings, aCellXfs, Dxfs, oMediaArray) {
this.stream = stream;
this.wb = wb;
this.aSharedStrings = aSharedStrings;
this.oMediaArray = oMediaArray;
this.aCellXfs = aCellXfs;
this.Dxfs = Dxfs;
this.bcr = new Binary_CommonReader(this.stream);
this.aMerged = new Array();
this.aHyperlinks = new Array();
this.oPPTXContentLoader = new CPPTXContentLoader();
this.Read = function () {
var oThis = this;
return this.bcr.ReadTable(function (t, l) {
return oThis.ReadWorksheetsContent(t, l);
});
};
this.ReadWorksheetsContent = function (type, length) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorksheetsTypes.Worksheet === type) {
this.aMerged = new Array();
this.aHyperlinks = new Array();
var oNewWorksheet = new Woorksheet(this.wb, wb.aWorksheets.length, false);
oNewWorksheet.mergeManager.stopRecalculate();
oNewWorksheet.hyperlinkManager.stopRecalculate();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadWorksheet(t, l, oNewWorksheet);
});
for (var i = 0, length = this.aMerged.length; i < length; ++i) {
var range = oNewWorksheet.getRange2(this.aMerged[i]);
if (null != range) {
range.mergeOpen();
}
}
for (var i = 0, length = this.aHyperlinks.length; i < length; ++i) {
var hyperlink = this.aHyperlinks[i];
if (null !== hyperlink.Ref) {
hyperlink.Ref.setHyperlinkOpen(hyperlink);
}
}
oNewWorksheet.init();
this.wb.aWorksheets.push(oNewWorksheet);
this.wb.aWorksheetsById[oNewWorksheet.getId()] = oNewWorksheet;
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadWorksheet = function (type, length, oWorksheet) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorksheetsTypes.WorksheetProp == type) {
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadWorksheetProp(t, l, oWorksheet);
});
} else {
if (c_oSerWorksheetsTypes.Cols == type) {
var oConditionalFormatting = null;
if (null == oWorksheet.Cols) {
oWorksheet.aCols = new Array();
}
var aTempCols = new Array();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadWorksheetCols(t, l, aTempCols, oWorksheet);
});
var fInitCol = function (oFrom, oTo) {
if (null != oFrom.BestFit) {
oTo.BestFit = oFrom.BestFit;
}
if (null != oFrom.hd) {
oTo.hd = oFrom.hd;
}
if (null != oFrom.xfs) {
oTo.xfs = oFrom.xfs.clone();
} else {
if (null != oFrom.xfsid) {
var xfs = oThis.aCellXfs[oFrom.xfsid];
if (null != xfs) {
oFrom.xfs = xfs;
oTo.xfs = xfs.clone();
}
}
}
if (null != oFrom.width) {
oTo.width = oFrom.width;
}
if (null != oFrom.CustomWidth) {
oTo.CustomWidth = oFrom.CustomWidth;
}
if (oTo.index + 1 > oWorksheet.nColsCount) {
oWorksheet.nColsCount = oTo.index + 1;
}
};
var oAllCol = null;
if (aTempCols.length > 0) {
var oLast = aTempCols[aTempCols.length - 1];
if (gc_nMaxCol == oLast.Max) {
oAllCol = oLast;
oWorksheet.oAllCol = new Col(oWorksheet, 0);
fInitCol(oAllCol, oWorksheet.oAllCol);
}
}
for (var i = 0, length = aTempCols.length; i < length; ++i) {
var elem = aTempCols[i];
if (null != oAllCol && elem.BestFit == oAllCol.BestFit && elem.hd == oAllCol.hd && elem.xfs == oAllCol.xfs && elem.width == oAllCol.width && elem.CustomWidth == oAllCol.CustomWidth) {
continue;
}
if (null == elem.width) {
elem.width = 0;
elem.hd = true;
}
for (var j = elem.Min; j <= elem.Max; j++) {
var oNewCol = new Col(oWorksheet, j - 1);
fInitCol(elem, oNewCol);
oWorksheet.aCols[oNewCol.index] = oNewCol;
}
}
} else {
if (c_oSerWorksheetsTypes.SheetFormatPr == type) {
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadSheetFormatPr(t, l, oWorksheet);
});
} else {
if (c_oSerWorksheetsTypes.PageMargins == type) {
var oPageMargins = new Asc.asc_CPageMargins();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadPageMargins(t, l, oPageMargins);
});
if (null == oWorksheet.PagePrintOptions) {
oWorksheet.PagePrintOptions = new Asc.asc_CPageOptions();
}
oWorksheet.PagePrintOptions.asc_setPageMargins(oPageMargins);
} else {
if (c_oSerWorksheetsTypes.PageSetup == type) {
var oPageSetup = new Asc.asc_CPageSetup();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadPageSetup(t, l, oPageSetup);
});
if (null == oWorksheet.PagePrintOptions) {
oWorksheet.PagePrintOptions = new Asc.asc_CPageOptions();
}
oWorksheet.PagePrintOptions.asc_setPageSetup(oPageSetup);
} else {
if (c_oSerWorksheetsTypes.PrintOptions == type) {
if (null == oWorksheet.PagePrintOptions) {
oWorksheet.PagePrintOptions = new Asc.asc_CPageOptions();
}
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadPrintOptions(t, l, oWorksheet.PagePrintOptions);
});
} else {
if (c_oSerWorksheetsTypes.Hyperlinks == type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadHyperlinks(t, l, oWorksheet);
});
} else {
if (c_oSerWorksheetsTypes.MergeCells == type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMergeCells(t, l, oWorksheet);
});
} else {
if (c_oSerWorksheetsTypes.SheetData == type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSheetData(t, l, oWorksheet);
});
} else {
if (c_oSerWorksheetsTypes.Drawings == type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadDrawings(t, l, oWorksheet.Drawings, oWorksheet.Id);
});
} else {
if (c_oSerWorksheetsTypes.Autofilter == type) {
var oBinary_TableReader = new Binary_TableReader(this.stream, oWorksheet, this.Dxfs);
oWorksheet.AutoFilter = new Object();
res = this.bcr.Read1(length, function (t, l) {
return oBinary_TableReader.ReadAutoFilter(t, l, oWorksheet.AutoFilter);
});
} else {
if (c_oSerWorksheetsTypes.TableParts == type) {
oWorksheet.TableParts = new Array();
var oBinary_TableReader = new Binary_TableReader(this.stream, oWorksheet, this.Dxfs);
oBinary_TableReader.Read(length, oWorksheet.TableParts);
} else {
if (c_oSerWorksheetsTypes.Comments == type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadComments(t, l, oWorksheet);
});
} else {
if (c_oSerWorksheetsTypes.ConditionalFormatting === type) {
oConditionalFormatting = new Asc.CConditionalFormatting();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadConditionalFormatting(t, l, oConditionalFormatting, function (sRange) {
return oWorksheet.getRange2(sRange);
});
});
oWorksheet.aConditionalFormatting.push(oConditionalFormatting);
} else {
if (c_oSerWorksheetsTypes.SheetViews === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSheetViews(t, l, oWorksheet.sheetViews);
});
} else {
if (c_oSerWorksheetsTypes.SheetPr === type) {
oWorksheet.sheetPr = new Asc.asc_CSheetPr();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSheetPr(t, l, oWorksheet.sheetPr);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return res;
};
this.ReadWorksheetProp = function (type, length, oWorksheet) {
var res = c_oSerConstants.ReadOk;
if (c_oSerWorksheetPropTypes.Name == type) {
oWorksheet.sName = this.stream.GetString2LE(length);
} else {
if (c_oSerWorksheetPropTypes.SheetId == type) {
oWorksheet.nSheetId = this.stream.GetULongLE();
} else {
if (c_oSerWorksheetPropTypes.State == type) {
switch (this.stream.GetUChar()) {
case EVisibleType.visibleHidden:
oWorksheet.bHidden = true;
break;
case EVisibleType.visibleVeryHidden:
oWorksheet.bHidden = true;
break;
case EVisibleType.visibleVisible:
oWorksheet.bHidden = false;
break;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadWorksheetCols = function (type, length, aTempCols, oWorksheet) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorksheetsTypes.Col == type) {
var oTempCol = {
BestFit: null,
hd: null,
Max: null,
Min: null,
xfs: null,
xfsid: null,
width: null,
CustomWidth: null
};
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadWorksheetCol(t, l, oTempCol);
});
aTempCols.push(oTempCol);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadWorksheetCol = function (type, length, oCol) {
var res = c_oSerConstants.ReadOk;
if (c_oSerWorksheetColTypes.BestFit == type) {
oCol.BestFit = this.stream.GetBool();
} else {
if (c_oSerWorksheetColTypes.Hidden == type) {
oCol.hd = this.stream.GetBool();
} else {
if (c_oSerWorksheetColTypes.Max == type) {
oCol.Max = this.stream.GetULongLE();
} else {
if (c_oSerWorksheetColTypes.Min == type) {
oCol.Min = this.stream.GetULongLE();
} else {
if (c_oSerWorksheetColTypes.Style == type) {
oCol.xfsid = this.stream.GetULongLE();
} else {
if (c_oSerWorksheetColTypes.Width == type) {
oCol.width = this.stream.GetDoubleLE();
if (g_nCurFileVersion < 2) {
oCol.CustomWidth = 1;
}
} else {
if (c_oSerWorksheetColTypes.CustomWidth == type) {
oCol.CustomWidth = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
return res;
};
this.ReadSheetFormatPr = function (type, length, oWorksheet) {
var res = c_oSerConstants.ReadOk;
if (c_oSerSheetFormatPrTypes.DefaultColWidth == type) {
oWorksheet.dDefaultColWidth = this.stream.GetDoubleLE();
} else {
if (c_oSerSheetFormatPrTypes.DefaultRowHeight == type) {
oWorksheet.dDefaultheight = this.stream.GetDoubleLE();
} else {
if (c_oSerSheetFormatPrTypes.BaseColWidth === type) {
oWorksheet.nBaseColWidth = this.stream.GetULongLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadPageMargins = function (type, length, oPageMargins) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_PageMargins.Left == type) {
oPageMargins.asc_setLeft(this.stream.GetDoubleLE());
} else {
if (c_oSer_PageMargins.Top == type) {
oPageMargins.asc_setTop(this.stream.GetDoubleLE());
} else {
if (c_oSer_PageMargins.Right == type) {
oPageMargins.asc_setRight(this.stream.GetDoubleLE());
} else {
if (c_oSer_PageMargins.Bottom == type) {
oPageMargins.asc_setBottom(this.stream.GetDoubleLE());
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
return res;
};
this.ReadPageSetup = function (type, length, oPageSetup) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_PageSetup.Orientation == type) {
var byteFormatOrientation = this.stream.GetUChar();
var byteOrientation = null;
switch (byteFormatOrientation) {
case EPageOrientation.pageorientPortrait:
byteOrientation = c_oAscPageOrientation.PagePortrait;
break;
case EPageOrientation.pageorientLandscape:
byteOrientation = c_oAscPageOrientation.PageLandscape;
break;
}
if (null != byteOrientation) {
oPageSetup.asc_setOrientation(byteOrientation);
}
} else {
if (c_oSer_PageSetup.PaperSize == type) {
var bytePaperSize = this.stream.GetUChar();
var item = DocumentPageSize.getSizeById(bytePaperSize);
oPageSetup.asc_setWidth(item.w_mm);
oPageSetup.asc_setHeight(item.h_mm);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadPrintOptions = function (type, length, oPrintOptions) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_PrintOptions.GridLines == type) {
oPrintOptions.asc_setGridLines(this.stream.GetBool());
} else {
if (c_oSer_PrintOptions.Headings == type) {
oPrintOptions.asc_setHeadings(this.stream.GetBool());
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadHyperlinks = function (type, length, ws) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorksheetsTypes.Hyperlink == type) {
var oNewHyperlink = new Hyperlink();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadHyperlink(t, l, ws, oNewHyperlink);
});
this.aHyperlinks.push(oNewHyperlink);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadHyperlink = function (type, length, ws, oHyperlink) {
var res = c_oSerConstants.ReadOk;
if (c_oSerHyperlinkTypes.Ref == type) {
oHyperlink.Ref = ws.getRange2(this.stream.GetString2LE(length));
} else {
if (c_oSerHyperlinkTypes.Hyperlink == type) {
oHyperlink.Hyperlink = this.stream.GetString2LE(length);
} else {
if (c_oSerHyperlinkTypes.Location == type) {
oHyperlink.setLocation(this.stream.GetString2LE(length));
} else {
if (c_oSerHyperlinkTypes.Tooltip == type) {
oHyperlink.Tooltip = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
return res;
};
this.ReadMergeCells = function (type, length, ws) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorksheetsTypes.MergeCell == type) {
this.aMerged.push(this.stream.GetString2LE(length));
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadSheetData = function (type, length, ws) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorksheetsTypes.Row == type) {
var oNewRow = new Row(ws);
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadRow(t, l, oNewRow, ws);
});
if (null != oNewRow.r) {
ws.aGCells[oNewRow.r - 1] = oNewRow;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadRow = function (type, length, oRow, ws) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerRowTypes.Row == type) {
oRow.r = this.stream.GetULongLE();
oRow.index = oRow.r - 1;
if (oRow.r > ws.nRowsCount) {
ws.nRowsCount = oRow.r;
}
} else {
if (c_oSerRowTypes.Style == type) {
var xfs = this.aCellXfs[this.stream.GetULongLE()];
if (null != xfs) {
oRow.xfs = xfs.clone();
}
} else {
if (c_oSerRowTypes.Height == type) {
oRow.h = this.stream.GetDoubleLE();
if (g_nCurFileVersion < 2) {
oRow.CustomHeight = true;
}
} else {
if (c_oSerRowTypes.CustomHeight == type) {
oRow.CustomHeight = this.stream.GetBool();
} else {
if (c_oSerRowTypes.Hidden == type) {
oRow.hd = this.stream.GetBool();
} else {
if (c_oSerRowTypes.Cells == type) {
if (null == oRow.Cells) {
oRow.c = new Object();
}
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCells(t, l, ws, oRow.c);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
return res;
};
this.ReadCells = function (type, length, ws, aCells) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerRowTypes.Cell == type) {
var oNewCell = new Cell(ws);
var oCellVal = {
val: null
};
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCell(t, l, ws, oNewCell, oCellVal);
});
if (null != oNewCell.oId) {
var nCellCol = 0;
if (null != oNewCell) {
var nCols = oNewCell.oId.getCol();
nCellCol = nCols - 1;
if (nCols > ws.nColsCount) {
ws.nColsCount = nCols;
}
}
if (null != oCellVal.val) {
var bText = false;
if (CellValueType.String == oNewCell.oValue.type || CellValueType.Error == oNewCell.oValue.type) {
var ss = this.aSharedStrings[oCellVal.val];
if (null != ss) {
bText = true;
var nType = oNewCell.oValue.type;
oNewCell.oValue = ss.clone(oNewCell);
oNewCell.oValue.type = nType;
}
}
if (false == bText) {
oNewCell.oValue.number = oCellVal.val;
}
}
aCells[nCellCol] = oNewCell;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadCell = function (type, length, ws, oCell, oCellVal) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerCellTypes.Ref == type) {
oCell.oId = new CellAddress(this.stream.GetString2LE(length));
} else {
if (c_oSerCellTypes.Style == type) {
var nStyleIndex = this.stream.GetULongLE();
if (0 != nStyleIndex) {
var xfs = this.aCellXfs[nStyleIndex];
if (null != xfs) {
oCell.xfs = xfs.clone();
}
}
} else {
if (c_oSerCellTypes.Type == type) {
switch (this.stream.GetUChar()) {
case ECellTypeType.celltypeBool:
oCell.oValue.type = CellValueType.Bool;
break;
case ECellTypeType.celltypeError:
oCell.oValue.type = CellValueType.Error;
break;
case ECellTypeType.celltypeNumber:
oCell.oValue.type = CellValueType.Number;
break;
case ECellTypeType.celltypeSharedString:
oCell.oValue.type = CellValueType.String;
break;
}
} else {
if (c_oSerCellTypes.Formula == type) {
if (null == oCell.oFormulaExt) {
oCell.oFormulaExt = {
aca: null,
bx: null,
ca: null,
del1: null,
del2: null,
dt2d: null,
dtr: null,
r1: null,
r2: null,
si: null,
t: null,
v: null
};
}
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadFormula(t, l, oCell.oFormulaExt);
});
} else {
if (c_oSerCellTypes.Value == type) {
oCellVal.val = this.stream.GetDoubleLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
return res;
};
this.ReadFormula = function (type, length, oFormula) {
var res = c_oSerConstants.ReadOk;
if (c_oSerFormulaTypes.Aca == type) {
oFormula.aca = this.stream.GetBool();
} else {
if (c_oSerFormulaTypes.Bx == type) {
oFormula.bx = this.stream.GetBool();
} else {
if (c_oSerFormulaTypes.Ca == type) {
oFormula.ca = this.stream.GetBool();
} else {
if (c_oSerFormulaTypes.Del1 == type) {
oFormula.del1 = this.stream.GetBool();
} else {
if (c_oSerFormulaTypes.Del2 == type) {
oFormula.del2 = this.stream.GetBool();
} else {
if (c_oSerFormulaTypes.Dt2D == type) {
oFormula.dt2d = this.stream.GetBool();
} else {
if (c_oSerFormulaTypes.Dtr == type) {
oFormula.dtr = this.stream.GetBool();
} else {
if (c_oSerFormulaTypes.R1 == type) {
oFormula.r1 = this.stream.GetString2LE(length);
} else {
if (c_oSerFormulaTypes.R2 == type) {
oFormula.r2 = this.stream.GetString2LE(length);
} else {
if (c_oSerFormulaTypes.Ref == type) {
oFormula.ref = this.stream.GetString2LE(length);
} else {
if (c_oSerFormulaTypes.Si == type) {
oFormula.si = this.stream.GetULongLE();
} else {
if (c_oSerFormulaTypes.T == type) {
oFormula.t = this.stream.GetUChar();
} else {
if (c_oSerFormulaTypes.Text == type) {
oFormula.v = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
}
}
}
}
}
return res;
};
this.ReadDrawings = function (type, length, aDrawings, wsId) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorksheetsTypes.Drawing == type) {
var objectRender = new DrawingObjects();
var oFlags = {
from: false,
to: false,
pos: false,
ext: false
};
var oNewDrawing = objectRender.createDrawingObject();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadDrawing(t, l, oNewDrawing, oFlags);
});
if (null != oNewDrawing.graphicObject) {
if (false != oFlags.from && false != oFlags.to) {
oNewDrawing.Type = ECellAnchorType.cellanchorTwoCell;
} else {
if (false != oFlags.from && false != oFlags.ext) {
oNewDrawing.Type = ECellAnchorType.cellanchorOneCell;
} else {
if (false != oFlags.pos && false != oFlags.ext) {
oNewDrawing.Type = ECellAnchorType.cellanchorAbsolute;
}
}
}
aDrawings.push(oNewDrawing);
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadDrawing = function (type, length, oDrawing, oFlags) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_DrawingType.Type == type) {
oDrawing.Type = this.stream.GetUChar();
} else {
if (c_oSer_DrawingType.From == type) {
oFlags.from = true;
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadFromTo(t, l, oDrawing.from);
});
} else {
if (c_oSer_DrawingType.To == type) {
oFlags.to = true;
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadFromTo(t, l, oDrawing.to);
});
} else {
if (c_oSer_DrawingType.Pos == type) {
oFlags.pos = true;
if (null == oDrawing.Pos) {
oDrawing.Pos = new Object();
}
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadPos(t, l, oDrawing.Pos);
});
} else {
if (c_oSer_DrawingType.Ext == type) {
oFlags.ext = true;
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadExt(t, l, oDrawing.ext);
});
} else {
if (c_oSer_DrawingType.Pic == type) {
oDrawing.image = new Image();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadPic(t, l, oDrawing);
});
} else {
if (c_oSer_DrawingType.pptxDrawing == type) {
var oGraphicObject = this.oPPTXContentLoader.ReadGraphicObject(this.stream);
if (null != oGraphicObject) {
oDrawing.graphicObject = oGraphicObject;
oGraphicObject.setDrawingBase(oDrawing);
}
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
return res;
};
this.ReadFromTo = function (type, length, oFromTo) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_DrawingFromToType.Col == type) {
oFromTo.col = this.stream.GetULongLE();
} else {
if (c_oSer_DrawingFromToType.ColOff == type) {
oFromTo.colOff = this.stream.GetDoubleLE();
} else {
if (c_oSer_DrawingFromToType.Row == type) {
oFromTo.row = this.stream.GetULongLE();
} else {
if (c_oSer_DrawingFromToType.RowOff == type) {
oFromTo.rowOff = this.stream.GetDoubleLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
return res;
};
this.ReadPos = function (type, length, oPos) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_DrawingPosType.X == type) {
oPos.X = this.stream.GetDoubleLE();
} else {
if (c_oSer_DrawingPosType.Y == type) {
oPos.Y = this.stream.GetDoubleLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadExt = function (type, length, oExt) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_DrawingExtType.Cx == type) {
oExt.cx = this.stream.GetDoubleLE();
} else {
if (c_oSer_DrawingExtType.Cy == type) {
oExt.cy = this.stream.GetDoubleLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadPic = function (type, length, oDrawing) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_DrawingType.PicSrc == type) {
var nIndex = this.stream.GetULongLE();
var src = this.oMediaArray[nIndex];
if (null != src) {
if (window["scriptBridge"]) {
oDrawing.image.src = window["scriptBridge"]["workPath"]() + src;
oDrawing.imageUrl = window["scriptBridge"]["workPath"]() + src;
} else {
oDrawing.image.src = src;
oDrawing.imageUrl = src;
}
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadComments = function (type, length, oWorksheet) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorksheetsTypes.Comment == type) {
var oCommentCoords = new Asc.asc_CCommentCoords();
var aCommentData = new Array();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadComment(t, l, oCommentCoords, aCommentData);
});
for (var i = 0, length = aCommentData.length; i < length; ++i) {
var elem = aCommentData[i];
elem.asc_putRow(oCommentCoords.asc_getRow());
elem.asc_putCol(oCommentCoords.asc_getCol());
elem.wsId = oWorksheet.Id;
if (elem.asc_getDocumentFlag()) {
elem.nId = "doc_" + (oWorksheet.aComments.length + 1);
} else {
elem.nId = "sheet" + elem.wsId + "_" + (oWorksheet.aComments.length + 1);
}
oWorksheet.aComments.push(elem);
}
oWorksheet.aCommentsCoords.push(oCommentCoords);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadComment = function (type, length, oCommentCoords, aCommentData) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_Comments.Row == type) {
oCommentCoords.asc_setRow(this.stream.GetULongLE());
} else {
if (c_oSer_Comments.Col == type) {
oCommentCoords.asc_setCol(this.stream.GetULongLE());
} else {
if (c_oSer_Comments.CommentDatas == type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCommentDatas(t, l, aCommentData);
});
} else {
if (c_oSer_Comments.Left == type) {
oCommentCoords.asc_setLeft(this.stream.GetULongLE());
} else {
if (c_oSer_Comments.LeftOffset == type) {
oCommentCoords.asc_setLeftOffset(this.stream.GetULongLE());
} else {
if (c_oSer_Comments.Top == type) {
oCommentCoords.asc_setTop(this.stream.GetULongLE());
} else {
if (c_oSer_Comments.TopOffset == type) {
oCommentCoords.asc_setTopOffset(this.stream.GetULongLE());
} else {
if (c_oSer_Comments.Right == type) {
oCommentCoords.asc_setRight(this.stream.GetULongLE());
} else {
if (c_oSer_Comments.RightOffset == type) {
oCommentCoords.asc_setRightOffset(this.stream.GetULongLE());
} else {
if (c_oSer_Comments.Bottom == type) {
oCommentCoords.asc_setBottom(this.stream.GetULongLE());
} else {
if (c_oSer_Comments.BottomOffset == type) {
oCommentCoords.asc_setBottomOffset(this.stream.GetULongLE());
} else {
if (c_oSer_Comments.LeftMM == type) {
oCommentCoords.asc_setLeftMM(this.stream.GetDoubleLE());
} else {
if (c_oSer_Comments.TopMM == type) {
oCommentCoords.asc_setTopMM(this.stream.GetDoubleLE());
} else {
if (c_oSer_Comments.WidthMM == type) {
oCommentCoords.asc_setWidthMM(this.stream.GetDoubleLE());
} else {
if (c_oSer_Comments.HeightMM == type) {
oCommentCoords.asc_setHeightMM(this.stream.GetDoubleLE());
} else {
if (c_oSer_Comments.MoveWithCells == type) {
oCommentCoords.asc_setMoveWithCells(this.stream.GetBool());
} else {
if (c_oSer_Comments.SizeWithCells == type) {
oCommentCoords.asc_setSizeWithCells(this.stream.GetBool());
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return res;
};
this.ReadCommentDatas = function (type, length, aCommentData) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_Comments.CommentData === type) {
var oCommentData = new Asc.asc_CCommentData();
oCommentData.asc_putDocumentFlag(false);
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCommentData(t, l, oCommentData);
});
aCommentData.push(oCommentData);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadCommentData = function (type, length, oCommentData) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_CommentData.Text == type) {
oCommentData.asc_putText(this.stream.GetString2LE(length));
} else {
if (c_oSer_CommentData.Time == type) {
var oDate = this.Iso8601ToDate(this.stream.GetString2LE(length));
if (null != oDate) {
oCommentData.asc_putTime(oDate.getTime() + "");
}
} else {
if (c_oSer_CommentData.UserId == type) {
oCommentData.asc_putUserId(this.stream.GetString2LE(length));
} else {
if (c_oSer_CommentData.UserName == type) {
oCommentData.asc_putUserName(this.stream.GetString2LE(length));
} else {
if (c_oSer_CommentData.QuoteText == type) {
oCommentData.asc_putQuoteText(this.stream.GetString2LE(length));
} else {
if (c_oSer_CommentData.Replies == type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadReplies(t, l, oCommentData);
});
} else {
if (c_oSer_CommentData.Solved == type) {
oCommentData.asc_putSolved(this.stream.GetBool());
} else {
if (c_oSer_CommentData.Document == type) {
oCommentData.asc_putDocumentFlag(this.stream.GetBool());
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
return res;
};
this.ReadConditionalFormatting = function (type, length, oConditionalFormatting, functionGetRange2) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oConditionalFormattingRule = null;
if (c_oSer_ConditionalFormatting.Pivot === type) {
oConditionalFormatting.Pivot = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormatting.SqRef === type) {
oConditionalFormatting.SqRef = this.stream.GetString2LE(length);
oConditionalFormatting.SqRefRange = functionGetRange2(oConditionalFormatting.SqRef);
} else {
if (c_oSer_ConditionalFormatting.ConditionalFormattingRule === type) {
oConditionalFormattingRule = new Asc.CConditionalFormattingRule();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadConditionalFormattingRule(t, l, oConditionalFormattingRule);
});
oConditionalFormatting.aRules.push(oConditionalFormattingRule);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadConditionalFormattingRule = function (type, length, oConditionalFormattingRule) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oConditionalFormattingRuleElement = null;
if (c_oSer_ConditionalFormattingRule.AboveAverage === type) {
oConditionalFormattingRule.AboveAverage = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormattingRule.Bottom === type) {
oConditionalFormattingRule.Bottom = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormattingRule.DxfId === type) {
var DxfId = this.stream.GetULongLE();
var dxf = this.Dxfs[DxfId];
oConditionalFormattingRule.dxf = dxf;
} else {
if (c_oSer_ConditionalFormattingRule.EqualAverage === type) {
oConditionalFormattingRule.EqualAverage = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormattingRule.Operator === type) {
oConditionalFormattingRule.Operator = this.stream.GetString2LE(length);
} else {
if (c_oSer_ConditionalFormattingRule.Percent === type) {
oConditionalFormattingRule.Percent = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormattingRule.Priority === type) {
oConditionalFormattingRule.Priority = this.stream.GetULongLE();
} else {
if (c_oSer_ConditionalFormattingRule.Rank === type) {
oConditionalFormattingRule.Rank = this.stream.GetULongLE();
} else {
if (c_oSer_ConditionalFormattingRule.StdDev === type) {
oConditionalFormattingRule.StdDev = this.stream.GetULongLE();
} else {
if (c_oSer_ConditionalFormattingRule.StopIfTrue === type) {
oConditionalFormattingRule.StopIfTrue = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormattingRule.Text === type) {
oConditionalFormattingRule.Text = this.stream.GetString2LE(length);
} else {
if (c_oSer_ConditionalFormattingRule.TimePeriod === type) {
oConditionalFormattingRule.TimePeriod = this.stream.GetString2LE(length);
} else {
if (c_oSer_ConditionalFormattingRule.Type === type) {
oConditionalFormattingRule.Type = this.stream.GetString2LE(length);
} else {
if (c_oSer_ConditionalFormattingRule.ColorScale === type) {
oConditionalFormattingRuleElement = new Asc.CColorScale();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadColorScale(t, l, oConditionalFormattingRuleElement);
});
oConditionalFormattingRule.aRuleElements.push(oConditionalFormattingRuleElement);
} else {
if (c_oSer_ConditionalFormattingRule.DataBar === type) {
oConditionalFormattingRuleElement = new Asc.CDataBar();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadDataBar(t, l, oConditionalFormattingRuleElement);
});
oConditionalFormattingRule.aRuleElements.push(oConditionalFormattingRuleElement);
} else {
if (c_oSer_ConditionalFormattingRule.FormulaCF === type) {
oConditionalFormattingRuleElement = new Asc.CFormulaCF();
oConditionalFormattingRuleElement.Text = this.stream.GetString2LE(length);
oConditionalFormattingRule.aRuleElements.push(oConditionalFormattingRuleElement);
} else {
if (c_oSer_ConditionalFormattingRule.IconSet === type) {
oConditionalFormattingRuleElement = new Asc.CIconSet();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadIconSet(t, l, oConditionalFormattingRuleElement);
});
oConditionalFormattingRule.aRuleElements.push(oConditionalFormattingRuleElement);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return res;
};
this.ReadColorScale = function (type, length, oColorScale) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oObject = null;
if (c_oSer_ConditionalFormattingRuleColorScale.CFVO === type) {
oObject = new Asc.CConditionalFormatValueObject();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCFVO(t, l, oObject);
});
oColorScale.aCFVOs.push(oObject);
} else {
if (c_oSer_ConditionalFormattingRuleColorScale.Color === type) {
oObject = new OpenColor();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.bcr.ReadColorSpreadsheet(t, l, oObject);
});
if (null != oObject.theme) {
oColorScale.aColors.push(g_oColorManager.getThemeColor(oObject.theme, oObject.tint));
} else {
if (null != oObject.rgb) {
oColorScale.aColors.push(new RgbColor(16777215 & oObject.rgb));
}
}
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadDataBar = function (type, length, oDataBar) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oObject = null;
if (c_oSer_ConditionalFormattingDataBar.MaxLength === type) {
oDataBar.MaxLength = this.stream.GetULongLE();
} else {
if (c_oSer_ConditionalFormattingDataBar.MinLength === type) {
oDataBar.MinLength = this.stream.GetULongLE();
} else {
if (c_oSer_ConditionalFormattingDataBar.ShowValue === type) {
oDataBar.ShowValue = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormattingDataBar.Color === type) {
oObject = new OpenColor();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.bcr.ReadColorSpreadsheet(t, l, oObject);
});
if (null != oObject.theme) {
oDataBar.Color = g_oColorManager.getThemeColor(oObject.theme, oObject.tint);
} else {
if (null != oObject.rgb) {
oDataBar.Color = new RgbColor(16777215 & oObject.rgb);
}
}
} else {
if (c_oSer_ConditionalFormattingDataBar.CFVO === type) {
oObject = new Asc.CConditionalFormatValueObject();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCFVO(t, l, oObject);
});
oDataBar.aCFVOs.push(oObject);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
return res;
};
this.ReadIconSet = function (type, length, oIconSet) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oObject = null;
if (c_oSer_ConditionalFormattingIconSet.IconSet === type) {
oIconSet.IconSet = this.stream.GetString2LE(length);
} else {
if (c_oSer_ConditionalFormattingIconSet.Percent === type) {
oIconSet.Percent = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormattingIconSet.Reverse === type) {
oIconSet.Reverse = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormattingIconSet.ShowValue === type) {
oIconSet.ShowValue = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormattingIconSet.CFVO === type) {
oObject = new Asc.CConditionalFormatValueObject();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCFVO(t, l, oObject);
});
oIconSet.aCFVOs.push(oObject);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
return res;
};
this.ReadCFVO = function (type, length, oCFVO) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_ConditionalFormattingValueObject.Gte === type) {
oCFVO.Gte = this.stream.GetBool();
} else {
if (c_oSer_ConditionalFormattingValueObject.Type === type) {
oCFVO.Type = this.stream.GetString2LE(length);
} else {
if (c_oSer_ConditionalFormattingValueObject.Val === type) {
oCFVO.Val = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadSheetViews = function (type, length, aSheetViews) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oSheetView = null;
if (c_oSerWorksheetsTypes.SheetView === type) {
oSheetView = new Asc.asc_CSheetViewSettings();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSheetView(t, l, oSheetView);
});
aSheetViews.push(oSheetView);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadSheetView = function (type, length, oSheetView) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_SheetView.ShowGridLines === type) {
oSheetView.showGridLines = this.stream.GetBool();
} else {
if (c_oSer_SheetView.ShowRowColHeaders === type) {
oSheetView.showRowColHeaders = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
this.ReadSheetPr = function (type, length, oSheetPr) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_SheetPr.CodeName === type) {
oSheetPr.CodeName = this.stream.GetString2LE(length);
} else {
if (c_oSer_SheetPr.EnableFormatConditionsCalculation === type) {
oSheetPr.EnableFormatConditionsCalculation = this.stream.GetBool();
} else {
if (c_oSer_SheetPr.FilterMode === type) {
oSheetPr.FilterMode = this.stream.GetBool();
} else {
if (c_oSer_SheetPr.Published === type) {
oSheetPr.Published = this.stream.GetBool();
} else {
if (c_oSer_SheetPr.SyncHorizontal === type) {
oSheetPr.SyncHorizontal = this.stream.GetBool();
} else {
if (c_oSer_SheetPr.SyncRef === type) {
oSheetPr.SyncRef = this.stream.GetString2LE(length);
} else {
if (c_oSer_SheetPr.SyncVertical === type) {
oSheetPr.SyncVertical = this.stream.GetBool();
} else {
if (c_oSer_SheetPr.TransitionEntry === type) {
oSheetPr.TransitionEntry = this.stream.GetBool();
} else {
if (c_oSer_SheetPr.TransitionEvaluation === type) {
oSheetPr.TransitionEvaluation = this.stream.GetBool();
} else {
if (c_oSer_SheetPr.TabColor === type) {
var oObject = new OpenColor();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.bcr.ReadColorSpreadsheet(t, l, oObject);
});
if (null != oObject.theme) {
oSheetPr.TabColor = g_oColorManager.getThemeColor(oObject.theme, oObject.tint);
} else {
if (null != oObject.rgb) {
oSheetPr.TabColor = new RgbColor(16777215 & oObject.rgb);
}
}
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
}
}
return res;
};
this.Iso8601ToDate = function (sDate) {
var numericKeys = [1, 4, 5, 6, 7, 10, 11];
var minutesOffset = 0;
if ((struct = /^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(sDate))) {
for (var i = 0, k;
(k = numericKeys[i]); ++i) {
struct[k] = +struct[k] || 0;
}
struct[2] = (+struct[2] || 1) - 1;
struct[3] = +struct[3] || 1;
if (struct[8] !== "Z" && struct[9] !== undefined) {
minutesOffset = struct[10] * 60 + struct[11];
if (struct[9] === "+") {
minutesOffset = 0 - minutesOffset;
}
}
return new Date(Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]));
}
return null;
};
this.ReadReplies = function (type, length, oCommentData) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_CommentData.Reply === type) {
var oReplyData = new Asc.asc_CCommentData();
oReplyData.asc_putDocumentFlag(false);
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCommentData(t, l, oReplyData);
});
oCommentData.aReplies.push(oReplyData);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
}
function Binary_CalcChainTableReader(stream, aCalcChain) {
this.stream = stream;
this.aCalcChain = aCalcChain;
this.bcr = new Binary_CommonReader(this.stream);
this.Read = function () {
var oThis = this;
return this.bcr.ReadTable(function (t, l) {
return oThis.ReadCalcChainContent(t, l);
});
};
this.ReadCalcChainContent = function (type, length) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_CalcChainType.CalcChainItem === type) {
var oNewCalcChain = new Object();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadCalcChain(t, l, oNewCalcChain);
});
this.aCalcChain.push(oNewCalcChain);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadCalcChain = function (type, length, oCalcChain) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_CalcChainType.Array == type) {
oCalcChain.Array = this.stream.GetBool();
} else {
if (c_oSer_CalcChainType.SheetId == type) {
oCalcChain.SheetId = this.stream.GetULongLE();
} else {
if (c_oSer_CalcChainType.DependencyLevel == type) {
oCalcChain.DependencyLevel = this.stream.GetBool();
} else {
if (c_oSer_CalcChainType.Ref == type) {
oCalcChain.Ref = this.stream.GetString2LE(length);
} else {
if (c_oSer_CalcChainType.ChildChain == type) {
oCalcChain.ChildChain = this.stream.GetBool();
} else {
if (c_oSer_CalcChainType.NewThread == type) {
oCalcChain.NewThread = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
return res;
};
}
function Binary_OtherTableReader(stream, oMedia, sUrlPath, wb) {
this.stream = stream;
this.oMedia = oMedia;
this.sUrlPath = sUrlPath;
this.wb = wb;
this.bcr = new Binary_CommonReader(this.stream);
this.Read = function () {
var oThis = this;
var oRes = this.bcr.ReadTable(function (t, l) {
return oThis.ReadOtherContent(t, l);
});
this.wb.clrSchemeMap = GenerateDefaultColorMap();
if (null == this.wb.theme) {
this.wb.theme = GenerateDefaultTheme(this.wb);
}
g_oColorManager.setTheme(this.wb.theme);
var sMinorFont = null;
if (null != this.wb.theme.themeElements && null != this.wb.theme.themeElements.fontScheme && null != this.wb.theme.themeElements.fontScheme.minorFont) {
sMinorFont = this.wb.theme.themeElements.fontScheme.minorFont.latin;
}
var sDefFont = "Calibri";
if (null != sMinorFont && "" != sMinorFont) {
sDefFont = sMinorFont;
}
g_oDefaultFont = g_oDefaultFontAbs = new Font({
fn: sDefFont,
scheme: EFontScheme.fontschemeNone,
fs: 11,
b: false,
i: false,
u: "none",
s: false,
c: g_oColorManager.getThemeColor(g_nColorTextDefault),
va: "baseline",
skip: false,
repeat: false
});
g_oDefaultFill = g_oDefaultFillAbs = new Fill({
bg: null
});
g_oDefaultBorder = g_oDefaultBorderAbs = new Border({
l: new BorderProp(),
t: new BorderProp(),
r: new BorderProp(),
b: new BorderProp(),
d: new BorderProp(),
ih: new BorderProp(),
iv: new BorderProp(),
dd: false,
du: false
});
g_oDefaultNum = g_oDefaultNumAbs = new Num({
f: "General"
});
g_oDefaultAlign = g_oDefaultAlignAbs = new Align({
hor: "none",
indent: 0,
RelativeIndent: 0,
shrink: false,
angle: 0,
ver: "bottom",
wrap: false
});
return oRes;
};
this.ReadOtherContent = function (type, length) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_OtherType.Media === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMediaContent(t, l);
});
} else {
if (c_oSer_OtherType.EmbeddedFonts === type) {
var _count = this.stream.GetULongLE();
var _embedded_fonts = new Array();
for (var i = 0; i < _count; i++) {
var _at = this.stream.GetUChar();
if (_at != g_nodeAttributeStart) {
break;
}
var _f_i = new Object();
while (true) {
_at = this.stream.GetUChar();
if (_at == g_nodeAttributeEnd) {
break;
}
switch (_at) {
case 0:
_f_i.Name = this.stream.GetString();
break;
case 1:
_f_i.Style = this.stream.GetULongLE();
break;
case 2:
_f_i.IsCut = this.stream.GetBool();
break;
case 3:
_f_i.IndexCut = this.stream.GetULongLE();
break;
default:
break;
}
}
_embedded_fonts.push(_f_i);
}
var api = this.wb.oApi;
if (true == api.isUseEmbeddedCutFonts) {
var font_cuts = api.FontLoader.embedded_cut_manager;
font_cuts.Url = this.sUrlPath + "fonts/fonts.js";
font_cuts.init_cut_fonts(_embedded_fonts);
font_cuts.bIsCutFontsUse = true;
}
} else {
if (c_oSer_OtherType.Theme === type) {
this.wb.theme = window.global_pptx_content_loader.ReadTheme(this, this.stream);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
return res;
};
this.ReadMediaContent = function (type, length) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_OtherType.MediaItem === type) {
var oNewMedia = new Object();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMediaItem(t, l, oNewMedia);
});
if (null != oNewMedia.id && null != oNewMedia.src) {
this.oMedia[oNewMedia.id] = oNewMedia.src;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadMediaItem = function (type, length, oNewMedia) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_OtherType.MediaSrc === type) {
var src = this.stream.GetString2LE(length);
if (0 != src.indexOf("http:") && 0 != src.indexOf("data:") && 0 != src.indexOf("https:") && 0 != src.indexOf("ftp:") && 0 != src.indexOf("file:")) {
oNewMedia.src = this.sUrlPath + "media/" + src;
} else {
oNewMedia.src = src;
}
} else {
if (c_oSer_OtherType.MediaId === type) {
oNewMedia.id = this.stream.GetULongLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
}
function BinaryFileReader(sUrlPath) {
this.stream;
this.sUrlPath = sUrlPath;
this.getbase64DecodedData = function (szSrc, stream) {
var nType = 0;
var index = c_oSerFormat.Signature.length;
var version = "";
var dst_len = "";
while (true) {
index++;
var _c = szSrc.charCodeAt(index);
if (_c == ";".charCodeAt(0)) {
if (0 == nType) {
nType = 1;
continue;
} else {
index++;
break;
}
}
if (0 == nType) {
version += String.fromCharCode(_c);
} else {
dst_len += String.fromCharCode(_c);
}
}
var dstLen = parseInt(dst_len);
var pointer = g_memory.Alloc(dstLen);
stream = new FT_Stream2(pointer.data, dstLen);
stream.obj = pointer.obj;
this.getbase64DecodedData2(szSrc, index, stream, 0);
if (version.length > 1) {
var nTempVersion = version.substring(1) - 0;
if (nTempVersion) {
g_nCurFileVersion = nTempVersion;
}
}
return stream;
};
this.getbase64DecodedData2 = function (szSrc, szSrcOffset, stream, streamOffset) {
var srcLen = szSrc.length;
var nWritten = streamOffset;
var dstPx = stream.data;
var index = szSrcOffset;
if (window.chrome) {
while (index < srcLen) {
var dwCurr = 0;
var i;
var nBits = 0;
for (i = 0; i < 4; i++) {
if (index >= srcLen) {
break;
}
var nCh = DecodeBase64Char(szSrc.charCodeAt(index++));
if (nCh == -1) {
i--;
continue;
}
dwCurr <<= 6;
dwCurr |= nCh;
nBits += 6;
}
dwCurr <<= 24 - nBits;
var nLen = (nBits / 8) | 0;
for (i = 0; i < nLen; i++) {
dstPx[nWritten++] = ((dwCurr & 16711680) >>> 16);
dwCurr <<= 8;
}
}
} else {
var p = b64_decode;
while (index < srcLen) {
var dwCurr = 0;
var i;
var nBits = 0;
for (i = 0; i < 4; i++) {
if (index >= srcLen) {
break;
}
var nCh = p[szSrc.charCodeAt(index++)];
if (nCh == undefined) {
i--;
continue;
}
dwCurr <<= 6;
dwCurr |= nCh;
nBits += 6;
}
dwCurr <<= 24 - nBits;
var nLen = (nBits / 8) | 0;
for (i = 0; i < nLen; i++) {
dstPx[nWritten++] = ((dwCurr & 16711680) >>> 16);
dwCurr <<= 8;
}
}
}
return nWritten;
};
this.Read = function (data, wb) {
this.stream = this.getbase64DecodedData(data);
History.TurnOff();
this.ReadFile(wb);
ReadDefCellStyles(wb, wb.CellStyles.DefaultStyles);
ReadDefTableStyles(wb, wb.TableStyles.DefaultStyles);
wb.TableStyles.concatStyles();
History.TurnOn();
};
this.ReadFile = function (wb) {
return this.ReadMainTable(wb);
};
this.ReadMainTable = function (wb) {
var res = c_oSerConstants.ReadOk;
res = this.stream.EnterFrame(1);
if (c_oSerConstants.ReadOk != res) {
return res;
}
var mtLen = this.stream.GetUChar();
var aSeekTable = new Array();
var nOtherTableOffset = null;
var nSharedStringTableOffset = null;
var nStyleTableOffset = null;
var nWorkbookTableOffset = null;
for (var i = 0; i < mtLen; ++i) {
res = this.stream.EnterFrame(5);
if (c_oSerConstants.ReadOk != res) {
return res;
}
var mtiType = this.stream.GetUChar();
var mtiOffBits = this.stream.GetULongLE();
if (c_oSerTableTypes.Other == mtiType) {
nOtherTableOffset = mtiOffBits;
} else {
if (c_oSerTableTypes.SharedStrings == mtiType) {
nSharedStringTableOffset = mtiOffBits;
} else {
if (c_oSerTableTypes.Styles == mtiType) {
nStyleTableOffset = mtiOffBits;
} else {
if (c_oSerTableTypes.Workbook == mtiType) {
nWorkbookTableOffset = mtiOffBits;
} else {
aSeekTable.push({
type: mtiType,
offset: mtiOffBits
});
}
}
}
}
}
var aSharedStrings = new Array();
var aCellXfs = new Array();
var aDxfs = new Array();
var oMediaArray = new Object();
wb.aWorksheets = new Array();
if (null != nOtherTableOffset) {
res = this.stream.Seek(nOtherTableOffset);
if (c_oSerConstants.ReadOk == res) {
res = (new Binary_OtherTableReader(this.stream, oMediaArray, this.sUrlPath, wb)).Read();
}
}
if (null != nSharedStringTableOffset) {
res = this.stream.Seek(nSharedStringTableOffset);
if (c_oSerConstants.ReadOk == res) {
res = (new Binary_SharedStringTableReader(this.stream, wb, aSharedStrings)).Read();
}
}
if (null != nStyleTableOffset) {
res = this.stream.Seek(nStyleTableOffset);
if (c_oSerConstants.ReadOk == res) {
res = (new Binary_StylesTableReader(this.stream, wb, aCellXfs, aDxfs)).Read();
}
}
if (c_oSerConstants.ReadOk == res) {
for (var i = 0; i < aSeekTable.length; ++i) {
var seek = aSeekTable[i];
var mtiType = seek.type;
var mtiOffBits = seek.offset;
res = this.stream.Seek(mtiOffBits);
if (c_oSerConstants.ReadOk != res) {
break;
}
switch (mtiType) {
case c_oSerTableTypes.Worksheets:
res = (new Binary_WorksheetTableReader(this.stream, wb, aSharedStrings, aCellXfs, aDxfs, oMediaArray)).Read();
break;
case c_oSerTableTypes.CalcChain:
res = (new Binary_CalcChainTableReader(this.stream, wb.calcChain)).Read();
break;
}
if (c_oSerConstants.ReadOk != res) {
break;
}
}
}
if (null != nWorkbookTableOffset) {
res = this.stream.Seek(nWorkbookTableOffset);
if (c_oSerConstants.ReadOk == res) {
res = (new Binary_WorkbookTableReader(this.stream, wb)).Read();
}
}
wb.init();
return res;
};
}
function CTableStyles() {
this.DefaultTableStyle = "TableStyleMedium2";
this.DefaultPivotStyle = "PivotStyleLight16";
this.CustomStyles = new Object();
this.DefaultStyles = new Object();
this.AllStyles = new Object();
}
CTableStyles.prototype = {
concatStyles: function () {
for (var i in this.DefaultStyles) {
this.AllStyles[i] = this.DefaultStyles[i];
}
for (var i in this.CustomStyles) {
this.AllStyles[i] = this.CustomStyles[i];
}
}
};
function CTableStyle() {
this.name = null;
this.pivot = true;
this.table = true;
this.displayName = null;
this.compiled = null;
this.blankRow = null;
this.firstColumn = null;
this.firstColumnStripe = null;
this.firstColumnSubheading = null;
this.firstHeaderCell = null;
this.firstRowStripe = null;
this.firstRowSubheading = null;
this.firstSubtotalColumn = null;
this.firstSubtotalRow = null;
this.firstTotalCell = null;
this.headerRow = null;
this.lastColumn = null;
this.lastHeaderCell = null;
this.lastTotalCell = null;
this.pageFieldLabels = null;
this.pageFieldValues = null;
this.secondColumnStripe = null;
this.secondColumnSubheading = null;
this.secondRowStripe = null;
this.secondRowSubheading = null;
this.secondSubtotalColumn = null;
this.secondSubtotalRow = null;
this.thirdColumnSubheading = null;
this.thirdRowSubheading = null;
this.thirdSubtotalColumn = null;
this.thirdSubtotalRow = null;
this.totalRow = null;
this.wholeTable = null;
}
CTableStyle.prototype = {
getStyle: function (bbox, rowIndex, colIndex, options, headerRowCount, totalsRowCount) {
var res = null;
if (null == this.compiled) {
this._compile();
}
var styles = this._getOption(options, headerRowCount, totalsRowCount);
if (headerRowCount > 0 && rowIndex == bbox.r1) {
if (colIndex == bbox.c1) {
res = styles.headerLeftTop;
} else {
if (colIndex == bbox.c2) {
res = styles.headerRightTop;
} else {
res = styles.header;
}
}
} else {
if (totalsRowCount > 0 && rowIndex == bbox.r2) {
if (colIndex == bbox.c1) {
res = styles.totalLeftBottom;
} else {
if (colIndex == bbox.c2) {
res = styles.totalRightBottom;
} else {
res = styles.total;
}
}
} else {
if (options.ShowFirstColumn && colIndex == bbox.c1) {
if (rowIndex == bbox.r1 + headerRowCount) {
res = styles.leftTopFC;
} else {
if (rowIndex == bbox.r2 - totalsRowCount) {
if (0 == (rowIndex - headerRowCount) % 2) {
res = styles.leftBottomRowBand1FC;
} else {
res = styles.leftBottomRowBand2FC;
}
} else {
if (0 == (rowIndex - headerRowCount) % 2) {
res = styles.leftRowBand1FC;
} else {
res = styles.leftRowBand2FC;
}
}
}
} else {
if (options.ShowLastColumn && colIndex == bbox.c2) {
if (rowIndex == bbox.r1 + headerRowCount) {
if (0 == colIndex % 2) {
res = styles.rightTopColBand1LC;
} else {
res = styles.rightTopColBand2LC;
}
} else {
if (rowIndex == bbox.r2 - totalsRowCount) {
if (0 == (rowIndex - headerRowCount) % 2) {
if (0 == colIndex % 2) {
res = styles.rightRowBand1ColBand1LC;
} else {
res = styles.rightRowBand1ColBand2LC;
}
} else {
if (0 == colIndex % 2) {
res = styles.rightRowBand2ColBand1LC;
} else {
res = styles.rightRowBand2ColBand2LC;
}
}
} else {
if (0 == (rowIndex - headerRowCount) % 2) {
if (0 == colIndex % 2) {
res = styles.rightBottomRowBand1ColBand1LC;
} else {
res = styles.rightBottomRowBand1ColBand2LC;
}
} else {
if (0 == colIndex % 2) {
res = styles.rightBottomRowBand2ColBand1LC;
} else {
res = styles.rightBottomRowBand2ColBand2LC;
}
}
}
}
} else {
if (options.ShowRowStripes || options.ShowColumnStripes) {
if (rowIndex == bbox.r1 + headerRowCount) {
if (colIndex == bbox.c1) {
res = styles.leftTop;
} else {
if (colIndex == bbox.c2) {
if (0 == colIndex % 2) {
res = styles.rightTopColBand1;
} else {
res = styles.rightTopColBand2;
}
} else {
if (0 == colIndex % 2) {
res = styles.topColBand1;
} else {
res = styles.topColBand2;
}
}
}
} else {
if (rowIndex == bbox.r2 - totalsRowCount) {
if (colIndex == bbox.c1) {
if (0 == (rowIndex - headerRowCount) % 2) {
res = styles.leftBottomRowBand1;
} else {
res = styles.leftBottomRowBand2;
}
} else {
if (colIndex == bbox.c2) {
if (0 == (rowIndex - headerRowCount) % 2) {
if (0 == colIndex % 2) {
res = styles.rightBottomRowBand1ColBand1;
} else {
res = styles.rightBottomRowBand1ColBand2;
}
} else {
if (0 == colIndex % 2) {
res = styles.rightBottomRowBand2ColBand1;
} else {
res = styles.rightBottomRowBand2ColBand2;
}
}
} else {
if (0 == (rowIndex - headerRowCount) % 2) {
if (0 == colIndex % 2) {
res = styles.bottomRowBand1ColBand1;
} else {
res = styles.bottomRowBand1ColBand2;
}
} else {
if (0 == colIndex % 2) {
res = styles.bottomRowBand2ColBand1;
} else {
res = styles.bottomRowBand2ColBand2;
}
}
}
}
} else {
if (colIndex == bbox.c1) {
if (0 == (rowIndex - headerRowCount) % 2) {
res = styles.leftRowBand1;
} else {
res = styles.leftRowBand2;
}
} else {
if (colIndex == bbox.c2) {
if (0 == (rowIndex - headerRowCount) % 2) {
if (0 == colIndex % 2) {
res = styles.rightRowBand1ColBand1;
} else {
res = styles.rightRowBand1ColBand2;
}
} else {
if (0 == colIndex % 2) {
res = styles.rightRowBand2ColBand1;
} else {
res = styles.rightRowBand2ColBand2;
}
}
} else {
if (0 == (rowIndex - headerRowCount) % 2) {
if (0 == colIndex % 2) {
res = styles.innerRowBand1ColBand1;
} else {
res = styles.innerRowBand1ColBand2;
}
} else {
if (0 == colIndex % 2) {
res = styles.innerRowBand2ColBand1;
} else {
res = styles.innerRowBand2ColBand2;
}
}
}
}
}
}
} else {
if (rowIndex == bbox.r1 + headerRowCount) {
if (colIndex == bbox.c1) {
res = styles.leftTop;
} else {
if (colIndex == bbox.c2) {
res = styles.rightTopColBand1;
} else {
res = styles.topColBand1;
}
}
} else {
if (rowIndex == bbox.r2 - totalsRowCount) {
if (colIndex == bbox.c1) {
res = styles.leftBottomRowBand1;
} else {
if (colIndex == bbox.c2) {
res = styles.rightBottomRowBand1ColBand1;
} else {
res = styles.bottomRowBand1ColBand1;
}
}
} else {
if (colIndex == bbox.c1) {
res = styles.leftRowBand1;
} else {
if (colIndex == bbox.c2) {
res = styles.rightRowBand1ColBand1;
} else {
res = styles.innerRowBand1ColBand1;
}
}
}
}
}
}
}
}
}
return res;
},
_getOption: function (options, headerRowCount, totalsRowCount) {
var nBitMask = 0;
if (options.ShowFirstColumn) {
nBitMask += 1;
}
if (options.ShowLastColumn) {
nBitMask += 1 << 1;
}
if (options.ShowRowStripes) {
nBitMask += 1 << 2;
}
if (options.ShowColumnStripes) {
nBitMask += 1 << 3;
}
if (headerRowCount > 0) {
nBitMask += 1 << 4;
}
if (totalsRowCount > 0) {
nBitMask += 1 << 5;
}
var styles = this.compiled.options[nBitMask];
if (null == styles) {
var configs = {
header: {
header: true,
top: true
},
headerLeftTop: {
header: true,
left: true,
top: true
},
headerRightTop: {
header: true,
right: true,
top: true
},
total: {
total: true,
bottom: true
},
totalLeftBottom: {
total: true,
left: true,
bottom: true
},
totalRightBottom: {
total: true,
right: true,
bottom: true
},
leftTop: {
ShowRowStripes: true,
ShowColumnStripes: true,
left: true,
top: true,
RowBand1: true,
ColBand1: true
},
leftBottomRowBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
left: true,
bottom: true,
RowBand1: true,
ColBand1: true
},
leftBottomRowBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
left: true,
bottom: true,
RowBand2: true,
ColBand1: true
},
leftRowBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
left: true,
RowBand1: true,
ColBand1: true
},
leftRowBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
left: true,
RowBand2: true,
ColBand1: true
},
rightTopColBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
top: true,
RowBand1: true,
ColBand1: true
},
rightTopColBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
top: true,
RowBand1: true,
ColBand2: true
},
rightRowBand1ColBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
RowBand1: true,
ColBand1: true
},
rightRowBand1ColBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
RowBand1: true,
ColBand2: true
},
rightRowBand2ColBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
RowBand2: true,
ColBand1: true
},
rightRowBand2ColBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
RowBand2: true,
ColBand2: true
},
rightBottomRowBand1ColBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
bottom: true,
RowBand1: true,
ColBand1: true
},
rightBottomRowBand1ColBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
bottom: true,
RowBand1: true,
ColBand2: true
},
rightBottomRowBand2ColBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
bottom: true,
RowBand2: true,
ColBand1: true
},
rightBottomRowBand2ColBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
bottom: true,
RowBand2: true,
ColBand2: true
},
topColBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
top: true,
RowBand1: true,
ColBand1: true
},
topColBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
top: true,
RowBand1: true,
ColBand2: true
},
bottomRowBand1ColBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
bottom: true,
RowBand1: true,
ColBand1: true
},
bottomRowBand1ColBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
bottom: true,
RowBand1: true,
ColBand2: true
},
bottomRowBand2ColBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
bottom: true,
RowBand2: true,
ColBand1: true
},
bottomRowBand2ColBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
bottom: true,
RowBand2: true,
ColBand2: true
},
innerRowBand1ColBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
RowBand1: true,
ColBand1: true
},
innerRowBand1ColBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
RowBand1: true,
ColBand2: true
},
innerRowBand2ColBand1: {
ShowRowStripes: true,
ShowColumnStripes: true,
RowBand2: true,
ColBand1: true
},
innerRowBand2ColBand2: {
ShowRowStripes: true,
ShowColumnStripes: true,
RowBand2: true,
ColBand2: true
},
leftTopFC: {
ShowFirstColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
left: true,
top: true,
RowBand1: true,
ColBand1: true
},
leftBottomRowBand1FC: {
ShowFirstColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
left: true,
bottom: true,
RowBand1: true,
ColBand1: true
},
leftBottomRowBand2FC: {
ShowFirstColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
left: true,
bottom: true,
RowBand2: true,
ColBand1: true
},
leftRowBand1FC: {
ShowFirstColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
left: true,
RowBand1: true,
ColBand1: true
},
leftRowBand2FC: {
ShowFirstColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
left: true,
RowBand2: true,
ColBand1: true
},
rightTopColBand1LC: {
ShowLastColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
top: true,
RowBand1: true,
ColBand1: true
},
rightTopColBand2LC: {
ShowLastColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
top: true,
RowBand1: true,
ColBand2: true
},
rightRowBand1ColBand1LC: {
ShowLastColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
RowBand1: true,
ColBand1: true
},
rightRowBand1ColBand2LC: {
ShowLastColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
RowBand1: true,
ColBand2: true
},
rightRowBand2ColBand1LC: {
ShowLastColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
RowBand2: true,
ColBand1: true
},
rightRowBand2ColBand2LC: {
ShowLastColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
RowBand2: true,
ColBand2: true
},
rightBottomRowBand1ColBand1LC: {
ShowLastColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
bottom: true,
RowBand1: true,
ColBand1: true
},
rightBottomRowBand1ColBand2LC: {
ShowLastColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
bottom: true,
RowBand1: true,
ColBand2: true
},
rightBottomRowBand2ColBand1LC: {
ShowLastColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
bottom: true,
RowBand2: true,
ColBand1: true
},
rightBottomRowBand2ColBand2LC: {
ShowLastColumn: true,
ShowRowStripes: true,
ShowColumnStripes: true,
right: true,
bottom: true,
RowBand2: true,
ColBand2: true
}
};
var styles = new Object();
for (var i in configs) {
styles[i] = new CellXfs();
}
this._compileOption(options, headerRowCount, totalsRowCount, styles, configs);
this.compiled.options[nBitMask] = styles;
}
return styles;
},
_compileSetBorder: function (inputDxf, outputDxf, bLeft, bTop, bRight, bBottom, bInnerHor, bInnerVer) {
if (null != inputDxf && null != inputDxf.border) {
var oCurBorder = inputDxf.border;
var oNewBorder = new Border();
if (bLeft) {
oNewBorder.l = oCurBorder.l;
} else {
if (bInnerVer) {
oNewBorder.l = oCurBorder.iv;
}
}
if (bTop) {
oNewBorder.t = oCurBorder.t;
} else {
if (bInnerHor) {
oNewBorder.t = oCurBorder.ih;
}
}
if (bRight) {
oNewBorder.r = oCurBorder.r;
} else {
if (bInnerVer) {
oNewBorder.r = oCurBorder.iv;
}
}
if (bBottom) {
oNewBorder.b = oCurBorder.b;
} else {
if (bInnerHor) {
oNewBorder.b = oCurBorder.ih;
}
}
if (null == outputDxf.border) {
outputDxf.border = oNewBorder;
} else {
outputDxf.border = outputDxf.border.merge(oNewBorder);
}
}
},
_compileSetHeaderBorder: function (inputDxf, outputDxf, bHeader) {
if (null != inputDxf && null != inputDxf.border) {
var oCurBorder = inputDxf.border;
var oNewBorder = new Border();
if (bHeader) {
oNewBorder.t = oCurBorder.b;
} else {
oNewBorder.b = oCurBorder.t;
}
if (null == outputDxf.border) {
outputDxf.border = oNewBorder;
} else {
outputDxf.border = outputDxf.border.merge(oNewBorder);
}
}
},
_compileOption: function (options, headerRowCount, totalsRowCount, styles, configs) {
for (var i in styles) {
var xfs = styles[i];
var config = configs[i];
if (headerRowCount > 0 && config.top && true != config.header) {
if (options.ShowFirstColumn && null != this.firstHeaderCell && config.left) {
this._compileSetHeaderBorder(this.firstHeaderCell.dxf, xfs, true);
} else {
if (options.ShowLastColumn && null != this.lastHeaderCell && config.right) {
this._compileSetHeaderBorder(this.lastHeaderCell.dxf, xfs, true);
}
}
if (null != this.headerRow) {
this._compileSetHeaderBorder(this.headerRow.dxf, xfs, true);
}
}
if (totalsRowCount > 0 && config.bottom && true != config.total) {
if (options.ShowFirstColumn && null != this.firstTotalCell && config.left) {
this._compileSetHeaderBorder(this.firstTotalCell.dxf, xfs, false);
} else {
if (options.ShowLastColumn && null != this.lastTotalCell && config.right) {
this._compileSetHeaderBorder(this.lastTotalCell.dxf, xfs, false);
}
}
if (null != this.totalRow) {
this._compileSetHeaderBorder(this.totalRow.dxf, xfs, false);
}
}
if (headerRowCount > 0 && config.header) {
if (options.ShowFirstColumn && null != this.firstHeaderCell && config.left) {
xfs = xfs.merge(this.firstHeaderCell.dxf);
}
if (options.ShowLastColumn && null != this.lastHeaderCell && config.right) {
xfs = xfs.merge(this.lastHeaderCell.dxf);
}
if (null != this.headerRow) {
xfs = xfs.merge(this.compiled.headerRow.dxf);
if (config.left) {
this._compileSetBorder(this.headerRow.dxf, xfs, true, true, false, true, false, true);
} else {
if (config.right) {
this._compileSetBorder(this.headerRow.dxf, xfs, false, true, true, true, false, true);
} else {
this._compileSetBorder(this.headerRow.dxf, xfs, false, true, false, true, false, true);
}
}
}
if (options.ShowFirstColumn && null != this.firstColumn && config.left) {
xfs = xfs.merge(this.compiled.firstColumn.dxf);
this._compileSetBorder(this.firstColumn.dxf, xfs, true, true, true, false, true, false);
}
if (options.ShowLastColumn && null != this.lastColumn && config.right) {
xfs = xfs.merge(this.compiled.lastColumn.dxf);
this._compileSetBorder(this.lastColumn.dxf, xfs, true, true, true, false, true, false);
}
} else {
if (totalsRowCount > 0 && config.total) {
if (options.ShowFirstColumn && null != this.firstTotalCell && config.left) {
xfs = xfs.merge(this.firstTotalCell.dxf);
}
if (options.ShowLastColumn && null != this.lastTotalCell && config.right) {
xfs = xfs.merge(this.lastTotalCell.dxf);
}
if (null != this.totalRow) {
xfs = xfs.merge(this.compiled.totalRow.dxf);
if (config.left) {
this._compileSetBorder(this.totalRow.dxf, xfs, true, true, false, true, false, true);
} else {
if (config.right) {
this._compileSetBorder(this.totalRow.dxf, xfs, false, true, true, true, false, true);
} else {
this._compileSetBorder(this.totalRow.dxf, xfs, false, true, false, true, false, true);
}
}
}
if (options.ShowFirstColumn && null != this.firstColumn && config.left) {
xfs = xfs.merge(this.compiled.firstColumn.dxf);
this._compileSetBorder(this.firstColumn.dxf, xfs, true, false, true, true, true, false);
}
if (options.ShowLastColumn && null != this.lastColumn && config.right) {
xfs = xfs.merge(this.compiled.lastColumn.dxf);
this._compileSetBorder(this.lastColumn.dxf, xfs, true, false, true, true, true, false);
}
} else {
if (options.ShowFirstColumn && null != this.firstColumn && config.ShowFirstColumn) {
xfs = xfs.merge(this.compiled.firstColumn.dxf);
if (config.left && config.top) {
if (headerRowCount > 0) {
this._compileSetBorder(this.firstColumn.dxf, xfs, true, false, true, false, true, false);
} else {
this._compileSetBorder(this.firstColumn.dxf, xfs, true, true, true, false, true, false);
}
} else {
if (config.left && config.bottom) {
if (totalsRowCount > 0) {
this._compileSetBorder(this.firstColumn.dxf, xfs, true, false, true, false, true, false);
} else {
this._compileSetBorder(this.firstColumn.dxf, xfs, true, false, true, true, true, false);
}
} else {
this._compileSetBorder(this.firstColumn.dxf, xfs, true, false, true, false, true, false);
}
}
} else {
if (options.ShowLastColumn && null != this.lastColumn && config.ShowLastColumn) {
xfs = xfs.merge(this.compiled.lastColumn.dxf);
if (config.right && config.top) {
if (headerRowCount > 0) {
this._compileSetBorder(this.lastColumn.dxf, xfs, true, false, true, false, true, false);
} else {
this._compileSetBorder(this.lastColumn.dxf, xfs, true, true, true, false, true, false);
}
} else {
if (config.right && config.bottom) {
if (totalsRowCount > 0) {
this._compileSetBorder(this.lastColumn.dxf, xfs, true, false, true, false, true, false);
} else {
this._compileSetBorder(this.lastColumn.dxf, xfs, true, false, true, true, true, false);
}
} else {
this._compileSetBorder(this.lastColumn.dxf, xfs, true, false, true, false, true, false);
}
}
}
}
if (options.ShowRowStripes && config.ShowRowStripes) {
if (null != this.firstRowStripe && config.RowBand1) {
xfs = xfs.merge(this.compiled.firstRowStripe.dxf);
if (config.left) {
this._compileSetBorder(this.firstRowStripe.dxf, xfs, true, true, false, true, false, true);
} else {
if (config.right) {
this._compileSetBorder(this.firstRowStripe.dxf, xfs, false, true, true, true, false, true);
} else {
this._compileSetBorder(this.firstRowStripe.dxf, xfs, false, true, false, true, false, true);
}
}
} else {
if (null != this.secondRowStripe && config.RowBand2) {
xfs = xfs.merge(this.compiled.secondRowStripe.dxf);
if (config.left) {
this._compileSetBorder(this.secondRowStripe.dxf, xfs, true, true, false, true, false, true);
} else {
if (config.right) {
this._compileSetBorder(this.secondRowStripe.dxf, xfs, false, true, true, true, false, true);
} else {
this._compileSetBorder(this.secondRowStripe.dxf, xfs, false, true, false, true, false, true);
}
}
}
}
}
if (options.ShowColumnStripes && config.ShowRowStripes) {
if (null != this.firstColumnStripe && config.ColBand1) {
xfs = xfs.merge(this.compiled.firstColumnStripe.dxf);
if (config.top) {
this._compileSetBorder(this.firstColumnStripe.dxf, xfs, true, true, true, false, true, false);
} else {
if (config.bottom) {
this._compileSetBorder(this.firstColumnStripe.dxf, xfs, true, false, true, true, true, false);
} else {
this._compileSetBorder(this.firstColumnStripe.dxf, xfs, true, false, true, false, true, false);
}
}
} else {
if (null != this.secondColumnStripe && config.ColBand2) {
xfs = xfs.merge(this.compiled.secondColumnStripe.dxf);
if (config.top) {
this._compileSetBorder(this.secondColumnStripe.dxf, xfs, true, true, true, false, true, false);
} else {
if (config.bottom) {
this._compileSetBorder(this.secondColumnStripe.dxf, xfs, true, false, true, true, true, false);
} else {
this._compileSetBorder(this.secondColumnStripe.dxf, xfs, true, false, true, false, true, false);
}
}
}
}
}
}
}
if (null != this.wholeTable) {
xfs = xfs.merge(this.compiled.wholeTable.dxf);
if (config.top) {
if (headerRowCount > 0 && true != config.header) {
if (config.left) {
this._compileSetBorder(this.wholeTable.dxf, xfs, true, false, false, false, true, true);
} else {
if (config.right) {
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, true, false, true, true);
} else {
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, false, false, true, true);
}
}
} else {
if (config.left) {
this._compileSetBorder(this.wholeTable.dxf, xfs, true, true, false, false, true, true);
} else {
if (config.right) {
this._compileSetBorder(this.wholeTable.dxf, xfs, false, true, true, false, true, true);
} else {
this._compileSetBorder(this.wholeTable.dxf, xfs, false, true, false, false, true, true);
}
}
}
} else {
if (config.bottom) {
if (totalsRowCount > 0 && true != config.total) {
if (config.left) {
this._compileSetBorder(this.wholeTable.dxf, xfs, true, false, false, false, true, true);
} else {
if (config.right) {
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, true, false, true, true);
} else {
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, false, false, true, true);
}
}
} else {
if (config.left) {
this._compileSetBorder(this.wholeTable.dxf, xfs, true, false, false, true, true, true);
} else {
if (config.right) {
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, true, true, true, true);
} else {
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, false, true, true, true);
}
}
}
} else {
if (config.left) {
this._compileSetBorder(this.wholeTable.dxf, xfs, true, false, false, false, true, true);
} else {
if (config.right) {
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, true, false, true, true);
} else {
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, false, false, true, true);
}
}
}
}
}
styles[i] = xfs;
}
},
_compile: function () {
this.compiled = {
options: new Object(),
blankRow: null,
firstColumn: null,
firstColumnStripe: null,
firstColumnSubheading: null,
firstHeaderCell: null,
firstRowStripe: null,
firstRowSubheading: null,
firstSubtotalColumn: null,
firstSubtotalRow: null,
firstTotalCell: null,
headerRow: null,
lastColumn: null,
lastHeaderCell: null,
lastTotalCell: null,
pageFieldLabels: null,
pageFieldValues: null,
secondColumnStripe: null,
secondColumnSubheading: null,
secondRowStripe: null,
secondRowSubheading: null,
secondSubtotalColumn: null,
secondSubtotalRow: null,
thirdColumnSubheading: null,
thirdRowSubheading: null,
thirdSubtotalColumn: null,
thirdSubtotalRow: null,
totalRow: null,
wholeTable: null
};
for (var i in this) {
var elem = this[i];
if (null != elem && elem instanceof CTableStyleElement) {
var oNewElem = new CTableStyleElement();
oNewElem.size = elem.size;
oNewElem.dxf = elem.dxf.clone();
oNewElem.dxf.border = null;
this.compiled[i] = oNewElem;
}
}
}
};
function CTableStyleElement() {
this.size = 1;
this.dxf = null;
}
function ReadDefTableStyles(wb, oOutput) {
var Types = {
Style: 0,
Dxf: 1,
tableStyles: 2
};
var sStyles = "15MAAACtAgAAAYYBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBCQMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBCQMFmsxMZiYz4z8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBCQEBBgMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQvRAAAAAaIAAAAAFgAAAAAGDQAAAAIBCQMFzWRmMjOZ2T8BAQ0CFgAAAAAGDQAAAAIBCQMFzWRmMjOZ2T8BAQ0DFgAAAAAGDQAAAAIBCQMFzWRmMjOZ2T8BAQ0EFgAAAAAGDQAAAAIBCQMFzWRmMjOZ2T8BAQ0FFgAAAAAGDQAAAAIBCQMFzWRmMjOZ2T8BAQ0GFgAAAAAGDQAAAAIBCQMFzWRmMjOZ2T8BAQ0CFwAAAAASAAAAAQ0AAAACAQkDBc1l5jJzmek/AwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMgA4AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMgA4AACtAgAAAYYBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBCAMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBCAMFmsxMZiYz4z8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBCAEBBgMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQvRAAAAAaIAAAAAFgAAAAAGDQAAAAIBCAMFzWRmMjOZ2T8BAQ0CFgAAAAAGDQAAAAIBCAMFzWRmMjOZ2T8BAQ0DFgAAAAAGDQAAAAIBCAMFzWRmMjOZ2T8BAQ0EFgAAAAAGDQAAAAIBCAMFzWRmMjOZ2T8BAQ0FFgAAAAAGDQAAAAIBCAMFzWRmMjOZ2T8BAQ0GFgAAAAAGDQAAAAIBCAMFzWRmMjOZ2T8BAQ0CFwAAAAASAAAAAQ0AAAACAQgDBc1l5jJzmek/AwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMgA3AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMgA3AACtAgAAAYYBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBwMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBBwMFmsxMZiYz4z8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBBwEBBgMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQvRAAAAAaIAAAAAFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0CFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0DFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0EFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0FFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0GFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0CFwAAAAASAAAAAQ0AAAACAQcDBc1l5jJzmek/AwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMgA2AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMgA2AACtAgAAAYYBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBgMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBBgMFmsxMZiYz4z8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBBgEBBgMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQvRAAAAAaIAAAAAFgAAAAAGDQAAAAIBBgMFzWRmMjOZ2T8BAQ0CFgAAAAAGDQAAAAIBBgMFzWRmMjOZ2T8BAQ0DFgAAAAAGDQAAAAIBBgMFzWRmMjOZ2T8BAQ0EFgAAAAAGDQAAAAIBBgMFzWRmMjOZ2T8BAQ0FFgAAAAAGDQAAAAIBBgMFzWRmMjOZ2T8BAQ0GFgAAAAAGDQAAAAIBBgMFzWRmMjOZ2T8BAQ0CFwAAAAASAAAAAQ0AAAACAQYDBc1l5jJzmek/AwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMgA1AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMgA1AACtAgAAAYYBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBQMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBBQMFmsxMZiYz4z8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBBQEBBgMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQvRAAAAAaIAAAAAFgAAAAAGDQAAAAIBBQMFzWRmMjOZ2T8BAQ0CFgAAAAAGDQAAAAIBBQMFzWRmMjOZ2T8BAQ0DFgAAAAAGDQAAAAIBBQMFzWRmMjOZ2T8BAQ0EFgAAAAAGDQAAAAIBBQMFzWRmMjOZ2T8BAQ0FFgAAAAAGDQAAAAIBBQMFzWRmMjOZ2T8BAQ0GFgAAAAAGDQAAAAIBBQMFzWRmMjOZ2T8BAQ0CFwAAAAASAAAAAQ0AAAACAQUDBc1l5jJzmek/AwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMgA0AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMgA0AACtAgAAAYYBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBAMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBBAMFmsxMZiYz4z8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBBAEBBgMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQvRAAAAAaIAAAAAFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0CFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0DFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0EFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0FFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0GFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0CFwAAAAASAAAAAQ0AAAACAQQDBc1l5jJzmek/AwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMgAzAAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMgAzAABxAgAAAUoBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFs5hZzCxm1r8LHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFs5hZzCxm1r8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBAQEBBgMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQuVAAAAAWYAAAAADAAAAAAGAwAAAAIBAQEBDQIMAAAAAAYDAAAAAgEBAQENAwwAAAAABgMAAAACAQEBAQ0EDAAAAAAGAwAAAAIBAQEBDQUMAAAAAAYDAAAAAgEBAQENBgwAAAAABgMAAAACAQEBAQ0CFwAAAAASAAAAAQ0AAAACAQADBZrMTGYmM8O/AwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMgAyAAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMgAyAABMAgAAASUBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFmsxMZiYzw78LHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFmsxMZiYzw78LIwAAAAINAAAAAAgAAAABAwAAAAIBCQMMAAAAAAEBAQYDAAAAAgEACyMAAAACDQAAAAAIAAAAAQMAAAACAQkDDAAAAAABAQEGAwAAAAIBAAsWAAAAAREAAAAFDAAAAAAGAwAAAAIBAQEBBAs5AAAAAREAAAAADAAAAAAGAwAAAAIBAQEBBgINAAAAAAgAAAABAwAAAAIBCQMMAAAAAAEBAQYDAAAAAgEACzUAAAABIgAAAAAMAAAAAAYDAAAAAgEBAQEGBQwAAAAABgMAAAACAQEBAQYDCQAAAAEGAwAAAAIBAQIdAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsoAAAADxQAAAAAkAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQAyADEAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUqAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATQBlAGQAaQB1AG0AIAAyADEAAEwCAAABJQEAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEAAwWazExmJjPDvwscAAAAAhcAAAAAEgAAAAENAAAAAgEAAwWazExmJjPDvwsjAAAAAg0AAAAACAAAAAEDAAAAAgEIAwwAAAAAAQEBBgMAAAACAQALIwAAAAINAAAAAAgAAAABAwAAAAIBCAMMAAAAAAEBAQYDAAAAAgEACxYAAAABEQAAAAUMAAAAAAYDAAAAAgEBAQEECzkAAAABEQAAAAAMAAAAAAYDAAAAAgEBAQEGAg0AAAAACAAAAAEDAAAAAgEIAwwAAAAAAQEBBgMAAAACAQALNQAAAAEiAAAAAAwAAAAABgMAAAACAQEBAQYFDAAAAAAGAwAAAAIBAQEBBgMJAAAAAQYDAAAAAgEBAh0BAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACygAAAAPFAAAAACQAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADIAMAABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSoAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABNAGUAZABpAHUAbQAgADIAMAAATAIAAAElAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQADBZrMTGYmM8O/CxwAAAACFwAAAAASAAAAAQ0AAAACAQADBZrMTGYmM8O/CyMAAAACDQAAAAAIAAAAAQMAAAACAQcDDAAAAAABAQEGAwAAAAIBAAsjAAAAAg0AAAAACAAAAAEDAAAAAgEHAwwAAAAAAQEBBgMAAAACAQALFgAAAAERAAAABQwAAAAABgMAAAACAQEBAQQLOQAAAAERAAAAAAwAAAAABgMAAAACAQEBAQYCDQAAAAAIAAAAAQMAAAACAQcDDAAAAAABAQEGAwAAAAIBAAs1AAAAASIAAAAADAAAAAAGAwAAAAIBAQEBBgUMAAAAAAYDAAAAAgEBAQEGAwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMQA5AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMQA5AABMAgAAASUBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFmsxMZiYzw78LHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFmsxMZiYzw78LIwAAAAINAAAAAAgAAAABAwAAAAIBBgMMAAAAAAEBAQYDAAAAAgEACyMAAAACDQAAAAAIAAAAAQMAAAACAQYDDAAAAAABAQEGAwAAAAIBAAsWAAAAAREAAAAFDAAAAAAGAwAAAAIBAQEBBAs5AAAAAREAAAAADAAAAAAGAwAAAAIBAQEBBgINAAAAAAgAAAABAwAAAAIBBgMMAAAAAAEBAQYDAAAAAgEACzUAAAABIgAAAAAMAAAAAAYDAAAAAgEBAQEGBQwAAAAABgMAAAACAQEBAQYDCQAAAAEGAwAAAAIBAQIdAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsoAAAADxQAAAAAkAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQAxADgAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUqAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATQBlAGQAaQB1AG0AIAAxADgAAEwCAAABJQEAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEAAwWazExmJjPDvwscAAAAAhcAAAAAEgAAAAENAAAAAgEAAwWazExmJjPDvwsjAAAAAg0AAAAACAAAAAEDAAAAAgEFAwwAAAAAAQEBBgMAAAACAQALIwAAAAINAAAAAAgAAAABAwAAAAIBBQMMAAAAAAEBAQYDAAAAAgEACxYAAAABEQAAAAUMAAAAAAYDAAAAAgEBAQEECzkAAAABEQAAAAAMAAAAAAYDAAAAAgEBAQEGAg0AAAAACAAAAAEDAAAAAgEFAwwAAAAAAQEBBgMAAAACAQALNQAAAAEiAAAAAAwAAAAABgMAAAACAQEBAQYFDAAAAAAGAwAAAAIBAQEBBgMJAAAAAQYDAAAAAgEBAh0BAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACygAAAAPFAAAAACQAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADEANwABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSoAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABNAGUAZABpAHUAbQAgADEANwAATAIAAAElAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQADBZrMTGYmM8O/CxwAAAACFwAAAAASAAAAAQ0AAAACAQADBZrMTGYmM8O/CyMAAAACDQAAAAAIAAAAAQMAAAACAQQDDAAAAAABAQEGAwAAAAIBAAsjAAAAAg0AAAAACAAAAAEDAAAAAgEEAwwAAAAAAQEBBgMAAAACAQALFgAAAAERAAAABQwAAAAABgMAAAACAQEBAQQLOQAAAAERAAAAAAwAAAAABgMAAAACAQEBAQYCDQAAAAAIAAAAAQMAAAACAQQDDAAAAAABAQEGAwAAAAIBAAs1AAAAASIAAAAADAAAAAAGAwAAAAIBAQEBBgUMAAAAAAYDAAAAAgEBAQEGAwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMQA2AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMQA2AACQAgAAAWkBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFmsxMZiYzw78LHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFmsxMZiYzw78LIwAAAAINAAAAAAgAAAABAwAAAAIBAQMMAAAAAAEBAQYDAAAAAgEACyMAAAACDQAAAAAIAAAAAQMAAAACAQEDDAAAAAABAQEGAwAAAAIBAAsWAAAAAREAAAAFDAAAAAAGAwAAAAIBAQEBBAs5AAAAAREAAAAADAAAAAAGAwAAAAIBAQEBBgINAAAAAAgAAAABAwAAAAIBAQMMAAAAAAEBAQYDAAAAAgEAC3kAAAABZgAAAAAMAAAAAAYDAAAAAgEBAQEGAgwAAAAABgMAAAACAQEBAQ0DDAAAAAAGAwAAAAIBAQEBDQQMAAAAAAYDAAAAAgEBAQENBQwAAAAABgMAAAACAQEBAQYGDAAAAAAGAwAAAAIBAQEBDQMJAAAAAQYDAAAAAgEBAh0BAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACygAAAAPFAAAAACQAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADEANQABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSoAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABNAGUAZABpAHUAbQAgADEANQAAiwIAAAFkAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQkDBZrMTGYmM+M/CxwAAAACFwAAAAASAAAAAQ0AAAACAQkDBZrMTGYmM+M/CyMAAAACDQAAAAAIAAAAAQMAAAACAQkDDAAAAAABAQEGAwAAAAIBAAsjAAAAAg0AAAAACAAAAAEDAAAAAgEJAwwAAAAAAQEBBgMAAAACAQALOQAAAAERAAAABQwAAAAABgMAAAACAQABAQwCDQAAAAAIAAAAAQMAAAACAQkDDAAAAAABAQEGAwAAAAIBAAs5AAAAAREAAAAADAAAAAAGAwAAAAIBAAEBDAINAAAAAAgAAAABAwAAAAIBCQMMAAAAAAEBAQYDAAAAAgEAC1EAAAABIgAAAAMMAAAAAAYDAAAAAgEAAQENBgwAAAAABgMAAAACAQABAQ0CFwAAAAASAAAAAQ0AAAACAQkDBc1l5jJzmek/AwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMQA0AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMQA0AACLAgAAAWQBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBCAMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBCAMFmsxMZiYz4z8LIwAAAAINAAAAAAgAAAABAwAAAAIBCAMMAAAAAAEBAQYDAAAAAgEACyMAAAACDQAAAAAIAAAAAQMAAAACAQgDDAAAAAABAQEGAwAAAAIBAAs5AAAAAREAAAAFDAAAAAAGAwAAAAIBAAEBDAINAAAAAAgAAAABAwAAAAIBCAMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAAMAAAAAAYDAAAAAgEAAQEMAg0AAAAACAAAAAEDAAAAAgEIAwwAAAAAAQEBBgMAAAACAQALUQAAAAEiAAAAAwwAAAAABgMAAAACAQABAQ0GDAAAAAAGAwAAAAIBAAEBDQIXAAAAABIAAAABDQAAAAIBCAMFzWXmMnOZ6T8DCQAAAAEGAwAAAAIBAQIdAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsoAAAADxQAAAAAkAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQAxADMAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUqAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATQBlAGQAaQB1AG0AIAAxADMAAIsCAAABZAEAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEHAwWazExmJjPjPwscAAAAAhcAAAAAEgAAAAENAAAAAgEHAwWazExmJjPjPwsjAAAAAg0AAAAACAAAAAEDAAAAAgEHAwwAAAAAAQEBBgMAAAACAQALIwAAAAINAAAAAAgAAAABAwAAAAIBBwMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAUMAAAAAAYDAAAAAgEAAQEMAg0AAAAACAAAAAEDAAAAAgEHAwwAAAAAAQEBBgMAAAACAQALOQAAAAERAAAAAAwAAAAABgMAAAACAQABAQwCDQAAAAAIAAAAAQMAAAACAQcDDAAAAAABAQEGAwAAAAIBAAtRAAAAASIAAAADDAAAAAAGAwAAAAIBAAEBDQYMAAAAAAYDAAAAAgEAAQENAhcAAAAAEgAAAAENAAAAAgEHAwXNZeYyc5npPwMJAAAAAQYDAAAAAgEBAh0BAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACygAAAAPFAAAAACQAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADEAMgABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSoAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABNAGUAZABpAHUAbQAgADEAMgAAiwIAAAFkAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQYDBZrMTGYmM+M/CxwAAAACFwAAAAASAAAAAQ0AAAACAQYDBZrMTGYmM+M/CyMAAAACDQAAAAAIAAAAAQMAAAACAQYDDAAAAAABAQEGAwAAAAIBAAsjAAAAAg0AAAAACAAAAAEDAAAAAgEGAwwAAAAAAQEBBgMAAAACAQALOQAAAAERAAAABQwAAAAABgMAAAACAQABAQwCDQAAAAAIAAAAAQMAAAACAQYDDAAAAAABAQEGAwAAAAIBAAs5AAAAAREAAAAADAAAAAAGAwAAAAIBAAEBDAINAAAAAAgAAAABAwAAAAIBBgMMAAAAAAEBAQYDAAAAAgEAC1EAAAABIgAAAAMMAAAAAAYDAAAAAgEAAQENBgwAAAAABgMAAAACAQABAQ0CFwAAAAASAAAAAQ0AAAACAQYDBc1l5jJzmek/AwkAAAABBgMAAAACAQECHQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALKAAAAA8UAAAAAJAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AMQAxAAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMQAxAACLAgAAAWQBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBQMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBBQMFmsxMZiYz4z8LIwAAAAINAAAAAAgAAAABAwAAAAIBBQMMAAAAAAEBAQYDAAAAAgEACyMAAAACDQAAAAAIAAAAAQMAAAACAQUDDAAAAAABAQEGAwAAAAIBAAs5AAAAAREAAAAFDAAAAAAGAwAAAAIBAAEBDAINAAAAAAgAAAABAwAAAAIBBQMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAAMAAAAAAYDAAAAAgEAAQEMAg0AAAAACAAAAAEDAAAAAgEFAwwAAAAAAQEBBgMAAAACAQALUQAAAAEiAAAAAwwAAAAABgMAAAACAQABAQ0GDAAAAAAGAwAAAAIBAAEBDQIXAAAAABIAAAABDQAAAAIBBQMFzWXmMnOZ6T8DCQAAAAEGAwAAAAIBAQIdAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsoAAAADxQAAAAAkAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQAxADAAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUqAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATQBlAGQAaQB1AG0AIAAxADAAAIcCAAABZAEAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEEAwWazExmJjPjPwscAAAAAhcAAAAAEgAAAAENAAAAAgEEAwWazExmJjPjPwsjAAAAAg0AAAAACAAAAAEDAAAAAgEEAwwAAAAAAQEBBgMAAAACAQALIwAAAAINAAAAAAgAAAABAwAAAAIBBAMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAUMAAAAAAYDAAAAAgEAAQEMAg0AAAAACAAAAAEDAAAAAgEEAwwAAAAAAQEBBgMAAAACAQALOQAAAAERAAAAAAwAAAAABgMAAAACAQABAQwCDQAAAAAIAAAAAQMAAAACAQQDDAAAAAABAQEGAwAAAAIBAAtRAAAAASIAAAADDAAAAAAGAwAAAAIBAAEBDQYMAAAAAAYDAAAAAgEAAQENAhcAAAAAEgAAAAENAAAAAgEEAwXNZeYyc5npPwMJAAAAAQYDAAAAAgEBAhkBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACxgAAAAPBAAAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUoAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATQBlAGQAaQB1AG0AIAA5AACHAgAAAWQBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFs5hZzCxm1r8LHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFs5hZzCxm1r8LIwAAAAINAAAAAAgAAAABAwAAAAIBAQMMAAAAAAEBAQYDAAAAAgEACyMAAAACDQAAAAAIAAAAAQMAAAACAQEDDAAAAAABAQEGAwAAAAIBAAs5AAAAAREAAAAFDAAAAAAGAwAAAAIBAAEBDAINAAAAAAgAAAABAwAAAAIBAQMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAAMAAAAAAYDAAAAAgEAAQEMAg0AAAAACAAAAAEDAAAAAgEBAwwAAAAAAQEBBgMAAAACAQALUQAAAAEiAAAAAwwAAAAABgMAAAACAQABAQ0GDAAAAAAGAwAAAAIBAAEBDQIXAAAAABIAAAABDQAAAAIBAAMFmsxMZiYzw78DCQAAAAEGAwAAAAIBAQIZAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsYAAAADwQAAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA4AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKAAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAOAAAhAIAAAFhAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQkDBc1l5jJzmek/CxwAAAACFwAAAAASAAAAAQ0AAAACAQkDBc1l5jJzmek/CxEAAAADDAAAAAABAQEGAwAAAAIBAQsRAAAAAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAABQwAAAAABgMAAAACAQkBAQQDDAAAAAABAQEGAwAAAAIBAQsjAAAAAg0AAAAACAAAAAEDAAAAAgEJAwwAAAAAAQEBBgMAAAACAQALmgAAAAGHAAAAABYAAAAABg0AAAACAQkDBc1kZjIzmdk/AQENAhYAAAAABg0AAAACAQkDBc1kZjIzmdk/AQENAxYAAAAABg0AAAACAQkDBc1kZjIzmdk/AQENBBYAAAAABg0AAAACAQkDBc1kZjIzmdk/AQENBRYAAAAABg0AAAACAQkDBc1kZjIzmdk/AQENAwkAAAABBgMAAAACAQECGQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALGAAAAA8EAAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0ANwABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSgAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABNAGUAZABpAHUAbQAgADcAAIQCAAABYQEAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEIAwXNZeYyc5npPwscAAAAAhcAAAAAEgAAAAENAAAAAgEIAwXNZeYyc5npPwsRAAAAAwwAAAAAAQEBBgMAAAACAQELEQAAAAMMAAAAAAEBAQYDAAAAAgEBCycAAAABEQAAAAUMAAAAAAYDAAAAAgEIAQEEAwwAAAAAAQEBBgMAAAACAQELIwAAAAINAAAAAAgAAAABAwAAAAIBCAMMAAAAAAEBAQYDAAAAAgEAC5oAAAABhwAAAAAWAAAAAAYNAAAAAgEIAwXNZGYyM5nZPwEBDQIWAAAAAAYNAAAAAgEIAwXNZGYyM5nZPwEBDQMWAAAAAAYNAAAAAgEIAwXNZGYyM5nZPwEBDQQWAAAAAAYNAAAAAgEIAwXNZGYyM5nZPwEBDQUWAAAAAAYNAAAAAgEIAwXNZGYyM5nZPwEBDQMJAAAAAQYDAAAAAgEBAhkBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACxgAAAAPBAAAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADYAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUoAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATQBlAGQAaQB1AG0AIAA2AACEAgAAAWEBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBwMFzWXmMnOZ6T8LHAAAAAIXAAAAABIAAAABDQAAAAIBBwMFzWXmMnOZ6T8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBBwEBBAMMAAAAAAEBAQYDAAAAAgEBCyMAAAACDQAAAAAIAAAAAQMAAAACAQcDDAAAAAABAQEGAwAAAAIBAAuaAAAAAYcAAAAAFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0CFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0DFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0EFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0FFgAAAAAGDQAAAAIBBwMFzWRmMjOZ2T8BAQ0DCQAAAAEGAwAAAAIBAQIZAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsYAAAADwQAAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA1AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKAAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAANQAAhAIAAAFhAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQYDBc1l5jJzmek/CxwAAAACFwAAAAASAAAAAQ0AAAACAQYDBc1l5jJzmek/CxEAAAADDAAAAAABAQEGAwAAAAIBAQsRAAAAAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAABQwAAAAABgMAAAACAQYBAQQDDAAAAAABAQEGAwAAAAIBAQsjAAAAAg0AAAAACAAAAAEDAAAAAgEGAwwAAAAAAQEBBgMAAAACAQALmgAAAAGHAAAAABYAAAAABg0AAAACAQYDBc1kZjIzmdk/AQENAhYAAAAABg0AAAACAQYDBc1kZjIzmdk/AQENAxYAAAAABg0AAAACAQYDBc1kZjIzmdk/AQENBBYAAAAABg0AAAACAQYDBc1kZjIzmdk/AQENBRYAAAAABg0AAAACAQYDBc1kZjIzmdk/AQENAwkAAAABBgMAAAACAQECGQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALGAAAAA8EAAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0ANAABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSgAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABNAGUAZABpAHUAbQAgADQAAIQCAAABYQEAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEFAwXNZeYyc5npPwscAAAAAhcAAAAAEgAAAAENAAAAAgEFAwXNZeYyc5npPwsRAAAAAwwAAAAAAQEBBgMAAAACAQELEQAAAAMMAAAAAAEBAQYDAAAAAgEBCycAAAABEQAAAAUMAAAAAAYDAAAAAgEFAQEEAwwAAAAAAQEBBgMAAAACAQELIwAAAAINAAAAAAgAAAABAwAAAAIBBQMMAAAAAAEBAQYDAAAAAgEAC5oAAAABhwAAAAAWAAAAAAYNAAAAAgEFAwXNZGYyM5nZPwEBDQIWAAAAAAYNAAAAAgEFAwXNZGYyM5nZPwEBDQMWAAAAAAYNAAAAAgEFAwXNZGYyM5nZPwEBDQQWAAAAAAYNAAAAAgEFAwXNZGYyM5nZPwEBDQUWAAAAAAYNAAAAAgEFAwXNZGYyM5nZPwEBDQMJAAAAAQYDAAAAAgEBAhkBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACxgAAAAPBAAAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADMAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUoAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATQBlAGQAaQB1AG0AIAAzAACEAgAAAWEBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBAMFzWXmMnOZ6T8LHAAAAAIXAAAAABIAAAABDQAAAAIBBAMFzWXmMnOZ6T8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBBAEBBAMMAAAAAAEBAQYDAAAAAgEBCyMAAAACDQAAAAAIAAAAAQMAAAACAQQDDAAAAAABAQEGAwAAAAIBAAuaAAAAAYcAAAAAFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0CFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0DFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0EFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0FFgAAAAAGDQAAAAIBBAMFzWRmMjOZ2T8BAQ0DCQAAAAEGAwAAAAIBAQIZAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsYAAAADwQAAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQAyAAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKAAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAE0AZQBkAGkAdQBtACAAMgAAUgIAAAEvAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQADBZrMTGYmM8O/CxwAAAACFwAAAAASAAAAAQ0AAAACAQADBZrMTGYmM8O/CxEAAAADDAAAAAABAQEGAwAAAAIBAQsRAAAAAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAABQwAAAAABgMAAAACAQEBAQQDDAAAAAABAQEGAwAAAAIBAQsjAAAAAg0AAAAACAAAAAEDAAAAAgEBAwwAAAAAAQEBBgMAAAACAQALaAAAAAFVAAAAAAwAAAAABgMAAAACAQEBAQ0CDAAAAAAGAwAAAAIBAQEBDQMMAAAAAAYDAAAAAgEBAQENBAwAAAAABgMAAAACAQEBAQ0FDAAAAAAGAwAAAAIBAQEBDQMJAAAAAQYDAAAAAgEBAhkBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACxgAAAAPBAAAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADEAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUoAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATQBlAGQAaQB1AG0AIAAxAABnAgAAAUQBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBCQMFzWXmMnOZ6T8LHAAAAAIXAAAAABIAAAABDQAAAAIBCQMFzWXmMnOZ6T8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBCQEBBAMMAAAAAAEBAQYDAAAAAgEBCycAAAABEQAAAAAMAAAAAAYDAAAAAgEJAQEGAwwAAAAAAQEBBgMAAAACAQELeQAAAAFmAAAAAAwAAAAABgMAAAACAQkBAQ0CDAAAAAAGAwAAAAIBCQEBDQMMAAAAAAYDAAAAAgEJAQENBAwAAAAABgMAAAACAQkBAQ0FDAAAAAAGAwAAAAIBCQEBDQYMAAAAAAYDAAAAAgEJAQENAwkAAAABBgMAAAACAQECGQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALGAAAAA8EAAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATABpAGcAaAB0ADIAMQABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSgAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABMAGkAZwBoAHQAIAAyADEAAGcCAAABRAEAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEIAwXNZeYyc5npPwscAAAAAhcAAAAAEgAAAAENAAAAAgEIAwXNZeYyc5npPwsRAAAAAwwAAAAAAQEBBgMAAAACAQELEQAAAAMMAAAAAAEBAQYDAAAAAgEBCycAAAABEQAAAAUMAAAAAAYDAAAAAgEIAQEEAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAAAAwAAAAABgMAAAACAQgBAQYDDAAAAAABAQEGAwAAAAIBAQt5AAAAAWYAAAAADAAAAAAGAwAAAAIBCAEBDQIMAAAAAAYDAAAAAgEIAQENAwwAAAAABgMAAAACAQgBAQ0EDAAAAAAGAwAAAAIBCAEBDQUMAAAAAAYDAAAAAgEIAQENBgwAAAAABgMAAAACAQgBAQ0DCQAAAAEGAwAAAAIBAQIZAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsYAAAADwQAAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBMAGkAZwBoAHQAMgAwAAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKAAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAEwAaQBnAGgAdAAgADIAMAAAZwIAAAFEAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQcDBc1l5jJzmek/CxwAAAACFwAAAAASAAAAAQ0AAAACAQcDBc1l5jJzmek/CxEAAAADDAAAAAABAQEGAwAAAAIBAQsRAAAAAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAABQwAAAAABgMAAAACAQcBAQQDDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAADAAAAAAGAwAAAAIBBwEBBgMMAAAAAAEBAQYDAAAAAgEBC3kAAAABZgAAAAAMAAAAAAYDAAAAAgEHAQENAgwAAAAABgMAAAACAQcBAQ0DDAAAAAAGAwAAAAIBBwEBDQQMAAAAAAYDAAAAAgEHAQENBQwAAAAABgMAAAACAQcBAQ0GDAAAAAAGAwAAAAIBBwEBDQMJAAAAAQYDAAAAAgEBAhkBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACxgAAAAPBAAAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAEwAaQBnAGgAdAAxADkAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUoAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATABpAGcAaAB0ACAAMQA5AABnAgAAAUQBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBgMFzWXmMnOZ6T8LHAAAAAIXAAAAABIAAAABDQAAAAIBBgMFzWXmMnOZ6T8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBBgEBBAMMAAAAAAEBAQYDAAAAAgEBCycAAAABEQAAAAAMAAAAAAYDAAAAAgEGAQEGAwwAAAAAAQEBBgMAAAACAQELeQAAAAFmAAAAAAwAAAAABgMAAAACAQYBAQ0CDAAAAAAGAwAAAAIBBgEBDQMMAAAAAAYDAAAAAgEGAQENBAwAAAAABgMAAAACAQYBAQ0FDAAAAAAGAwAAAAIBBgEBDQYMAAAAAAYDAAAAAgEGAQENAwkAAAABBgMAAAACAQECGQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALGAAAAA8EAAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATABpAGcAaAB0ADEAOAABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSgAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABMAGkAZwBoAHQAIAAxADgAAGcCAAABRAEAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEFAwXNZeYyc5npPwscAAAAAhcAAAAAEgAAAAENAAAAAgEFAwXNZeYyc5npPwsRAAAAAwwAAAAAAQEBBgMAAAACAQELEQAAAAMMAAAAAAEBAQYDAAAAAgEBCycAAAABEQAAAAUMAAAAAAYDAAAAAgEFAQEEAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAAAAwAAAAABgMAAAACAQUBAQYDDAAAAAABAQEGAwAAAAIBAQt5AAAAAWYAAAAADAAAAAAGAwAAAAIBBQEBDQIMAAAAAAYDAAAAAgEFAQENAwwAAAAABgMAAAACAQUBAQ0EDAAAAAAGAwAAAAIBBQEBDQUMAAAAAAYDAAAAAgEFAQENBgwAAAAABgMAAAACAQUBAQ0DCQAAAAEGAwAAAAIBAQIZAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsYAAAADwQAAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA3AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFKAAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAEwAaQBnAGgAdAAgADEANwAAZwIAAAFEAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQQDBc1l5jJzmek/CxwAAAACFwAAAAASAAAAAQ0AAAACAQQDBc1l5jJzmek/CxEAAAADDAAAAAABAQEGAwAAAAIBAQsRAAAAAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAABQwAAAAABgMAAAACAQQBAQQDDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAADAAAAAAGAwAAAAIBBAEBBgMMAAAAAAEBAQYDAAAAAgEBC3kAAAABZgAAAAAMAAAAAAYDAAAAAgEEAQENAgwAAAAABgMAAAACAQQBAQ0DDAAAAAAGAwAAAAIBBAEBDQQMAAAAAAYDAAAAAgEEAQENBQwAAAAABgMAAAACAQQBAQ0GDAAAAAAGAwAAAAIBBAEBDQMJAAAAAQYDAAAAAgEBAhkBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACxgAAAAPBAAAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUoAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATABpAGcAaAB0ACAAMQA2AABnAgAAAUQBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFmsxMZiYzw78LHAAAAAIXAAAAABIAAAABDQAAAAIBAAMFmsxMZiYzw78LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBAQEBBAMMAAAAAAEBAQYDAAAAAgEBCycAAAABEQAAAAAMAAAAAAYDAAAAAgEBAQEGAwwAAAAAAQEBBgMAAAACAQELeQAAAAFmAAAAAAwAAAAABgMAAAACAQEBAQ0CDAAAAAAGAwAAAAIBAQEBDQMMAAAAAAYDAAAAAgEBAQENBAwAAAAABgMAAAACAQEBAQ0FDAAAAAAGAwAAAAIBAQEBDQYMAAAAAAYDAAAAAgEBAQENAwkAAAABBgMAAAACAQECGQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALGAAAAA8EAAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATABpAGcAaAB0ADEANQABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSgAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABMAGkAZwBoAHQAIAAxADUAAIcCAAABSAEAAAsWAAAAAREAAAAEDAAAAAAGAwAAAAIBCQEBDQsWAAAAAREAAAAEDAAAAAAGAwAAAAIBCQEBDQsWAAAAAREAAAAFDAAAAAAGAwAAAAIBCQEBDQsWAAAAAREAAAAFDAAAAAAGAwAAAAIBCQEBDQsRAAAAAwwAAAAAAQEBBgMAAAACAQELEQAAAAMMAAAAAAEBAQYDAAAAAgEBCycAAAABEQAAAAUMAAAAAAYDAAAAAgEJAQEEAwwAAAAAAQEBBgMAAAACAQELIwAAAAINAAAAAAgAAAABAwAAAAIBCQMMAAAAAAEBAQYDAAAAAgEAC1cAAAABRAAAAAAMAAAAAAYDAAAAAgEJAQENAgwAAAAABgMAAAACAQkBAQ0EDAAAAAAGAwAAAAIBCQEBDQUMAAAAAAYDAAAAAgEJAQENAwkAAAABBgMAAAACAQECNQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALiAAAAA90AAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATABpAGcAaAB0ADEANAABAQAAAAADfgAAAAQJAAAAAgEbAAQJAAAABAkAAAACAQoABAgAAAAECQAAAAIBGgAEBwAAAAQJAAAAAgEBAAQGAAAABAkAAAACAQsABAUAAAAECQAAAAIBBQAEBAAAAAQJAAAAAgESAAQDAAAABAkAAAACAQIABAIAAAAECQAAAAIBEAAEAQAAAAUoAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATABpAGcAaAB0ACAAMQA0AACHAgAAAUgBAAALFgAAAAERAAAABAwAAAAABgMAAAACAQgBAQ0LFgAAAAERAAAABAwAAAAABgMAAAACAQgBAQ0LFgAAAAERAAAABQwAAAAABgMAAAACAQgBAQ0LFgAAAAERAAAABQwAAAAABgMAAAACAQgBAQ0LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBCAEBBAMMAAAAAAEBAQYDAAAAAgEBCyMAAAACDQAAAAAIAAAAAQMAAAACAQgDDAAAAAABAQEGAwAAAAIBAAtXAAAAAUQAAAAADAAAAAAGAwAAAAIBCAEBDQIMAAAAAAYDAAAAAgEIAQENBAwAAAAABgMAAAACAQgBAQ0FDAAAAAAGAwAAAAIBCAEBDQMJAAAAAQYDAAAAAgEBAjUBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgAC4gAAAAPdAAAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAEwAaQBnAGgAdAAxADMAAQEAAAAAA34AAAAECQAAAAIBGwAECQAAAAQJAAAAAgEKAAQIAAAABAkAAAACARoABAcAAAAECQAAAAIBAQAEBgAAAAQJAAAAAgELAAQFAAAABAkAAAACAQUABAQAAAAECQAAAAIBEgAEAwAAAAQJAAAAAgECAAQCAAAABAkAAAACARAABAEAAAAFKAAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAEwAaQBnAGgAdAAgADEAMwAAhwIAAAFIAQAACxYAAAABEQAAAAQMAAAAAAYDAAAAAgEHAQENCxYAAAABEQAAAAQMAAAAAAYDAAAAAgEHAQENCxYAAAABEQAAAAUMAAAAAAYDAAAAAgEHAQENCxYAAAABEQAAAAUMAAAAAAYDAAAAAgEHAQENCxEAAAADDAAAAAABAQEGAwAAAAIBAQsRAAAAAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAABQwAAAAABgMAAAACAQcBAQQDDAAAAAABAQEGAwAAAAIBAQsjAAAAAg0AAAAACAAAAAEDAAAAAgEHAwwAAAAAAQEBBgMAAAACAQALVwAAAAFEAAAAAAwAAAAABgMAAAACAQcBAQ0CDAAAAAAGAwAAAAIBBwEBDQQMAAAAAAYDAAAAAgEHAQENBQwAAAAABgMAAAACAQcBAQ0DCQAAAAEGAwAAAAIBAQI1AQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAuIAAAAD3QAAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBMAGkAZwBoAHQAMQAyAAEBAAAAAAN+AAAABAkAAAACARsABAkAAAAECQAAAAIBCgAECAAAAAQJAAAAAgEaAAQHAAAABAkAAAACAQEABAYAAAAECQAAAAIBCwAEBQAAAAQJAAAAAgEFAAQEAAAABAkAAAACARIABAMAAAAECQAAAAIBAgAEAgAAAAQJAAAAAgEQAAQBAAAABSgAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABMAGkAZwBoAHQAIAAxADIAAIcCAAABSAEAAAsWAAAAAREAAAAEDAAAAAAGAwAAAAIBBgEBDQsWAAAAAREAAAAEDAAAAAAGAwAAAAIBBgEBDQsWAAAAAREAAAAFDAAAAAAGAwAAAAIBBgEBDQsWAAAAAREAAAAFDAAAAAAGAwAAAAIBBgEBDQsRAAAAAwwAAAAAAQEBBgMAAAACAQELEQAAAAMMAAAAAAEBAQYDAAAAAgEBCycAAAABEQAAAAUMAAAAAAYDAAAAAgEGAQEEAwwAAAAAAQEBBgMAAAACAQELIwAAAAINAAAAAAgAAAABAwAAAAIBBgMMAAAAAAEBAQYDAAAAAgEAC1cAAAABRAAAAAAMAAAAAAYDAAAAAgEGAQENAgwAAAAABgMAAAACAQYBAQ0EDAAAAAAGAwAAAAIBBgEBDQUMAAAAAAYDAAAAAgEGAQENAwkAAAABBgMAAAACAQECNQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALiAAAAA90AAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATABpAGcAaAB0ADEAMQABAQAAAAADfgAAAAQJAAAAAgEbAAQJAAAABAkAAAACAQoABAgAAAAECQAAAAIBGgAEBwAAAAQJAAAAAgEBAAQGAAAABAkAAAACAQsABAUAAAAECQAAAAIBBQAEBAAAAAQJAAAAAgESAAQDAAAABAkAAAACAQIABAIAAAAECQAAAAIBEAAEAQAAAAUoAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATABpAGcAaAB0ACAAMQAxAACHAgAAAUgBAAALFgAAAAERAAAABAwAAAAABgMAAAACAQUBAQ0LFgAAAAERAAAABAwAAAAABgMAAAACAQUBAQ0LFgAAAAERAAAABQwAAAAABgMAAAACAQUBAQ0LFgAAAAERAAAABQwAAAAABgMAAAACAQUBAQ0LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBBQEBBAMMAAAAAAEBAQYDAAAAAgEBCyMAAAACDQAAAAAIAAAAAQMAAAACAQUDDAAAAAABAQEGAwAAAAIBAAtXAAAAAUQAAAAADAAAAAAGAwAAAAIBBQEBDQIMAAAAAAYDAAAAAgEFAQENBAwAAAAABgMAAAACAQUBAQ0FDAAAAAAGAwAAAAIBBQEBDQMJAAAAAQYDAAAAAgEBAjUBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgAC4gAAAAPdAAAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAEwAaQBnAGgAdAAxADAAAQEAAAAAA34AAAAECQAAAAIBGwAECQAAAAQJAAAAAgEKAAQIAAAABAkAAAACARoABAcAAAAECQAAAAIBAQAEBgAAAAQJAAAAAgELAAQFAAAABAkAAAACAQUABAQAAAAECQAAAAIBEgAEAwAAAAQJAAAAAgECAAQCAAAABAkAAAACARAABAEAAAAFKAAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAEwAaQBnAGgAdAAgADEAMAAAgwIAAAFIAQAACxYAAAABEQAAAAQMAAAAAAYDAAAAAgEEAQENCxYAAAABEQAAAAQMAAAAAAYDAAAAAgEEAQENCxYAAAABEQAAAAUMAAAAAAYDAAAAAgEEAQENCxYAAAABEQAAAAUMAAAAAAYDAAAAAgEEAQENCxEAAAADDAAAAAABAQEGAwAAAAIBAQsRAAAAAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAABQwAAAAABgMAAAACAQQBAQQDDAAAAAABAQEGAwAAAAIBAQsjAAAAAg0AAAAACAAAAAEDAAAAAgEEAwwAAAAAAQEBBgMAAAACAQALVwAAAAFEAAAAAAwAAAAABgMAAAACAQQBAQ0CDAAAAAAGAwAAAAIBBAEBDQQMAAAAAAYDAAAAAgEEAQENBQwAAAAABgMAAAACAQQBAQ0DCQAAAAEGAwAAAAIBAQIxAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAt4AAAAD2QAAAAAgAAAAVABhAGIAbABlAFMAdAB5AGwAZQBMAGkAZwBoAHQAOQABAQAAAAADfgAAAAQJAAAAAgEbAAQJAAAABAkAAAACAQoABAgAAAAECQAAAAIBGgAEBwAAAAQJAAAAAgEBAAQGAAAABAkAAAACAQsABAUAAAAECQAAAAIBBQAEBAAAAAQJAAAAAgESAAQDAAAABAkAAAACAQIABAIAAAAECQAAAAIBEAAEAQAAAAUmAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATABpAGcAaAB0ACAAOQAAgwIAAAFIAQAACxYAAAABEQAAAAQMAAAAAAYDAAAAAgEBAQENCxYAAAABEQAAAAQMAAAAAAYDAAAAAgEBAQENCxYAAAABEQAAAAUMAAAAAAYDAAAAAgEBAQENCxYAAAABEQAAAAUMAAAAAAYDAAAAAgEBAQENCxEAAAADDAAAAAABAQEGAwAAAAIBAQsRAAAAAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAABQwAAAAABgMAAAACAQEBAQQDDAAAAAABAQEGAwAAAAIBAQsjAAAAAg0AAAAACAAAAAEDAAAAAgEBAwwAAAAAAQEBBgMAAAACAQALVwAAAAFEAAAAAAwAAAAABgMAAAACAQEBAQ0CDAAAAAAGAwAAAAIBAQEBDQQMAAAAAAYDAAAAAgEBAQENBQwAAAAABgMAAAACAQEBAQ0DCQAAAAEGAwAAAAIBAQIxAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAt4AAAAD2QAAAAAgAAAAVABhAGIAbABlAFMAdAB5AGwAZQBMAGkAZwBoAHQAOAABAQAAAAADfgAAAAQJAAAAAgEbAAQJAAAABAkAAAACAQoABAgAAAAECQAAAAIBGgAEBwAAAAQJAAAAAgEBAAQGAAAABAkAAAACAQsABAUAAAAECQAAAAIBBQAEBAAAAAQJAAAAAgESAAQDAAAABAkAAAACAQIABAIAAAAECQAAAAIBEAAEAQAAAAUmAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATABpAGcAaAB0ACAAOAAAUQIAAAEyAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQkDBc1l5jJzmek/CxwAAAACFwAAAAASAAAAAQ0AAAACAQkDBc1l5jJzmek/CxsAAAADFgAAAAABAQEGDQAAAAIBCQMFAP1//j//z78LGwAAAAMWAAAAAAEBAQYNAAAAAgEJAwUA/X/+P//PvwsxAAAAAREAAAAFDAAAAAAGAwAAAAIBCQEBDQMWAAAAAAEBAQYNAAAAAgEJAwUA/X/+P//PvwsxAAAAAREAAAAADAAAAAAGAwAAAAIBCQEBDQMWAAAAAAEBAQYNAAAAAgEJAwUA/X/+P//Pvws/AAAAASIAAAAADAAAAAAGAwAAAAIBCQEBDQUMAAAAAAYDAAAAAgEJAQENAxMAAAABBg0AAAACAQkDBQD9f/4//8+/AhUBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACwgAAAAO9AAAAACAAAABUAGEAYgBsAGUAUwB0AHkAbABlAEwAaQBnAGgAdAA3AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFJgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAEwAaQBnAGgAdAAgADcAAFECAAABMgEAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEIAwXNZeYyc5npPwscAAAAAhcAAAAAEgAAAAENAAAAAgEIAwXNZeYyc5npPwsbAAAAAxYAAAAAAQEBBg0AAAACAQgDBQD9f/4//8+/CxsAAAADFgAAAAABAQEGDQAAAAIBCAMFAP1//j//z78LMQAAAAERAAAABQwAAAAABgMAAAACAQgBAQ0DFgAAAAABAQEGDQAAAAIBCAMFAP1//j//z78LMQAAAAERAAAAAAwAAAAABgMAAAACAQgBAQ0DFgAAAAABAQEGDQAAAAIBCAMFAP1//j//z78LPwAAAAEiAAAAAAwAAAAABgMAAAACAQgBAQ0FDAAAAAAGAwAAAAIBCAEBDQMTAAAAAQYNAAAAAgEIAwUA/X/+P//PvwIVAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsIAAAADvQAAAAAgAAAAVABhAGIAbABlAFMAdAB5AGwAZQBMAGkAZwBoAHQANgABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSYAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABMAGkAZwBoAHQAIAA2AABRAgAAATIBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBwMFzWXmMnOZ6T8LHAAAAAIXAAAAABIAAAABDQAAAAIBBwMFzWXmMnOZ6T8LGwAAAAMWAAAAAAEBAQYNAAAAAgEHAwUA/X/+P//PvwsbAAAAAxYAAAAAAQEBBg0AAAACAQcDBQD9f/4//8+/CzEAAAABEQAAAAUMAAAAAAYDAAAAAgEHAQENAxYAAAAAAQEBBg0AAAACAQcDBQD9f/4//8+/CzEAAAABEQAAAAAMAAAAAAYDAAAAAgEHAQENAxYAAAAAAQEBBg0AAAACAQcDBQD9f/4//8+/Cz8AAAABIgAAAAAMAAAAAAYDAAAAAgEHAQENBQwAAAAABgMAAAACAQcBAQ0DEwAAAAEGDQAAAAIBBwMFAP1//j//z78CFQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALCAAAAA70AAAAAIAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATABpAGcAaAB0ADUAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUmAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATABpAGcAaAB0ACAANQAAUQIAAAEyAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQYDBc1l5jJzmek/CxwAAAACFwAAAAASAAAAAQ0AAAACAQYDBc1l5jJzmek/CxsAAAADFgAAAAABAQEGDQAAAAIBBgMFAP1//j//z78LGwAAAAMWAAAAAAEBAQYNAAAAAgEGAwUA/X/+P//PvwsxAAAAAREAAAAFDAAAAAAGAwAAAAIBBgEBDQMWAAAAAAEBAQYNAAAAAgEGAwUA/X/+P//PvwsxAAAAAREAAAAADAAAAAAGAwAAAAIBBgEBDQMWAAAAAAEBAQYNAAAAAgEGAwUA/X/+P//Pvws/AAAAASIAAAAADAAAAAAGAwAAAAIBBgEBDQUMAAAAAAYDAAAAAgEGAQENAxMAAAABBg0AAAACAQYDBQD9f/4//8+/AhUBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACwgAAAAO9AAAAACAAAABUAGEAYgBsAGUAUwB0AHkAbABlAEwAaQBnAGgAdAA0AAEBAAAAAANiAAAABAkAAAACARsABAcAAAAECQAAAAIBCgAEBgAAAAQJAAAAAgEaAAQFAAAABAkAAAACAQEABAQAAAAECQAAAAIBCwAEAwAAAAQJAAAAAgEFAAQCAAAABAkAAAACAQIABAEAAAAFJgAAAFQAYQBiAGwAZQAgAFMAdAB5AGwAZQAgAEwAaQBnAGgAdAAgADQAAFECAAABMgEAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEFAwXNZeYyc5npPwscAAAAAhcAAAAAEgAAAAENAAAAAgEFAwXNZeYyc5npPwsbAAAAAxYAAAAAAQEBBg0AAAACAQUDBQD9f/4//8+/CxsAAAADFgAAAAABAQEGDQAAAAIBBQMFAP1//j//z78LMQAAAAERAAAABQwAAAAABgMAAAACAQUBAQ0DFgAAAAABAQEGDQAAAAIBBQMFAP1//j//z78LMQAAAAERAAAAAAwAAAAABgMAAAACAQUBAQ0DFgAAAAABAQEGDQAAAAIBBQMFAP1//j//z78LPwAAAAEiAAAAAAwAAAAABgMAAAACAQUBAQ0FDAAAAAAGAwAAAAIBBQEBDQMTAAAAAQYNAAAAAgEFAwUA/X/+P//PvwIVAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsIAAAADvQAAAAAgAAAAVABhAGIAbABlAFMAdAB5AGwAZQBMAGkAZwBoAHQAMwABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSYAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABMAGkAZwBoAHQAIAAzAABRAgAAATIBAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBAMFzWXmMnOZ6T8LHAAAAAIXAAAAABIAAAABDQAAAAIBBAMFzWXmMnOZ6T8LGwAAAAMWAAAAAAEBAQYNAAAAAgEEAwUA/X/+P//PvwsbAAAAAxYAAAAAAQEBBg0AAAACAQQDBQD9f/4//8+/CzEAAAABEQAAAAUMAAAAAAYDAAAAAgEEAQENAxYAAAAAAQEBBg0AAAACAQQDBQD9f/4//8+/CzEAAAABEQAAAAAMAAAAAAYDAAAAAgEEAQENAxYAAAAAAQEBBg0AAAACAQQDBQD9f/4//8+/Cz8AAAABIgAAAAAMAAAAAAYDAAAAAgEEAQENBQwAAAAABgMAAAACAQQBAQ0DEwAAAAEGDQAAAAIBBAMFAP1//j//z78CFQEAAAAiAAAAVABhAGIAbABlAFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AAEiAAAAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AALCAAAAA70AAAAAIAAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATABpAGcAaAB0ADIAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUmAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAATABpAGcAaAB0ACAAMgAAHwIAAAEAAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQADBZrMTGYmM8O/CxwAAAACFwAAAAASAAAAAQ0AAAACAQADBZrMTGYmM8O/CxEAAAADDAAAAAABAQEGAwAAAAIBAQsRAAAAAwwAAAAAAQEBBgMAAAACAQELJwAAAAERAAAABQwAAAAABgMAAAACAQEBAQ0DDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAADAAAAAAGAwAAAAIBAQEBDQMMAAAAAAEBAQYDAAAAAgEBCzUAAAABIgAAAAAMAAAAAAYDAAAAAgEBAQENBQwAAAAABgMAAAACAQEBAQ0DCQAAAAEGAwAAAAIBAQIVAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsIAAAADvQAAAAAgAAAAVABhAGIAbABlAFMAdAB5AGwAZQBMAGkAZwBoAHQAMQABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSYAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABMAGkAZwBoAHQAIAAxAAD/AQAAAeAAAAALHAAAAAIXAAAAABIAAAABDQAAAAIBCAMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBCAMFmsxMZiYz4z8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBAQEBBAMMAAAAAAEBAQYDAAAAAgEBCyAAAAACDQAAAAAIAAAAAQMAAAACAQkDCQAAAAEGAwAAAAIBAAscAAAAAhcAAAAAEgAAAAENAAAAAgEIAwXNZeYyc5npPwIVAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsIAAAADvQAAAAAgAAAAVABhAGIAbABlAFMAdAB5AGwAZQBEAGEAcgBrADEAMQABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSYAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABEAGEAcgBrACAAMQAxAAD/AQAAAeAAAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBgMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBBgMFmsxMZiYz4z8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBAQEBBAMMAAAAAAEBAQYDAAAAAgEBCyAAAAACDQAAAAAIAAAAAQMAAAACAQcDCQAAAAEGAwAAAAIBAAscAAAAAhcAAAAAEgAAAAENAAAAAgEGAwXNZeYyc5npPwIVAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAsIAAAADvQAAAAAgAAAAVABhAGIAbABlAFMAdAB5AGwAZQBEAGEAcgBrADEAMAABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSYAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABEAGEAcgBrACAAMQAwAAD7AQAAAeAAAAALHAAAAAIXAAAAABIAAAABDQAAAAIBBAMFmsxMZiYz4z8LHAAAAAIXAAAAABIAAAABDQAAAAIBBAMFmsxMZiYz4z8LEQAAAAMMAAAAAAEBAQYDAAAAAgEBCxEAAAADDAAAAAABAQEGAwAAAAIBAQsnAAAAAREAAAAFDAAAAAAGAwAAAAIBAQEBBAMMAAAAAAEBAQYDAAAAAgEBCyAAAAACDQAAAAAIAAAAAQMAAAACAQUDCQAAAAEGAwAAAAIBAAscAAAAAhcAAAAAEgAAAAENAAAAAgEEAwXNZeYyc5npPwIRAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAr4AAAADuQAAAAAeAAAAVABhAGIAbABlAFMAdAB5AGwAZQBEAGEAcgBrADkAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUkAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAARABhAHIAawAgADkAAPsBAAAB4AAAAAscAAAAAhcAAAAAEgAAAAENAAAAAgEAAwWzmFnMLGbWvwscAAAAAhcAAAAAEgAAAAENAAAAAgEAAwWzmFnMLGbWvwsRAAAAAwwAAAAAAQEBBgMAAAACAQELEQAAAAMMAAAAAAEBAQYDAAAAAgEBCycAAAABEQAAAAUMAAAAAAYDAAAAAgEBAQEEAwwAAAAAAQEBBgMAAAACAQELIAAAAAINAAAAAAgAAAABAwAAAAIBAQMJAAAAAQYDAAAAAgEACxwAAAACFwAAAAASAAAAAQ0AAAACAQADBZrMTGYmM8O/AhEBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACvgAAAAO5AAAAAB4AAABUAGEAYgBsAGUAUwB0AHkAbABlAEQAYQByAGsAOAABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSQAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABEAGEAcgBrACAAOAAAmAIAAAF9AQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQkDBQD9f/4//8+/CxwAAAACFwAAAAASAAAAAQ0AAAACAQkDBQD9f/4//8+/C0MAAAABEQAAAAQMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEJAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAIMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEJAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAUMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEJAwUA/3//v//fvwMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAAMAAAAAAYDAAAAAgEAAQEGAg0AAAAACAAAAAEDAAAAAgEBAwwAAAAAAQEBBgMAAAACAQALIAAAAAINAAAAAAgAAAABAwAAAAIBCQMJAAAAAQYDAAAAAgEAAhEBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACvgAAAAO5AAAAAB4AAABUAGEAYgBsAGUAUwB0AHkAbABlAEQAYQByAGsANwABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSQAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABEAGEAcgBrACAANwAAmAIAAAF9AQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQgDBQD9f/4//8+/CxwAAAACFwAAAAASAAAAAQ0AAAACAQgDBQD9f/4//8+/C0MAAAABEQAAAAQMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEIAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAIMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEIAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAUMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEIAwUA/3//v//fvwMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAAMAAAAAAYDAAAAAgEAAQEGAg0AAAAACAAAAAEDAAAAAgEBAwwAAAAAAQEBBgMAAAACAQALIAAAAAINAAAAAAgAAAABAwAAAAIBCAMJAAAAAQYDAAAAAgEAAhEBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACvgAAAAO5AAAAAB4AAABUAGEAYgBsAGUAUwB0AHkAbABlAEQAYQByAGsANgABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSQAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABEAGEAcgBrACAANgAAmAIAAAF9AQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQcDBQD9f/4//8+/CxwAAAACFwAAAAASAAAAAQ0AAAACAQcDBQD9f/4//8+/C0MAAAABEQAAAAQMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEHAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAIMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEHAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAUMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEHAwUA/3//v//fvwMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAAMAAAAAAYDAAAAAgEAAQEGAg0AAAAACAAAAAEDAAAAAgEBAwwAAAAAAQEBBgMAAAACAQALIAAAAAINAAAAAAgAAAABAwAAAAIBBwMJAAAAAQYDAAAAAgEAAhEBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACvgAAAAO5AAAAAB4AAABUAGEAYgBsAGUAUwB0AHkAbABlAEQAYQByAGsANQABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSQAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABEAGEAcgBrACAANQAAmAIAAAF9AQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQYDBQD9f/4//8+/CxwAAAACFwAAAAASAAAAAQ0AAAACAQYDBQD9f/4//8+/C0MAAAABEQAAAAQMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEGAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAIMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEGAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAUMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEGAwUA/3//v//fvwMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAAMAAAAAAYDAAAAAgEAAQEGAg0AAAAACAAAAAEDAAAAAgEBAwwAAAAAAQEBBgMAAAACAQALIAAAAAINAAAAAAgAAAABAwAAAAIBBgMJAAAAAQYDAAAAAgEAAhEBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACvgAAAAO5AAAAAB4AAABUAGEAYgBsAGUAUwB0AHkAbABlAEQAYQByAGsANAABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSQAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABEAGEAcgBrACAANAAAmAIAAAF9AQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQUDBQD9f/4//8+/CxwAAAACFwAAAAASAAAAAQ0AAAACAQUDBQD9f/4//8+/C0MAAAABEQAAAAQMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEFAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAIMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEFAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAUMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEFAwUA/3//v//fvwMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAAMAAAAAAYDAAAAAgEAAQEGAg0AAAAACAAAAAEDAAAAAgEBAwwAAAAAAQEBBgMAAAACAQALIAAAAAINAAAAAAgAAAABAwAAAAIBBQMJAAAAAQYDAAAAAgEAAhEBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACvgAAAAO5AAAAAB4AAABUAGEAYgBsAGUAUwB0AHkAbABlAEQAYQByAGsAMwABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSQAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABEAGEAcgBrACAAMwAAmAIAAAF9AQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQQDBQD9f/4//8+/CxwAAAACFwAAAAASAAAAAQ0AAAACAQQDBQD9f/4//8+/C0MAAAABEQAAAAQMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEEAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAIMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEEAwUA/X/+P//PvwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAUMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEEAwUA/3//v//fvwMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAAMAAAAAAYDAAAAAgEAAQEGAg0AAAAACAAAAAEDAAAAAgEBAwwAAAAAAQEBBgMAAAACAQALIAAAAAINAAAAAAgAAAABAwAAAAIBBAMJAAAAAQYDAAAAAgEAAhEBAAAAIgAAAFQAYQBiAGwAZQBTAHQAeQBsAGUATQBlAGQAaQB1AG0AOQABIgAAAFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEANgACvgAAAAO5AAAAAB4AAABUAGEAYgBsAGUAUwB0AHkAbABlAEQAYQByAGsAMgABAQAAAAADYgAAAAQJAAAAAgEbAAQHAAAABAkAAAACAQoABAYAAAAECQAAAAIBGgAEBQAAAAQJAAAAAgEBAAQEAAAABAkAAAACAQsABAMAAAAECQAAAAIBBQAEAgAAAAQJAAAAAgECAAQBAAAABSQAAABUAGEAYgBsAGUAIABTAHQAeQBsAGUAIABEAGEAcgBrACAAMgAAogIAAAGHAQAACxwAAAACFwAAAAASAAAAAQ0AAAACAQEDBQD9f/4//88/CxwAAAACFwAAAAASAAAAAQ0AAAACAQEDBQD9f/4//88/C0MAAAABEQAAAAQMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEBAwUA/X/+P//PPwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAIMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEBAwUA/X/+P//PPwMMAAAAAAEBAQYDAAAAAgEAC0MAAAABEQAAAAUMAAAAAAYDAAAAAgEAAQEGAhcAAAAAEgAAAAENAAAAAgEBAwWazExmJjPDPwMMAAAAAAEBAQYDAAAAAgEACzkAAAABEQAAAAAMAAAAAAYDAAAAAgEAAQEGAg0AAAAACAAAAAEDAAAAAgEBAwwAAAAAAQEBBgMAAAACAQALKgAAAAIXAAAAABIAAAABDQAAAAIBAQMF5jJzmbnM3D8DCQAAAAEGAwAAAAIBAAIRAQAAACIAAABUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADkAASIAAABQAGkAdgBvAHQAUwB0AHkAbABlAEwAaQBnAGgAdAAxADYAAr4AAAADuQAAAAAeAAAAVABhAGIAbABlAFMAdAB5AGwAZQBEAGEAcgBrADEAAQEAAAAAA2IAAAAECQAAAAIBGwAEBwAAAAQJAAAAAgEKAAQGAAAABAkAAAACARoABAUAAAAECQAAAAIBAQAEBAAAAAQJAAAAAgELAAQDAAAABAkAAAACAQUABAIAAAAECQAAAAIBAgAEAQAAAAUkAAAAVABhAGIAbABlACAAUwB0AHkAbABlACAARABhAHIAawAgADEA";
var dstLen = sStyles.length;
var pointer = g_memory.Alloc(dstLen);
var stream = new FT_Stream2(pointer.data, dstLen);
stream.obj = pointer.obj;
var bcr = new Binary_CommonReader(stream);
var oBinaryFileReader = new BinaryFileReader("");
oBinaryFileReader.getbase64DecodedData2(sStyles, 0, stream, 0);
var oBinary_StylesTableReader = new Binary_StylesTableReader(stream, wb, [], []);
var fReadStyle = function (type, length, oTableStyles, oOutputName) {
var res = c_oSerConstants.ReadOk;
if (Types.Dxf == type) {
oOutputName.dxfs.push(null);
res = bcr.Read1(length, function (t, l) {
return oBinary_StylesTableReader.ReadDxfs(t, l, oOutputName.dxfs);
});
} else {
if (Types.tableStyles == type) {
res = bcr.Read1(length, function (t, l) {
return oBinary_StylesTableReader.ReadTableStyles(t, l, oTableStyles, oOutputName.customStyle);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
return res;
};
var fReadStyles = function (type, length, oOutput) {
var res = c_oSerConstants.ReadOk;
if (Types.Style == type) {
var oTableStyles = new CTableStyles();
var oOutputName = {
customStyle: {},
dxfs: []
};
res = bcr.Read1(length, function (t, l) {
return fReadStyle(t, l, oTableStyles, oOutputName);
});
for (var i in oOutputName.customStyle) {
var customStyle = oOutputName.customStyle[i];
var oNewStyle = customStyle.style;
oBinary_StylesTableReader.initTableStyle(oNewStyle, customStyle.elements, oOutputName.dxfs);
oOutput[oNewStyle.name] = oNewStyle;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
var length = stream.GetULongLE();
var res = bcr.Read1(length, function (t, l) {
return fReadStyles(t, l, oOutput);
});
}
function ReadDefCellStyles(wb, oOutput) {
var Types = {
Style: 0,
BuiltinId: 1,
Hidden: 2,
CellStyle: 3,
Xfs: 4,
Font: 5,
Fill: 6,
Border: 7,
NumFmts: 8
};
var sStyles = "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JkAGFwAAAAASAAAAAQ0AAAACAQkDBc1kZjIzmdk/BxkAAAAAAAAAAAEAAAAAAgAAAAAEAAAAAAUAAAAAAK8AAAABBAAAAB0AAAADHAAAAAQOAAAAQQBjAGMAZQBuAHQAMQAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABg0AAAAACAAAAAEDAAAAAgEEBxkAAAAAAAAAAAEAAAAAAgAAAAAEAAAAAAUAAAAAAK8AAAABBAAAACEAAAADHAAAAAQOAAAAQQBjAGMAZQBuAHQAMgAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABg0AAAAACAAAAAEDAAAAAgEFBxkAAAAAAAAAAAEAAAAAAgAAAAAEAAAAAAUAAAAAAKYAAAADHAAAAAQOAAAAQQBjAGMAZQBuAHQAMwAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABg0AAAAACAAAAAEDAAAAAgEGBxkAAAAAAAAAAAEAAAAAAgAAAAAEAAAAAAUAAAAAAK8AAAABBAAAACkAAAADHAAAAAQOAAAAQQBjAGMAZQBuAHQANAAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABg0AAAAACAAAAAEDAAAAAgEHBxkAAAAAAAAAAAEAAAAAAgAAAAAEAAAAAAUAAAAAAK8AAAABBAAAAC0AAAADHAAAAAQOAAAAQQBjAGMAZQBuAHQANQAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAA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";
var dstLen = sStyles.length;
var pointer = g_memory.Alloc(dstLen);
var stream = new FT_Stream2(pointer.data, dstLen);
stream.obj = pointer.obj;
var bcr = new Binary_CommonReader(stream);
var oBinaryFileReader = new BinaryFileReader("");
oBinaryFileReader.getbase64DecodedData2(sStyles, 0, stream, 0);
var oBinary_StylesTableReader = new Binary_StylesTableReader(stream, wb, [], []);
var length = stream.GetULongLE();
var fReadStyle = function (type, length, oCellStyle, oStyleObject) {
var res = c_oSerConstants.ReadOk;
if (Types.BuiltinId === type) {
oCellStyle.BuiltinId = stream.GetULongLE();
} else {
if (Types.Hidden === type) {
oCellStyle.Hidden = stream.GetBool();
} else {
if (Types.CellStyle === type) {
res = bcr.Read1(length, function (t, l) {
return oBinary_StylesTableReader.ReadCellStyle(t, l, oCellStyle);
});
} else {
if (Types.Xfs === type) {
oStyleObject.xfs = {
ApplyAlignment: null,
ApplyBorder: null,
ApplyFill: null,
ApplyFont: null,
ApplyNumberFormat: null,
BorderId: null,
FillId: null,
FontId: null,
NumFmtId: null,
QuotePrefix: null,
Aligment: null,
XfId: null
};
res = bcr.Read2Spreadsheet(length, function (t, l) {
return oBinary_StylesTableReader.ReadXfs(t, l, oStyleObject.xfs);
});
} else {
if (Types.Font === type) {
oStyleObject.font = new Font();
res = bcr.Read2Spreadsheet(length, function (t, l) {
return oBinary_StylesTableReader.bssr.ReadRPr(t, l, oStyleObject.font);
});
oBinary_StylesTableReader.bssr.CheckSchemeFont(oStyleObject.font);
} else {
if (Types.Fill === type) {
oStyleObject.fill = new Fill();
res = bcr.Read1(length, function (t, l) {
return oBinary_StylesTableReader.ReadFill(t, l, oStyleObject.fill);
});
} else {
if (Types.Border === type) {
oStyleObject.border = new Border();
res = bcr.Read1(length, function (t, l) {
return oBinary_StylesTableReader.ReadBorder(t, l, oStyleObject.border);
});
} else {
if (Types.NumFmts === type) {
res = bcr.Read1(length, function (t, l) {
return oBinary_StylesTableReader.ReadNumFmts(t, l, oStyleObject.oNumFmts);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
}
}
}
}
}
}
return res;
};
var fReadStyles = function (type, length, oOutput) {
var res = c_oSerConstants.ReadOk;
var oStyleObject = {
font: null,
fill: null,
border: null,
oNumFmts: [],
xfs: null
};
if (Types.Style === type) {
var oCellStyle = new CCellStyle();
res = bcr.Read1(length, function (t, l) {
return fReadStyle(t, l, oCellStyle, oStyleObject);
});
oCellStyle.xfs = new CellXfs();
if (null !== oStyleObject.border) {
oCellStyle.xfs.border = oStyleObject.border.clone();
}
if (null !== oStyleObject.fill) {
oCellStyle.xfs.fill = oStyleObject.fill.clone();
}
if (null !== oStyleObject.font) {
oCellStyle.xfs.font = oStyleObject.font.clone();
}
if (null !== oStyleObject.xfs.numid) {
var oCurNum = oStyleObject.oNumFmts[oStyleObject.xfs.numid];
if (null != oCurNum) {
oCellStyle.xfs.num = oBinary_StylesTableReader.ParseNum(oCurNum, oStyleObject.oNumFmts);
} else {
oCellStyle.xfs.num = oBinary_StylesTableReader.ParseNum({
id: oStyleObject.xfs.numid,
f: null
},
oStyleObject.oNumFmts);
}
}
if (null != oStyleObject.xfs.QuotePrefix) {
oCellStyle.xfs.QuotePrefix = oStyleObject.xfs.QuotePrefix;
}
if (null != oStyleObject.xfs.align) {
oCellStyle.xfs.align = oStyleObject.xfs.align.clone();
}
if (null !== oStyleObject.xfs.XfId) {
oCellStyle.xfs.XfId = oStyleObject.xfs.XfId;
}
if (null !== oStyleObject.xfs.ApplyBorder) {
oCellStyle.ApplyBorder = oStyleObject.xfs.ApplyBorder;
}
if (null !== oStyleObject.xfs.ApplyFill) {
oCellStyle.ApplyFill = oStyleObject.xfs.ApplyFill;
}
if (null !== oStyleObject.xfs.ApplyFont) {
oCellStyle.ApplyFont = oStyleObject.xfs.ApplyFont;
}
if (null !== oStyleObject.xfs.ApplyNumberFormat) {
oCellStyle.ApplyNumberFormat = oStyleObject.xfs.ApplyNumberFormat;
}
oOutput.push(oCellStyle);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
var res = bcr.Read1(length, function (t, l) {
return fReadStyles(t, l, oOutput);
});
if (0 === wb.CellStyles.CustomStyles.length && 0 < oOutput.length) {
wb.CellStyles.CustomStyles.push(oOutput[0].clone());
wb.CellStyles.CustomStyles[0].XfId = 0;
}
if (null == g_oDefaultXfId) {
g_oDefaultXfId = 0;
}
}