2021-04-23 20:28:14 +00:00

618 lines
184 KiB
Go

//
// Copyright 2020 FoxyUtils ehf. All rights reserved.
//
// This is a commercial product and requires a license to operate.
// A trial license can be obtained at https://unidoc.io
//
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
//
// Use of this source code is governed by the UniDoc End User License Agreement
// terms that can be accessed at https://unidoc.io/eula/
package segments ;import (_e "encoding/binary";_ef "errors";_gc "fmt";_gbce "github.com/unidoc/unipdf/v3/common";_ga "github.com/unidoc/unipdf/v3/internal/bitwise";_bf "github.com/unidoc/unipdf/v3/internal/jbig2/basic";_ge "github.com/unidoc/unipdf/v3/internal/jbig2/bitmap";
_ee "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/arithmetic";_gef "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/huffman";_gbc "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/mmr";_fb "github.com/unidoc/unipdf/v3/internal/jbig2/encoder/arithmetic";
_gb "github.com/unidoc/unipdf/v3/internal/jbig2/errors";_d "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_ed "golang.org/x/xerrors";_be "image";_f "io";_b "math";_eb "strings";_g "time";);func (_gbab *PatternDictionary )readTemplate ()error {_gdef ,_bagf :=_gbab ._gffc .ReadBits (2);
if _bagf !=nil {return _bagf ;};_gbab .HDTemplate =byte (_gdef );return nil ;};func (_gaga *PageInformationSegment )CombinationOperator ()_ge .CombinationOperator {return _gaga ._edfb ;};type Header struct{SegmentNumber uint32 ;Type Type ;RetainFlag bool ;
PageAssociation int ;PageAssociationFieldSize bool ;RTSegments []*Header ;HeaderLength int64 ;SegmentDataLength uint64 ;SegmentDataStartOffset uint64 ;Reader _ga .StreamReader ;SegmentData Segmenter ;RTSNumbers []int ;RetainBits []uint8 ;};func (_babaa *Header )writeSegmentNumber (_fcagb _ga .BinaryWriter )(_ffae int ,_feff error ){_affd :=make ([]byte ,4);
_e .BigEndian .PutUint32 (_affd ,_babaa .SegmentNumber );if _ffae ,_feff =_fcagb .Write (_affd );_feff !=nil {return 0,_gb .Wrap (_feff ,"\u0048e\u0061\u0064\u0065\u0072.\u0077\u0072\u0069\u0074\u0065S\u0065g\u006de\u006e\u0074\u004e\u0075\u006d\u0062\u0065r","");
};return _ffae ,nil ;};func (_bggb *HalftoneRegion )shiftAndFill (_ecff int )int {_ecff >>=8;if _ecff < 0{_bbf :=int (_b .Log (float64 (_aege (_ecff )))/_b .Log (2));_fgcc :=31-_bbf ;for _fcdc :=1;_fcdc < _fgcc ;_fcdc ++{_ecff |=1<<uint (31-_fcdc );};};
return _ecff ;};func (_gd *GenericRefinementRegion )decodeTypicalPredictedLineTemplate0 (_bad ,_eeg ,_bga ,_fef ,_cfa ,_ged ,_dec ,_fg ,_fd int )error {var (_df ,_ec ,_gf ,_ab ,_eegf ,_dda int ;_bcb byte ;_fdb error ;);if _bad > 0{_bcb ,_fdb =_gd .RegionBitmap .GetByte (_dec -_bga );
if _fdb !=nil {return _fdb ;};_gf =int (_bcb );};if _fg > 0&&_fg <=_gd .ReferenceBitmap .Height {_bcb ,_fdb =_gd .ReferenceBitmap .GetByte (_fd -_fef +_ged );if _fdb !=nil {return _fdb ;};_ab =int (_bcb )<<4;};if _fg >=0&&_fg < _gd .ReferenceBitmap .Height {_bcb ,_fdb =_gd .ReferenceBitmap .GetByte (_fd +_ged );
if _fdb !=nil {return _fdb ;};_eegf =int (_bcb )<<1;};if _fg > -2&&_fg < _gd .ReferenceBitmap .Height -1{_bcb ,_fdb =_gd .ReferenceBitmap .GetByte (_fd +_fef +_ged );if _fdb !=nil {return _fdb ;};_dda =int (_bcb );};_df =((_gf >>5)&0x6)|((_dda >>2)&0x30)|(_eegf &0x180)|(_ab &0xc00);
var _efa int ;for _bcd :=0;_bcd < _cfa ;_bcd =_efa {var _fab int ;_efa =_bcd +8;var _dc int ;if _dc =_eeg -_bcd ;_dc > 8{_dc =8;};_gaf :=_efa < _eeg ;_ddc :=_efa < _gd .ReferenceBitmap .Width ;_fff :=_ged +1;if _bad > 0{_bcb =0;if _gaf {_bcb ,_fdb =_gd .RegionBitmap .GetByte (_dec -_bga +1);
if _fdb !=nil {return _fdb ;};};_gf =(_gf <<8)|int (_bcb );};if _fg > 0&&_fg <=_gd .ReferenceBitmap .Height {var _ddf int ;if _ddc {_bcb ,_fdb =_gd .ReferenceBitmap .GetByte (_fd -_fef +_fff );if _fdb !=nil {return _fdb ;};_ddf =int (_bcb )<<4;};_ab =(_ab <<8)|_ddf ;
};if _fg >=0&&_fg < _gd .ReferenceBitmap .Height {var _eff int ;if _ddc {_bcb ,_fdb =_gd .ReferenceBitmap .GetByte (_fd +_fff );if _fdb !=nil {return _fdb ;};_eff =int (_bcb )<<1;};_eegf =(_eegf <<8)|_eff ;};if _fg > -2&&_fg < (_gd .ReferenceBitmap .Height -1){_bcb =0;
if _ddc {_bcb ,_fdb =_gd .ReferenceBitmap .GetByte (_fd +_fef +_fff );if _fdb !=nil {return _fdb ;};};_dda =(_dda <<8)|int (_bcb );};for _ddge :=0;_ddge < _dc ;_ddge ++{var _cde int ;_fgd :=false ;_gaff :=(_df >>4)&0x1ff;if _gaff ==0x1ff{_fgd =true ;_cde =1;
}else if _gaff ==0x00{_fgd =true ;};if !_fgd {if _gd ._fa {_ec =_gd .overrideAtTemplate0 (_df ,_bcd +_ddge ,_bad ,_fab ,_ddge );_gd ._eg .SetIndex (int32 (_ec ));}else {_gd ._eg .SetIndex (int32 (_df ));};_cde ,_fdb =_gd ._bb .DecodeBit (_gd ._eg );if _fdb !=nil {return _fdb ;
};};_cabf :=uint (7-_ddge );_fab |=_cde <<_cabf ;_df =((_df &0xdb6)<<1)|_cde |(_gf >>_cabf +5)&0x002|((_dda >>_cabf +2)&0x010)|((_eegf >>_cabf )&0x080)|((_ab >>_cabf )&0x400);};_fdb =_gd .RegionBitmap .SetByte (_dec ,byte (_fab ));if _fdb !=nil {return _fdb ;
};_dec ++;_fd ++;};return nil ;};func (_gfdf *SymbolDictionary )decodeHeightClassDeltaHeight ()(int64 ,error ){if _gfdf .IsHuffmanEncoded {return _gfdf .decodeHeightClassDeltaHeightWithHuffman ();};_fefgg ,_ggded :=_gfdf ._geee .DecodeInt (_gfdf ._efag );
if _ggded !=nil {return 0,_ggded ;};return int64 (_fefgg ),nil ;};var _ SegmentEncoder =&GenericRegion {};type Type int ;func (_ccba *Header )writeSegmentPageAssociation (_dad _ga .BinaryWriter )(_ebac int ,_geb error ){const _bdgd ="w\u0072\u0069\u0074\u0065\u0053\u0065g\u006d\u0065\u006e\u0074\u0050\u0061\u0067\u0065\u0041s\u0073\u006f\u0063i\u0061t\u0069\u006f\u006e";
if _ccba .pageSize ()!=4{if _geb =_dad .WriteByte (byte (_ccba .PageAssociation ));_geb !=nil {return 0,_gb .Wrap (_geb ,_bdgd ,"\u0070\u0061\u0067\u0065\u0053\u0069\u007a\u0065\u0020\u0021\u003d\u0020\u0034");};return 1,nil ;};_cbde :=make ([]byte ,4);
_e .BigEndian .PutUint32 (_cbde ,uint32 (_ccba .PageAssociation ));if _ebac ,_geb =_dad .Write (_cbde );_geb !=nil {return 0,_gb .Wrap (_geb ,_bdgd ,"\u0034 \u0062y\u0074\u0065\u0020\u0070\u0061g\u0065\u0020n\u0075\u006d\u0062\u0065\u0072");};return _ebac ,nil ;
};func (_fcag *template1 )form (_eagd ,_fgb ,_fdd ,_gcb ,_fafd int16 )int16 {return ((_eagd &0x02)<<8)|(_fgb <<6)|((_fdd &0x03)<<4)|(_gcb <<1)|_fafd ;};func (_fcgf *PageInformationSegment )readIsStriped ()error {_efbdd ,_fcgg :=_fcgf ._efda .ReadBit ();
if _fcgg !=nil {return _fcgg ;};if _efbdd ==1{_fcgf .IsStripe =true ;};return nil ;};var (_ Regioner =&TextRegion {};_ Segmenter =&TextRegion {};);func (_bfe *PageInformationSegment )readWidthAndHeight ()error {_fdbf ,_ggfc :=_bfe ._efda .ReadBits (32);
if _ggfc !=nil {return _ggfc ;};_bfe .PageBMWidth =int (_fdbf &_b .MaxInt32 );_fdbf ,_ggfc =_bfe ._efda .ReadBits (32);if _ggfc !=nil {return _ggfc ;};_bfe .PageBMHeight =int (_fdbf &_b .MaxInt32 );return nil ;};func (_fggg *SymbolDictionary )retrieveImportSymbols ()error {for _ ,_cbdf :=range _fggg .Header .RTSegments {if _cbdf .Type ==0{_dcea ,_edee :=_cbdf .GetSegmentData ();
if _edee !=nil {return _edee ;};_defb ,_fffg :=_dcea .(*SymbolDictionary );if !_fffg {return _gc .Errorf ("\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0044\u0061\u0074a\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0053\u0079\u006d\u0062\u006f\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u003a\u0020%\u0054",_dcea );
};_fbeg ,_edee :=_defb .GetDictionary ();if _edee !=nil {return _gc .Errorf ("\u0072\u0065\u006c\u0061\u0074\u0065\u0064 \u0073\u0065\u0067m\u0065\u006e\u0074 \u0077\u0069t\u0068\u0020\u0069\u006e\u0064\u0065x\u003a %\u0064\u0020\u0067\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0073",_cbdf .SegmentNumber ,_edee .Error ());
};_fggg ._gaeg =append (_fggg ._gaeg ,_fbeg ...);_fggg ._gcba +=_defb .NumberOfExportedSymbols ;};};return nil ;};func (_gbbeg *RegionSegment )Encode (w _ga .BinaryWriter )(_ffcf int ,_cffd error ){const _gbeg ="R\u0065g\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065n\u0074\u002e\u0045\u006eco\u0064\u0065";
_aced :=make ([]byte ,4);_e .BigEndian .PutUint32 (_aced ,_gbbeg .BitmapWidth );_ffcf ,_cffd =w .Write (_aced );if _cffd !=nil {return 0,_gb .Wrap (_cffd ,_gbeg ,"\u0057\u0069\u0064t\u0068");};_e .BigEndian .PutUint32 (_aced ,_gbbeg .BitmapHeight );var _fade int ;
_fade ,_cffd =w .Write (_aced );if _cffd !=nil {return 0,_gb .Wrap (_cffd ,_gbeg ,"\u0048\u0065\u0069\u0067\u0068\u0074");};_ffcf +=_fade ;_e .BigEndian .PutUint32 (_aced ,_gbbeg .XLocation );_fade ,_cffd =w .Write (_aced );if _cffd !=nil {return 0,_gb .Wrap (_cffd ,_gbeg ,"\u0058L\u006f\u0063\u0061\u0074\u0069\u006fn");
};_ffcf +=_fade ;_e .BigEndian .PutUint32 (_aced ,_gbbeg .YLocation );_fade ,_cffd =w .Write (_aced );if _cffd !=nil {return 0,_gb .Wrap (_cffd ,_gbeg ,"\u0059L\u006f\u0063\u0061\u0074\u0069\u006fn");};_ffcf +=_fade ;if _cffd =w .WriteByte (byte (_gbbeg .CombinaionOperator )&0x07);
_cffd !=nil {return 0,_gb .Wrap (_cffd ,_gbeg ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};_ffcf ++;return _ffcf ,nil ;};func (_dcg *Header )parse (_cbce Documenter ,_fcgb _ga .StreamReader ,_ceegc int64 ,_aab OrganizationType )(_baba error ){const _ecbb ="\u0070\u0061\u0072s\u0065";
_gbce .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u002d\u0048E\u0041\u0044\u0045\u0052\u005d\u005b\u0050A\u0052\u0053\u0045\u005d\u0020\u0042\u0065\u0067\u0069\u006e\u0073");defer func (){if _baba !=nil {_gbce .Log .Trace ("\u005b\u0053\u0045GM\u0045\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045R\u005d[\u0050A\u0052S\u0045\u005d\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0076",_baba );
}else {_gbce .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052]\u005bP\u0041\u0052\u0053\u0045\u005d\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064");};}();_ ,_baba =_fcgb .Seek (_ceegc ,_f .SeekStart );
if _baba !=nil {return _gb .Wrap (_baba ,_ecbb ,"\u0073\u0065\u0065\u006b\u0020\u0073\u0074\u0061\u0072\u0074");};if _baba =_dcg .readSegmentNumber (_fcgb );_baba !=nil {return _gb .Wrap (_baba ,_ecbb ,"");};if _baba =_dcg .readHeaderFlags ();_baba !=nil {return _gb .Wrap (_baba ,_ecbb ,"");
};var _gcgcae uint64 ;_gcgcae ,_baba =_dcg .readNumberOfReferredToSegments (_fcgb );if _baba !=nil {return _gb .Wrap (_baba ,_ecbb ,"");};_dcg .RTSNumbers ,_baba =_dcg .readReferredToSegmentNumbers (_fcgb ,int (_gcgcae ));if _baba !=nil {return _gb .Wrap (_baba ,_ecbb ,"");
};_baba =_dcg .readSegmentPageAssociation (_cbce ,_fcgb ,_gcgcae ,_dcg .RTSNumbers ...);if _baba !=nil {return _gb .Wrap (_baba ,_ecbb ,"");};if _dcg .Type !=TEndOfFile {if _baba =_dcg .readSegmentDataLength (_fcgb );_baba !=nil {return _gb .Wrap (_baba ,_ecbb ,"");
};};_dcg .readDataStartOffset (_fcgb ,_aab );_dcg .readHeaderLength (_fcgb ,_ceegc );_gbce .Log .Trace ("\u0025\u0073",_dcg );return nil ;};func (_fed *HalftoneRegion )GetPatterns ()([]*_ge .Bitmap ,error ){var (_befc []*_ge .Bitmap ;_ecca error ;);for _ ,_fbb :=range _fed ._egdf .RTSegments {var _gbfg Segmenter ;
_gbfg ,_ecca =_fbb .GetSegmentData ();if _ecca !=nil {_gbce .Log .Debug ("\u0047e\u0074\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061 \u0066a\u0069\u006c\u0065\u0064\u003a\u0020\u0025v",_ecca );return nil ,_ecca ;};_fcbdb ,_defc :=_gbfg .(*PatternDictionary );
if !_defc {_ecca =_gc .Errorf ("\u0072e\u006c\u0061t\u0065\u0064\u0020\u0073e\u0067\u006d\u0065n\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0070at\u0074\u0065\u0072n\u0020\u0064i\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u003a \u0025\u0054",_gbfg );
return nil ,_ecca ;};var _abg []*_ge .Bitmap ;_abg ,_ecca =_fcbdb .GetDictionary ();if _ecca !=nil {_gbce .Log .Debug ("\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0076",_ecca );
return nil ,_ecca ;};_befc =append (_befc ,_abg ...);};return _befc ,nil ;};func (_gdgg *Header )referenceSize ()uint {switch {case _gdgg .SegmentNumber <=255:return 1;case _gdgg .SegmentNumber <=65535:return 2;default:return 4;};};type PatternDictionary struct{_gffc _ga .StreamReader ;
DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;GBAtX []int8 ;GBAtY []int8 ;IsMMREncoded bool ;HDTemplate byte ;HdpWidth byte ;HdpHeight byte ;Patterns []*_ge .Bitmap ;GrayMax uint32 ;};func (_ea *EndOfStripe )parseHeader (_eaf *Header ,_daa _ga .StreamReader )error {_edf ,_gab :=_ea ._a .ReadBits (32);
if _gab !=nil {return _gab ;};_ea ._da =int (_edf &_b .MaxInt32 );return nil ;};func (_agcd *Header )String ()string {_gcbd :=&_eb .Builder {};_gcbd .WriteString ("\u000a[\u0053E\u0047\u004d\u0045\u004e\u0054-\u0048\u0045A\u0044\u0045\u0052\u005d\u000a");
_gcbd .WriteString (_gc .Sprintf ("\t\u002d\u0020\u0053\u0065gm\u0065n\u0074\u004e\u0075\u006d\u0062e\u0072\u003a\u0020\u0025\u0076\u000a",_agcd .SegmentNumber ));_gcbd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020T\u0079\u0070\u0065\u003a\u0020\u0025\u0076\u000a",_agcd .Type ));
_gcbd .WriteString (_gc .Sprintf ("\u0009-\u0020R\u0065\u0074\u0061\u0069\u006eF\u006c\u0061g\u003a\u0020\u0025\u0076\u000a",_agcd .RetainFlag ));_gcbd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020Pa\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_agcd .PageAssociation ));
_gcbd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0050\u0061\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061\u0074i\u006fn\u0046\u0069\u0065\u006c\u0064\u0053\u0069\u007a\u0065\u003a\u0020\u0025\u0076\u000a",_agcd .PageAssociationFieldSize ));
_gcbd .WriteString ("\u0009-\u0020R\u0054\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u0053\u003a\u000a");for _ ,_cdgc :=range _agcd .RTSNumbers {_gcbd .WriteString (_gc .Sprintf ("\u0009\t\u002d\u0020\u0025\u0064\u000a",_cdgc ));};_gcbd .WriteString (_gc .Sprintf ("\t\u002d \u0048\u0065\u0061\u0064\u0065\u0072\u004c\u0065n\u0067\u0074\u0068\u003a %\u0076\u000a",_agcd .HeaderLength ));
_gcbd .WriteString (_gc .Sprintf ("\u0009-\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061L\u0065n\u0067\u0074\u0068\u003a\u0020\u0025\u0076\n",_agcd .SegmentDataLength ));_gcbd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074D\u0061\u0074\u0061\u0053\u0074\u0061\u0072t\u004f\u0066\u0066\u0073\u0065\u0074\u003a\u0020\u0025\u0076\u000a",_agcd .SegmentDataStartOffset ));
return _gcbd .String ();};type template1 struct{};func (_dcc *TextRegion )computeSymbolCodeLength ()error {if _dcc .IsHuffmanEncoded {return _dcc .symbolIDCodeLengths ();};_dcc ._addf =int8 (_b .Ceil (_b .Log (float64 (_dcc .NumberOfSymbols ))/_b .Log (2)));
return nil ;};func (_bbce *HalftoneRegion )GetRegionInfo ()*RegionSegment {return _bbce .RegionSegment };func (_ecde *RegionSegment )Size ()int {return 17};func (_eddc *TextRegion )decodeStripT ()(_dfga int64 ,_gccg error ){if _eddc .IsHuffmanEncoded {if _eddc .SbHuffDT ==3{if _eddc ._fbgc ==nil {var _bdff int ;
if _eddc .SbHuffFS ==3{_bdff ++;};if _eddc .SbHuffDS ==3{_bdff ++;};_eddc ._fbgc ,_gccg =_eddc .getUserTable (_bdff );if _gccg !=nil {return 0,_gccg ;};};_dfga ,_gccg =_eddc ._fbgc .Decode (_eddc ._cgde );if _gccg !=nil {return 0,_gccg ;};}else {var _deef _gef .Tabler ;
_deef ,_gccg =_gef .GetStandardTable (11+int (_eddc .SbHuffDT ));if _gccg !=nil {return 0,_gccg ;};_dfga ,_gccg =_deef .Decode (_eddc ._cgde );if _gccg !=nil {return 0,_gccg ;};};}else {var _egbc int32 ;_egbc ,_gccg =_eddc ._cdfa .DecodeInt (_eddc ._egeb );
if _gccg !=nil {return 0,_gccg ;};_dfga =int64 (_egbc );};_dfga *=int64 (-_eddc .SbStrips );return _dfga ,nil ;};var _ templater =&template0 {};func (_dadg *SymbolDictionary )setCodingStatistics ()error {if _dadg ._dgaag ==nil {_dadg ._dgaag =_ee .NewStats (512,1);
};if _dadg ._efag ==nil {_dadg ._efag =_ee .NewStats (512,1);};if _dadg ._egba ==nil {_dadg ._egba =_ee .NewStats (512,1);};if _dadg ._gcde ==nil {_dadg ._gcde =_ee .NewStats (512,1);};if _dadg ._cad ==nil {_dadg ._cad =_ee .NewStats (512,1);};if _dadg .UseRefinementAggregation &&_dadg ._cagef ==nil {_dadg ._cagef =_ee .NewStats (1<<uint (_dadg ._gffb ),1);
_dadg ._dbab =_ee .NewStats (512,1);_dadg ._ddbe =_ee .NewStats (512,1);};if _dadg ._fcda ==nil {_dadg ._fcda =_ee .NewStats (65536,1);};if _dadg ._geee ==nil {var _bcfd error ;_dadg ._geee ,_bcfd =_ee .New (_dadg ._fbad );if _bcfd !=nil {return _bcfd ;
};};return nil ;};func (_abfd *SymbolDictionary )parseHeader ()(_gdbe error ){_gbce .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c \u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");
defer func (){if _gdbe !=nil {_gbce .Log .Trace ("\u005bS\u0059\u004dB\u004f\u004c\u0020\u0044I\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u005b\u0050\u0041\u0052SE\u002d\u0048\u0045A\u0044\u0045R\u005d\u0020\u0066\u0061\u0069\u006ce\u0064\u002e \u0025\u0076",_gdbe );
}else {_gbce .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c \u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u002e");
};}();if _gdbe =_abfd .readRegionFlags ();_gdbe !=nil {return _gdbe ;};if _gdbe =_abfd .setAtPixels ();_gdbe !=nil {return _gdbe ;};if _gdbe =_abfd .setRefinementAtPixels ();_gdbe !=nil {return _gdbe ;};if _gdbe =_abfd .readNumberOfExportedSymbols ();_gdbe !=nil {return _gdbe ;
};if _gdbe =_abfd .readNumberOfNewSymbols ();_gdbe !=nil {return _gdbe ;};if _gdbe =_abfd .setInSyms ();_gdbe !=nil {return _gdbe ;};if _abfd ._eged {_effb :=_abfd .Header .RTSegments ;for _beea :=len (_effb )-1;_beea >=0;_beea --{if _effb [_beea ].Type ==0{_fcdg ,_gdged :=_effb [_beea ].SegmentData .(*SymbolDictionary );
if !_gdged {_gdbe =_gc .Errorf ("\u0072\u0065\u006c\u0061\u0074\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074:\u0020\u0025\u0076\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020S\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074",_effb [_beea ]);
return _gdbe ;};if _fcdg ._eged {_abfd .setRetainedCodingContexts (_fcdg );};break ;};};};if _gdbe =_abfd .checkInput ();_gdbe !=nil {return _gdbe ;};return nil ;};func (_agba *HalftoneRegion )Init (hd *Header ,r _ga .StreamReader )error {_agba ._cfb =r ;
_agba ._egdf =hd ;_agba .RegionSegment =NewRegionSegment (r );return _agba .parseHeader ();};func (_fage *Header )GetSegmentData ()(Segmenter ,error ){var _bdea Segmenter ;if _fage .SegmentData !=nil {_bdea =_fage .SegmentData ;};if _bdea ==nil {_aacf ,_ddgd :=_dbdc [_fage .Type ];
if !_ddgd {return nil ,_gc .Errorf ("\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0073\u002f\u0020\u0025\u0064\u0020\u0063\u0072e\u0061t\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u002e\u0020",_fage .Type ,_fage .Type );};_bdea =_aacf ();
_gbce .Log .Trace ("\u005b\u0053E\u0047\u004d\u0045\u004e\u0054-\u0048\u0045\u0041\u0044\u0045R\u005d\u005b\u0023\u0025\u0064\u005d\u0020\u0047\u0065\u0074\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0044\u0061\u0074\u0061\u0020\u0061\u0074\u0020\u004f\u0066\u0066\u0073\u0065\u0074\u003a\u0020\u0025\u0030\u0034\u0058",_fage .SegmentNumber ,_fage .SegmentDataStartOffset );
_aacfe ,_ecd :=_fage .subInputReader ();if _ecd !=nil {return nil ,_ecd ;};if _eeea :=_bdea .Init (_fage ,_aacfe );_eeea !=nil {_gbce .Log .Debug ("\u0049\u006e\u0069\u0074 \u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0076 \u0066o\u0072\u0020\u0074\u0079\u0070\u0065\u003a \u0025\u0054",_eeea ,_bdea );
return nil ,_eeea ;};_fage .SegmentData =_bdea ;};return _bdea ,nil ;};type GenericRefinementRegion struct{_gbb templater ;_dbb templater ;_aa _ga .StreamReader ;_cf *Header ;RegionInfo *RegionSegment ;IsTPGROn bool ;TemplateID int8 ;Template templater ;
GrAtX []int8 ;GrAtY []int8 ;RegionBitmap *_ge .Bitmap ;ReferenceBitmap *_ge .Bitmap ;ReferenceDX int32 ;ReferenceDY int32 ;_bb *_ee .Decoder ;_eg *_ee .DecoderStats ;_fa bool ;_dbf []bool ;};func (_ac *GenericRefinementRegion )Init (header *Header ,r _ga .StreamReader )error {_ac ._cf =header ;
_ac ._aa =r ;_ac .RegionInfo =NewRegionSegment (r );return _ac .parseHeader ();};type TableSegment struct{_cadfd _ga .StreamReader ;_ecgb int32 ;_fddd int32 ;_fefgc int32 ;_agac int32 ;_degeb int32 ;};func (_ceb *PatternDictionary )checkInput ()error {if _ceb .HdpHeight < 1||_ceb .HdpWidth < 1{return _ef .New ("in\u0076\u0061l\u0069\u0064\u0020\u0048\u0065\u0061\u0064\u0065\u0072 \u0056\u0061\u006c\u0075\u0065\u003a\u0020\u0057\u0069\u0064\u0074\u0068\u002f\u0048\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020g\u0072e\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061n\u0020z\u0065\u0072o");
};if _ceb .IsMMREncoded {if _ceb .HDTemplate !=0{_gbce .Log .Debug ("\u0076\u0061\u0072\u0069\u0061\u0062\u006c\u0065\u0020\u0048\u0044\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e \u0074\u0068\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0030");
};};return nil ;};func (_cdcf *template0 )form (_fba ,_gfg ,_aca ,_cda ,_faba int16 )int16 {return (_fba <<10)|(_gfg <<7)|(_aca <<4)|(_cda <<1)|_faba ;};func (_cea *PageInformationSegment )Init (h *Header ,r _ga .StreamReader )(_ddgca error ){_cea ._efda =r ;
if _ddgca =_cea .parseHeader ();_ddgca !=nil {return _gb .Wrap (_ddgca ,"P\u0061\u0067\u0065\u0049\u006e\u0066o\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065g\u006d\u0065\u006et\u002eI\u006e\u0069\u0074","");};return nil ;};func (_cbfbc *PageInformationSegment )readRequiresAuxiliaryBuffer ()error {_ebcb ,_gacb :=_cbfbc ._efda .ReadBit ();
if _gacb !=nil {return _gacb ;};if _ebcb ==1{_cbfbc ._eae =true ;};return nil ;};func (_cdd *Header )CleanSegmentData (){if _cdd .SegmentData !=nil {_cdd .SegmentData =nil ;};};func (_aacg *SymbolDictionary )decodeAggregate (_deaba ,_egbef uint32 )error {var (_dfd int64 ;
_cdfc error ;);if _aacg .IsHuffmanEncoded {_dfd ,_cdfc =_aacg .huffDecodeRefAggNInst ();if _cdfc !=nil {return _cdfc ;};}else {_bbbc ,_agfc :=_aacg ._geee .DecodeInt (_aacg ._gcde );if _agfc !=nil {return _agfc ;};_dfd =int64 (_bbbc );};if _dfd > 1{return _aacg .decodeThroughTextRegion (_deaba ,_egbef ,uint32 (_dfd ));
}else if _dfd ==1{return _aacg .decodeRefinedSymbol (_deaba ,_egbef );};return nil ;};func (_fdcg *GenericRefinementRegion )updateOverride ()error {if _fdcg .GrAtX ==nil ||_fdcg .GrAtY ==nil {return _ef .New ("\u0041\u0054\u0020\u0070\u0069\u0078\u0065\u006c\u0073\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");
};if len (_fdcg .GrAtX )!=len (_fdcg .GrAtY ){return _ef .New ("A\u0054\u0020\u0070\u0069xe\u006c \u0069\u006e\u0063\u006f\u006es\u0069\u0073\u0074\u0065\u006e\u0074");};_fdcg ._dbf =make ([]bool ,len (_fdcg .GrAtX ));switch _fdcg .TemplateID {case 0:if _fdcg .GrAtX [0]!=-1&&_fdcg .GrAtY [0]!=-1{_fdcg ._dbf [0]=true ;
_fdcg ._fa =true ;};if _fdcg .GrAtX [1]!=-1&&_fdcg .GrAtY [1]!=-1{_fdcg ._dbf [1]=true ;_fdcg ._fa =true ;};case 1:_fdcg ._fa =false ;};return nil ;};func (_gce *Header )pageSize ()uint {if _gce .PageAssociation <=255{return 1;};return 4;};type template0 struct{};
func (_babc Type )String ()string {switch _babc {case TSymbolDictionary :return "\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079";case TIntermediateTextRegion :return "\u0049n\u0074\u0065\u0072\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020T\u0065\u0078\u0074\u0020\u0052\u0065\u0067\u0069\u006f\u006e";
case TImmediateTextRegion :return "I\u006d\u006d\u0065\u0064ia\u0074e\u0020\u0054\u0065\u0078\u0074 \u0052\u0065\u0067\u0069\u006f\u006e";case TImmediateLosslessTextRegion :return "\u0049\u006d\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020L\u006f\u0073\u0073\u006c\u0065\u0073\u0073 \u0054\u0065\u0078\u0074\u0020\u0052\u0065\u0067\u0069\u006f\u006e";
case TPatternDictionary :return "\u0050a\u0074t\u0065\u0072\u006e\u0020\u0044i\u0063\u0074i\u006f\u006e\u0061\u0072\u0079";case TIntermediateHalftoneRegion :return "\u0049\u006e\u0074\u0065r\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0048\u0061l\u0066t\u006f\u006e\u0065\u0020\u0052\u0065\u0067i\u006f\u006e";
case TImmediateHalftoneRegion :return "\u0049m\u006d\u0065\u0064\u0069a\u0074\u0065\u0020\u0048\u0061l\u0066t\u006fn\u0065\u0020\u0052\u0065\u0067\u0069\u006fn";case TImmediateLosslessHalftoneRegion :return "\u0049\u006d\u006ded\u0069\u0061\u0074\u0065\u0020\u004c\u006f\u0073\u0073l\u0065s\u0073 \u0048a\u006c\u0066\u0074\u006f\u006e\u0065\u0020\u0052\u0065\u0067\u0069\u006f\u006e";
case TIntermediateGenericRegion :return "I\u006e\u0074\u0065\u0072\u006d\u0065d\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006e\u0065r\u0069\u0063\u0020R\u0065g\u0069\u006f\u006e";case TImmediateGenericRegion :return "\u0049m\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006ee\u0072\u0069\u0063\u0020\u0052\u0065\u0067\u0069\u006f\u006e";
case TImmediateLosslessGenericRegion :return "\u0049\u006d\u006d\u0065\u0064\u0069a\u0074\u0065\u0020\u004c\u006f\u0073\u0073\u006c\u0065\u0073\u0073\u0020\u0047e\u006e\u0065\u0072\u0069\u0063\u0020\u0052e\u0067\u0069\u006f\u006e";case TIntermediateGenericRefinementRegion :return "\u0049\u006e\u0074\u0065\u0072\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006e\u0065\u0072\u0069\u0063\u0020\u0052\u0065\u0066i\u006e\u0065\u006d\u0065\u006et\u0020\u0052e\u0067\u0069\u006f\u006e";
case TImmediateGenericRefinementRegion :return "I\u006d\u006d\u0065\u0064\u0069\u0061t\u0065\u0020\u0047\u0065\u006e\u0065r\u0069\u0063\u0020\u0052\u0065\u0066\u0069n\u0065\u006d\u0065\u006e\u0074\u0020\u0052\u0065\u0067\u0069o\u006e";case TImmediateLosslessGenericRefinementRegion :return "\u0049m\u006d\u0065d\u0069\u0061\u0074\u0065 \u004c\u006f\u0073s\u006c\u0065\u0073\u0073\u0020\u0047\u0065\u006e\u0065ri\u0063\u0020\u0052e\u0066\u0069n\u0065\u006d\u0065\u006e\u0074\u0020R\u0065\u0067i\u006f\u006e";
case TPageInformation :return "\u0050\u0061g\u0065\u0020\u0049n\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e";case TEndOfPage :return "E\u006e\u0064\u0020\u004f\u0066\u0020\u0050\u0061\u0067\u0065";case TEndOfStrip :return "\u0045\u006e\u0064 \u004f\u0066\u0020\u0053\u0074\u0072\u0069\u0070";
case TEndOfFile :return "E\u006e\u0064\u0020\u004f\u0066\u0020\u0046\u0069\u006c\u0065";case TProfiles :return "\u0050\u0072\u006f\u0066\u0069\u006c\u0065\u0073";case TTables :return "\u0054\u0061\u0062\u006c\u0065\u0073";case TExtension :return "\u0045x\u0074\u0065\u006e\u0073\u0069\u006fn";
case TBitmap :return "\u0042\u0069\u0074\u006d\u0061\u0070";};return "I\u006ev\u0061\u006c\u0069\u0064\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u0020Ki\u006e\u0064";};func (_fbba *PatternDictionary )computeSegmentDataStructure ()error {_fbba .DataOffset =_fbba ._gffc .StreamPosition ();
_fbba .DataHeaderLength =_fbba .DataOffset -_fbba .DataHeaderOffset ;_fbba .DataLength =int64 (_fbba ._gffc .Length ())-_fbba .DataHeaderLength ;return nil ;};func (_adcgd *SymbolDictionary )Encode (w _ga .BinaryWriter )(_ece int ,_dbfc error ){const _fbdd ="\u0053\u0079\u006dbo\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0045\u006e\u0063\u006f\u0064\u0065";
if _adcgd ==nil {return 0,_gb .Error (_fbdd ,"\u0073\u0079m\u0062\u006f\u006c\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006e\u006f\u0074\u0020\u0064\u0065\u0066in\u0065\u0064");};if _ece ,_dbfc =_adcgd .encodeFlags (w );_dbfc !=nil {return _ece ,_gb .Wrap (_dbfc ,_fbdd ,"");
};_cadf ,_dbfc :=_adcgd .encodeATFlags (w );if _dbfc !=nil {return _ece ,_gb .Wrap (_dbfc ,_fbdd ,"");};_ece +=_cadf ;if _cadf ,_dbfc =_adcgd .encodeRefinementATFlags (w );_dbfc !=nil {return _ece ,_gb .Wrap (_dbfc ,_fbdd ,"");};_ece +=_cadf ;if _cadf ,_dbfc =_adcgd .encodeNumSyms (w );
_dbfc !=nil {return _ece ,_gb .Wrap (_dbfc ,_fbdd ,"");};_ece +=_cadf ;if _cadf ,_dbfc =_adcgd .encodeSymbols (w );_dbfc !=nil {return _ece ,_gb .Wrap (_dbfc ,_fbdd ,"");};_ece +=_cadf ;return _ece ,nil ;};func (_db *EndOfStripe )Init (h *Header ,r _ga .StreamReader )error {_db ._a =r ;
return _db .parseHeader (h ,r );};func (_dggef *TableSegment )HtHigh ()int32 {return _dggef ._degeb };func (_bcgd *SymbolDictionary )setRetainedCodingContexts (_gdda *SymbolDictionary ){_bcgd ._geee =_gdda ._geee ;_bcgd .IsHuffmanEncoded =_gdda .IsHuffmanEncoded ;
_bcgd .UseRefinementAggregation =_gdda .UseRefinementAggregation ;_bcgd .SdTemplate =_gdda .SdTemplate ;_bcgd .SdrTemplate =_gdda .SdrTemplate ;_bcgd .SdATX =_gdda .SdATX ;_bcgd .SdATY =_gdda .SdATY ;_bcgd .SdrATX =_gdda .SdrATX ;_bcgd .SdrATY =_gdda .SdrATY ;
_bcgd ._fcda =_gdda ._fcda ;};func (_aaeg *HalftoneRegion )computeY (_dga ,_ggbd int )int {return _aaeg .shiftAndFill (int (_aaeg .HGridY )+_dga *int (_aaeg .HRegionX )-_ggbd *int (_aaeg .HRegionY ));};func (_gcdg *PageInformationSegment )readIsLossless ()error {_dcb ,_ffad :=_gcdg ._efda .ReadBit ();
if _ffad !=nil {return _ffad ;};if _dcb ==1{_gcdg .IsLossless =true ;};return nil ;};func (_aece *SymbolDictionary )decodeHeightClassBitmap (_eeba *_ge .Bitmap ,_abgf int64 ,_gcfa int ,_gaac []int )error {for _dcbg :=_abgf ;_dcbg < int64 (_aece ._dcbc );
_dcbg ++{var _fafc int ;for _ebbc :=_abgf ;_ebbc <=_dcbg -1;_ebbc ++{_fafc +=_gaac [_ebbc ];};_adae :=_be .Rect (_fafc ,0,_fafc +_gaac [_dcbg ],_gcfa );_bbfg ,_dgfd :=_ge .Extract (_adae ,_eeba );if _dgfd !=nil {return _dgfd ;};_aece ._fabff [_dcbg ]=_bbfg ;
_aece ._fbaa =append (_aece ._fbaa ,_bbfg );};return nil ;};func (_bbcf *TextRegion )decodeRdx ()(int64 ,error ){const _dgdf ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064x";if _bbcf .IsHuffmanEncoded {if _bbcf .SbHuffRDX ==3{if _bbcf ._deac ==nil {var (_effe int ;
_bbec error ;);if _bbcf .SbHuffFS ==3{_effe ++;};if _bbcf .SbHuffDS ==3{_effe ++;};if _bbcf .SbHuffDT ==3{_effe ++;};if _bbcf .SbHuffRDWidth ==3{_effe ++;};if _bbcf .SbHuffRDHeight ==3{_effe ++;};_bbcf ._deac ,_bbec =_bbcf .getUserTable (_effe );if _bbec !=nil {return 0,_gb .Wrap (_bbec ,_dgdf ,"");
};};return _bbcf ._deac .Decode (_bbcf ._cgde );};_baddg ,_efgc :=_gef .GetStandardTable (14+int (_bbcf .SbHuffRDX ));if _efgc !=nil {return 0,_gb .Wrap (_efgc ,_dgdf ,"");};return _baddg .Decode (_bbcf ._cgde );};_eddf ,_gcdge :=_bbcf ._cdfa .DecodeInt (_bbcf ._gca );
if _gcdge !=nil {return 0,_gb .Wrap (_gcdge ,_dgdf ,"");};return int64 (_eddf ),nil ;};func (_dbbc *template0 )setIndex (_bbb *_ee .DecoderStats ){_bbb .SetIndex (0x100)};func (_fagf *TextRegion )encodeSymbols (_gedf _ga .BinaryWriter )(_gaaae int ,_fcdaa error ){const _bce ="\u0065\u006e\u0063\u006f\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c\u0073";
_fdfdg :=make ([]byte ,4);_e .BigEndian .PutUint32 (_fdfdg ,_fagf .NumberOfSymbols );if _gaaae ,_fcdaa =_gedf .Write (_fdfdg );_fcdaa !=nil {return _gaaae ,_gb .Wrap (_fcdaa ,_bce ,"\u004e\u0075\u006dbe\u0072\u004f\u0066\u0053\u0079\u006d\u0062\u006f\u006c\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0073");
};_ffabe ,_fcdaa :=_ge .NewClassedPoints (_fagf ._bbced ,_fagf ._eaaba );if _fcdaa !=nil {return 0,_gb .Wrap (_fcdaa ,_bce ,"");};var _gfgff ,_ggae int ;_dgeg :=_fb .New ();_dgeg .Init ();if _fcdaa =_dgeg .EncodeInteger (_fb .IADT ,0);_fcdaa !=nil {return _gaaae ,_gb .Wrap (_fcdaa ,_bce ,"\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0020\u0044\u0054");
};_fgdb ,_fcdaa :=_ffabe .GroupByY ();if _fcdaa !=nil {return 0,_gb .Wrap (_fcdaa ,_bce ,"");};for _ ,_aagg :=range _fgdb {_bbfd :=int (_aagg .YAtIndex (0));_affe :=_bbfd -_gfgff ;if _fcdaa =_dgeg .EncodeInteger (_fb .IADT ,_affe );_fcdaa !=nil {return _gaaae ,_gb .Wrap (_fcdaa ,_bce ,"");
};var _dfeb int ;for _ggcb ,_dbbea :=range _aagg .IntSlice {switch _ggcb {case 0:_fcee :=int (_aagg .XAtIndex (_ggcb ))-_ggae ;if _fcdaa =_dgeg .EncodeInteger (_fb .IAFS ,_fcee );_fcdaa !=nil {return _gaaae ,_gb .Wrap (_fcdaa ,_bce ,"");};_ggae +=_fcee ;
_dfeb =_ggae ;default:_dfcfb :=int (_aagg .XAtIndex (_ggcb ))-_dfeb ;if _fcdaa =_dgeg .EncodeInteger (_fb .IADS ,_dfcfb );_fcdaa !=nil {return _gaaae ,_gb .Wrap (_fcdaa ,_bce ,"");};_dfeb +=_dfcfb ;};_fadg ,_aeee :=_fagf ._abcbcg .Get (_dbbea );if _aeee !=nil {return _gaaae ,_gb .Wrap (_aeee ,_bce ,"");
};_addb ,_edefe :=_fagf ._cedcg [_fadg ];if !_edefe {_addb ,_edefe =_fagf ._gfeea [_fadg ];if !_edefe {return _gaaae ,_gb .Errorf (_bce ,"\u0053\u0079\u006d\u0062\u006f\u006c:\u0020\u0027\u0025d\u0027\u0020\u0069s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064 \u0069\u006e\u0020\u0067\u006cob\u0061\u006c\u0020\u0061\u006e\u0064\u0020\u006c\u006f\u0063\u0061\u006c\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0020\u006d\u0061\u0070",_fadg );
};};if _aeee =_dgeg .EncodeIAID (_fagf ._cgbe ,_addb );_aeee !=nil {return _gaaae ,_gb .Wrap (_aeee ,_bce ,"");};};if _fcdaa =_dgeg .EncodeOOB (_fb .IADS );_fcdaa !=nil {return _gaaae ,_gb .Wrap (_fcdaa ,_bce ,"");};};_dgeg .Final ();_ccff ,_fcdaa :=_dgeg .WriteTo (_gedf );
if _fcdaa !=nil {return _gaaae ,_gb .Wrap (_fcdaa ,_bce ,"");};_gaaae +=int (_ccff );return _gaaae ,nil ;};func (_debc *SymbolDictionary )checkInput ()error {if _debc .SdHuffDecodeHeightSelection ==2{_gbce .Log .Debug ("\u0053\u0079\u006d\u0062\u006fl\u0020\u0044\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079\u0020\u0044\u0065\u0063\u006f\u0064\u0065\u0020\u0048\u0065\u0069\u0067\u0068\u0074\u0020\u0053e\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0064\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006e\u006f\u0074\u0020\u0070\u0065r\u006d\u0069\u0074\u0074\u0065\u0064",_debc .SdHuffDecodeHeightSelection );
};if _debc .SdHuffDecodeWidthSelection ==2{_gbce .Log .Debug ("\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0044\u0065\u0063\u006f\u0064\u0065\u0020\u0057\u0069\u0064t\u0068\u0020\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0064\u0020\u0076\u0061l\u0075\u0065\u0020\u006e\u006f\u0074 \u0070\u0065r\u006d\u0069t\u0074e\u0064",_debc .SdHuffDecodeWidthSelection );
};if _debc .IsHuffmanEncoded {if _debc .SdTemplate !=0{_gbce .Log .Debug ("\u0053\u0044T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u003d\u0020\u0025\u0064\u0020\u0028\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e \u0030\u0029",_debc .SdTemplate );
};if !_debc .UseRefinementAggregation {if !_debc .UseRefinementAggregation {if _debc ._gffe {_gbce .Log .Debug ("\u0049\u0073\u0043\u006f\u0064\u0069\u006e\u0067C\u006f\u006e\u0074ex\u0074\u0052\u0065\u0074\u0061\u0069n\u0065\u0064\u0020\u003d\u0020\u0074\u0072\u0075\u0065\u0020\u0028\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0066\u0061\u006cs\u0065\u0029");
_debc ._gffe =false ;};if _debc ._eged {_gbce .Log .Debug ("\u0069s\u0043\u006fd\u0069\u006e\u0067\u0043o\u006e\u0074\u0065x\u0074\u0055\u0073\u0065\u0064\u0020\u003d\u0020\u0074ru\u0065\u0020\u0028s\u0068\u006fu\u006c\u0064\u0020\u0062\u0065\u0020f\u0061\u006cs\u0065\u0029");
_debc ._eged =false ;};};};}else {if _debc .SdHuffBMSizeSelection !=0{_gbce .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066B\u004d\u0053\u0069\u007a\u0065\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u0030");
_debc .SdHuffBMSizeSelection =0;};if _debc .SdHuffDecodeWidthSelection !=0{_gbce .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0057\u0069\u0064\u0074\u0068\u0053\u0065\u006c\u0065\u0063\u0074\u0069o\u006e\u0020\u0073\u0068\u006fu\u006c\u0064 \u0062\u0065\u0020\u0030");
_debc .SdHuffDecodeWidthSelection =0;};if _debc .SdHuffDecodeHeightSelection !=0{_gbce .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0048e\u0069\u0067\u0068\u0074\u0053\u0065l\u0065\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u0030");
_debc .SdHuffDecodeHeightSelection =0;};};if !_debc .UseRefinementAggregation {if _debc .SdrTemplate !=0{_gbce .Log .Debug ("\u0053\u0044\u0052\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u003d\u0020\u0025\u0064\u0020\u0028s\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030\u0029",_debc .SdrTemplate );
_debc .SdrTemplate =0;};};if !_debc .IsHuffmanEncoded ||!_debc .UseRefinementAggregation {if _debc .SdHuffAggInstanceSelection {_gbce .Log .Debug ("\u0053d\u0048\u0075f\u0066\u0041\u0067g\u0049\u006e\u0073\u0074\u0061\u006e\u0063e\u0053\u0065\u006c\u0065\u0063\u0074i\u006f\u006e\u0020\u003d\u0020\u0025\u0064\u0020\u0028\u0073\u0068o\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030\u0029",_debc .SdHuffAggInstanceSelection );
};};return nil ;};func (_ggf *GenericRegion )decodeLine (_fag ,_beb ,_fabag int )error {const _bdg ="\u0064\u0065\u0063\u006f\u0064\u0065\u004c\u0069\u006e\u0065";_bfg :=_ggf .Bitmap .GetByteIndex (0,_fag );_cac :=_bfg -_ggf .Bitmap .RowStride ;switch _ggf .GBTemplate {case 0:if !_ggf .UseExtTemplates {return _ggf .decodeTemplate0a (_fag ,_beb ,_fabag ,_bfg ,_cac );
};return _ggf .decodeTemplate0b (_fag ,_beb ,_fabag ,_bfg ,_cac );case 1:return _ggf .decodeTemplate1 (_fag ,_beb ,_fabag ,_bfg ,_cac );case 2:return _ggf .decodeTemplate2 (_fag ,_beb ,_fabag ,_bfg ,_cac );case 3:return _ggf .decodeTemplate3 (_fag ,_beb ,_fabag ,_bfg ,_cac );
};return _gb .Errorf (_bdg ,"\u0069\u006e\u0076a\u006c\u0069\u0064\u0020G\u0042\u0054\u0065\u006d\u0070\u006c\u0061t\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064\u003a\u0020\u0025\u0064",_ggf .GBTemplate );};func (_geed *GenericRegion )setParametersMMR (_baf bool ,_feed ,_faca int64 ,_aff ,_daac uint32 ,_fdfe byte ,_dgf ,_eaab bool ,_efbe ,_fbcge []int8 ){_geed .DataOffset =_feed ;
_geed .DataLength =_faca ;_geed .RegionSegment =&RegionSegment {};_geed .RegionSegment .BitmapHeight =_aff ;_geed .RegionSegment .BitmapWidth =_daac ;_geed .GBTemplate =_fdfe ;_geed .IsMMREncoded =_baf ;_geed .IsTPGDon =_dgf ;_geed .GBAtX =_efbe ;_geed .GBAtY =_fbcge ;
};func (_abeg *GenericRegion )copyLineAbove (_bgg int )error {_fde :=_bgg *_abeg .Bitmap .RowStride ;_dfe :=_fde -_abeg .Bitmap .RowStride ;for _adb :=0;_adb < _abeg .Bitmap .RowStride ;_adb ++{_fdab ,_gabea :=_abeg .Bitmap .GetByte (_dfe );if _gabea !=nil {return _gabea ;
};_dfe ++;if _gabea =_abeg .Bitmap .SetByte (_fde ,_fdab );_gabea !=nil {return _gabea ;};_fde ++;};return nil ;};func (_gfdg *TextRegion )decodeDT ()(_cdeb int64 ,_agec error ){if _gfdg .IsHuffmanEncoded {if _gfdg .SbHuffDT ==3{_cdeb ,_agec =_gfdg ._fbgc .Decode (_gfdg ._cgde );
if _agec !=nil {return 0,_agec ;};}else {var _geecd _gef .Tabler ;_geecd ,_agec =_gef .GetStandardTable (11+int (_gfdg .SbHuffDT ));if _agec !=nil {return 0,_agec ;};_cdeb ,_agec =_geecd .Decode (_gfdg ._cgde );if _agec !=nil {return 0,_agec ;};};}else {var _febb int32 ;
_febb ,_agec =_gfdg ._cdfa .DecodeInt (_gfdg ._egeb );if _agec !=nil {return ;};_cdeb =int64 (_febb );};_cdeb *=int64 (_gfdg .SbStrips );return _cdeb ,nil ;};func (_bc *GenericRefinementRegion )getGrReference ()(*_ge .Bitmap ,error ){segments :=_bc ._cf .RTSegments ;
if len (segments )==0{return nil ,_ef .New ("\u0052\u0065f\u0065\u0072\u0065\u006e\u0063\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0065\u0078is\u0074\u0073");};_fe ,_cbd :=segments [0].GetSegmentData ();
if _cbd !=nil {return nil ,_cbd ;};_fbc ,_cbe :=_fe .(Regioner );if !_cbe {return nil ,_gc .Errorf ("\u0072\u0065\u0066\u0065\u0072r\u0065\u0064\u0020\u0074\u006f\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074 \u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0052\u0065\u0067\u0069\u006f\u006e\u0065\u0072\u003a\u0020\u0025\u0054",_fe );
};return _fbc .GetRegionBitmap ();};func (_gecc *Header )readHeaderLength (_acac _ga .StreamReader ,_gbff int64 ){_gecc .HeaderLength =_acac .StreamPosition ()-_gbff ;};func (_befa *HalftoneRegion )computeGrayScalePlanes (_bbag []*_ge .Bitmap ,_adc int )([][]int ,error ){_bbbb :=make ([][]int ,_befa .HGridHeight );
for _egad :=0;_egad < len (_bbbb );_egad ++{_bbbb [_egad ]=make ([]int ,_befa .HGridWidth );};for _egde :=0;_egde < int (_befa .HGridHeight );_egde ++{for _gbga :=0;_gbga < int (_befa .HGridWidth );_gbga +=8{var _addg int ;if _gdc :=int (_befa .HGridWidth )-_gbga ;
_gdc > 8{_addg =8;}else {_addg =_gdc ;};_gbbe :=_bbag [0].GetByteIndex (_gbga ,_egde );for _aebc :=0;_aebc < _addg ;_aebc ++{_acbg :=_aebc +_gbga ;_bbbb [_egde ][_acbg ]=0;for _gbfd :=0;_gbfd < _adc ;_gbfd ++{_afag ,_feace :=_bbag [_gbfd ].GetByte (_gbbe );
if _feace !=nil {return nil ,_feace ;};_eaag :=_afag >>uint (7-_acbg &7);_egec :=_eaag &1;_gacg :=1<<uint (_gbfd );_bbbe :=int (_egec )*_gacg ;_bbbb [_egde ][_acbg ]+=_bbbe ;};};};};return _bbbb ,nil ;};var (_egcf Segmenter ;_dbdc =map[Type ]func ()Segmenter {TSymbolDictionary :func ()Segmenter {return &SymbolDictionary {}},TIntermediateTextRegion :func ()Segmenter {return &TextRegion {}},TImmediateTextRegion :func ()Segmenter {return &TextRegion {}},TImmediateLosslessTextRegion :func ()Segmenter {return &TextRegion {}},TPatternDictionary :func ()Segmenter {return &PatternDictionary {}},TIntermediateHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TImmediateHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TImmediateLosslessHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TIntermediateGenericRegion :func ()Segmenter {return &GenericRegion {}},TImmediateGenericRegion :func ()Segmenter {return &GenericRegion {}},TImmediateLosslessGenericRegion :func ()Segmenter {return &GenericRegion {}},TIntermediateGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TImmediateGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TImmediateLosslessGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TPageInformation :func ()Segmenter {return &PageInformationSegment {}},TEndOfPage :func ()Segmenter {return _egcf },TEndOfStrip :func ()Segmenter {return &EndOfStripe {}},TEndOfFile :func ()Segmenter {return _egcf },TProfiles :func ()Segmenter {return _egcf },TTables :func ()Segmenter {return &TableSegment {}},TExtension :func ()Segmenter {return _egcf },TBitmap :func ()Segmenter {return _egcf }};
);type Documenter interface{GetPage (int )(Pager ,error );GetGlobalSegment (int )(*Header ,error );};func (_badd *GenericRegion )decodeTemplate2 (_daag ,_egd ,_gffd int ,_bedb ,_bfba int )(_aga error ){const _bfbg ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0032";
var (_gbfe ,_gcc int ;_fdbd ,_gcgc int ;_eca byte ;_dea ,_aaa int ;);if _daag >=1{_eca ,_aga =_badd .Bitmap .GetByte (_bfba );if _aga !=nil {return _gb .Wrap (_aga ,_bfbg ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0031");
};_fdbd =int (_eca );};if _daag >=2{_eca ,_aga =_badd .Bitmap .GetByte (_bfba -_badd .Bitmap .RowStride );if _aga !=nil {return _gb .Wrap (_aga ,_bfbg ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0032");};_gcgc =int (_eca )<<4;
};_gbfe =(_fdbd >>3&0x7c)|(_gcgc >>3&0x380);for _cca :=0;_cca < _gffd ;_cca =_dea {var (_feac byte ;_bba int ;);_dea =_cca +8;if _gaffg :=_egd -_cca ;_gaffg > 8{_bba =8;}else {_bba =_gaffg ;};if _daag > 0{_fdbd <<=8;if _dea < _egd {_eca ,_aga =_badd .Bitmap .GetByte (_bfba +1);
if _aga !=nil {return _gb .Wrap (_aga ,_bfbg ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0030");};_fdbd |=int (_eca );};};if _daag > 1{_gcgc <<=8;if _dea < _egd {_eca ,_aga =_badd .Bitmap .GetByte (_bfba -_badd .Bitmap .RowStride +1);
if _aga !=nil {return _gb .Wrap (_aga ,_bfbg ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0031");};_gcgc |=int (_eca )<<4;};};for _edd :=0;_edd < _bba ;_edd ++{_gbda :=uint (10-_edd );if _badd ._ggc {_gcc =_badd .overrideAtTemplate2 (_gbfe ,_cca +_edd ,_daag ,int (_feac ),_edd );
_badd ._gbf .SetIndex (int32 (_gcc ));}else {_badd ._gbf .SetIndex (int32 (_gbfe ));};_aaa ,_aga =_badd ._geg .DecodeBit (_badd ._gbf );if _aga !=nil {return _gb .Wrap (_aga ,_bfbg ,"");};_feac |=byte (_aaa <<uint (7-_edd ));_gbfe =((_gbfe &0x1bd)<<1)|_aaa |((_fdbd >>_gbda )&0x4)|((_gcgc >>_gbda )&0x80);
};if _adg :=_badd .Bitmap .SetByte (_bedb ,_feac );_adg !=nil {return _gb .Wrap (_adg ,_bfbg ,"");};_bedb ++;_bfba ++;};return nil ;};func (_bdafe *PageInformationSegment )String ()string {_gbcd :=&_eb .Builder {};_gbcd .WriteString ("\u000a\u005b\u0050\u0041G\u0045\u002d\u0049\u004e\u0046\u004f\u0052\u004d\u0041\u0054I\u004fN\u002d\u0053\u0045\u0047\u004d\u0045\u004eT\u005d\u000a");
_gbcd .WriteString (_gc .Sprintf ("\u0009\u002d \u0042\u004d\u0048e\u0069\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u000a",_bdafe .PageBMHeight ));_gbcd .WriteString (_gc .Sprintf ("\u0009-\u0020B\u004d\u0057\u0069\u0064\u0074\u0068\u003a\u0020\u0025\u0064\u000a",_bdafe .PageBMWidth ));
_gbcd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0058\u003a\u0020\u0025\u0064\u000a",_bdafe .ResolutionX ));_gbcd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0059\u003a\u0020\u0025\u0064\u000a",_bdafe .ResolutionY ));
_gbcd .WriteString (_gc .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0073\u000a",_bdafe ._edfb ));_gbcd .WriteString (_gc .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006eO\u0070\u0065\u0072\u0061\u0074\u006f\u0072O\u0076\u0065\u0072\u0072\u0069\u0064\u0065\u003a\u0020\u0025v\u000a",_bdafe ._bdbc ));
_gbcd .WriteString (_gc .Sprintf ("\u0009-\u0020I\u0073\u004c\u006f\u0073\u0073l\u0065\u0073s\u003a\u0020\u0025\u0076\u000a",_bdafe .IsLossless ));_gbcd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020R\u0065\u0071\u0075\u0069r\u0065\u0073\u0041\u0075\u0078\u0069\u006ci\u0061\u0072\u0079\u0042\u0075\u0066\u0066\u0065\u0072\u003a\u0020\u0025\u0076\u000a",_bdafe ._eae ));
_gbcd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020M\u0069\u0067\u0068\u0074C\u006f\u006e\u0074\u0061\u0069\u006e\u0052e\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0076\u000a",_bdafe ._cffa ));_gbcd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0049\u0073\u0053\u0074\u0072\u0069\u0070\u0065\u0064:\u0020\u0025\u0076\u000a",_bdafe .IsStripe ));
_gbcd .WriteString (_gc .Sprintf ("\t\u002d\u0020\u004d\u0061xS\u0074r\u0069\u0070\u0065\u0053\u0069z\u0065\u003a\u0020\u0025\u0076\u000a",_bdafe .MaxStripeSize ));return _gbcd .String ();};func (_dgac *Header )readReferredToSegmentNumbers (_dbce _ga .StreamReader ,_deaf int )([]int ,error ){const _aabe ="\u0072\u0065\u0061\u0064R\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053e\u0067m\u0065\u006e\u0074\u004e\u0075\u006d\u0062e\u0072\u0073";
_dgfc :=make ([]int ,_deaf );if _deaf > 0{_dgac .RTSegments =make ([]*Header ,_deaf );var (_abba uint64 ;_dead error ;);for _bcbb :=0;_bcbb < _deaf ;_bcbb ++{_abba ,_dead =_dbce .ReadBits (byte (_dgac .referenceSize ())<<3);if _dead !=nil {return nil ,_gb .Wrapf (_dead ,_aabe ,"\u0027\u0025\u0064\u0027 \u0072\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0020\u0073e\u0067m\u0065\u006e\u0074\u0020\u006e\u0075\u006db\u0065\u0072",_bcbb );
};_dgfc [_bcbb ]=int (_abba &_b .MaxInt32 );};};return _dgfc ,nil ;};func (_bddg *TextRegion )setContexts (_cadd *_ee .DecoderStats ,_fdbc *_ee .DecoderStats ,_dceg *_ee .DecoderStats ,_gebbc *_ee .DecoderStats ,_beed *_ee .DecoderStats ,_bbfbf *_ee .DecoderStats ,_afdd *_ee .DecoderStats ,_gcbec *_ee .DecoderStats ,_fcga *_ee .DecoderStats ,_eebg *_ee .DecoderStats ){_bddg ._egeb =_fdbc ;
_bddg ._fafdb =_dceg ;_bddg ._gedc =_gebbc ;_bddg ._caaf =_beed ;_bddg ._gfbc =_afdd ;_bddg ._cfgb =_gcbec ;_bddg ._gebb =_bbfbf ;_bddg ._gca =_fcga ;_bddg ._efafe =_eebg ;_bddg ._bgfa =_cadd ;};type EncodeInitializer interface{InitEncode ();};func (_dgdc *TableSegment )HtPS ()int32 {return _dgdc ._fddd };
func (_abaa *GenericRegion )decodeTemplate3 (_fgcd ,_dbag ,_ggd int ,_gdab ,_ecg int )(_bdb error ){const _dbda ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0033";var (_gbdg ,_aedd int ;_dgge int ;_ffg byte ;_gefae ,_ccad int ;
);if _fgcd >=1{_ffg ,_bdb =_abaa .Bitmap .GetByte (_ecg );if _bdb !=nil {return _gb .Wrap (_bdb ,_dbda ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_dgge =int (_ffg );};_gbdg =(_dgge >>1)&0x70;for _gbe :=0;_gbe < _ggd ;_gbe =_gefae {var (_ecc byte ;
_cfed int ;);_gefae =_gbe +8;if _gdea :=_dbag -_gbe ;_gdea > 8{_cfed =8;}else {_cfed =_gdea ;};if _fgcd >=1{_dgge <<=8;if _gefae < _dbag {_ffg ,_bdb =_abaa .Bitmap .GetByte (_ecg +1);if _bdb !=nil {return _gb .Wrap (_bdb ,_dbda ,"\u0069\u006e\u006e\u0065\u0072\u0020\u002d\u0020\u006c\u0069\u006e\u0065 \u003e\u003d\u0020\u0031");
};_dgge |=int (_ffg );};};for _bac :=0;_bac < _cfed ;_bac ++{if _abaa ._ggc {_aedd =_abaa .overrideAtTemplate3 (_gbdg ,_gbe +_bac ,_fgcd ,int (_ecc ),_bac );_abaa ._gbf .SetIndex (int32 (_aedd ));}else {_abaa ._gbf .SetIndex (int32 (_gbdg ));};_ccad ,_bdb =_abaa ._geg .DecodeBit (_abaa ._gbf );
if _bdb !=nil {return _gb .Wrap (_bdb ,_dbda ,"");};_ecc |=byte (_ccad )<<byte (7-_bac );_gbdg =((_gbdg &0x1f7)<<1)|_ccad |((_dgge >>uint (8-_bac ))&0x010);};if _ccgb :=_abaa .Bitmap .SetByte (_gdab ,_ecc );_ccgb !=nil {return _gb .Wrap (_ccgb ,_dbda ,"");
};_gdab ++;_ecg ++;};return nil ;};func (_cgca *SymbolDictionary )decodeDifferenceWidth ()(int64 ,error ){if _cgca .IsHuffmanEncoded {switch _cgca .SdHuffDecodeWidthSelection {case 0:_fdgf ,_baac :=_gef .GetStandardTable (2);if _baac !=nil {return 0,_baac ;
};return _fdgf .Decode (_cgca ._fbad );case 1:_bbae ,_fgac :=_gef .GetStandardTable (3);if _fgac !=nil {return 0,_fgac ;};return _bbae .Decode (_cgca ._fbad );case 3:if _cgca ._fcfbd ==nil {var _fgbd int ;if _cgca .SdHuffDecodeHeightSelection ==3{_fgbd ++;
};_daef ,_fbfd :=_cgca .getUserTable (_fgbd );if _fbfd !=nil {return 0,_fbfd ;};_cgca ._fcfbd =_daef ;};return _cgca ._fcfbd .Decode (_cgca ._fbad );};}else {_gabfe ,_fgee :=_cgca ._geee .DecodeInt (_cgca ._egba );if _fgee !=nil {return 0,_fgee ;};return int64 (_gabfe ),nil ;
};return 0,nil ;};func (_dd *GenericRefinementRegion )decodeSLTP ()(int ,error ){_dd .Template .setIndex (_dd ._eg );return _dd ._bb .DecodeBit (_dd ._eg );};func (_abgc *PatternDictionary )GetDictionary ()([]*_ge .Bitmap ,error ){if _abgc .Patterns !=nil {return _abgc .Patterns ,nil ;
};if !_abgc .IsMMREncoded {_abgc .setGbAtPixels ();};_cfg :=NewGenericRegion (_abgc ._gffc );_cfg .setParametersMMR (_abgc .IsMMREncoded ,_abgc .DataOffset ,_abgc .DataLength ,uint32 (_abgc .HdpHeight ),(_abgc .GrayMax +1)*uint32 (_abgc .HdpWidth ),_abgc .HDTemplate ,false ,false ,_abgc .GBAtX ,_abgc .GBAtY );
_efca ,_ebae :=_cfg .GetRegionBitmap ();if _ebae !=nil {return nil ,_ebae ;};if _ebae =_abgc .extractPatterns (_efca );_ebae !=nil {return nil ,_ebae ;};return _abgc .Patterns ,nil ;};func (_bcdg *HalftoneRegion )computeSegmentDataStructure ()error {_bcdg .DataOffset =_bcdg ._cfb .StreamPosition ();
_bcdg .DataHeaderLength =_bcdg .DataOffset -_bcdg .DataHeaderOffset ;_bcdg .DataLength =int64 (_bcdg ._cfb .Length ())-_bcdg .DataHeaderLength ;return nil ;};func (_dcff *SymbolDictionary )decodeDirectlyThroughGenericRegion (_fgdc ,_dbceb uint32 )error {if _dcff ._agcdgb ==nil {_dcff ._agcdgb =NewGenericRegion (_dcff ._fbad );
};_dcff ._agcdgb .setParametersWithAt (false ,byte (_dcff .SdTemplate ),false ,false ,_dcff .SdATX ,_dcff .SdATY ,_fgdc ,_dbceb ,_dcff ._fcda ,_dcff ._geee );return _dcff .addSymbol (_dcff ._agcdgb );};func (_acfa *Header )subInputReader ()(_ga .StreamReader ,error ){return _ga .NewSubstreamReader (_acfa .Reader ,_acfa .SegmentDataStartOffset ,_acfa .SegmentDataLength );
};const (ORandom OrganizationType =iota ;OSequential ;);func (_geac *PatternDictionary )extractPatterns (_eaef *_ge .Bitmap )error {var _afdf int ;_cabe :=make ([]*_ge .Bitmap ,_geac .GrayMax +1);for _afdf <=int (_geac .GrayMax ){_geaa :=int (_geac .HdpWidth )*_afdf ;
_agcb :=_be .Rect (_geaa ,0,_geaa +int (_geac .HdpWidth ),int (_geac .HdpHeight ));_fgga ,_fabc :=_ge .Extract (_agcb ,_eaef );if _fabc !=nil {return _fabc ;};_cabe [_afdf ]=_fgga ;_afdf ++;};_geac .Patterns =_cabe ;return nil ;};func (_af *EndOfStripe )LineNumber ()int {return _af ._da };
func (_dbcec *SymbolDictionary )getSymbol (_efaf int )(*_ge .Bitmap ,error ){const _fecd ="\u0067e\u0074\u0053\u0079\u006d\u0062\u006fl";_gfbg ,_bgeec :=_dbcec ._ffbc .GetBitmap (_dbcec ._egca [_efaf ]);if _bgeec !=nil {return nil ,_gb .Wrap (_bgeec ,_fecd ,"\u0063\u0061n\u0027\u0074\u0020g\u0065\u0074\u0020\u0073\u0079\u006d\u0062\u006f\u006c");
};return _gfbg ,nil ;};func (_cfd *GenericRefinementRegion )parseHeader ()(_dee error ){_gbce .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072s\u0069\u006e\u0067\u0020\u0048e\u0061\u0064e\u0072\u002e\u002e\u002e");
_edc :=_g .Now ();defer func (){if _dee ==nil {_gbce .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045G\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020h\u0065\u0061\u0064\u0065\u0072\u0020\u0066\u0069\u006e\u0069\u0073\u0068id\u0020\u0069\u006e\u003a\u0020\u0025\u0064\u0020\u006e\u0073",_g .Since (_edc ).Nanoseconds ());
}else {_gbce .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0068\u0065\u0061\u0064\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0073",_dee );
};}();if _dee =_cfd .RegionInfo .parseHeader ();_dee !=nil {return _dee ;};_ ,_dee =_cfd ._aa .ReadBits (6);if _dee !=nil {return _dee ;};_cfd .IsTPGROn ,_dee =_cfd ._aa .ReadBool ();if _dee !=nil {return _dee ;};var _dgd int ;_dgd ,_dee =_cfd ._aa .ReadBit ();
if _dee !=nil {return _dee ;};_cfd .TemplateID =int8 (_dgd );switch _cfd .TemplateID {case 0:_cfd .Template =_cfd ._gbb ;if _dee =_cfd .readAtPixels ();_dee !=nil {return ;};case 1:_cfd .Template =_cfd ._dbb ;};return nil ;};type Segmenter interface{Init (_deg *Header ,_cbdg _ga .StreamReader )error ;
};func (_fcea *TextRegion )String ()string {_eedc :=&_eb .Builder {};_eedc .WriteString ("\u000a[\u0054E\u0058\u0054\u0020\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u000a");_eedc .WriteString (_fcea .RegionInfo .String ()+"\u000a");_eedc .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053br\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u003a\u0020\u0025\u0076\u000a",_fcea .SbrTemplate ));
_eedc .WriteString (_gc .Sprintf ("\u0009-\u0020S\u0062\u0044\u0073\u004f\u0066f\u0073\u0065t\u003a\u0020\u0025\u0076\u000a",_fcea .SbDsOffset ));_eedc .WriteString (_gc .Sprintf ("\t\u002d \u0044\u0065\u0066\u0061\u0075\u006c\u0074\u0050i\u0078\u0065\u006c\u003a %\u0076\u000a",_fcea .DefaultPixel ));
_eedc .WriteString (_gc .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0076\u000a",_fcea .CombinationOperator ));_eedc .WriteString (_gc .Sprintf ("\t\u002d \u0049\u0073\u0054\u0072\u0061\u006e\u0073\u0070o\u0073\u0065\u0064\u003a %\u0076\u000a",_fcea .IsTransposed ));
_eedc .WriteString (_gc .Sprintf ("\u0009\u002d\u0020Re\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0043\u006f\u0072\u006e\u0065\u0072\u003a\u0020\u0025\u0076\u000a",_fcea .ReferenceCorner ));_eedc .WriteString (_gc .Sprintf ("\t\u002d\u0020\u0055\u0073eR\u0065f\u0069\u006e\u0065\u006d\u0065n\u0074\u003a\u0020\u0025\u0076\u000a",_fcea .UseRefinement ));
_eedc .WriteString (_gc .Sprintf ("\u0009-\u0020\u0049\u0073\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045n\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0076\u000a",_fcea .IsHuffmanEncoded ));if _fcea .IsHuffmanEncoded {_eedc .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0053\u0069\u007a\u0065\u003a\u0020\u0025\u0076\u000a",_fcea .SbHuffRSize ));
_eedc .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0059:\u0020\u0025\u0076\u000a",_fcea .SbHuffRDY ));_eedc .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0058:\u0020\u0025\u0076\u000a",_fcea .SbHuffRDX ));
_eedc .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0044\u0048\u0065\u0069\u0067\u0068\u0074\u003a\u0020\u0025v\u000a",_fcea .SbHuffRDHeight ));_eedc .WriteString (_gc .Sprintf ("\t\u002d\u0020\u0053\u0062Hu\u0066f\u0052\u0044\u0057\u0069\u0064t\u0068\u003a\u0020\u0025\u0076\u000a",_fcea .SbHuffRDWidth ));
_eedc .WriteString (_gc .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0054\u003a\u0020\u0025\u0076\u000a",_fcea .SbHuffDT ));_eedc .WriteString (_gc .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0053\u003a\u0020\u0025\u0076\u000a",_fcea .SbHuffDS ));
_eedc .WriteString (_gc .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0046\u0053\u003a\u0020\u0025\u0076\u000a",_fcea .SbHuffFS ));};_eedc .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_fcea .SbrATX ));
_eedc .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0059:\u0020\u0025\u0076\u000a",_fcea .SbrATY ));_eedc .WriteString (_gc .Sprintf ("\u0009\u002d\u0020N\u0075\u006d\u0062\u0065r\u004f\u0066\u0053\u0079\u006d\u0062\u006fl\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0073\u003a\u0020\u0025\u0076\u000a",_fcea .NumberOfSymbolInstances ));
_eedc .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_fcea .SbrATX ));return _eedc .String ();};func (_bbfb *TextRegion )decodeRdy ()(int64 ,error ){const _agbc ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064y";
if _bbfb .IsHuffmanEncoded {if _bbfb .SbHuffRDY ==3{if _bbfb ._ffaed ==nil {var (_afdc int ;_acfb error ;);if _bbfb .SbHuffFS ==3{_afdc ++;};if _bbfb .SbHuffDS ==3{_afdc ++;};if _bbfb .SbHuffDT ==3{_afdc ++;};if _bbfb .SbHuffRDWidth ==3{_afdc ++;};if _bbfb .SbHuffRDHeight ==3{_afdc ++;
};if _bbfb .SbHuffRDX ==3{_afdc ++;};_bbfb ._ffaed ,_acfb =_bbfb .getUserTable (_afdc );if _acfb !=nil {return 0,_gb .Wrap (_acfb ,_agbc ,"");};};return _bbfb ._ffaed .Decode (_bbfb ._cgde );};_abbe ,_bgbf :=_gef .GetStandardTable (14+int (_bbfb .SbHuffRDY ));
if _bgbf !=nil {return 0,_bgbf ;};return _abbe .Decode (_bbfb ._cgde );};_ddbf ,_dafb :=_bbfb ._cdfa .DecodeInt (_bbfb ._efafe );if _dafb !=nil {return 0,_gb .Wrap (_dafb ,_agbc ,"");};return int64 (_ddbf ),nil ;};func (_fec *GenericRefinementRegion )decodeTemplate (_aedg ,_daf ,_abe ,_gefe ,_dbg ,_eefb ,_fca ,_abcb ,_cdf ,_bde int ,_bca templater )(_dfb error ){var (_bdc ,_fcd ,_ffc ,_gaab ,_ccg int16 ;
_beg ,_ddd ,_gbg ,_cgd int ;_faf byte ;);if _cdf >=1&&(_cdf -1)< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde -_gefe );if _dfb !=nil {return ;};_beg =int (_faf );};if _cdf >=0&&(_cdf )< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde );
if _dfb !=nil {return ;};_ddd =int (_faf );};if _cdf >=-1&&(_cdf +1)< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde +_gefe );if _dfb !=nil {return ;};_gbg =int (_faf );};_bde ++;if _aedg >=1{_faf ,_dfb =_fec .RegionBitmap .GetByte (_abcb -_abe );
if _dfb !=nil {return ;};_cgd =int (_faf );};_abcb ++;_gag :=_fec .ReferenceDX %8;_gda :=6+_gag ;_ecf :=_bde %_gefe ;if _gda >=0{if _gda < 8{_bdc =int16 (_beg >>uint (_gda ))&0x07;};if _gda < 8{_fcd =int16 (_ddd >>uint (_gda ))&0x07;};if _gda < 8{_ffc =int16 (_gbg >>uint (_gda ))&0x07;
};if _gda ==6&&_ecf > 1{if _cdf >=1&&(_cdf -1)< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde -_gefe -2);if _dfb !=nil {return _dfb ;};_bdc |=int16 (_faf <<2)&0x04;};if _cdf >=0&&_cdf < _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde -2);
if _dfb !=nil {return _dfb ;};_fcd |=int16 (_faf <<2)&0x04;};if _cdf >=-1&&_cdf +1< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde +_gefe -2);if _dfb !=nil {return _dfb ;};_ffc |=int16 (_faf <<2)&0x04;};};if _gda ==0{_beg =0;
_ddd =0;_gbg =0;if _ecf < _gefe -1{if _cdf >=1&&_cdf -1< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde -_gefe );if _dfb !=nil {return _dfb ;};_beg =int (_faf );};if _cdf >=0&&_cdf < _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde );
if _dfb !=nil {return _dfb ;};_ddd =int (_faf );};if _cdf >=-1&&_cdf +1< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde +_gefe );if _dfb !=nil {return _dfb ;};_gbg =int (_faf );};};_bde ++;};}else {_bdc =int16 (_beg <<1)&0x07;
_fcd =int16 (_ddd <<1)&0x07;_ffc =int16 (_gbg <<1)&0x07;_beg =0;_ddd =0;_gbg =0;if _ecf < _gefe -1{if _cdf >=1&&_cdf -1< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde -_gefe );if _dfb !=nil {return _dfb ;};_beg =int (_faf );
};if _cdf >=0&&_cdf < _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde );if _dfb !=nil {return _dfb ;};_ddd =int (_faf );};if _cdf >=-1&&_cdf +1< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde +_gefe );
if _dfb !=nil {return _dfb ;};_gbg =int (_faf );};_bde ++;};_bdc |=int16 ((_beg >>7)&0x07);_fcd |=int16 ((_ddd >>7)&0x07);_ffc |=int16 ((_gbg >>7)&0x07);};_gaab =int16 (_cgd >>6);_ccg =0;_gabf :=(2-_gag )%8;_beg <<=uint (_gabf );_ddd <<=uint (_gabf );_gbg <<=uint (_gabf );
_cgd <<=2;var _agd int ;for _ddca :=0;_ddca < _daf ;_ddca ++{_dgg :=_ddca &0x07;_gfe :=_bca .form (_bdc ,_fcd ,_ffc ,_gaab ,_ccg );if _fec ._fa {_faf ,_dfb =_fec .RegionBitmap .GetByte (_fec .RegionBitmap .GetByteIndex (_ddca ,_aedg ));if _dfb !=nil {return _dfb ;
};_fec ._eg .SetIndex (int32 (_fec .overrideAtTemplate0 (int (_gfe ),_ddca ,_aedg ,int (_faf ),_dgg )));}else {_fec ._eg .SetIndex (int32 (_gfe ));};_agd ,_dfb =_fec ._bb .DecodeBit (_fec ._eg );if _dfb !=nil {return _dfb ;};if _dfb =_fec .RegionBitmap .SetPixel (_ddca ,_aedg ,byte (_agd ));
_dfb !=nil {return _dfb ;};_bdc =((_bdc <<1)|0x01&int16 (_beg >>7))&0x07;_fcd =((_fcd <<1)|0x01&int16 (_ddd >>7))&0x07;_ffc =((_ffc <<1)|0x01&int16 (_gbg >>7))&0x07;_gaab =((_gaab <<1)|0x01&int16 (_cgd >>7))&0x07;_ccg =int16 (_agd );if (_ddca -int (_fec .ReferenceDX ))%8==5{_beg =0;
_ddd =0;_gbg =0;if ((_ddca -int (_fec .ReferenceDX ))/8)+1< _fec .ReferenceBitmap .RowStride {if _cdf >=1&&(_cdf -1)< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde -_gefe );if _dfb !=nil {return _dfb ;};_beg =int (_faf );
};if _cdf >=0&&_cdf < _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde );if _dfb !=nil {return _dfb ;};_ddd =int (_faf );};if _cdf >=-1&&(_cdf +1)< _fec .ReferenceBitmap .Height {_faf ,_dfb =_fec .ReferenceBitmap .GetByte (_bde +_gefe );
if _dfb !=nil {return _dfb ;};_gbg =int (_faf );};};_bde ++;}else {_beg <<=1;_ddd <<=1;_gbg <<=1;};if _dgg ==5&&_aedg >=1{if ((_ddca >>3)+1)>=_fec .RegionBitmap .RowStride {_cgd =0;}else {_faf ,_dfb =_fec .RegionBitmap .GetByte (_abcb -_abe );if _dfb !=nil {return _dfb ;
};_cgd =int (_faf );};_abcb ++;}else {_cgd <<=1;};};return nil ;};func (_dfeed *TextRegion )readHuffmanFlags ()error {var (_afaf int ;_cffg uint64 ;_fgda error ;);_ ,_fgda =_dfeed ._cgde .ReadBit ();if _fgda !=nil {return _fgda ;};_afaf ,_fgda =_dfeed ._cgde .ReadBit ();
if _fgda !=nil {return _fgda ;};_dfeed .SbHuffRSize =int8 (_afaf );_cffg ,_fgda =_dfeed ._cgde .ReadBits (2);if _fgda !=nil {return _fgda ;};_dfeed .SbHuffRDY =int8 (_cffg )&0xf;_cffg ,_fgda =_dfeed ._cgde .ReadBits (2);if _fgda !=nil {return _fgda ;};
_dfeed .SbHuffRDX =int8 (_cffg )&0xf;_cffg ,_fgda =_dfeed ._cgde .ReadBits (2);if _fgda !=nil {return _fgda ;};_dfeed .SbHuffRDHeight =int8 (_cffg )&0xf;_cffg ,_fgda =_dfeed ._cgde .ReadBits (2);if _fgda !=nil {return _fgda ;};_dfeed .SbHuffRDWidth =int8 (_cffg )&0xf;
_cffg ,_fgda =_dfeed ._cgde .ReadBits (2);if _fgda !=nil {return _fgda ;};_dfeed .SbHuffDT =int8 (_cffg )&0xf;_cffg ,_fgda =_dfeed ._cgde .ReadBits (2);if _fgda !=nil {return _fgda ;};_dfeed .SbHuffDS =int8 (_cffg )&0xf;_cffg ,_fgda =_dfeed ._cgde .ReadBits (2);
if _fgda !=nil {return _fgda ;};_dfeed .SbHuffFS =int8 (_cffg )&0xf;return nil ;};func (_cfaa *RegionSegment )String ()string {_dabg :=&_eb .Builder {};_dabg .WriteString ("\u0009[\u0052E\u0047\u0049\u004f\u004e\u0020S\u0045\u0047M\u0045\u004e\u0054\u005d\u000a");
_dabg .WriteString (_gc .Sprintf ("\t\u0009\u002d\u0020\u0042\u0069\u0074m\u0061\u0070\u0020\u0028\u0077\u0069d\u0074\u0068\u002c\u0020\u0068\u0065\u0069g\u0068\u0074\u0029\u0020\u005b\u0025\u0064\u0078\u0025\u0064]\u000a",_cfaa .BitmapWidth ,_cfaa .BitmapHeight ));
_dabg .WriteString (_gc .Sprintf ("\u0009\u0009\u002d\u0020L\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0028\u0078,\u0079)\u003a\u0020\u005b\u0025\u0064\u002c\u0025d\u005d\u000a",_cfaa .XLocation ,_cfaa .YLocation ));_dabg .WriteString (_gc .Sprintf ("\t\u0009\u002d\u0020\u0043\u006f\u006db\u0069\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070e\u0072\u0061\u0074o\u0072:\u0020\u0025\u0073",_cfaa .CombinaionOperator ));
return _dabg .String ();};func (_abcbc *SymbolDictionary )decodeRefinedSymbol (_acg ,_effa uint32 )error {var (_ffgf int ;_ceac ,_dfbfa int32 ;);if _abcbc .IsHuffmanEncoded {_egef ,_feea :=_abcbc ._fbad .ReadBits (byte (_abcbc ._gffb ));if _feea !=nil {return _feea ;
};_ffgf =int (_egef );_bedff ,_feea :=_gef .GetStandardTable (15);if _feea !=nil {return _feea ;};_cbcf ,_feea :=_bedff .Decode (_abcbc ._fbad );if _feea !=nil {return _feea ;};_ceac =int32 (_cbcf );_cbcf ,_feea =_bedff .Decode (_abcbc ._fbad );if _feea !=nil {return _feea ;
};_dfbfa =int32 (_cbcf );_bedff ,_feea =_gef .GetStandardTable (1);if _feea !=nil {return _feea ;};if _ ,_feea =_bedff .Decode (_abcbc ._fbad );_feea !=nil {return _feea ;};_abcbc ._fbad .Align ();}else {_dege ,_aeaf :=_abcbc ._geee .DecodeIAID (uint64 (_abcbc ._gffb ),_abcbc ._cagef );
if _aeaf !=nil {return _aeaf ;};_ffgf =int (_dege );_ceac ,_aeaf =_abcbc ._geee .DecodeInt (_abcbc ._dbab );if _aeaf !=nil {return _aeaf ;};_dfbfa ,_aeaf =_abcbc ._geee .DecodeInt (_abcbc ._ddbe );if _aeaf !=nil {return _aeaf ;};};if _cgeb :=_abcbc .setSymbolsArray ();
_cgeb !=nil {return _cgeb ;};_ceg :=_abcbc ._fbaa [_ffgf ];if _bgde :=_abcbc .decodeNewSymbols (_acg ,_effa ,_ceg ,_ceac ,_dfbfa );_bgde !=nil {return _bgde ;};if _abcbc .IsHuffmanEncoded {_abcbc ._fbad .Align ();};return nil ;};func (_adbd *Header )readHeaderFlags ()error {const _edef ="\u0072e\u0061d\u0048\u0065\u0061\u0064\u0065\u0072\u0046\u006c\u0061\u0067\u0073";
_egb ,_aadb :=_adbd .Reader .ReadBit ();if _aadb !=nil {return _gb .Wrap (_aadb ,_edef ,"r\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067");};if _egb !=0{_adbd .RetainFlag =true ;};_egb ,_aadb =_adbd .Reader .ReadBit ();if _aadb !=nil {return _gb .Wrap (_aadb ,_edef ,"\u0070\u0061g\u0065\u0020\u0061s\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e");
};if _egb !=0{_adbd .PageAssociationFieldSize =true ;};_efe ,_aadb :=_adbd .Reader .ReadBits (6);if _aadb !=nil {return _gb .Wrap (_aadb ,_edef ,"\u0073\u0065\u0067m\u0065\u006e\u0074\u0020\u0074\u0079\u0070\u0065");};_adbd .Type =Type (int (_efe ));return nil ;
};func (_feb *GenericRefinementRegion )decodeOptimized (_acf ,_de ,_bg ,_cc ,_dbd ,_cgg ,_fc int )error {var (_feg error ;_ae int ;_fcc int ;);_dbcg :=_acf -int (_feb .ReferenceDY );if _cge :=int (-_feb .ReferenceDX );_cge > 0{_ae =_cge ;};_eef :=_feb .ReferenceBitmap .GetByteIndex (_ae ,_dbcg );
if _feb .ReferenceDX > 0{_fcc =int (_feb .ReferenceDX );};_dab :=_feb .RegionBitmap .GetByteIndex (_fcc ,_acf );switch _feb .TemplateID {case 0:_feg =_feb .decodeTemplate (_acf ,_de ,_bg ,_cc ,_dbd ,_cgg ,_fc ,_dab ,_dbcg ,_eef ,_feb ._gbb );case 1:_feg =_feb .decodeTemplate (_acf ,_de ,_bg ,_cc ,_dbd ,_cgg ,_fc ,_dab ,_dbcg ,_eef ,_feb ._dbb );
};return _feg ;};func (_cafg *SymbolDictionary )readRegionFlags ()error {var (_aabg uint64 ;_dfdd int ;);_ ,_feda :=_cafg ._fbad .ReadBits (3);if _feda !=nil {return _feda ;};_dfdd ,_feda =_cafg ._fbad .ReadBit ();if _feda !=nil {return _feda ;};_cafg .SdrTemplate =int8 (_dfdd );
_aabg ,_feda =_cafg ._fbad .ReadBits (2);if _feda !=nil {return _feda ;};_cafg .SdTemplate =int8 (_aabg &0xf);_dfdd ,_feda =_cafg ._fbad .ReadBit ();if _feda !=nil {return _feda ;};if _dfdd ==1{_cafg ._gffe =true ;};_dfdd ,_feda =_cafg ._fbad .ReadBit ();
if _feda !=nil {return _feda ;};if _dfdd ==1{_cafg ._eged =true ;};_dfdd ,_feda =_cafg ._fbad .ReadBit ();if _feda !=nil {return _feda ;};if _dfdd ==1{_cafg .SdHuffAggInstanceSelection =true ;};_dfdd ,_feda =_cafg ._fbad .ReadBit ();if _feda !=nil {return _feda ;
};_cafg .SdHuffBMSizeSelection =int8 (_dfdd );_aabg ,_feda =_cafg ._fbad .ReadBits (2);if _feda !=nil {return _feda ;};_cafg .SdHuffDecodeWidthSelection =int8 (_aabg &0xf);_aabg ,_feda =_cafg ._fbad .ReadBits (2);if _feda !=nil {return _feda ;};_cafg .SdHuffDecodeHeightSelection =int8 (_aabg &0xf);
_dfdd ,_feda =_cafg ._fbad .ReadBit ();if _feda !=nil {return _feda ;};if _dfdd ==1{_cafg .UseRefinementAggregation =true ;};_dfdd ,_feda =_cafg ._fbad .ReadBit ();if _feda !=nil {return _feda ;};if _dfdd ==1{_cafg .IsHuffmanEncoded =true ;};return nil ;
};func (_bfgf *GenericRegion )overrideAtTemplate0b (_cgfc ,_faad ,_ccd ,_gee ,_ggca ,_ffaf int )int {if _bfgf .GBAtOverride [0]{_cgfc &=0xFFFD;if _bfgf .GBAtY [0]==0&&_bfgf .GBAtX [0]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [0]&0x1))<<1;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [0]),_ccd +int (_bfgf .GBAtY [0])))<<1;};};if _bfgf .GBAtOverride [1]{_cgfc &=0xDFFF;if _bfgf .GBAtY [1]==0&&_bfgf .GBAtX [1]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [1]&0x1))<<13;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [1]),_ccd +int (_bfgf .GBAtY [1])))<<13;};};if _bfgf .GBAtOverride [2]{_cgfc &=0xFDFF;if _bfgf .GBAtY [2]==0&&_bfgf .GBAtX [2]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [2]&0x1))<<9;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [2]),_ccd +int (_bfgf .GBAtY [2])))<<9;};};if _bfgf .GBAtOverride [3]{_cgfc &=0xBFFF;if _bfgf .GBAtY [3]==0&&_bfgf .GBAtX [3]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [3]&0x1))<<14;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [3]),_ccd +int (_bfgf .GBAtY [3])))<<14;};};if _bfgf .GBAtOverride [4]{_cgfc &=0xEFFF;if _bfgf .GBAtY [4]==0&&_bfgf .GBAtX [4]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [4]&0x1))<<12;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [4]),_ccd +int (_bfgf .GBAtY [4])))<<12;};};if _bfgf .GBAtOverride [5]{_cgfc &=0xFFDF;if _bfgf .GBAtY [5]==0&&_bfgf .GBAtX [5]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [5]&0x1))<<5;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [5]),_ccd +int (_bfgf .GBAtY [5])))<<5;};};if _bfgf .GBAtOverride [6]{_cgfc &=0xFFFB;if _bfgf .GBAtY [6]==0&&_bfgf .GBAtX [6]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [6]&0x1))<<2;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [6]),_ccd +int (_bfgf .GBAtY [6])))<<2;};};if _bfgf .GBAtOverride [7]{_cgfc &=0xFFF7;if _bfgf .GBAtY [7]==0&&_bfgf .GBAtX [7]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [7]&0x1))<<3;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [7]),_ccd +int (_bfgf .GBAtY [7])))<<3;};};if _bfgf .GBAtOverride [8]{_cgfc &=0xF7FF;if _bfgf .GBAtY [8]==0&&_bfgf .GBAtX [8]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [8]&0x1))<<11;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [8]),_ccd +int (_bfgf .GBAtY [8])))<<11;};};if _bfgf .GBAtOverride [9]{_cgfc &=0xFFEF;if _bfgf .GBAtY [9]==0&&_bfgf .GBAtX [9]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [9]&0x1))<<4;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [9]),_ccd +int (_bfgf .GBAtY [9])))<<4;};};if _bfgf .GBAtOverride [10]{_cgfc &=0x7FFF;if _bfgf .GBAtY [10]==0&&_bfgf .GBAtX [10]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [10]&0x1))<<15;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [10]),_ccd +int (_bfgf .GBAtY [10])))<<15;};};if _bfgf .GBAtOverride [11]{_cgfc &=0xFDFF;if _bfgf .GBAtY [11]==0&&_bfgf .GBAtX [11]>=-int8 (_ggca ){_cgfc |=(_gee >>uint (int8 (_ffaf )-_bfgf .GBAtX [11]&0x1))<<10;
}else {_cgfc |=int (_bfgf .getPixel (_faad +int (_bfgf .GBAtX [11]),_ccd +int (_bfgf .GBAtY [11])))<<10;};};return _cgfc ;};func (_agcdg *PageInformationSegment )readContainsRefinement ()error {_fdcbe ,_ceaf :=_agcdg ._efda .ReadBit ();if _ceaf !=nil {return _ceaf ;
};if _fdcbe ==1{_agcdg ._cffa =true ;};return nil ;};func (_ffce *GenericRegion )writeGBAtPixels (_agaa _ga .BinaryWriter )(_cfdb int ,_fdfd error ){const _ggcg ="\u0077r\u0069t\u0065\u0047\u0042\u0041\u0074\u0050\u0069\u0078\u0065\u006c\u0073";if _ffce .UseMMR {return 0,nil ;
};_bgee :=1;if _ffce .GBTemplate ==0{_bgee =4;}else if _ffce .UseExtTemplates {_bgee =12;};if len (_ffce .GBAtX )!=_bgee {return 0,_gb .Errorf (_ggcg ,"\u0067\u0062\u0020\u0061\u0074\u0020\u0070\u0061\u0069\u0072\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020d\u006f\u0065\u0073\u006e\u0027\u0074\u0020m\u0061\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0047\u0042\u0041t\u0058\u0020\u0073\u006c\u0069\u0063\u0065\u0020\u006c\u0065\u006e");
};if len (_ffce .GBAtY )!=_bgee {return 0,_gb .Errorf (_ggcg ,"\u0067\u0062\u0020\u0061\u0074\u0020\u0070\u0061\u0069\u0072\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020d\u006f\u0065\u0073\u006e\u0027\u0074\u0020m\u0061\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0047\u0042\u0041t\u0059\u0020\u0073\u006c\u0069\u0063\u0065\u0020\u006c\u0065\u006e");
};for _facb :=0;_facb < _bgee ;_facb ++{if _fdfd =_agaa .WriteByte (byte (_ffce .GBAtX [_facb ]));_fdfd !=nil {return _cfdb ,_gb .Wrap (_fdfd ,_ggcg ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0058");};_cfdb ++;if _fdfd =_agaa .WriteByte (byte (_ffce .GBAtY [_facb ]));
_fdfd !=nil {return _cfdb ,_gb .Wrap (_fdfd ,_ggcg ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0059");};_cfdb ++;};return _cfdb ,nil ;};func (_edg *GenericRefinementRegion )String ()string {_gfd :=&_eb .Builder {};_gfd .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");
_gfd .WriteString (_edg .RegionInfo .String ()+"\u000a");_gfd .WriteString (_gc .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0052\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_edg .IsTPGROn ));_gfd .WriteString (_gc .Sprintf ("\u0009-\u0020T\u0065\u006d\u0070\u006c\u0061t\u0065\u0049D\u003a\u0020\u0025\u0076\u000a",_edg .TemplateID ));
_gfd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_edg .GrAtX ));_gfd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_edg .GrAtY ));
_gfd .WriteString (_gc .Sprintf ("\u0009-\u0020R\u0065\u0066\u0065\u0072\u0065n\u0063\u0065D\u0058\u0020\u0025\u0076\u000a",_edg .ReferenceDX ));_gfd .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0052ef\u0065\u0072\u0065\u006e\u0063\u0044\u0065\u0059\u003a\u0020\u0025\u0076\u000a",_edg .ReferenceDY ));
return _gfd .String ();};func (_cgge *TextRegion )setCodingStatistics ()error {if _cgge ._egeb ==nil {_cgge ._egeb =_ee .NewStats (512,1);};if _cgge ._fafdb ==nil {_cgge ._fafdb =_ee .NewStats (512,1);};if _cgge ._gedc ==nil {_cgge ._gedc =_ee .NewStats (512,1);
};if _cgge ._caaf ==nil {_cgge ._caaf =_ee .NewStats (512,1);};if _cgge ._cae ==nil {_cgge ._cae =_ee .NewStats (512,1);};if _cgge ._gfbc ==nil {_cgge ._gfbc =_ee .NewStats (512,1);};if _cgge ._cfgb ==nil {_cgge ._cfgb =_ee .NewStats (512,1);};if _cgge ._gebb ==nil {_cgge ._gebb =_ee .NewStats (1<<uint (_cgge ._addf ),1);
};if _cgge ._gca ==nil {_cgge ._gca =_ee .NewStats (512,1);};if _cgge ._efafe ==nil {_cgge ._efafe =_ee .NewStats (512,1);};if _cgge ._cdfa ==nil {var _fffb error ;_cgge ._cdfa ,_fffb =_ee .New (_cgge ._cgde );if _fffb !=nil {return _fffb ;};};return nil ;
};func (_eedf *TextRegion )decodeID ()(int64 ,error ){if _eedf .IsHuffmanEncoded {if _eedf ._adeb ==nil {_gggcf ,_ddec :=_eedf ._cgde .ReadBits (byte (_eedf ._addf ));return int64 (_gggcf ),_ddec ;};return _eedf ._adeb .Decode (_eedf ._cgde );};return _eedf ._cdfa .DecodeIAID (uint64 (_eedf ._addf ),_eedf ._gebb );
};func (_gfag *GenericRegion )setOverrideFlag (_dbcd int ){_gfag .GBAtOverride [_dbcd ]=true ;_gfag ._ggc =true ;};func NewRegionSegment (r _ga .StreamReader )*RegionSegment {return &RegionSegment {_adbg :r }};func (_gacc *TextRegion )Init (header *Header ,r _ga .StreamReader )error {_gacc .Header =header ;
_gacc ._cgde =r ;_gacc .RegionInfo =NewRegionSegment (_gacc ._cgde );return _gacc .parseHeader ();};func (_ff *GenericRefinementRegion )GetRegionInfo ()*RegionSegment {return _ff .RegionInfo };func (_gac *GenericRegion )String ()string {_gafe :=&_eb .Builder {};
_gafe .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");_gafe .WriteString (_gac .RegionSegment .String ()+"\u000a");_gafe .WriteString (_gc .Sprintf ("\u0009\u002d\u0020Us\u0065\u0045\u0078\u0074\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0073\u003a\u0020\u0025\u0076\u000a",_gac .UseExtTemplates ));
_gafe .WriteString (_gc .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0044\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_gac .IsTPGDon ));_gafe .WriteString (_gc .Sprintf ("\u0009-\u0020G\u0042\u0054\u0065\u006d\u0070l\u0061\u0074e\u003a\u0020\u0025\u0064\u000a",_gac .GBTemplate ));
_gafe .WriteString (_gc .Sprintf ("\t\u002d \u0049\u0073\u004d\u004d\u0052\u0045\u006e\u0063o\u0064\u0065\u0064\u003a %\u0076\u000a",_gac .IsMMREncoded ));_gafe .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_gac .GBAtX ));
_gafe .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_gac .GBAtY ));_gafe .WriteString (_gc .Sprintf ("\t\u002d \u0047\u0042\u0041\u0074\u004f\u0076\u0065\u0072r\u0069\u0064\u0065\u003a %\u0076\u000a",_gac .GBAtOverride ));
return _gafe .String ();};func (_afge *PatternDictionary )Init (h *Header ,r _ga .StreamReader )error {_afge ._gffc =r ;return _afge .parseHeader ();};func (_fege *PageInformationSegment )parseHeader ()(_dfg error ){_gbce .Log .Trace ("\u005b\u0050\u0061\u0067\u0065I\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065\u0067m\u0065\u006e\u0074\u005d\u0020\u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065\u0061\u0064\u0065\u0072\u002e\u002e\u002e");
defer func (){var _cce ="[\u0050\u0061\u0067\u0065\u0049\u006e\u0066\u006f\u0072m\u0061\u0074\u0069\u006f\u006e\u0053\u0065gm\u0065\u006e\u0074\u005d \u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065ad\u0065\u0072 \u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064";
if _dfg !=nil {_cce +="\u0020\u0077\u0069t\u0068\u0020\u0065\u0072\u0072\u006f\u0072\u0020"+_dfg .Error ();}else {_cce +="\u0020\u0073\u0075\u0063\u0063\u0065\u0073\u0073\u0066\u0075\u006c\u006c\u0079";};_gbce .Log .Trace (_cce );}();if _dfg =_fege .readWidthAndHeight ();
_dfg !=nil {return _dfg ;};if _dfg =_fege .readResolution ();_dfg !=nil {return _dfg ;};_ ,_dfg =_fege ._efda .ReadBit ();if _dfg !=nil {return _dfg ;};if _dfg =_fege .readCombinationOperatorOverrideAllowed ();_dfg !=nil {return _dfg ;};if _dfg =_fege .readRequiresAuxiliaryBuffer ();
_dfg !=nil {return _dfg ;};if _dfg =_fege .readCombinationOperator ();_dfg !=nil {return _dfg ;};if _dfg =_fege .readDefaultPixelValue ();_dfg !=nil {return _dfg ;};if _dfg =_fege .readContainsRefinement ();_dfg !=nil {return _dfg ;};if _dfg =_fege .readIsLossless ();
_dfg !=nil {return _dfg ;};if _dfg =_fege .readIsStriped ();_dfg !=nil {return _dfg ;};if _dfg =_fege .readMaxStripeSize ();_dfg !=nil {return _dfg ;};if _dfg =_fege .checkInput ();_dfg !=nil {return _dfg ;};_gbce .Log .Trace ("\u0025\u0073",_fege );return nil ;
};func (_acag *PageInformationSegment )readCombinationOperator ()error {_dgb ,_cbef :=_acag ._efda .ReadBits (2);if _cbef !=nil {return _cbef ;};_acag ._edfb =_ge .CombinationOperator (int (_dgb ));return nil ;};func (_ccfb *Header )Encode (w _ga .BinaryWriter )(_cafc int ,_bcaa error ){const _bgb ="\u0048\u0065\u0061d\u0065\u0072\u002e\u0057\u0072\u0069\u0074\u0065";
var _deab _ga .BinaryWriter ;_gbce .Log .Trace ("\u005b\u0053\u0045G\u004d\u0045\u004e\u0054-\u0048\u0045\u0041\u0044\u0045\u0052\u005d[\u0045\u004e\u0043\u004f\u0044\u0045\u005d\u0020\u0042\u0065\u0067\u0069\u006e\u0073");defer func (){if _bcaa !=nil {_gbce .Log .Trace ("[\u0053\u0045\u0047\u004d\u0045\u004eT\u002d\u0048\u0045\u0041\u0044\u0045R\u005d\u005b\u0045\u004e\u0043\u004f\u0044E\u005d\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u002e\u0020%\u0076",_bcaa );
}else {_gbce .Log .Trace ("\u005b\u0053\u0045\u0047ME\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0025\u0076",_ccfb );_gbce .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045N\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u005b\u0045\u004e\u0043O\u0044\u0045\u005d\u0020\u0046\u0069\u006ei\u0073\u0068\u0065\u0064");
};}();w .FinishByte ();if _ccfb .SegmentData !=nil {_bgec ,_gecg :=_ccfb .SegmentData .(SegmentEncoder );if !_gecg {return 0,_gb .Errorf (_bgb ,"\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u003a\u0020\u0025\u0054\u0020\u0064\u006f\u0065s\u006e\u0027\u0074\u0020\u0069\u006d\u0070\u006c\u0065\u006d\u0065\u006e\u0074 \u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0045\u006e\u0063\u006f\u0064er\u0020\u0069\u006e\u0074\u0065\u0072\u0066\u0061\u0063\u0065",_ccfb .SegmentData );
};_deab =_ga .BufferedMSB ();_cafc ,_bcaa =_bgec .Encode (_deab );if _bcaa !=nil {return 0,_gb .Wrap (_bcaa ,_bgb ,"");};_ccfb .SegmentDataLength =uint64 (_cafc );};if _ccfb .pageSize ()==4{_ccfb .PageAssociationFieldSize =true ;};var _gcdb int ;_gcdb ,_bcaa =_ccfb .writeSegmentNumber (w );
if _bcaa !=nil {return 0,_gb .Wrap (_bcaa ,_bgb ,"");};_cafc +=_gcdb ;if _bcaa =_ccfb .writeFlags (w );_bcaa !=nil {return _cafc ,_gb .Wrap (_bcaa ,_bgb ,"");};_cafc ++;_gcdb ,_bcaa =_ccfb .writeReferredToCount (w );if _bcaa !=nil {return 0,_gb .Wrap (_bcaa ,_bgb ,"");
};_cafc +=_gcdb ;_gcdb ,_bcaa =_ccfb .writeReferredToSegments (w );if _bcaa !=nil {return 0,_gb .Wrap (_bcaa ,_bgb ,"");};_cafc +=_gcdb ;_gcdb ,_bcaa =_ccfb .writeSegmentPageAssociation (w );if _bcaa !=nil {return 0,_gb .Wrap (_bcaa ,_bgb ,"");};_cafc +=_gcdb ;
_gcdb ,_bcaa =_ccfb .writeSegmentDataLength (w );if _bcaa !=nil {return 0,_gb .Wrap (_bcaa ,_bgb ,"");};_cafc +=_gcdb ;_ccfb .HeaderLength =int64 (_cafc )-int64 (_ccfb .SegmentDataLength );if _deab !=nil {if _ ,_bcaa =w .Write (_deab .Data ());_bcaa !=nil {return _cafc ,_gb .Wrap (_bcaa ,_bgb ,"\u0077r\u0069t\u0065\u0020\u0073\u0065\u0067m\u0065\u006et\u0020\u0064\u0061\u0074\u0061");
};};return _cafc ,nil ;};func (_ddcg *SymbolDictionary )decodeNewSymbols (_cfgf ,_ggcge uint32 ,_aadc *_ge .Bitmap ,_deee ,_ffgg int32 )error {if _ddcg ._fecg ==nil {_ddcg ._fecg =_cag (_ddcg ._fbad ,nil );if _ddcg ._geee ==nil {var _addga error ;_ddcg ._geee ,_addga =_ee .New (_ddcg ._fbad );
if _addga !=nil {return _addga ;};};if _ddcg ._fcda ==nil {_ddcg ._fcda =_ee .NewStats (65536,1);};};_ddcg ._fecg .setParameters (_ddcg ._fcda ,_ddcg ._geee ,_ddcg .SdrTemplate ,_cfgf ,_ggcge ,_aadc ,_deee ,_ffgg ,false ,_ddcg .SdrATX ,_ddcg .SdrATY );
return _ddcg .addSymbol (_ddcg ._fecg );};func (_ceef *GenericRegion )overrideAtTemplate2 (_fcbf ,_ebbb ,_bdge ,_bcf ,_dcab int )int {_fcbf &=0x3FB;if _ceef .GBAtY [0]==0&&_ceef .GBAtX [0]>=-int8 (_dcab ){_fcbf |=(_bcf >>uint (7-(int8 (_dcab )+_ceef .GBAtX [0]))&0x1)<<2;
}else {_fcbf |=int (_ceef .getPixel (_ebbb +int (_ceef .GBAtX [0]),_bdge +int (_ceef .GBAtY [0])))<<2;};return _fcbf ;};func (_eba *Header )writeReferredToSegments (_eabc _ga .BinaryWriter )(_gada int ,_bdd error ){const _ddb ="\u0077\u0072\u0069te\u0052\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073";
var (_egaf uint16 ;_cfac uint32 ;);_cdgg :=_eba .referenceSize ();_gggd :=1;_fddb :=make ([]byte ,_cdgg );for _ ,_abdf :=range _eba .RTSNumbers {switch _cdgg {case 4:_cfac =uint32 (_abdf );_e .BigEndian .PutUint32 (_fddb ,_cfac );_gggd ,_bdd =_eabc .Write (_fddb );
if _bdd !=nil {return 0,_gb .Wrap (_bdd ,_ddb ,"u\u0069\u006e\u0074\u0033\u0032\u0020\u0073\u0069\u007a\u0065");};case 2:_egaf =uint16 (_abdf );_e .BigEndian .PutUint16 (_fddb ,_egaf );_gggd ,_bdd =_eabc .Write (_fddb );if _bdd !=nil {return 0,_gb .Wrap (_bdd ,_ddb ,"\u0075\u0069\u006e\u0074\u0031\u0036");
};default:if _bdd =_eabc .WriteByte (byte (_abdf ));_bdd !=nil {return 0,_gb .Wrap (_bdd ,_ddb ,"\u0075\u0069\u006et\u0038");};};_gada +=_gggd ;};return _gada ,nil ;};func (_bgge *TextRegion )decodeDfs ()(int64 ,error ){if _bgge .IsHuffmanEncoded {if _bgge .SbHuffFS ==3{if _bgge ._gadb ==nil {var _cbdee error ;
_bgge ._gadb ,_cbdee =_bgge .getUserTable (0);if _cbdee !=nil {return 0,_cbdee ;};};return _bgge ._gadb .Decode (_bgge ._cgde );};_dcfb ,_cbfe :=_gef .GetStandardTable (6+int (_bgge .SbHuffFS ));if _cbfe !=nil {return 0,_cbfe ;};return _dcfb .Decode (_bgge ._cgde );
};_gafd ,_fbegf :=_bgge ._cdfa .DecodeInt (_bgge ._fafdb );if _fbegf !=nil {return 0,_fbegf ;};return int64 (_gafd ),nil ;};func (_acb *GenericRefinementRegion )overrideAtTemplate0 (_cgce ,_afg ,_gba ,_fefc ,_ebda int )int {if _acb ._dbf [0]{_cgce &=0xfff7;
if _acb .GrAtY [0]==0&&int (_acb .GrAtX [0])>=-_ebda {_cgce |=(_fefc >>uint (7-(_ebda +int (_acb .GrAtX [0])))&0x1)<<3;}else {_cgce |=_acb .getPixel (_acb .RegionBitmap ,_afg +int (_acb .GrAtX [0]),_gba +int (_acb .GrAtY [0]))<<3;};};if _acb ._dbf [1]{_cgce &=0xefff;
if _acb .GrAtY [1]==0&&int (_acb .GrAtX [1])>=-_ebda {_cgce |=(_fefc >>uint (7-(_ebda +int (_acb .GrAtX [1])))&0x1)<<12;}else {_cgce |=_acb .getPixel (_acb .ReferenceBitmap ,_afg +int (_acb .GrAtX [1]),_gba +int (_acb .GrAtY [1]));};};return _cgce ;};func (_gafb *TableSegment )Init (h *Header ,r _ga .StreamReader )error {_gafb ._cadfd =r ;
return _gafb .parseHeader ();};func (_eccad *PatternDictionary )readPatternWidthAndHeight ()error {_gfee ,_acbe :=_eccad ._gffc .ReadByte ();if _acbe !=nil {return _acbe ;};_eccad .HdpWidth =_gfee ;_gfee ,_acbe =_eccad ._gffc .ReadByte ();if _acbe !=nil {return _acbe ;
};_eccad .HdpHeight =_gfee ;return nil ;};func (_cabfb *TextRegion )decodeIb (_gbdc ,_dcfbf int64 )(*_ge .Bitmap ,error ){const _ffcd ="\u0064\u0065\u0063\u006f\u0064\u0065\u0049\u0062";var (_febfd error ;_fgggf *_ge .Bitmap ;);if _gbdc ==0{if int (_dcfbf )> len (_cabfb .Symbols )-1{return nil ,_gb .Error (_ffcd ,"\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0049\u0042\u0020\u0062\u0069\u0074\u006d\u0061\u0070\u002e\u0020\u0069\u006e\u0064\u0065x\u0020\u006f\u0075\u0074\u0020o\u0066\u0020r\u0061\u006e\u0067\u0065");
};return _cabfb .Symbols [int (_dcfbf )],nil ;};var _gcge ,_aeab ,_aada ,_cdfcg int64 ;_gcge ,_febfd =_cabfb .decodeRdw ();if _febfd !=nil {return nil ,_gb .Wrap (_febfd ,_ffcd ,"");};_aeab ,_febfd =_cabfb .decodeRdh ();if _febfd !=nil {return nil ,_gb .Wrap (_febfd ,_ffcd ,"");
};_aada ,_febfd =_cabfb .decodeRdx ();if _febfd !=nil {return nil ,_gb .Wrap (_febfd ,_ffcd ,"");};_cdfcg ,_febfd =_cabfb .decodeRdy ();if _febfd !=nil {return nil ,_gb .Wrap (_febfd ,_ffcd ,"");};if _cabfb .IsHuffmanEncoded {if _ ,_febfd =_cabfb .decodeSymInRefSize ();
_febfd !=nil {return nil ,_gb .Wrap (_febfd ,_ffcd ,"");};_cabfb ._cgde .Align ();};_ggfa :=_cabfb .Symbols [_dcfbf ];_ggefb :=uint32 (_ggfa .Width );_fada :=uint32 (_ggfa .Height );_cbbc :=int32 (uint32 (_gcge )>>1)+int32 (_aada );_fabcd :=int32 (uint32 (_aeab )>>1)+int32 (_cdfcg );
if _cabfb ._fead ==nil {_cabfb ._fead =_cag (_cabfb ._cgde ,nil );};_cabfb ._fead .setParameters (_cabfb ._bgfa ,_cabfb ._cdfa ,_cabfb .SbrTemplate ,_ggefb +uint32 (_gcge ),_fada +uint32 (_aeab ),_ggfa ,_cbbc ,_fabcd ,false ,_cabfb .SbrATX ,_cabfb .SbrATY );
_fgggf ,_febfd =_cabfb ._fead .GetRegionBitmap ();if _febfd !=nil {return nil ,_gb .Wrap (_febfd ,_ffcd ,"\u0067\u0072\u0066");};if _cabfb .IsHuffmanEncoded {_cabfb ._cgde .Align ();};return _fgggf ,nil ;};func (_fbeb *SymbolDictionary )encodeRefinementATFlags (_bdf _ga .BinaryWriter )(_gcbag int ,_gbdb error ){const _aegb ="\u0065\u006e\u0063od\u0065\u0052\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074\u0041\u0054\u0046\u006c\u0061\u0067\u0073";
if !_fbeb .UseRefinementAggregation ||_fbeb .SdrTemplate !=0{return 0,nil ;};for _cffc :=0;_cffc < 2;_cffc ++{if _gbdb =_bdf .WriteByte (byte (_fbeb .SdrATX [_cffc ]));_gbdb !=nil {return _gcbag ,_gb .Wrapf (_gbdb ,_aegb ,"\u0053\u0064\u0072\u0041\u0054\u0058\u005b\u0025\u0064\u005d",_cffc );
};_gcbag ++;if _gbdb =_bdf .WriteByte (byte (_fbeb .SdrATY [_cffc ]));_gbdb !=nil {return _gcbag ,_gb .Wrapf (_gbdb ,_aegb ,"\u0053\u0064\u0072\u0041\u0054\u0059\u005b\u0025\u0064\u005d",_cffc );};_gcbag ++;};return _gcbag ,nil ;};func (_bdcd *SymbolDictionary )huffDecodeRefAggNInst ()(int64 ,error ){if !_bdcd .SdHuffAggInstanceSelection {_cffdf ,_ebbd :=_gef .GetStandardTable (1);
if _ebbd !=nil {return 0,_ebbd ;};return _cffdf .Decode (_bdcd ._fbad );};if _bdcd ._dbac ==nil {var (_fdbg int ;_ecae error ;);if _bdcd .SdHuffDecodeHeightSelection ==3{_fdbg ++;};if _bdcd .SdHuffDecodeWidthSelection ==3{_fdbg ++;};if _bdcd .SdHuffBMSizeSelection ==3{_fdbg ++;
};_bdcd ._dbac ,_ecae =_bdcd .getUserTable (_fdbg );if _ecae !=nil {return 0,_ecae ;};};return _bdcd ._dbac .Decode (_bdcd ._fbad );};func (_ecad *SymbolDictionary )setExportedSymbols (_beeaf []int ){for _ddfaa :=uint32 (0);_ddfaa < _ecad ._gcba +_ecad .NumberOfNewSymbols ;
_ddfaa ++{if _beeaf [_ddfaa ]==1{var _cdce *_ge .Bitmap ;if _ddfaa < _ecad ._gcba {_cdce =_ecad ._gaeg [_ddfaa ];}else {_cdce =_ecad ._fabff [_ddfaa -_ecad ._gcba ];};_gbce .Log .Trace ("\u005bS\u0059\u004dB\u004f\u004c\u002d\u0044I\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u0020\u0041\u0064\u0064 E\u0078\u0070\u006fr\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c:\u0020\u0027%\u0073\u0027",_cdce );
_ecad ._ddgdg =append (_ecad ._ddgdg ,_cdce );};};};func (_dcad *SymbolDictionary )encodeNumSyms (_gdbc _ga .BinaryWriter )(_ebde int ,_eada error ){const _egfa ="\u0065\u006e\u0063\u006f\u0064\u0065\u004e\u0075\u006d\u0053\u0079\u006d\u0073";_ffbcc :=make ([]byte ,4);
_e .BigEndian .PutUint32 (_ffbcc ,_dcad .NumberOfExportedSymbols );if _ebde ,_eada =_gdbc .Write (_ffbcc );_eada !=nil {return _ebde ,_gb .Wrap (_eada ,_egfa ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};_e .BigEndian .PutUint32 (_ffbcc ,_dcad .NumberOfNewSymbols );
_caagd ,_eada :=_gdbc .Write (_ffbcc );if _eada !=nil {return _ebde ,_gb .Wrap (_eada ,_egfa ,"n\u0065\u0077\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};return _ebde +_caagd ,nil ;};func (_bccb *SymbolDictionary )setSymbolsArray ()error {if _bccb ._gaeg ==nil {if _bcfa :=_bccb .retrieveImportSymbols ();
_bcfa !=nil {return _bcfa ;};};if _bccb ._fbaa ==nil {_bccb ._fbaa =append (_bccb ._fbaa ,_bccb ._gaeg ...);};return nil ;};var _ SegmentEncoder =&RegionSegment {};func NewHeader (d Documenter ,r _ga .StreamReader ,offset int64 ,organizationType OrganizationType )(*Header ,error ){_fge :=&Header {Reader :r };
if _baa :=_fge .parse (d ,r ,offset ,organizationType );_baa !=nil {return nil ,_gb .Wrap (_baa ,"\u004ee\u0077\u0048\u0065\u0061\u0064\u0065r","");};return _fge ,nil ;};func (_faff *SymbolDictionary )setAtPixels ()error {if _faff .IsHuffmanEncoded {return nil ;
};_bcg :=1;if _faff .SdTemplate ==0{_bcg =4;};if _bggf :=_faff .readAtPixels (_bcg );_bggf !=nil {return _bggf ;};return nil ;};func (_cbea *SymbolDictionary )decodeThroughTextRegion (_gdbf ,_dega ,_debb uint32 )error {if _cbea ._ggfd ==nil {_cbea ._ggfd =_afgeb (_cbea ._fbad ,nil );
_cbea ._ggfd .setContexts (_cbea ._fcda ,_ee .NewStats (512,1),_ee .NewStats (512,1),_ee .NewStats (512,1),_ee .NewStats (512,1),_cbea ._cagef ,_ee .NewStats (512,1),_ee .NewStats (512,1),_ee .NewStats (512,1),_ee .NewStats (512,1));};if _gdfb :=_cbea .setSymbolsArray ();
_gdfb !=nil {return _gdfb ;};_cbea ._ggfd .setParameters (_cbea ._geee ,_cbea .IsHuffmanEncoded ,true ,_gdbf ,_dega ,_debb ,1,_cbea ._gcba +_cbea ._dcbc ,0,0,0,1,0,0,0,0,0,0,0,0,0,_cbea .SdrTemplate ,_cbea .SdrATX ,_cbea .SdrATY ,_cbea ._fbaa ,_cbea ._gffb );
return _cbea .addSymbol (_cbea ._ggfd );};func _cag (_dfc _ga .StreamReader ,_fac *Header )*GenericRefinementRegion {return &GenericRefinementRegion {_aa :_dfc ,RegionInfo :NewRegionSegment (_dfc ),_cf :_fac ,_gbb :&template0 {},_dbb :&template1 {}};};
func (_gefc *PatternDictionary )setGbAtPixels (){if _gefc .HDTemplate ==0{_gefc .GBAtX =make ([]int8 ,4);_gefc .GBAtY =make ([]int8 ,4);_gefc .GBAtX [0]=-int8 (_gefc .HdpWidth );_gefc .GBAtY [0]=0;_gefc .GBAtX [1]=-3;_gefc .GBAtY [1]=-1;_gefc .GBAtX [2]=2;
_gefc .GBAtY [2]=-2;_gefc .GBAtX [3]=-2;_gefc .GBAtY [3]=-2;}else {_gefc .GBAtX =[]int8 {-int8 (_gefc .HdpWidth )};_gefc .GBAtY =[]int8 {0};};};type EndOfStripe struct{_a _ga .StreamReader ;_da int ;};func (_decg *GenericRegion )updateOverrideFlags ()error {const _bda ="\u0075\u0070\u0064\u0061te\u004f\u0076\u0065\u0072\u0072\u0069\u0064\u0065\u0046\u006c\u0061\u0067\u0073";
if _decg .GBAtX ==nil ||_decg .GBAtY ==nil {return nil ;};if len (_decg .GBAtX )!=len (_decg .GBAtY ){return _gb .Errorf (_bda ,"i\u006eco\u0073i\u0073t\u0065\u006e\u0074\u0020\u0041T\u0020\u0070\u0069x\u0065\u006c\u002e\u0020\u0041m\u006f\u0075\u006et\u0020\u006f\u0066\u0020\u0027\u0078\u0027\u0020\u0070\u0069\u0078e\u006c\u0073\u003a %d\u002c\u0020\u0041\u006d\u006f\u0075n\u0074\u0020\u006f\u0066\u0020\u0027\u0079\u0027\u0020\u0070\u0069\u0078e\u006cs\u003a\u0020\u0025\u0064",len (_decg .GBAtX ),len (_decg .GBAtY ));
};_decg .GBAtOverride =make ([]bool ,len (_decg .GBAtX ));switch _decg .GBTemplate {case 0:if !_decg .UseExtTemplates {if _decg .GBAtX [0]!=3||_decg .GBAtY [0]!=-1{_decg .setOverrideFlag (0);};if _decg .GBAtX [1]!=-3||_decg .GBAtY [1]!=-1{_decg .setOverrideFlag (1);
};if _decg .GBAtX [2]!=2||_decg .GBAtY [2]!=-2{_decg .setOverrideFlag (2);};if _decg .GBAtX [3]!=-2||_decg .GBAtY [3]!=-2{_decg .setOverrideFlag (3);};}else {if _decg .GBAtX [0]!=-2||_decg .GBAtY [0]!=0{_decg .setOverrideFlag (0);};if _decg .GBAtX [1]!=0||_decg .GBAtY [1]!=-2{_decg .setOverrideFlag (1);
};if _decg .GBAtX [2]!=-2||_decg .GBAtY [2]!=-1{_decg .setOverrideFlag (2);};if _decg .GBAtX [3]!=-1||_decg .GBAtY [3]!=-2{_decg .setOverrideFlag (3);};if _decg .GBAtX [4]!=1||_decg .GBAtY [4]!=-2{_decg .setOverrideFlag (4);};if _decg .GBAtX [5]!=2||_decg .GBAtY [5]!=-1{_decg .setOverrideFlag (5);
};if _decg .GBAtX [6]!=-3||_decg .GBAtY [6]!=0{_decg .setOverrideFlag (6);};if _decg .GBAtX [7]!=-4||_decg .GBAtY [7]!=0{_decg .setOverrideFlag (7);};if _decg .GBAtX [8]!=2||_decg .GBAtY [8]!=-2{_decg .setOverrideFlag (8);};if _decg .GBAtX [9]!=3||_decg .GBAtY [9]!=-1{_decg .setOverrideFlag (9);
};if _decg .GBAtX [10]!=-2||_decg .GBAtY [10]!=-2{_decg .setOverrideFlag (10);};if _decg .GBAtX [11]!=-3||_decg .GBAtY [11]!=-1{_decg .setOverrideFlag (11);};};case 1:if _decg .GBAtX [0]!=3||_decg .GBAtY [0]!=-1{_decg .setOverrideFlag (0);};case 2:if _decg .GBAtX [0]!=2||_decg .GBAtY [0]!=-1{_decg .setOverrideFlag (0);
};case 3:if _decg .GBAtX [0]!=2||_decg .GBAtY [0]!=-1{_decg .setOverrideFlag (0);};};return nil ;};type PageInformationSegment struct{_efda _ga .StreamReader ;PageBMHeight int ;PageBMWidth int ;ResolutionX int ;ResolutionY int ;_bdbc bool ;_edfb _ge .CombinationOperator ;
_eae bool ;DefaultPixelValue uint8 ;_cffa bool ;IsLossless bool ;IsStripe bool ;MaxStripeSize uint16 ;};func (_ggfb *SymbolDictionary )huffDecodeBmSize ()(int64 ,error ){if _ggfb ._fdff ==nil {var (_beeg int ;_agdb error ;);if _ggfb .SdHuffDecodeHeightSelection ==3{_beeg ++;
};if _ggfb .SdHuffDecodeWidthSelection ==3{_beeg ++;};_ggfb ._fdff ,_agdb =_ggfb .getUserTable (_beeg );if _agdb !=nil {return 0,_agdb ;};};return _ggfb ._fdff .Decode (_ggfb ._fbad );};func (_cef *SymbolDictionary )setRefinementAtPixels ()error {if !_cef .UseRefinementAggregation ||_cef .SdrTemplate !=0{return nil ;
};if _gggb :=_cef .readRefinementAtPixels (2);_gggb !=nil {return _gggb ;};return nil ;};func (_eaee *TableSegment )StreamReader ()_ga .StreamReader {return _eaee ._cadfd };func (_ggcd *TextRegion )decodeIds ()(int64 ,error ){const _gdga ="\u0064e\u0063\u006f\u0064\u0065\u0049\u0064s";
if _ggcd .IsHuffmanEncoded {if _ggcd .SbHuffDS ==3{if _ggcd ._agef ==nil {_dfee :=0;if _ggcd .SbHuffFS ==3{_dfee ++;};var _fgef error ;_ggcd ._agef ,_fgef =_ggcd .getUserTable (_dfee );if _fgef !=nil {return 0,_gb .Wrap (_fgef ,_gdga ,"");};};return _ggcd ._agef .Decode (_ggcd ._cgde );
};_afcg ,_dfaf :=_gef .GetStandardTable (8+int (_ggcd .SbHuffDS ));if _dfaf !=nil {return 0,_gb .Wrap (_dfaf ,_gdga ,"");};return _afcg .Decode (_ggcd ._cgde );};_bbdg ,_fafa :=_ggcd ._cdfa .DecodeInt (_ggcd ._gedc );if _fafa !=nil {return 0,_gb .Wrap (_fafa ,_gdga ,"\u0063\u0078\u0049\u0041\u0044\u0053");
};return int64 (_bbdg ),nil ;};func (_gbdab *TableSegment )HtOOB ()int32 {return _gbdab ._ecgb };var _ _gef .BasicTabler =&TableSegment {};func (_bebd *Header )writeFlags (_fbga _ga .BinaryWriter )(_afcd error ){const _dcf ="\u0048\u0065\u0061\u0064\u0065\u0072\u002e\u0077\u0072\u0069\u0074\u0065F\u006c\u0061\u0067\u0073";
_efge :=byte (_bebd .Type );if _afcd =_fbga .WriteByte (_efge );_afcd !=nil {return _gb .Wrap (_afcd ,_dcf ,"\u0077\u0072\u0069ti\u006e\u0067\u0020\u0073\u0065\u0067\u006d\u0065\u006et\u0020t\u0079p\u0065 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064");
};if !_bebd .RetainFlag &&!_bebd .PageAssociationFieldSize {return nil ;};if _afcd =_fbga .SkipBits (-8);_afcd !=nil {return _gb .Wrap (_afcd ,_dcf ,"\u0073\u006bi\u0070\u0070\u0069\u006e\u0067\u0020\u0062\u0061\u0063\u006b\u0020\u0074\u0068\u0065\u0020\u0062\u0069\u0074\u0073\u0020\u0066\u0061il\u0065\u0064");
};var _ffde int ;if _bebd .RetainFlag {_ffde =1;};if _afcd =_fbga .WriteBit (_ffde );_afcd !=nil {return _gb .Wrap (_afcd ,_dcf ,"\u0072\u0065\u0074\u0061in\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067\u0073");};_ffde =0;if _bebd .PageAssociationFieldSize {_ffde =1;
};if _afcd =_fbga .WriteBit (_ffde );_afcd !=nil {return _gb .Wrap (_afcd ,_dcf ,"p\u0061\u0067\u0065\u0020as\u0073o\u0063\u0069\u0061\u0074\u0069o\u006e\u0020\u0066\u006c\u0061\u0067");};_fbga .FinishByte ();return nil ;};func (_dabb *RegionSegment )parseHeader ()error {const _ceea ="p\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072";
_gbce .Log .Trace ("\u005b\u0052\u0045\u0047I\u004f\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002dH\u0045A\u0044\u0045\u0052\u005d\u0020\u0042\u0065g\u0069\u006e");defer func (){_gbce .Log .Trace ("\u005b\u0052\u0045G\u0049\u004f\u004e\u005d[\u0050\u0041\u0052\u0053\u0045\u002d\u0048E\u0041\u0044\u0045\u0052\u005d\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064");
}();_eeaa ,_abf :=_dabb ._adbg .ReadBits (32);if _abf !=nil {return _gb .Wrap (_abf ,_ceea ,"\u0077\u0069\u0064t\u0068");};_dabb .BitmapWidth =uint32 (_eeaa &_b .MaxUint32 );_eeaa ,_abf =_dabb ._adbg .ReadBits (32);if _abf !=nil {return _gb .Wrap (_abf ,_ceea ,"\u0068\u0065\u0069\u0067\u0068\u0074");
};_dabb .BitmapHeight =uint32 (_eeaa &_b .MaxUint32 );_eeaa ,_abf =_dabb ._adbg .ReadBits (32);if _abf !=nil {return _gb .Wrap (_abf ,_ceea ,"\u0078\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_dabb .XLocation =uint32 (_eeaa &_b .MaxUint32 );
_eeaa ,_abf =_dabb ._adbg .ReadBits (32);if _abf !=nil {return _gb .Wrap (_abf ,_ceea ,"\u0079\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_dabb .YLocation =uint32 (_eeaa &_b .MaxUint32 );if _ ,_abf =_dabb ._adbg .ReadBits (5);_abf !=nil {return _gb .Wrap (_abf ,_ceea ,"\u0064i\u0072\u0079\u0020\u0072\u0065\u0061d");
};if _abf =_dabb .readCombinationOperator ();_abf !=nil {return _gb .Wrap (_abf ,_ceea ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};return nil ;};func (_gfegb *TextRegion )readAmountOfSymbolInstances ()error {_efcd ,_bcba :=_gfegb ._cgde .ReadBits (32);
if _bcba !=nil {return _bcba ;};_gfegb .NumberOfSymbolInstances =uint32 (_efcd &_b .MaxUint32 );_acee :=_gfegb .RegionInfo .BitmapWidth *_gfegb .RegionInfo .BitmapHeight ;if _acee < _gfegb .NumberOfSymbolInstances {_gbce .Log .Debug ("\u004c\u0069\u006d\u0069t\u0069\u006e\u0067\u0020t\u0068\u0065\u0020n\u0075\u006d\u0062\u0065\u0072\u0020o\u0066\u0020d\u0065\u0063\u006f\u0064e\u0064\u0020\u0073\u0079m\u0062\u006f\u006c\u0020\u0069n\u0073\u0074\u0061\u006e\u0063\u0065\u0073 \u0074\u006f\u0020\u006f\u006ee\u0020\u0070\u0065\u0072\u0020\u0070\u0069\u0078\u0065l\u0020\u0028\u0020\u0025\u0064\u0020\u0069\u006e\u0073\u0074\u0065\u0061\u0064\u0020\u006f\u0066\u0020\u0025\u0064\u0029",_acee ,_gfegb .NumberOfSymbolInstances );
_gfegb .NumberOfSymbolInstances =_acee ;};return nil ;};func (_bgga *SymbolDictionary )encodeATFlags (_ceec _ga .BinaryWriter )(_dbgfd int ,_fabb error ){const _ebea ="\u0065\u006e\u0063\u006f\u0064\u0065\u0041\u0054\u0046\u006c\u0061\u0067\u0073";if _bgga .IsHuffmanEncoded ||_bgga .SdTemplate !=0{return 0,nil ;
};_cfcf :=4;if _bgga .SdTemplate !=0{_cfcf =1;};for _febf :=0;_febf < _cfcf ;_febf ++{if _fabb =_ceec .WriteByte (byte (_bgga .SdATX [_febf ]));_fabb !=nil {return _dbgfd ,_gb .Wrapf (_fabb ,_ebea ,"\u0053d\u0041\u0054\u0058\u005b\u0025\u0064]",_febf );
};_dbgfd ++;if _fabb =_ceec .WriteByte (byte (_bgga .SdATY [_febf ]));_fabb !=nil {return _dbgfd ,_gb .Wrapf (_fabb ,_ebea ,"\u0053d\u0041\u0054\u0059\u005b\u0025\u0064]",_febf );};_dbgfd ++;};return _dbgfd ,nil ;};func (_adf *TextRegion )InitEncode (globalSymbolsMap ,localSymbolsMap map[int ]int ,comps []int ,inLL *_ge .Points ,symbols *_ge .Bitmaps ,classIDs *_bf .IntSlice ,boxes *_ge .Boxes ,width ,height ,symBits int ){_adf .RegionInfo =&RegionSegment {BitmapWidth :uint32 (width ),BitmapHeight :uint32 (height )};
_adf ._cedcg =globalSymbolsMap ;_adf ._gfeea =localSymbolsMap ;_adf ._eaaba =comps ;_adf ._bbced =inLL ;_adf ._dbfe =symbols ;_adf ._abcbcg =classIDs ;_adf ._cdgfb =boxes ;_adf ._cgbe =symBits ;};func (_ecaf *SymbolDictionary )decodeHeightClassCollectiveBitmap (_bgfcf int64 ,_efeb ,_cead uint32 )(*_ge .Bitmap ,error ){if _bgfcf ==0{_dgbg :=_ge .New (int (_cead ),int (_efeb ));
var (_afda byte ;_gegg error ;);for _adgf :=0;_adgf < len (_dgbg .Data );_adgf ++{_afda ,_gegg =_ecaf ._fbad .ReadByte ();if _gegg !=nil {return nil ,_gegg ;};if _gegg =_dgbg .SetByte (_adgf ,_afda );_gegg !=nil {return nil ,_gegg ;};};return _dgbg ,nil ;
};if _ecaf ._agcdgb ==nil {_ecaf ._agcdgb =NewGenericRegion (_ecaf ._fbad );};_ecaf ._agcdgb .setParameters (true ,_ecaf ._fbad .StreamPosition (),_bgfcf ,_efeb ,_cead );_ggee ,_ceee :=_ecaf ._agcdgb .GetRegionBitmap ();if _ceee !=nil {return nil ,_ceee ;
};return _ggee ,nil ;};func (_cbbf *Header )readDataStartOffset (_bacc _ga .StreamReader ,_feee OrganizationType ){if _feee ==OSequential {_cbbf .SegmentDataStartOffset =uint64 (_bacc .StreamPosition ());};};func (_fbbe *HalftoneRegion )checkInput ()error {if _fbbe .IsMMREncoded {if _fbbe .HTemplate !=0{_gbce .Log .Debug ("\u0048\u0054\u0065\u006d\u0070l\u0061\u0074\u0065\u0020\u003d\u0020\u0025\u0064\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0030",_fbbe .HTemplate );
};if _fbbe .HSkipEnabled {_gbce .Log .Debug ("\u0048\u0053\u006b\u0069\u0070\u0045\u006e\u0061\u0062\u006c\u0065\u0064\u0020\u0030\u0020\u0025\u0076\u0020(\u0073\u0068\u006f\u0075\u006c\u0064\u0020c\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0074\u0068\u0065\u0020v\u0061\u006c\u0075\u0065\u0020\u0066\u0061\u006c\u0073\u0065\u0029",_fbbe .HSkipEnabled );
};};return nil ;};func (_afb *GenericRegion )decodeTemplate0a (_dfa ,_gdg ,_agf int ,_debe ,_ggg int )(_ade error ){const _afa ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0061";var (_gfgg ,_cdee int ;_bgfc ,_ceeg int ;
_gcgg byte ;_dbbg int ;);if _dfa >=1{_gcgg ,_ade =_afb .Bitmap .GetByte (_ggg );if _ade !=nil {return _gb .Wrap (_ade ,_afa ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_bgfc =int (_gcgg );};if _dfa >=2{_gcgg ,_ade =_afb .Bitmap .GetByte (_ggg -_afb .Bitmap .RowStride );
if _ade !=nil {return _gb .Wrap (_ade ,_afa ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_ceeg =int (_gcgg )<<6;};_gfgg =(_bgfc &0xf0)|(_ceeg &0x3800);for _bagd :=0;_bagd < _agf ;_bagd =_dbbg {var (_fbcg byte ;_caf int ;);_dbbg =_bagd +8;if _ccb :=_gdg -_bagd ;
_ccb > 8{_caf =8;}else {_caf =_ccb ;};if _dfa > 0{_bgfc <<=8;if _dbbg < _gdg {_gcgg ,_ade =_afb .Bitmap .GetByte (_ggg +1);if _ade !=nil {return _gb .Wrap (_ade ,_afa ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_bgfc |=int (_gcgg );};};if _dfa > 1{_fcbd :=_ggg -_afb .Bitmap .RowStride +1;
_ceeg <<=8;if _dbbg < _gdg {_gcgg ,_ade =_afb .Bitmap .GetByte (_fcbd );if _ade !=nil {return _gb .Wrap (_ade ,_afa ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_ceeg |=int (_gcgg )<<6;}else {_ceeg |=0;};};for _gae :=0;_gae < _caf ;_gae ++{_ddff :=uint (7-_gae );
if _afb ._ggc {_cdee =_afb .overrideAtTemplate0a (_gfgg ,_bagd +_gae ,_dfa ,int (_fbcg ),_gae ,int (_ddff ));_afb ._gbf .SetIndex (int32 (_cdee ));}else {_afb ._gbf .SetIndex (int32 (_gfgg ));};var _gdad int ;_gdad ,_ade =_afb ._geg .DecodeBit (_afb ._gbf );
if _ade !=nil {return _gb .Wrap (_ade ,_afa ,"");};_fbcg |=byte (_gdad )<<_ddff ;_gfgg =((_gfgg &0x7bf7)<<1)|_gdad |((_bgfc >>_ddff )&0x10)|((_ceeg >>_ddff )&0x800);};if _begc :=_afb .Bitmap .SetByte (_debe ,_fbcg );_begc !=nil {return _gb .Wrap (_begc ,_afa ,"");
};_debe ++;_ggg ++;};return nil ;};func (_fcba *GenericRegion )decodeTemplate0b (_ebf ,_ada ,_eaa int ,_fdcb ,_eda int )(_bge error ){const _abec ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0062";var (_ccf ,_gggf int ;
_ceed ,_cgf int ;_bee byte ;_edca int ;);if _ebf >=1{_bee ,_bge =_fcba .Bitmap .GetByte (_eda );if _bge !=nil {return _gb .Wrap (_bge ,_abec ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_ceed =int (_bee );};if _ebf >=2{_bee ,_bge =_fcba .Bitmap .GetByte (_eda -_fcba .Bitmap .RowStride );
if _bge !=nil {return _gb .Wrap (_bge ,_abec ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_cgf =int (_bee )<<6;};_ccf =(_ceed &0xf0)|(_cgf &0x3800);for _gde :=0;_gde < _eaa ;_gde =_edca {var (_gdaa byte ;_egg int ;);_edca =_gde +8;if _dggd :=_ada -_gde ;
_dggd > 8{_egg =8;}else {_egg =_dggd ;};if _ebf > 0{_ceed <<=8;if _edca < _ada {_bee ,_bge =_fcba .Bitmap .GetByte (_eda +1);if _bge !=nil {return _gb .Wrap (_bge ,_abec ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_ceed |=int (_bee );};};if _ebf > 1{_cgf <<=8;
if _edca < _ada {_bee ,_bge =_fcba .Bitmap .GetByte (_eda -_fcba .Bitmap .RowStride +1);if _bge !=nil {return _gb .Wrap (_bge ,_abec ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_cgf |=int (_bee )<<6;};};for _def :=0;_def < _egg ;_def ++{_gdec :=uint (7-_def );
if _fcba ._ggc {_gggf =_fcba .overrideAtTemplate0b (_ccf ,_gde +_def ,_ebf ,int (_gdaa ),_def ,int (_gdec ));_fcba ._gbf .SetIndex (int32 (_gggf ));}else {_fcba ._gbf .SetIndex (int32 (_ccf ));};var _add int ;_add ,_bge =_fcba ._geg .DecodeBit (_fcba ._gbf );
if _bge !=nil {return _gb .Wrap (_bge ,_abec ,"");};_gdaa |=byte (_add <<_gdec );_ccf =((_ccf &0x7bf7)<<1)|_add |((_ceed >>_gdec )&0x10)|((_cgf >>_gdec )&0x800);};if _gfgf :=_fcba .Bitmap .SetByte (_fdcb ,_gdaa );_gfgf !=nil {return _gb .Wrap (_gfgf ,_abec ,"");
};_fdcb ++;_eda ++;};return nil ;};func (_gdff *PatternDictionary )parseHeader ()error {_gbce .Log .Trace ("\u005b\u0050\u0041\u0054\u0054\u0045\u0052\u004e\u002d\u0044\u0049\u0043\u0054I\u004f\u004e\u0041\u0052\u0059\u005d[\u0070\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072\u005d\u0020b\u0065\u0067\u0069\u006e");
defer func (){_gbce .Log .Trace ("\u005b\u0050\u0041T\u0054\u0045\u0052\u004e\u002d\u0044\u0049\u0043\u0054\u0049\u004f\u004e\u0041\u0052\u0059\u005d\u005b\u0070\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072\u005d \u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064");
}();_ ,_ffcb :=_gdff ._gffc .ReadBits (5);if _ffcb !=nil {return _ffcb ;};if _ffcb =_gdff .readTemplate ();_ffcb !=nil {return _ffcb ;};if _ffcb =_gdff .readIsMMREncoded ();_ffcb !=nil {return _ffcb ;};if _ffcb =_gdff .readPatternWidthAndHeight ();_ffcb !=nil {return _ffcb ;
};if _ffcb =_gdff .readGrayMax ();_ffcb !=nil {return _ffcb ;};if _ffcb =_gdff .computeSegmentDataStructure ();_ffcb !=nil {return _ffcb ;};return _gdff .checkInput ();};func (_fdfa *SymbolDictionary )GetDictionary ()([]*_ge .Bitmap ,error ){_gbce .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c-\u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");
defer func (){_gbce .Log .Trace ("\u005b\u0053\u0059M\u0042\u004f\u004c\u002d\u0044\u0049\u0043\u0054\u0049\u004f\u004e\u0041\u0052\u0059\u005d\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064");
_gbce .Log .Trace ("\u005b\u0053Y\u004d\u0042\u004f\u004c\u002dD\u0049\u0043\u0054\u0049\u004fN\u0041\u0052\u0059\u005d\u0020\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0020\u000a\u0045\u0078\u003a\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u000a\u006e\u0065\u0077\u003a\u0027\u0025\u0073\u0027",_fdfa ._ddgdg ,_fdfa ._fabff );
}();if _fdfa ._ddgdg ==nil {var _bbdb error ;if _fdfa .UseRefinementAggregation {_fdfa ._gffb =_fdfa .getSbSymCodeLen ();};if !_fdfa .IsHuffmanEncoded {if _bbdb =_fdfa .setCodingStatistics ();_bbdb !=nil {return nil ,_bbdb ;};};_fdfa ._fabff =make ([]*_ge .Bitmap ,_fdfa .NumberOfNewSymbols );
var _fbgg []int ;if _fdfa .IsHuffmanEncoded &&!_fdfa .UseRefinementAggregation {_fbgg =make ([]int ,_fdfa .NumberOfNewSymbols );};if _bbdb =_fdfa .setSymbolsArray ();_bbdb !=nil {return nil ,_bbdb ;};var _ggeb ,_effg int64 ;_fdfa ._dcbc =0;for _fdfa ._dcbc < _fdfa .NumberOfNewSymbols {_effg ,_bbdb =_fdfa .decodeHeightClassDeltaHeight ();
if _bbdb !=nil {return nil ,_bbdb ;};_ggeb +=_effg ;var _dbbe ,_befcd uint32 ;_dbdf :=int64 (_fdfa ._dcbc );for {var _befcf int64 ;_befcf ,_bbdb =_fdfa .decodeDifferenceWidth ();if _ed .Is (_bbdb ,_d .ErrOOB ){break ;};if _bbdb !=nil {return nil ,_bbdb ;
};if _fdfa ._dcbc >=_fdfa .NumberOfNewSymbols {break ;};_dbbe +=uint32 (_befcf );_befcd +=_dbbe ;if !_fdfa .IsHuffmanEncoded ||_fdfa .UseRefinementAggregation {if !_fdfa .UseRefinementAggregation {_bbdb =_fdfa .decodeDirectlyThroughGenericRegion (_dbbe ,uint32 (_ggeb ));
if _bbdb !=nil {return nil ,_bbdb ;};}else {_bbdb =_fdfa .decodeAggregate (_dbbe ,uint32 (_ggeb ));if _bbdb !=nil {return nil ,_bbdb ;};};}else if _fdfa .IsHuffmanEncoded &&!_fdfa .UseRefinementAggregation {_fbgg [_fdfa ._dcbc ]=int (_dbbe );};_fdfa ._dcbc ++;
};if _fdfa .IsHuffmanEncoded &&!_fdfa .UseRefinementAggregation {var _dfce int64 ;if _fdfa .SdHuffBMSizeSelection ==0{var _ffcfa _gef .Tabler ;_ffcfa ,_bbdb =_gef .GetStandardTable (1);if _bbdb !=nil {return nil ,_bbdb ;};_dfce ,_bbdb =_ffcfa .Decode (_fdfa ._fbad );
if _bbdb !=nil {return nil ,_bbdb ;};}else {_dfce ,_bbdb =_fdfa .huffDecodeBmSize ();if _bbdb !=nil {return nil ,_bbdb ;};};_fdfa ._fbad .Align ();var _badac *_ge .Bitmap ;_badac ,_bbdb =_fdfa .decodeHeightClassCollectiveBitmap (_dfce ,uint32 (_ggeb ),_befcd );
if _bbdb !=nil {return nil ,_bbdb ;};_bbdb =_fdfa .decodeHeightClassBitmap (_badac ,_dbdf ,int (_ggeb ),_fbgg );if _bbdb !=nil {return nil ,_bbdb ;};};};_fdbdd ,_bbdb :=_fdfa .getToExportFlags ();if _bbdb !=nil {return nil ,_bbdb ;};_fdfa .setExportedSymbols (_fdbdd );
};return _fdfa ._ddgdg ,nil ;};func (_acff *TextRegion )decodeSymInRefSize ()(int64 ,error ){const _gfbga ="\u0064e\u0063o\u0064\u0065\u0053\u0079\u006dI\u006e\u0052e\u0066\u0053\u0069\u007a\u0065";if _acff .SbHuffRSize ==0{_egbca ,_cbed :=_gef .GetStandardTable (1);
if _cbed !=nil {return 0,_gb .Wrap (_cbed ,_gfbga ,"");};return _egbca .Decode (_acff ._cgde );};if _acff ._babe ==nil {var (_gccc int ;_fgcdg error ;);if _acff .SbHuffFS ==3{_gccc ++;};if _acff .SbHuffDS ==3{_gccc ++;};if _acff .SbHuffDT ==3{_gccc ++;
};if _acff .SbHuffRDWidth ==3{_gccc ++;};if _acff .SbHuffRDHeight ==3{_gccc ++;};if _acff .SbHuffRDX ==3{_gccc ++;};if _acff .SbHuffRDY ==3{_gccc ++;};_acff ._babe ,_fgcdg =_acff .getUserTable (_gccc );if _fgcdg !=nil {return 0,_gb .Wrap (_fgcdg ,_gfbga ,"");
};};_bccg ,_fdee :=_acff ._babe .Decode (_acff ._cgde );if _fdee !=nil {return 0,_gb .Wrap (_fdee ,_gfbga ,"");};return _bccg ,nil ;};func (_faae *SymbolDictionary )readRefinementAtPixels (_cgeg int )error {_faae .SdrATX =make ([]int8 ,_cgeg );_faae .SdrATY =make ([]int8 ,_cgeg );
var (_eeca byte ;_efcb error ;);for _dbgb :=0;_dbgb < _cgeg ;_dbgb ++{_eeca ,_efcb =_faae ._fbad .ReadByte ();if _efcb !=nil {return _efcb ;};_faae .SdrATX [_dbgb ]=int8 (_eeca );_eeca ,_efcb =_faae ._fbad .ReadByte ();if _efcb !=nil {return _efcb ;};_faae .SdrATY [_dbgb ]=int8 (_eeca );
};return nil ;};func (_fccb *TableSegment )parseHeader ()error {var (_eggfc int ;_ggdc uint64 ;_cegg error ;);_eggfc ,_cegg =_fccb ._cadfd .ReadBit ();if _cegg !=nil {return _cegg ;};if _eggfc ==1{return _gc .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0061\u0062\u006c\u0065 \u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0064e\u0066\u0069\u006e\u0069\u0074\u0069\u006f\u006e\u002e\u0020\u0042\u002e\u0032\u002e1\u0020\u0043\u006f\u0064\u0065\u0020\u0054\u0061\u0062\u006c\u0065\u0020\u0066\u006c\u0061\u0067\u0073\u003a\u0020\u0042\u0069\u0074\u0020\u0037\u0020\u006d\u0075\u0073\u0074\u0020b\u0065\u0020\u007a\u0065\u0072\u006f\u002e\u0020\u0057a\u0073\u003a \u0025\u0064",_eggfc );
};if _ggdc ,_cegg =_fccb ._cadfd .ReadBits (3);_cegg !=nil {return _cegg ;};_fccb ._fefgc =(int32 (_ggdc )+1)&0xf;if _ggdc ,_cegg =_fccb ._cadfd .ReadBits (3);_cegg !=nil {return _cegg ;};_fccb ._fddd =(int32 (_ggdc )+1)&0xf;if _ggdc ,_cegg =_fccb ._cadfd .ReadBits (32);
_cegg !=nil {return _cegg ;};_fccb ._agac =int32 (_ggdc &_b .MaxInt32 );if _ggdc ,_cegg =_fccb ._cadfd .ReadBits (32);_cegg !=nil {return _cegg ;};_fccb ._degeb =int32 (_ggdc &_b .MaxInt32 );return nil ;};type Regioner interface{GetRegionBitmap ()(*_ge .Bitmap ,error );
GetRegionInfo ()*RegionSegment ;};func (_ebg *GenericRegion )overrideAtTemplate0a (_ffbe ,_cbdb ,_cbfg ,_cgb ,_gfa ,_gfcb int )int {if _ebg .GBAtOverride [0]{_ffbe &=0xFFEF;if _ebg .GBAtY [0]==0&&_ebg .GBAtX [0]>=-int8 (_gfa ){_ffbe |=(_cgb >>uint (int8 (_gfcb )-_ebg .GBAtX [0]&0x1))<<4;
}else {_ffbe |=int (_ebg .getPixel (_cbdb +int (_ebg .GBAtX [0]),_cbfg +int (_ebg .GBAtY [0])))<<4;};};if _ebg .GBAtOverride [1]{_ffbe &=0xFBFF;if _ebg .GBAtY [1]==0&&_ebg .GBAtX [1]>=-int8 (_gfa ){_ffbe |=(_cgb >>uint (int8 (_gfcb )-_ebg .GBAtX [1]&0x1))<<10;
}else {_ffbe |=int (_ebg .getPixel (_cbdb +int (_ebg .GBAtX [1]),_cbfg +int (_ebg .GBAtY [1])))<<10;};};if _ebg .GBAtOverride [2]{_ffbe &=0xF7FF;if _ebg .GBAtY [2]==0&&_ebg .GBAtX [2]>=-int8 (_gfa ){_ffbe |=(_cgb >>uint (int8 (_gfcb )-_ebg .GBAtX [2]&0x1))<<11;
}else {_ffbe |=int (_ebg .getPixel (_cbdb +int (_ebg .GBAtX [2]),_cbfg +int (_ebg .GBAtY [2])))<<11;};};if _ebg .GBAtOverride [3]{_ffbe &=0x7FFF;if _ebg .GBAtY [3]==0&&_ebg .GBAtX [3]>=-int8 (_gfa ){_ffbe |=(_cgb >>uint (int8 (_gfcb )-_ebg .GBAtX [3]&0x1))<<15;
}else {_ffbe |=int (_ebg .getPixel (_cbdb +int (_ebg .GBAtX [3]),_cbfg +int (_ebg .GBAtY [3])))<<15;};};return _ffbe ;};func (_fcec *SymbolDictionary )readNumberOfExportedSymbols ()error {_dece ,_agda :=_fcec ._fbad .ReadBits (32);if _agda !=nil {return _agda ;
};_fcec .NumberOfExportedSymbols =uint32 (_dece &_b .MaxUint32 );return nil ;};func (_cfea *HalftoneRegion )parseHeader ()error {if _egce :=_cfea .RegionSegment .parseHeader ();_egce !=nil {return _egce ;};_bfcc ,_agg :=_cfea ._cfb .ReadBit ();if _agg !=nil {return _agg ;
};_cfea .HDefaultPixel =int8 (_bfcc );_bfbf ,_agg :=_cfea ._cfb .ReadBits (3);if _agg !=nil {return _agg ;};_cfea .CombinationOperator =_ge .CombinationOperator (_bfbf &0xf);_bfcc ,_agg =_cfea ._cfb .ReadBit ();if _agg !=nil {return _agg ;};if _bfcc ==1{_cfea .HSkipEnabled =true ;
};_bfbf ,_agg =_cfea ._cfb .ReadBits (2);if _agg !=nil {return _agg ;};_cfea .HTemplate =byte (_bfbf &0xf);_bfcc ,_agg =_cfea ._cfb .ReadBit ();if _agg !=nil {return _agg ;};if _bfcc ==1{_cfea .IsMMREncoded =true ;};_bfbf ,_agg =_cfea ._cfb .ReadBits (32);
if _agg !=nil {return _agg ;};_cfea .HGridWidth =uint32 (_bfbf &_b .MaxUint32 );_bfbf ,_agg =_cfea ._cfb .ReadBits (32);if _agg !=nil {return _agg ;};_cfea .HGridHeight =uint32 (_bfbf &_b .MaxUint32 );_bfbf ,_agg =_cfea ._cfb .ReadBits (32);if _agg !=nil {return _agg ;
};_cfea .HGridX =int32 (_bfbf &_b .MaxInt32 );_bfbf ,_agg =_cfea ._cfb .ReadBits (32);if _agg !=nil {return _agg ;};_cfea .HGridY =int32 (_bfbf &_b .MaxInt32 );_bfbf ,_agg =_cfea ._cfb .ReadBits (16);if _agg !=nil {return _agg ;};_cfea .HRegionX =uint16 (_bfbf &_b .MaxUint16 );
_bfbf ,_agg =_cfea ._cfb .ReadBits (16);if _agg !=nil {return _agg ;};_cfea .HRegionY =uint16 (_bfbf &_b .MaxUint16 );if _agg =_cfea .computeSegmentDataStructure ();_agg !=nil {return _agg ;};return _cfea .checkInput ();};func (_bagg *PatternDictionary )readGrayMax ()error {_dbbd ,_efgea :=_bagg ._gffc .ReadBits (32);
if _efgea !=nil {return _efgea ;};_bagg .GrayMax =uint32 (_dbbd &_b .MaxUint32 );return nil ;};func _aege (_fegg int )int {if _fegg ==0{return 0;};_fegg |=_fegg >>1;_fegg |=_fegg >>2;_fegg |=_fegg >>4;_fegg |=_fegg >>8;_fegg |=_fegg >>16;return (_fegg +1)>>1;
};func (_fdca *PageInformationSegment )Size ()int {return 19};func (_gdae *TextRegion )readUseRefinement ()error {if !_gdae .UseRefinement ||_gdae .SbrTemplate !=0{return nil ;};var (_fbbad byte ;_beag error ;);_gdae .SbrATX =make ([]int8 ,2);_gdae .SbrATY =make ([]int8 ,2);
_fbbad ,_beag =_gdae ._cgde .ReadByte ();if _beag !=nil {return _beag ;};_gdae .SbrATX [0]=int8 (_fbbad );_fbbad ,_beag =_gdae ._cgde .ReadByte ();if _beag !=nil {return _beag ;};_gdae .SbrATY [0]=int8 (_fbbad );_fbbad ,_beag =_gdae ._cgde .ReadByte ();
if _beag !=nil {return _beag ;};_gdae .SbrATX [1]=int8 (_fbbad );_fbbad ,_beag =_gdae ._cgde .ReadByte ();if _beag !=nil {return _beag ;};_gdae .SbrATY [1]=int8 (_fbbad );return nil ;};func (_bbgd *TextRegion )decodeRdw ()(int64 ,error ){const _gbaa ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064w";
if _bbgd .IsHuffmanEncoded {if _bbgd .SbHuffRDWidth ==3{if _bbgd ._ddeb ==nil {var (_fgea int ;_dgda error ;);if _bbgd .SbHuffFS ==3{_fgea ++;};if _bbgd .SbHuffDS ==3{_fgea ++;};if _bbgd .SbHuffDT ==3{_fgea ++;};_bbgd ._ddeb ,_dgda =_bbgd .getUserTable (_fgea );
if _dgda !=nil {return 0,_gb .Wrap (_dgda ,_gbaa ,"");};};return _bbgd ._ddeb .Decode (_bbgd ._cgde );};_gaaa ,_cffb :=_gef .GetStandardTable (14+int (_bbgd .SbHuffRDWidth ));if _cffb !=nil {return 0,_gb .Wrap (_cffb ,_gbaa ,"");};return _gaaa .Decode (_bbgd ._cgde );
};_bdbb ,_dgacd :=_bbgd ._cdfa .DecodeInt (_bbgd ._gfbc );if _dgacd !=nil {return 0,_gb .Wrap (_dgacd ,_gbaa ,"");};return int64 (_bdbb ),nil ;};func (_gfcg *SymbolDictionary )readNumberOfNewSymbols ()error {_dgce ,_ggfg :=_gfcg ._fbad .ReadBits (32);if _ggfg !=nil {return _ggfg ;
};_gfcg .NumberOfNewSymbols =uint32 (_dgce &_b .MaxUint32 );return nil ;};func (_aeg *GenericRegion )setParameters (_cbcg bool ,_cbg ,_gcbef int64 ,_gbbb ,_dbeg uint32 ){_aeg .IsMMREncoded =_cbcg ;_aeg .DataOffset =_cbg ;_aeg .DataLength =_gcbef ;_aeg .RegionSegment .BitmapHeight =_gbbb ;
_aeg .RegionSegment .BitmapWidth =_dbeg ;_aeg ._ead =nil ;_aeg .Bitmap =nil ;};func (_bbfga *TextRegion )initSymbols ()error {const _dbbgb ="i\u006e\u0069\u0074\u0053\u0079\u006d\u0062\u006f\u006c\u0073";for _ ,_edde :=range _bbfga .Header .RTSegments {if _edde ==nil {return _gb .Error (_dbbgb ,"\u006e\u0069\u006c\u0020\u0073\u0065\u0067\u006de\u006e\u0074\u0020pr\u006f\u0076\u0069\u0064\u0065\u0064 \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0074\u0065\u0078\u0074\u0020\u0072\u0065g\u0069\u006f\u006e\u0020\u0053\u0079\u006d\u0062o\u006c\u0073");
};if _edde .Type ==0{_eafc ,_bdfe :=_edde .GetSegmentData ();if _bdfe !=nil {return _gb .Wrap (_bdfe ,_dbbgb ,"");};_gfcbd ,_egbb :=_eafc .(*SymbolDictionary );if !_egbb {return _gb .Error (_dbbgb ,"\u0072e\u0066\u0065r\u0072\u0065\u0064 \u0054\u006f\u0020\u0053\u0065\u0067\u006de\u006e\u0074\u0020\u0069\u0073\u0020n\u006f\u0074\u0020\u0061\u0020\u0053\u0079\u006d\u0062\u006f\u006cD\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_gfcbd ._cagef =_bbfga ._gebb ;_gfgec ,_bdfe :=_gfcbd .GetDictionary ();if _bdfe !=nil {return _gb .Wrap (_bdfe ,_dbbgb ,"");};_bbfga .Symbols =append (_bbfga .Symbols ,_gfgec ...);};};_bbfga .NumberOfSymbols =uint32 (len (_bbfga .Symbols ));return nil ;
};func (_ace *GenericRefinementRegion )getPixel (_ebd *_ge .Bitmap ,_fdf ,_efg int )int {if _fdf < 0||_fdf >=_ebd .Width {return 0;};if _efg < 0||_efg >=_ebd .Height {return 0;};if _ebd .GetPixel (_fdf ,_efg ){return 1;};return 0;};func (_ffa *GenericRegion )getPixel (_gcgca ,_dgga int )int8 {if _gcgca < 0||_gcgca >=_ffa .Bitmap .Width {return 0;
};if _dgga < 0||_dgga >=_ffa .Bitmap .Height {return 0;};if _ffa .Bitmap .GetPixel (_gcgca ,_dgga ){return 1;};return 0;};func (_gbcg *GenericRefinementRegion )GetRegionBitmap ()(*_ge .Bitmap ,error ){var _cb error ;_gbce .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0047\u0065\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006d\u0061\u0070\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");
defer func (){if _cb !=nil {_gbce .Log .Trace ("[\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052E\u0046\u002d\u0052\u0045\u0047\u0049\u004fN]\u0020\u0047\u0065\u0074R\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006dap\u0020\u0066a\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0076",_cb );
}else {_gbce .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0047\u0065\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006d\u0061\u0070\u0020\u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u002e");
};}();if _gbcg .RegionBitmap !=nil {return _gbcg .RegionBitmap ,nil ;};_dbc :=0;if _gbcg .ReferenceBitmap ==nil {_gbcg .ReferenceBitmap ,_cb =_gbcg .getGrReference ();if _cb !=nil {return nil ,_cb ;};};if _gbcg ._bb ==nil {_gbcg ._bb ,_cb =_ee .New (_gbcg ._aa );
if _cb !=nil {return nil ,_cb ;};};if _gbcg ._eg ==nil {_gbcg ._eg =_ee .NewStats (8192,1);};_gbcg .RegionBitmap =_ge .New (int (_gbcg .RegionInfo .BitmapWidth ),int (_gbcg .RegionInfo .BitmapHeight ));if _gbcg .TemplateID ==0{if _cb =_gbcg .updateOverride ();
_cb !=nil {return nil ,_cb ;};};_dg :=(_gbcg .RegionBitmap .Width +7)&-8;var _bd int ;if _gbcg .IsTPGROn {_bd =int (-_gbcg .ReferenceDY )*_gbcg .ReferenceBitmap .RowStride ;};_cd :=_bd +1;for _gbd :=0;_gbd < _gbcg .RegionBitmap .Height ;_gbd ++{if _gbcg .IsTPGROn {_cg ,_ag :=_gbcg .decodeSLTP ();
if _ag !=nil {return nil ,_ag ;};_dbc ^=_cg ;};if _dbc ==0{_cb =_gbcg .decodeOptimized (_gbd ,_gbcg .RegionBitmap .Width ,_gbcg .RegionBitmap .RowStride ,_gbcg .ReferenceBitmap .RowStride ,_dg ,_bd ,_cd );if _cb !=nil {return nil ,_cb ;};}else {_cb =_gbcg .decodeTypicalPredictedLine (_gbd ,_gbcg .RegionBitmap .Width ,_gbcg .RegionBitmap .RowStride ,_gbcg .ReferenceBitmap .RowStride ,_dg ,_bd );
if _cb !=nil {return nil ,_cb ;};};};return _gbcg .RegionBitmap ,nil ;};func (_eac *Header )writeReferredToCount (_eebe _ga .BinaryWriter )(_aacc int ,_dgfcf error ){const _daaa ="w\u0072i\u0074\u0065\u0052\u0065\u0066\u0065\u0072\u0072e\u0064\u0054\u006f\u0043ou\u006e\u0074";
_eac .RTSNumbers =make ([]int ,len (_eac .RTSegments ));for _afe ,_gfgc :=range _eac .RTSegments {_eac .RTSNumbers [_afe ]=int (_gfgc .SegmentNumber );};if len (_eac .RTSNumbers )<=4{var _egbe byte ;if len (_eac .RetainBits )>=1{_egbe =_eac .RetainBits [0];
};_egbe |=byte (len (_eac .RTSNumbers ))<<5;if _dgfcf =_eebe .WriteByte (_egbe );_dgfcf !=nil {return 0,_gb .Wrap (_dgfcf ,_daaa ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};return 1,nil ;};_fagd :=uint32 (len (_eac .RTSNumbers ));
_gedg :=make ([]byte ,4+_bf .Ceil (len (_eac .RTSNumbers )+1,8));_fagd |=0x7<<29;_e .BigEndian .PutUint32 (_gedg ,_fagd );copy (_gedg [1:],_eac .RetainBits );_aacc ,_dgfcf =_eebe .Write (_gedg );if _dgfcf !=nil {return 0,_gb .Wrap (_dgfcf ,_daaa ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");
};return _aacc ,nil ;};func (_ebe *GenericRegion )setParametersWithAt (_ecba bool ,_gdge byte ,_gfaf ,_aec bool ,_accf ,_gfad []int8 ,_fgf ,_fdgc uint32 ,_bdaf *_ee .DecoderStats ,_cec *_ee .Decoder ){_ebe .IsMMREncoded =_ecba ;_ebe .GBTemplate =_gdge ;
_ebe .IsTPGDon =_gfaf ;_ebe .GBAtX =_accf ;_ebe .GBAtY =_gfad ;_ebe .RegionSegment .BitmapHeight =_fdgc ;_ebe .RegionSegment .BitmapWidth =_fgf ;_ebe ._ead =nil ;_ebe .Bitmap =nil ;if _bdaf !=nil {_ebe ._gbf =_bdaf ;};if _cec !=nil {_ebe ._geg =_cec ;};
_gbce .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0047\u0049O\u004e\u005d\u0020\u0073\u0065\u0074P\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073\u0020\u0053\u0044\u0041t\u003a\u0020\u0025\u0073",_ebe );};func (_dafg *GenericRegion )decodeTemplate1 (_cbf ,_abd ,_dcag int ,_befb ,_bab int )(_aded error ){const _fbf ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0031";
var (_aae ,_gbgf int ;_bec ,_febe int ;_eebb byte ;_gdb ,_ege int ;);if _cbf >=1{_eebb ,_aded =_dafg .Bitmap .GetByte (_bab );if _aded !=nil {return _gb .Wrap (_aded ,_fbf ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_bec =int (_eebb );};if _cbf >=2{_eebb ,_aded =_dafg .Bitmap .GetByte (_bab -_dafg .Bitmap .RowStride );
if _aded !=nil {return _gb .Wrap (_aded ,_fbf ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_febe =int (_eebb )<<5;};_aae =((_bec >>1)&0x1f8)|((_febe >>1)&0x1e00);for _fdg :=0;_fdg < _dcag ;_fdg =_gdb {var (_fbg byte ;_ffed int ;);_gdb =_fdg +8;if _efd :=_abd -_fdg ;
_efd > 8{_ffed =8;}else {_ffed =_efd ;};if _cbf > 0{_bec <<=8;if _gdb < _abd {_eebb ,_aded =_dafg .Bitmap .GetByte (_bab +1);if _aded !=nil {return _gb .Wrap (_aded ,_fbf ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_bec |=int (_eebb );};};if _cbf > 1{_febe <<=8;
if _gdb < _abd {_eebb ,_aded =_dafg .Bitmap .GetByte (_bab -_dafg .Bitmap .RowStride +1);if _aded !=nil {return _gb .Wrap (_aded ,_fbf ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_febe |=int (_eebb )<<5;};};for _aeb :=0;_aeb < _ffed ;_aeb ++{if _dafg ._ggc {_gbgf =_dafg .overrideAtTemplate1 (_aae ,_fdg +_aeb ,_cbf ,int (_fbg ),_aeb );
_dafg ._gbf .SetIndex (int32 (_gbgf ));}else {_dafg ._gbf .SetIndex (int32 (_aae ));};_ege ,_aded =_dafg ._geg .DecodeBit (_dafg ._gbf );if _aded !=nil {return _gb .Wrap (_aded ,_fbf ,"");};_fbg |=byte (_ege )<<uint (7-_aeb );_age :=uint (8-_aeb );_aae =((_aae &0xefb)<<1)|_ege |((_bec >>_age )&0x8)|((_febe >>_age )&0x200);
};if _edea :=_dafg .Bitmap .SetByte (_befb ,_fbg );_edea !=nil {return _gb .Wrap (_edea ,_fbf ,"");};_befb ++;_bab ++;};return nil ;};func (_ecb *GenericRegion )readGBAtPixels (_dfbf int )error {const _ffdf ="\u0072\u0065\u0061\u0064\u0047\u0042\u0041\u0074\u0050i\u0078\u0065\u006c\u0073";
_ecb .GBAtX =make ([]int8 ,_dfbf );_ecb .GBAtY =make ([]int8 ,_dfbf );for _ggdd :=0;_ggdd < _dfbf ;_ggdd ++{_cage ,_cbb :=_ecb ._gefa .ReadByte ();if _cbb !=nil {return _gb .Wrapf (_cbb ,_ffdf ,"\u0058\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_ggdd );
};_ecb .GBAtX [_ggdd ]=int8 (_cage );_cage ,_cbb =_ecb ._gefa .ReadByte ();if _cbb !=nil {return _gb .Wrapf (_cbb ,_ffdf ,"\u0059\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_ggdd );};_ecb .GBAtY [_ggdd ]=int8 (_cage );};return nil ;};
func (_adaa *PageInformationSegment )Encode (w _ga .BinaryWriter )(_bfbff int ,_baef error ){const _efbd ="\u0050\u0061g\u0065\u0049\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u002e\u0045\u006eco\u0064\u0065";
_fdfdf :=make ([]byte ,4);_e .BigEndian .PutUint32 (_fdfdf ,uint32 (_adaa .PageBMWidth ));_bfbff ,_baef =w .Write (_fdfdf );if _baef !=nil {return _bfbff ,_gb .Wrap (_baef ,_efbd ,"\u0077\u0069\u0064t\u0068");};_e .BigEndian .PutUint32 (_fdfdf ,uint32 (_adaa .PageBMHeight ));
var _bccd int ;_bccd ,_baef =w .Write (_fdfdf );if _baef !=nil {return _bccd +_bfbff ,_gb .Wrap (_baef ,_efbd ,"\u0068\u0065\u0069\u0067\u0068\u0074");};_bfbff +=_bccd ;_e .BigEndian .PutUint32 (_fdfdf ,uint32 (_adaa .ResolutionX ));_bccd ,_baef =w .Write (_fdfdf );
if _baef !=nil {return _bccd +_bfbff ,_gb .Wrap (_baef ,_efbd ,"\u0078\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");};_bfbff +=_bccd ;_e .BigEndian .PutUint32 (_fdfdf ,uint32 (_adaa .ResolutionY ));if _bccd ,_baef =w .Write (_fdfdf );
_baef !=nil {return _bccd +_bfbff ,_gb .Wrap (_baef ,_efbd ,"\u0079\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");};_bfbff +=_bccd ;if _baef =_adaa .encodeFlags (w );_baef !=nil {return _bfbff ,_gb .Wrap (_baef ,_efbd ,"");};_bfbff ++;
if _bccd ,_baef =_adaa .encodeStripingInformation (w );_baef !=nil {return _bfbff ,_gb .Wrap (_baef ,_efbd ,"");};_bfbff +=_bccd ;return _bfbff ,nil ;};func (_gdbce *TableSegment )HtLow ()int32 {return _gdbce ._agac };func (_bbg *TextRegion )checkInput ()error {const _gcbeg ="\u0063\u0068\u0065\u0063\u006b\u0049\u006e\u0070\u0075\u0074";
if !_bbg .UseRefinement {if _bbg .SbrTemplate !=0{_gbce .Log .Debug ("\u0053\u0062\u0072Te\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_bbg .SbrTemplate =0;};};if _bbg .SbHuffFS ==2||_bbg .SbHuffRDWidth ==2||_bbg .SbHuffRDHeight ==2||_bbg .SbHuffRDX ==2||_bbg .SbHuffRDY ==2{return _gb .Error (_gcbeg ,"h\u0075\u0066\u0066\u006d\u0061\u006e \u0066\u006c\u0061\u0067\u0020\u0076a\u006c\u0075\u0065\u0020\u0069\u0073\u0020n\u006f\u0074\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074e\u0064");
};if !_bbg .UseRefinement {if _bbg .SbHuffRSize !=0{_gbce .Log .Debug ("\u0053\u0062\u0048uf\u0066\u0052\u0053\u0069\u007a\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_bbg .SbHuffRSize =0;};if _bbg .SbHuffRDY !=0{_gbce .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044Y\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");
_bbg .SbHuffRDY =0;};if _bbg .SbHuffRDX !=0{_gbce .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044X\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");_bbg .SbHuffRDX =0;};if _bbg .SbHuffRDWidth !=0{_gbce .Log .Debug ("\u0053b\u0048\u0075\u0066\u0066R\u0044\u0057\u0069\u0064\u0074h\u0020s\u0068o\u0075\u006c\u0064\u0020\u0062\u0065\u00200");
_bbg .SbHuffRDWidth =0;};if _bbg .SbHuffRDHeight !=0{_gbce .Log .Debug ("\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0048\u0065\u0069g\u0068\u0074\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020b\u0065\u0020\u0030");_bbg .SbHuffRDHeight =0;};};return nil ;
};func (_eggf *SymbolDictionary )getToExportFlags ()([]int ,error ){var (_bdce int ;_deaa int32 ;_gddc error ;_dbdb =int32 (_eggf ._gcba +_eggf .NumberOfNewSymbols );_gbabf =make ([]int ,_dbdb ););for _ddgg :=int32 (0);_ddgg < _dbdb ;_ddgg +=_deaa {if _eggf .IsHuffmanEncoded {_aee ,_edaf :=_gef .GetStandardTable (1);
if _edaf !=nil {return nil ,_edaf ;};_ggef ,_edaf :=_aee .Decode (_eggf ._fbad );if _edaf !=nil {return nil ,_edaf ;};_deaa =int32 (_ggef );}else {_deaa ,_gddc =_eggf ._geee .DecodeInt (_eggf ._cad );if _gddc !=nil {return nil ,_gddc ;};};if _deaa !=0{for _ceeab :=_ddgg ;
_ceeab < _ddgg +_deaa ;_ceeab ++{_gbabf [_ceeab ]=_bdce ;};};if _bdce ==0{_bdce =1;}else {_bdce =0;};};return _gbabf ,nil ;};func (_acc *GenericRefinementRegion )setParameters (_bfc *_ee .DecoderStats ,_ced *_ee .Decoder ,_fce int8 ,_cdc ,_gbbf uint32 ,_ede *_ge .Bitmap ,_gfc ,_cee int32 ,_dca bool ,_gg []int8 ,_fbe []int8 ){_gbce .Log .Trace ("\u005b\u0047\u0045NE\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052E\u0047I\u004fN\u005d \u0073\u0065\u0074\u0050\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073");
if _bfc !=nil {_acc ._eg =_bfc ;};if _ced !=nil {_acc ._bb =_ced ;};_acc .TemplateID =_fce ;_acc .RegionInfo .BitmapWidth =_cdc ;_acc .RegionInfo .BitmapHeight =_gbbf ;_acc .ReferenceBitmap =_ede ;_acc .ReferenceDX =_gfc ;_acc .ReferenceDY =_cee ;_acc .IsTPGROn =_dca ;
_acc .GrAtX =_gg ;_acc .GrAtY =_fbe ;_acc .RegionBitmap =nil ;_gbce .Log .Trace ("[\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052E\u0046\u002d\u0052\u0045\u0047\u0049\u004fN]\u0020\u0073\u0065\u0074P\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073 f\u0069\u006ei\u0073\u0068\u0065\u0064\u002e\u0020\u0025\u0073",_acc );
};func (_cfde *Header )readSegmentPageAssociation (_eea Documenter ,_dbgf _ga .StreamReader ,_dfag uint64 ,_edff ...int )(_geea error ){const _dgfe ="\u0072\u0065\u0061\u0064\u0053\u0065\u0067\u006d\u0065\u006e\u0074P\u0061\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061t\u0069\u006f\u006e";
if !_cfde .PageAssociationFieldSize {_eaaf ,_bcaf :=_dbgf .ReadBits (8);if _bcaf !=nil {return _gb .Wrap (_bcaf ,_dgfe ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_cfde .PageAssociation =int (_eaaf &0xFF);}else {_fffe ,_feeb :=_dbgf .ReadBits (32);
if _feeb !=nil {return _gb .Wrap (_feeb ,_dgfe ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_cfde .PageAssociation =int (_fffe &_b .MaxInt32 );};if _dfag ==0{return nil ;};if _cfde .PageAssociation !=0{_gcdf ,_cdae :=_eea .GetPage (_cfde .PageAssociation );
if _cdae !=nil {return _gb .Wrap (_cdae ,_dgfe ,"\u0061s\u0073\u006f\u0063\u0069a\u0074\u0065\u0064\u0020\u0070a\u0067e\u0020n\u006f\u0074\u0020\u0066\u006f\u0075\u006ed");};var _bcc int ;for _cbced :=uint64 (0);_cbced < _dfag ;_cbced ++{_bcc =_edff [_cbced ];
_cfde .RTSegments [_cbced ],_cdae =_gcdf .GetSegment (_bcc );if _cdae !=nil {var _dfcf error ;_cfde .RTSegments [_cbced ],_dfcf =_eea .GetGlobalSegment (_bcc );if _dfcf !=nil {return _gb .Wrapf (_cdae ,_dgfe ,"\u0072\u0065\u0066\u0065\u0072\u0065n\u0063\u0065\u0020s\u0065\u0067\u006de\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075n\u0064\u0020\u0061\u0074\u0020pa\u0067\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020\u006e\u006f\u0072\u0020\u0069\u006e\u0020\u0067\u006c\u006f\u0062\u0061\u006c\u0073",_cfde .PageAssociation );
};};};return nil ;};for _eggb :=uint64 (0);_eggb < _dfag ;_eggb ++{_cfde .RTSegments [_eggb ],_geea =_eea .GetGlobalSegment (_edff [_eggb ]);if _geea !=nil {return _gb .Wrapf (_geea ,_dgfe ,"\u0067\u006c\u006f\u0062\u0061\u006c\u0020\u0073\u0065\u0067m\u0065\u006e\u0074\u003a\u0020\u0027\u0025d\u0027\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_edff [_eggb ]);
};};return nil ;};func (_adfc *TextRegion )getSymbols ()error {if _adfc .Header .RTSegments !=nil {return _adfc .initSymbols ();};return nil ;};func (_gad *GenericRefinementRegion )decodeTypicalPredictedLine (_acd ,_cbc ,_aed ,_ba ,_cgc ,_ca int )error {_ad :=_acd -int (_gad .ReferenceDY );
_fccf :=_gad .ReferenceBitmap .GetByteIndex (0,_ad );_dbe :=_gad .RegionBitmap .GetByteIndex (0,_acd );var _cab error ;switch _gad .TemplateID {case 0:_cab =_gad .decodeTypicalPredictedLineTemplate0 (_acd ,_cbc ,_aed ,_ba ,_cgc ,_ca ,_dbe ,_ad ,_fccf );
case 1:_cab =_gad .decodeTypicalPredictedLineTemplate1 (_acd ,_cbc ,_aed ,_ba ,_cgc ,_ca ,_dbe ,_ad ,_fccf );};return _cab ;};func (_bff *TextRegion )decodeRdh ()(int64 ,error ){const _cdaf ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064h";if _bff .IsHuffmanEncoded {if _bff .SbHuffRDHeight ==3{if _bff ._afgda ==nil {var (_ebdd int ;
_bbcea error ;);if _bff .SbHuffFS ==3{_ebdd ++;};if _bff .SbHuffDS ==3{_ebdd ++;};if _bff .SbHuffDT ==3{_ebdd ++;};if _bff .SbHuffRDWidth ==3{_ebdd ++;};_bff ._afgda ,_bbcea =_bff .getUserTable (_ebdd );if _bbcea !=nil {return 0,_gb .Wrap (_bbcea ,_cdaf ,"");
};};return _bff ._afgda .Decode (_bff ._cgde );};_daec ,_ccbd :=_gef .GetStandardTable (14+int (_bff .SbHuffRDHeight ));if _ccbd !=nil {return 0,_gb .Wrap (_ccbd ,_cdaf ,"");};return _daec .Decode (_bff ._cgde );};_fbce ,_gbfc :=_bff ._cdfa .DecodeInt (_bff ._cfgb );
if _gbfc !=nil {return 0,_gb .Wrap (_gbfc ,_cdaf ,"");};return int64 (_fbce ),nil ;};func (_aade *TextRegion )blit (_cefc *_ge .Bitmap ,_ffac int64 )error {if _aade .IsTransposed ==0&&(_aade .ReferenceCorner ==2||_aade .ReferenceCorner ==3){_aade ._aebf +=int64 (_cefc .Width -1);
}else if _aade .IsTransposed ==1&&(_aade .ReferenceCorner ==0||_aade .ReferenceCorner ==2){_aade ._aebf +=int64 (_cefc .Height -1);};_gdcg :=_aade ._aebf ;if _aade .IsTransposed ==1{_gdcg ,_ffac =_ffac ,_gdcg ;};switch _aade .ReferenceCorner {case 0:_ffac -=int64 (_cefc .Height -1);
case 2:_ffac -=int64 (_cefc .Height -1);_gdcg -=int64 (_cefc .Width -1);case 3:_gdcg -=int64 (_cefc .Width -1);};_cffce :=_ge .Blit (_cefc ,_aade .RegionBitmap ,int (_gdcg ),int (_ffac ),_aade .CombinationOperator );if _cffce !=nil {return _cffce ;};if _aade .IsTransposed ==0&&(_aade .ReferenceCorner ==0||_aade .ReferenceCorner ==1){_aade ._aebf +=int64 (_cefc .Width -1);
};if _aade .IsTransposed ==1&&(_aade .ReferenceCorner ==1||_aade .ReferenceCorner ==3){_aade ._aebf +=int64 (_cefc .Height -1);};return nil ;};func (_adea *SymbolDictionary )getUserTable (_ddfe int )(_gef .Tabler ,error ){var _fdaf int ;for _ ,_gddg :=range _adea .Header .RTSegments {if _gddg .Type ==53{if _fdaf ==_ddfe {_bbcg ,_feag :=_gddg .GetSegmentData ();
if _feag !=nil {return nil ,_feag ;};_aefa :=_bbcg .(_gef .BasicTabler );return _gef .NewEncodedTable (_aefa );};_fdaf ++;};};return nil ,nil ;};func (_ffb *GenericRegion )GetRegionBitmap ()(_bdec *_ge .Bitmap ,_bfb error ){if _ffb .Bitmap !=nil {return _ffb .Bitmap ,nil ;
};if _ffb .IsMMREncoded {if _ffb ._ead ==nil {_ffb ._ead ,_bfb =_gbc .New (_ffb ._gefa ,int (_ffb .RegionSegment .BitmapWidth ),int (_ffb .RegionSegment .BitmapHeight ),_ffb .DataOffset ,_ffb .DataLength );if _bfb !=nil {return nil ,_bfb ;};};_ffb .Bitmap ,_bfb =_ffb ._ead .UncompressMMR ();
return _ffb .Bitmap ,_bfb ;};if _bfb =_ffb .updateOverrideFlags ();_bfb !=nil {return nil ,_bfb ;};var _gff int ;if _ffb ._geg ==nil {_ffb ._geg ,_bfb =_ee .New (_ffb ._gefa );if _bfb !=nil {return nil ,_bfb ;};};if _ffb ._gbf ==nil {_ffb ._gbf =_ee .NewStats (65536,1);
};_ffb .Bitmap =_ge .New (int (_ffb .RegionSegment .BitmapWidth ),int (_ffb .RegionSegment .BitmapHeight ));_gge :=int (uint32 (_ffb .Bitmap .Width +7)&(^uint32 (7)));for _fafe :=0;_fafe < _ffb .Bitmap .Height ;_fafe ++{if _ffb .IsTPGDon {var _acdf int ;
_acdf ,_bfb =_ffb .decodeSLTP ();if _bfb !=nil {return nil ,_bfb ;};_gff ^=_acdf ;};if _gff ==1{if _fafe > 0{if _bfb =_ffb .copyLineAbove (_fafe );_bfb !=nil {return nil ,_bfb ;};};}else {if _bfb =_ffb .decodeLine (_fafe ,_ffb .Bitmap .Width ,_gge );_bfb !=nil {return nil ,_bfb ;
};};};return _ffb .Bitmap ,nil ;};func (_cfebc *TextRegion )symbolIDCodeLengths ()error {var (_abdd []*_gef .Code ;_cdeg uint64 ;_fffgb _gef .Tabler ;_gedd error ;);for _gffg :=0;_gffg < 35;_gffg ++{_cdeg ,_gedd =_cfebc ._cgde .ReadBits (4);if _gedd !=nil {return _gedd ;
};_cfaab :=int (_cdeg &0xf);if _cfaab > 0{_abdd =append (_abdd ,_gef .NewCode (int32 (_cfaab ),0,int32 (_gffg ),false ));};};_fffgb ,_gedd =_gef .NewFixedSizeTable (_abdd );if _gedd !=nil {return _gedd ;};var (_efde int64 ;_cgag uint32 ;_bfae []*_gef .Code ;
_abea int64 ;);for _cgag < _cfebc .NumberOfSymbols {_abea ,_gedd =_fffgb .Decode (_cfebc ._cgde );if _gedd !=nil {return _gedd ;};if _abea < 32{if _abea > 0{_bfae =append (_bfae ,_gef .NewCode (int32 (_abea ),0,int32 (_cgag ),false ));};_efde =_abea ;_cgag ++;
}else {var _bdad ,_agbad int64 ;switch _abea {case 32:_cdeg ,_gedd =_cfebc ._cgde .ReadBits (2);if _gedd !=nil {return _gedd ;};_bdad =3+int64 (_cdeg );if _cgag > 0{_agbad =_efde ;};case 33:_cdeg ,_gedd =_cfebc ._cgde .ReadBits (3);if _gedd !=nil {return _gedd ;
};_bdad =3+int64 (_cdeg );case 34:_cdeg ,_gedd =_cfebc ._cgde .ReadBits (7);if _gedd !=nil {return _gedd ;};_bdad =11+int64 (_cdeg );};for _fabeg :=0;_fabeg < int (_bdad );_fabeg ++{if _agbad > 0{_bfae =append (_bfae ,_gef .NewCode (int32 (_agbad ),0,int32 (_cgag ),false ));
};_cgag ++;};};};_cfebc ._cgde .Align ();_cfebc ._adeb ,_gedd =_gef .NewFixedSizeTable (_bfae );return _gedd ;};func (_ccae *TableSegment )HtRS ()int32 {return _ccae ._fefgc };func (_fbgge *TextRegion )Encode (w _ga .BinaryWriter )(_bbaga int ,_dgcc error ){const _afba ="\u0054\u0065\u0078\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u002e\u0045n\u0063\u006f\u0064\u0065";
if _bbaga ,_dgcc =_fbgge .RegionInfo .Encode (w );_dgcc !=nil {return _bbaga ,_gb .Wrap (_dgcc ,_afba ,"");};var _fbda int ;if _fbda ,_dgcc =_fbgge .encodeFlags (w );_dgcc !=nil {return _bbaga ,_gb .Wrap (_dgcc ,_afba ,"");};_bbaga +=_fbda ;if _fbda ,_dgcc =_fbgge .encodeSymbols (w );
_dgcc !=nil {return _bbaga ,_gb .Wrap (_dgcc ,_afba ,"");};_bbaga +=_fbda ;return _bbaga ,nil ;};func (_gdfc *SymbolDictionary )Init (h *Header ,r _ga .StreamReader )error {_gdfc .Header =h ;_gdfc ._fbad =r ;return _gdfc .parseHeader ();};func (_cfdg *HalftoneRegion )grayScaleDecoding (_gaffd int )([][]int ,error ){var (_ggad []int8 ;
_gbdd []int8 ;);if !_cfdg .IsMMREncoded {_ggad =make ([]int8 ,4);_gbdd =make ([]int8 ,4);if _cfdg .HTemplate <=1{_ggad [0]=3;}else if _cfdg .HTemplate >=2{_ggad [0]=2;};_gbdd [0]=-1;_ggad [1]=-3;_gbdd [1]=-1;_ggad [2]=2;_gbdd [2]=-2;_ggad [3]=-2;_gbdd [3]=-2;
};_bfa :=make ([]*_ge .Bitmap ,_gaffd );_abed :=NewGenericRegion (_cfdg ._cfb );_abed .setParametersMMR (_cfdg .IsMMREncoded ,_cfdg .DataOffset ,_cfdg .DataLength ,_cfdg .HGridHeight ,_cfdg .HGridWidth ,_cfdg .HTemplate ,false ,_cfdg .HSkipEnabled ,_ggad ,_gbdd );
_gfge :=_gaffd -1;var _gfb error ;_bfa [_gfge ],_gfb =_abed .GetRegionBitmap ();if _gfb !=nil {return nil ,_gfb ;};for _gfge > 0{_gfge --;_abed .Bitmap =nil ;_bfa [_gfge ],_gfb =_abed .GetRegionBitmap ();if _gfb !=nil {return nil ,_gfb ;};if _gfb =_cfdg .combineGrayscalePlanes (_bfa ,_gfge );
_gfb !=nil {return nil ,_gfb ;};};return _cfdg .computeGrayScalePlanes (_bfa ,_gaffd );};func (_afc *GenericRefinementRegion )readAtPixels ()error {_afc .GrAtX =make ([]int8 ,2);_afc .GrAtY =make ([]int8 ,2);_fda ,_cfab :=_afc ._aa .ReadByte ();if _cfab !=nil {return _cfab ;
};_afc .GrAtX [0]=int8 (_fda );_fda ,_cfab =_afc ._aa .ReadByte ();if _cfab !=nil {return _cfab ;};_afc .GrAtY [0]=int8 (_fda );_fda ,_cfab =_afc ._aa .ReadByte ();if _cfab !=nil {return _cfab ;};_afc .GrAtX [1]=int8 (_fda );_fda ,_cfab =_afc ._aa .ReadByte ();
if _cfab !=nil {return _cfab ;};_afc .GrAtY [1]=int8 (_fda );return nil ;};func (_dcbd *SymbolDictionary )readAtPixels (_eaff int )error {_dcbd .SdATX =make ([]int8 ,_eaff );_dcbd .SdATY =make ([]int8 ,_eaff );var (_effgg byte ;_baacf error ;);for _adad :=0;
_adad < _eaff ;_adad ++{_effgg ,_baacf =_dcbd ._fbad .ReadByte ();if _baacf !=nil {return _baacf ;};_dcbd .SdATX [_adad ]=int8 (_effgg );_effgg ,_baacf =_dcbd ._fbad .ReadByte ();if _baacf !=nil {return _baacf ;};_dcbd .SdATY [_adad ]=int8 (_effgg );};
return nil ;};func NewGenericRegion (r _ga .StreamReader )*GenericRegion {return &GenericRegion {RegionSegment :NewRegionSegment (r ),_gefa :r };};func (_cdgf *PageInformationSegment )readMaxStripeSize ()error {_feebb ,_eegg :=_cdgf ._efda .ReadBits (15);
if _eegg !=nil {return _eegg ;};_cdgf .MaxStripeSize =uint16 (_feebb &_b .MaxUint16 );return nil ;};func (_bcdd *HalftoneRegion )computeX (_gfac ,_aac int )int {return _bcdd .shiftAndFill (int (_bcdd .HGridX )+_gfac *int (_bcdd .HRegionY )+_aac *int (_bcdd .HRegionX ));
};func (_ddbb *SymbolDictionary )decodeHeightClassDeltaHeightWithHuffman ()(int64 ,error ){switch _ddbb .SdHuffDecodeHeightSelection {case 0:_dacg ,_ebbbb :=_gef .GetStandardTable (4);if _ebbbb !=nil {return 0,_ebbbb ;};return _dacg .Decode (_ddbb ._fbad );
case 1:_efcc ,_bea :=_gef .GetStandardTable (5);if _bea !=nil {return 0,_bea ;};return _efcc .Decode (_ddbb ._fbad );case 3:if _ddbb ._baeb ==nil {_ffbf ,_adbf :=_gef .GetStandardTable (0);if _adbf !=nil {return 0,_adbf ;};_ddbb ._baeb =_ffbf ;};return _ddbb ._baeb .Decode (_ddbb ._fbad );
};return 0,nil ;};type Pager interface{GetSegment (int )(*Header ,error );GetBitmap ()(*_ge .Bitmap ,error );};func (_afgd *GenericRegion )parseHeader ()(_gfed error ){_gbce .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052I\u0043\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0050\u0061\u0072s\u0069\u006e\u0067\u0048\u0065\u0061\u0064e\u0072\u002e\u002e\u002e");
defer func (){if _gfed !=nil {_gbce .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0047\u0049\u004f\u004e]\u0020\u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065\u0061\u0064\u0065r\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u0020\u0077\u0069th\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020\u0025\u0076",_gfed );
}else {_gbce .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049C\u002d\u0052\u0045G\u0049\u004f\u004e]\u0020\u0050a\u0072\u0073\u0069\u006e\u0067\u0048e\u0061de\u0072\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u0020\u0053\u0075\u0063\u0063\u0065\u0073\u0073\u0066\u0075\u006c\u006c\u0079\u002e\u002e\u002e");
};}();var (_ccgg int ;_gec uint64 ;);if _gfed =_afgd .RegionSegment .parseHeader ();_gfed !=nil {return _gfed ;};if _ ,_gfed =_afgd ._gefa .ReadBits (3);_gfed !=nil {return _gfed ;};_ccgg ,_gfed =_afgd ._gefa .ReadBit ();if _gfed !=nil {return _gfed ;};
if _ccgg ==1{_afgd .UseExtTemplates =true ;};_ccgg ,_gfed =_afgd ._gefa .ReadBit ();if _gfed !=nil {return _gfed ;};if _ccgg ==1{_afgd .IsTPGDon =true ;};_gec ,_gfed =_afgd ._gefa .ReadBits (2);if _gfed !=nil {return _gfed ;};_afgd .GBTemplate =byte (_gec &0xf);
_ccgg ,_gfed =_afgd ._gefa .ReadBit ();if _gfed !=nil {return _gfed ;};if _ccgg ==1{_afgd .IsMMREncoded =true ;};if !_afgd .IsMMREncoded {_bag :=1;if _afgd .GBTemplate ==0{_bag =4;if _afgd .UseExtTemplates {_bag =12;};};if _gfed =_afgd .readGBAtPixels (_bag );
_gfed !=nil {return _gfed ;};};if _gfed =_afgd .computeSegmentDataStructure ();_gfed !=nil {return _gfed ;};_gbce .Log .Trace ("\u0025\u0073",_afgd );return nil ;};func (_fdfcd *PageInformationSegment )encodeFlags (_ccfe _ga .BinaryWriter )(_dceb error ){const _fcfb ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";
if _dceb =_ccfe .SkipBits (1);_dceb !=nil {return _gb .Wrap (_dceb ,_fcfb ,"\u0072\u0065\u0073e\u0072\u0076\u0065\u0064\u0020\u0062\u0069\u0074");};var _aegec int ;if _fdfcd .CombinationOperatorOverrideAllowed (){_aegec =1;};if _dceb =_ccfe .WriteBit (_aegec );
_dceb !=nil {return _gb .Wrap (_dceb ,_fcfb ,"\u0063\u006f\u006db\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0070\u0065\u0072a\u0074\u006f\u0072\u0020\u006f\u0076\u0065\u0072\u0072\u0069\u0064\u0064\u0065\u006e");};_aegec =0;if _fdfcd ._eae {_aegec =1;
};if _dceb =_ccfe .WriteBit (_aegec );_dceb !=nil {return _gb .Wrap (_dceb ,_fcfb ,"\u0072e\u0071\u0075\u0069\u0072e\u0073\u0020\u0061\u0075\u0078i\u006ci\u0061r\u0079\u0020\u0062\u0075\u0066\u0066\u0065r");};if _dceb =_ccfe .WriteBit ((int (_fdfcd ._edfb )>>1)&0x01);
_dceb !=nil {return _gb .Wrap (_dceb ,_fcfb ,"\u0063\u006f\u006d\u0062\u0069\u006e\u0061\u0074\u0069\u006fn\u0020\u006f\u0070\u0065\u0072\u0061\u0074o\u0072\u0020\u0066\u0069\u0072\u0073\u0074\u0020\u0062\u0069\u0074");};if _dceb =_ccfe .WriteBit (int (_fdfcd ._edfb )&0x01);
_dceb !=nil {return _gb .Wrap (_dceb ,_fcfb ,"\u0063\u006f\u006db\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0070\u0065\u0072a\u0074\u006f\u0072\u0020\u0073\u0065\u0063\u006f\u006e\u0064\u0020\u0062\u0069\u0074");};_aegec =int (_fdfcd .DefaultPixelValue );
if _dceb =_ccfe .WriteBit (_aegec );_dceb !=nil {return _gb .Wrap (_dceb ,_fcfb ,"\u0064e\u0066\u0061\u0075\u006c\u0074\u0020\u0070\u0061\u0067\u0065\u0020p\u0069\u0078\u0065\u006c\u0020\u0076\u0061\u006c\u0075\u0065");};_aegec =0;if _fdfcd ._cffa {_aegec =1;
};if _dceb =_ccfe .WriteBit (_aegec );_dceb !=nil {return _gb .Wrap (_dceb ,_fcfb ,"\u0063\u006f\u006e\u0074ai\u006e\u0073\u0020\u0072\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074");};_aegec =0;if _fdfcd .IsLossless {_aegec =1;};if _dceb =_ccfe .WriteBit (_aegec );
_dceb !=nil {return _gb .Wrap (_dceb ,_fcfb ,"p\u0061\u0067\u0065\u0020\u0069\u0073 \u0065\u0076\u0065\u006e\u0074\u0075\u0061\u006c\u006cy\u0020\u006c\u006fs\u0073l\u0065\u0073\u0073");};return nil ;};func (_cga *SymbolDictionary )encodeSymbols (_decb _ga .BinaryWriter )(_fded int ,_dcgf error ){const _fefd ="\u0065\u006e\u0063o\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c";
_gaeb :=_fb .New ();_gaeb .Init ();_fbac ,_dcgf :=_cga ._ffbc .SelectByIndexes (_cga ._egca );if _dcgf !=nil {return 0,_gb .Wrap (_dcgf ,_fefd ,"\u0069n\u0069\u0074\u0069\u0061\u006c");};_debd :=map[*_ge .Bitmap ]int {};for _adec ,_cadfa :=range _fbac .Values {_debd [_cadfa ]=_adec ;
};_fbac .SortByHeight ();var _bfdg ,_fafb int ;_fdeb ,_dcgf :=_fbac .GroupByHeight ();if _dcgf !=nil {return 0,_gb .Wrap (_dcgf ,_fefd ,"");};for _ ,_bbd :=range _fdeb .Values {_dgec :=_bbd .Values [0].Height ;_ebfc :=_dgec -_bfdg ;if _dcgf =_gaeb .EncodeInteger (_fb .IADH ,_ebfc );
_dcgf !=nil {return 0,_gb .Wrapf (_dcgf ,_fefd ,"\u0049\u0041\u0044\u0048\u0020\u0066\u006f\u0072\u0020\u0064\u0068\u003a \u0027\u0025\u0064\u0027",_ebfc );};_bfdg =_dgec ;_gade ,_cecc :=_bbd .GroupByWidth ();if _cecc !=nil {return 0,_gb .Wrapf (_cecc ,_fefd ,"\u0068\u0065\u0069g\u0068\u0074\u003a\u0020\u0027\u0025\u0064\u0027",_dgec );
};var _dddg int ;for _ ,_gcee :=range _gade .Values {for _ ,_bada :=range _gcee .Values {_aaab :=_bada .Width ;_aaf :=_aaab -_dddg ;if _cecc =_gaeb .EncodeInteger (_fb .IADW ,_aaf );_cecc !=nil {return 0,_gb .Wrapf (_cecc ,_fefd ,"\u0049\u0041\u0044\u0057\u0020\u0066\u006f\u0072\u0020\u0064\u0077\u003a \u0027\u0025\u0064\u0027",_aaf );
};_dddg +=_aaf ;if _cecc =_gaeb .EncodeBitmap (_bada ,false );_cecc !=nil {return 0,_gb .Wrapf (_cecc ,_fefd ,"H\u0065i\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u0020W\u0069\u0064\u0074\u0068: \u0025\u0064",_dgec ,_aaab );};_bcce :=_debd [_bada ];_cga ._ddbg [_bcce ]=_fafb ;
_fafb ++;};};if _cecc =_gaeb .EncodeOOB (_fb .IADW );_cecc !=nil {return 0,_gb .Wrap (_cecc ,_fefd ,"\u0049\u0041\u0044\u0057");};};if _dcgf =_gaeb .EncodeInteger (_fb .IAEX ,0);_dcgf !=nil {return 0,_gb .Wrap (_dcgf ,_fefd ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");
};if _dcgf =_gaeb .EncodeInteger (_fb .IAEX ,len (_cga ._egca ));_dcgf !=nil {return 0,_gb .Wrap (_dcgf ,_fefd ,"\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0073\u0079m\u0062\u006f\u006c\u0073");};_gaeb .Final ();_adgc ,_dcgf :=_gaeb .WriteTo (_decb );
if _dcgf !=nil {return 0,_gb .Wrap (_dcgf ,_fefd ,"\u0077\u0072i\u0074\u0069\u006e\u0067 \u0065\u006ec\u006f\u0064\u0065\u0072\u0020\u0063\u006f\u006et\u0065\u0078\u0074\u0020\u0074\u006f\u0020\u0027\u0077\u0027\u0020\u0077r\u0069\u0074\u0065\u0072");};
return int (_adgc ),nil ;};func (_badde *TextRegion )decodeRI ()(int64 ,error ){if !_badde .UseRefinement {return 0,nil ;};if _badde .IsHuffmanEncoded {_fgfdg ,_fgbc :=_badde ._cgde .ReadBit ();return int64 (_fgfdg ),_fgbc ;};_bbe ,_cbdbe :=_badde ._cdfa .DecodeInt (_badde ._cae );
return int64 (_bbe ),_cbdbe ;};func (_fabf *GenericRegion )InitEncode (bm *_ge .Bitmap ,xLoc ,yLoc ,template int ,duplicateLineRemoval bool )error {const _gcbe ="\u0047e\u006e\u0065\u0072\u0069\u0063\u0052\u0065\u0067\u0069\u006f\u006e.\u0049\u006e\u0069\u0074\u0045\u006e\u0063\u006f\u0064\u0065";
if bm ==nil {return _gb .Error (_gcbe ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");};if xLoc < 0||yLoc < 0{return _gb .Error (_gcbe ,"\u0078\u0020\u0061\u006e\u0064\u0020\u0079\u0020\u006c\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0067\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074h\u0061\u006e\u0020\u0030");
};_fabf .Bitmap =bm ;_fabf .GBTemplate =byte (template );switch _fabf .GBTemplate {case 0:_fabf .GBAtX =[]int8 {3,-3,2,-2};_fabf .GBAtY =[]int8 {-1,-1,-2,-2};case 1:_fabf .GBAtX =[]int8 {3};_fabf .GBAtY =[]int8 {-1};case 2,3:_fabf .GBAtX =[]int8 {2};_fabf .GBAtY =[]int8 {-1};
default:return _gb .Errorf (_gcbe ,"\u0070\u0072o\u0076\u0069\u0064\u0065\u0064 \u0074\u0065\u006d\u0070\u006ca\u0074\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0020\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u007b\u0030\u002c\u0031\u002c\u0032\u002c\u0033\u007d",template );
};_fabf .RegionSegment =&RegionSegment {BitmapHeight :uint32 (bm .Height ),BitmapWidth :uint32 (bm .Width ),XLocation :uint32 (xLoc ),YLocation :uint32 (yLoc )};_fabf .IsTPGDon =duplicateLineRemoval ;return nil ;};type SymbolDictionary struct{_fbad _ga .StreamReader ;
SdrTemplate int8 ;SdTemplate int8 ;_gffe bool ;_eged bool ;SdHuffAggInstanceSelection bool ;SdHuffBMSizeSelection int8 ;SdHuffDecodeWidthSelection int8 ;SdHuffDecodeHeightSelection int8 ;UseRefinementAggregation bool ;IsHuffmanEncoded bool ;SdATX []int8 ;
SdATY []int8 ;SdrATX []int8 ;SdrATY []int8 ;NumberOfExportedSymbols uint32 ;NumberOfNewSymbols uint32 ;Header *Header ;_gcba uint32 ;_gaeg []*_ge .Bitmap ;_dcbc uint32 ;_fabff []*_ge .Bitmap ;_baeb _gef .Tabler ;_fcfbd _gef .Tabler ;_fdff _gef .Tabler ;
_dbac _gef .Tabler ;_ddgdg []*_ge .Bitmap ;_fbaa []*_ge .Bitmap ;_geee *_ee .Decoder ;_ggfd *TextRegion ;_agcdgb *GenericRegion ;_fecg *GenericRefinementRegion ;_fcda *_ee .DecoderStats ;_efag *_ee .DecoderStats ;_egba *_ee .DecoderStats ;_gcde *_ee .DecoderStats ;
_cad *_ee .DecoderStats ;_dbab *_ee .DecoderStats ;_ddbe *_ee .DecoderStats ;_dgaag *_ee .DecoderStats ;_cagef *_ee .DecoderStats ;_gffb int8 ;_ffbc *_ge .Bitmaps ;_egca []int ;_ddbg map[int ]int ;_aggf bool ;};func (_fae *PageInformationSegment )encodeStripingInformation (_egf _ga .BinaryWriter )(_bfag int ,_ebad error ){const _bacg ="\u0065n\u0063\u006f\u0064\u0065S\u0074\u0072\u0069\u0070\u0069n\u0067I\u006ef\u006f\u0072\u006d\u0061\u0074\u0069\u006fn";
if !_fae .IsStripe {if _bfag ,_ebad =_egf .Write ([]byte {0x00,0x00});_ebad !=nil {return 0,_gb .Wrap (_ebad ,_bacg ,"n\u006f\u0020\u0073\u0074\u0072\u0069\u0070\u0069\u006e\u0067");};return _bfag ,nil ;};_bdcf :=make ([]byte ,2);_e .BigEndian .PutUint16 (_bdcf ,_fae .MaxStripeSize |1<<15);
if _bfag ,_ebad =_egf .Write (_bdcf );_ebad !=nil {return 0,_gb .Wrapf (_ebad ,_bacg ,"\u0073\u0074\u0072i\u0070\u0069\u006e\u0067\u003a\u0020\u0025\u0064",_fae .MaxStripeSize );};return _bfag ,nil ;};func (_gfga *PageInformationSegment )readCombinationOperatorOverrideAllowed ()error {_ddbd ,_eeab :=_gfga ._efda .ReadBit ();
if _eeab !=nil {return _eeab ;};if _ddbd ==1{_gfga ._bdbc =true ;};return nil ;};func (_agfb *Header )readSegmentDataLength (_bagc _ga .StreamReader )(_ggde error ){_agfb .SegmentDataLength ,_ggde =_bagc .ReadBits (32);if _ggde !=nil {return _ggde ;};_agfb .SegmentDataLength &=_b .MaxInt32 ;
return nil ;};func (_dfab *TextRegion )GetRegionInfo ()*RegionSegment {return _dfab .RegionInfo };func (_fgfff *SymbolDictionary )addSymbol (_dddc Regioner )error {_eaea ,_eeaf :=_dddc .GetRegionBitmap ();if _eeaf !=nil {return _eeaf ;};_fgfff ._fabff [_fgfff ._dcbc ]=_eaea ;
_fgfff ._fbaa =append (_fgfff ._fbaa ,_eaea );_gbce .Log .Trace ("\u005b\u0053YM\u0042\u004f\u004c \u0044\u0049\u0043\u0054ION\u0041RY\u005d\u0020\u0041\u0064\u0064\u0065\u0064 s\u0079\u006d\u0062\u006f\u006c\u003a\u0020%\u0073",_eaea );return nil ;};func (_edfg *TextRegion )readRegionFlags ()error {var (_abab int ;
_cdec uint64 ;_gcdgee error ;);_abab ,_gcdgee =_edfg ._cgde .ReadBit ();if _gcdgee !=nil {return _gcdgee ;};_edfg .SbrTemplate =int8 (_abab );_cdec ,_gcdgee =_edfg ._cgde .ReadBits (5);if _gcdgee !=nil {return _gcdgee ;};_edfg .SbDsOffset =int8 (_cdec );
if _edfg .SbDsOffset > 0x0f{_edfg .SbDsOffset -=0x20;};_abab ,_gcdgee =_edfg ._cgde .ReadBit ();if _gcdgee !=nil {return _gcdgee ;};_edfg .DefaultPixel =int8 (_abab );_cdec ,_gcdgee =_edfg ._cgde .ReadBits (2);if _gcdgee !=nil {return _gcdgee ;};_edfg .CombinationOperator =_ge .CombinationOperator (int (_cdec )&0x3);
_abab ,_gcdgee =_edfg ._cgde .ReadBit ();if _gcdgee !=nil {return _gcdgee ;};_edfg .IsTransposed =int8 (_abab );_cdec ,_gcdgee =_edfg ._cgde .ReadBits (2);if _gcdgee !=nil {return _gcdgee ;};_edfg .ReferenceCorner =int16 (_cdec )&0x3;_cdec ,_gcdgee =_edfg ._cgde .ReadBits (2);
if _gcdgee !=nil {return _gcdgee ;};_edfg .LogSBStrips =int16 (_cdec )&0x3;_edfg .SbStrips =1<<uint (_edfg .LogSBStrips );_abab ,_gcdgee =_edfg ._cgde .ReadBit ();if _gcdgee !=nil {return _gcdgee ;};if _abab ==1{_edfg .UseRefinement =true ;};_abab ,_gcdgee =_edfg ._cgde .ReadBit ();
if _gcdgee !=nil {return _gcdgee ;};if _abab ==1{_edfg .IsHuffmanEncoded =true ;};return nil ;};func (_faa *GenericRegion )Size ()int {return _faa .RegionSegment .Size ()+1+2*len (_faa .GBAtX )};func (_befe *TextRegion )parseHeader ()error {var _facf error ;
_gbce .Log .Trace ("\u005b\u0054E\u0058\u0054\u0020\u0052E\u0047\u0049O\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045-\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0062\u0065\u0067\u0069n\u0073\u002e\u002e\u002e");defer func (){if _facf !=nil {_gbce .Log .Trace ("\u005b\u0054\u0045\u0058\u0054\u0020\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044E\u0052\u005d\u0020\u0066\u0061i\u006c\u0065d\u002e\u0020\u0025\u0076",_facf );
}else {_gbce .Log .Trace ("\u005b\u0054E\u0058\u0054\u0020\u0052E\u0047\u0049O\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045-\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0066\u0069\u006e\u0069s\u0068\u0065\u0064\u002e");};}();if _facf =_befe .RegionInfo .parseHeader ();
_facf !=nil {return _facf ;};if _facf =_befe .readRegionFlags ();_facf !=nil {return _facf ;};if _befe .IsHuffmanEncoded {if _facf =_befe .readHuffmanFlags ();_facf !=nil {return _facf ;};};if _facf =_befe .readUseRefinement ();_facf !=nil {return _facf ;
};if _facf =_befe .readAmountOfSymbolInstances ();_facf !=nil {return _facf ;};if _facf =_befe .getSymbols ();_facf !=nil {return _facf ;};if _facf =_befe .computeSymbolCodeLength ();_facf !=nil {return _facf ;};if _facf =_befe .checkInput ();_facf !=nil {return _facf ;
};_gbce .Log .Trace ("\u0025\u0073",_befe .String ());return nil ;};var _ templater =&template1 {};func (_ggff *TextRegion )setParameters (_fggag *_ee .Decoder ,_bfce ,_eafg bool ,_gagc ,_gfcbe uint32 ,_bbdgf uint32 ,_egff int8 ,_cfdf uint32 ,_bafe int8 ,_gbca _ge .CombinationOperator ,_agdd int8 ,_gebe int16 ,_dfdf ,_fbgf ,_ccaag ,_dfbc ,_dgcf ,_cgfe ,_cbfa ,_abcd ,_bacb ,_cabb int8 ,_gdce ,_dbdgf []int8 ,_fgdg []*_ge .Bitmap ,_effea int8 ){_ggff ._cdfa =_fggag ;
_ggff .IsHuffmanEncoded =_bfce ;_ggff .UseRefinement =_eafg ;_ggff .RegionInfo .BitmapWidth =_gagc ;_ggff .RegionInfo .BitmapHeight =_gfcbe ;_ggff .NumberOfSymbolInstances =_bbdgf ;_ggff .SbStrips =_egff ;_ggff .NumberOfSymbols =_cfdf ;_ggff .DefaultPixel =_bafe ;
_ggff .CombinationOperator =_gbca ;_ggff .IsTransposed =_agdd ;_ggff .ReferenceCorner =_gebe ;_ggff .SbDsOffset =_dfdf ;_ggff .SbHuffFS =_fbgf ;_ggff .SbHuffDS =_ccaag ;_ggff .SbHuffDT =_dfbc ;_ggff .SbHuffRDWidth =_dgcf ;_ggff .SbHuffRDHeight =_cgfe ;
_ggff .SbHuffRSize =_bacb ;_ggff .SbHuffRDX =_cbfa ;_ggff .SbHuffRDY =_abcd ;_ggff .SbrTemplate =_cabb ;_ggff .SbrATX =_gdce ;_ggff .SbrATY =_dbdgf ;_ggff .Symbols =_fgdg ;_ggff ._addf =_effea ;};func (_dba *GenericRegion )Encode (w _ga .BinaryWriter )(_bef int ,_cabd error ){const _afd ="G\u0065n\u0065\u0072\u0069\u0063\u0052\u0065\u0067\u0069o\u006e\u002e\u0045\u006eco\u0064\u0065";
if _dba .Bitmap ==nil {return 0,_gb .Error (_afd ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");};_fgc ,_cabd :=_dba .RegionSegment .Encode (w );if _cabd !=nil {return 0,_gb .Wrap (_cabd ,_afd ,"\u0052\u0065\u0067\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065\u006e\u0074");
};_bef +=_fgc ;if _cabd =w .SkipBits (4);_cabd !=nil {return _bef ,_gb .Wrap (_cabd ,_afd ,"\u0073k\u0069p\u0020\u0072\u0065\u0073\u0065r\u0076\u0065d\u0020\u0062\u0069\u0074\u0073");};var _bgdg int ;if _dba .IsTPGDon {_bgdg =1;};if _cabd =w .WriteBit (_bgdg );
_cabd !=nil {return _bef ,_gb .Wrap (_cabd ,_afd ,"\u0074\u0070\u0067\u0064\u006f\u006e");};_bgdg =0;if _cabd =w .WriteBit (int (_dba .GBTemplate >>1)&0x01);_cabd !=nil {return _bef ,_gb .Wrap (_cabd ,_afd ,"f\u0069r\u0073\u0074\u0020\u0067\u0062\u0074\u0065\u006dp\u006c\u0061\u0074\u0065 b\u0069\u0074");
};if _cabd =w .WriteBit (int (_dba .GBTemplate )&0x01);_cabd !=nil {return _bef ,_gb .Wrap (_cabd ,_afd ,"s\u0065\u0063\u006f\u006ed \u0067b\u0074\u0065\u006d\u0070\u006ca\u0074\u0065\u0020\u0062\u0069\u0074");};if _dba .UseMMR {_bgdg =1;};if _cabd =w .WriteBit (_bgdg );
_cabd !=nil {return _bef ,_gb .Wrap (_cabd ,_afd ,"u\u0073\u0065\u0020\u004d\u004d\u0052\u0020\u0062\u0069\u0074");};_bef ++;if _fgc ,_cabd =_dba .writeGBAtPixels (w );_cabd !=nil {return _bef ,_gb .Wrap (_cabd ,_afd ,"");};_bef +=_fgc ;_acca :=_fb .New ();
if _cabd =_acca .EncodeBitmap (_dba .Bitmap ,_dba .IsTPGDon );_cabd !=nil {return _bef ,_gb .Wrap (_cabd ,_afd ,"");};_acca .Final ();var _deb int64 ;if _deb ,_cabd =_acca .WriteTo (w );_cabd !=nil {return _bef ,_gb .Wrap (_cabd ,_afd ,"");};_bef +=int (_deb );
return _bef ,nil ;};type OrganizationType uint8 ;func (_gcg *template1 )setIndex (_eeb *_ee .DecoderStats ){_eeb .SetIndex (0x080)};func (_cedc *SymbolDictionary )setInSyms ()error {if _cedc .Header .RTSegments !=nil {return _cedc .retrieveImportSymbols ();
};_cedc ._gaeg =make ([]*_ge .Bitmap ,0);return nil ;};func (_eec *GenericRefinementRegion )decodeTypicalPredictedLineTemplate1 (_gdd ,_abb ,_ebb ,_dgc ,_eag ,_bgd ,_fcb ,_eee ,_agc int )(_fee error ){var (_agb ,_abc int ;_fdc ,_bae int ;_fad ,_fadd int ;
_ce byte ;);if _gdd > 0{_ce ,_fee =_eec .RegionBitmap .GetByte (_fcb -_ebb );if _fee !=nil {return ;};_fdc =int (_ce );};if _eee > 0&&_eee <=_eec .ReferenceBitmap .Height {_ce ,_fee =_eec .ReferenceBitmap .GetByte (_agc -_dgc +_bgd );if _fee !=nil {return ;
};_bae =int (_ce )<<2;};if _eee >=0&&_eee < _eec .ReferenceBitmap .Height {_ce ,_fee =_eec .ReferenceBitmap .GetByte (_agc +_bgd );if _fee !=nil {return ;};_fad =int (_ce );};if _eee > -2&&_eee < _eec .ReferenceBitmap .Height -1{_ce ,_fee =_eec .ReferenceBitmap .GetByte (_agc +_dgc +_bgd );
if _fee !=nil {return ;};_fadd =int (_ce );};_agb =((_fdc >>5)&0x6)|((_fadd >>2)&0x30)|(_fad &0xc0)|(_bae &0x200);_abc =((_fadd >>2)&0x70)|(_fad &0xc0)|(_bae &0x700);var _bed int ;for _cfe :=0;_cfe < _eag ;_cfe =_bed {var (_febd int ;_fga int ;);_bed =_cfe +8;
if _febd =_abb -_cfe ;_febd > 8{_febd =8;};_aba :=_bed < _abb ;_gaa :=_bed < _eec .ReferenceBitmap .Width ;_bbc :=_bgd +1;if _gdd > 0{_ce =0;if _aba {_ce ,_fee =_eec .RegionBitmap .GetByte (_fcb -_ebb +1);if _fee !=nil {return ;};};_fdc =(_fdc <<8)|int (_ce );
};if _eee > 0&&_eee <=_eec .ReferenceBitmap .Height {var _dae int ;if _gaa {_ce ,_fee =_eec .ReferenceBitmap .GetByte (_agc -_dgc +_bbc );if _fee !=nil {return ;};_dae =int (_ce )<<2;};_bae =(_bae <<8)|_dae ;};if _eee >=0&&_eee < _eec .ReferenceBitmap .Height {_ce =0;
if _gaa {_ce ,_fee =_eec .ReferenceBitmap .GetByte (_agc +_bbc );if _fee !=nil {return ;};};_fad =(_fad <<8)|int (_ce );};if _eee > -2&&_eee < (_eec .ReferenceBitmap .Height -1){_ce =0;if _gaa {_ce ,_fee =_eec .ReferenceBitmap .GetByte (_agc +_dgc +_bbc );
if _fee !=nil {return ;};};_fadd =(_fadd <<8)|int (_ce );};for _fea :=0;_fea < _febd ;_fea ++{var _cdg int ;_bfd :=(_abc >>4)&0x1ff;switch _bfd {case 0x1ff:_cdg =1;case 0x00:_cdg =0;default:_eec ._eg .SetIndex (int32 (_agb ));_cdg ,_fee =_eec ._bb .DecodeBit (_eec ._eg );
if _fee !=nil {return ;};};_cff :=uint (7-_fea );_fga |=_cdg <<_cff ;_agb =((_agb &0x0d6)<<1)|_cdg |(_fdc >>_cff +5)&0x002|((_fadd >>_cff +2)&0x010)|((_fad >>_cff )&0x040)|((_bae >>_cff )&0x200);_abc =((_abc &0xdb)<<1)|((_fadd >>_cff +2)&0x010)|((_fad >>_cff )&0x080)|((_bae >>_cff )&0x400);
};_fee =_eec .RegionBitmap .SetByte (_fcb ,byte (_fga ));if _fee !=nil {return ;};_fcb ++;_agc ++;};return nil ;};func (_decge *PatternDictionary )readIsMMREncoded ()error {_edga ,_afga :=_decge ._gffc .ReadBit ();if _afga !=nil {return _afga ;};if _edga !=0{_decge .IsMMREncoded =true ;
};return nil ;};func (_faddb *PageInformationSegment )readResolution ()error {_cbdge ,_dgaa :=_faddb ._efda .ReadBits (32);if _dgaa !=nil {return _dgaa ;};_faddb .ResolutionX =int (_cbdge &_b .MaxInt32 );_cbdge ,_dgaa =_faddb ._efda .ReadBits (32);if _dgaa !=nil {return _dgaa ;
};_faddb .ResolutionY =int (_cbdge &_b .MaxInt32 );return nil ;};func (_egdb *TextRegion )encodeFlags (_aggc _ga .BinaryWriter )(_bgad int ,_dabbg error ){const _bgfcfa ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _dabbg =_aggc .WriteBit (int (_egdb .SbrTemplate ));
_dabbg !=nil {return _bgad ,_gb .Wrap (_dabbg ,_bgfcfa ,"s\u0062\u0072\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};if _ ,_dabbg =_aggc .WriteBits (uint64 (_egdb .SbDsOffset ),5);_dabbg !=nil {return _bgad ,_gb .Wrap (_dabbg ,_bgfcfa ,"\u0073\u0062\u0044\u0073\u004f\u0066\u0066\u0073\u0065\u0074");
};if _dabbg =_aggc .WriteBit (int (_egdb .DefaultPixel ));_dabbg !=nil {return _bgad ,_gb .Wrap (_dabbg ,_bgfcfa ,"\u0044\u0065\u0066a\u0075\u006c\u0074\u0050\u0069\u0078\u0065\u006c");};if _ ,_dabbg =_aggc .WriteBits (uint64 (_egdb .CombinationOperator ),2);
_dabbg !=nil {return _bgad ,_gb .Wrap (_dabbg ,_bgfcfa ,"\u0043\u006f\u006d\u0062in\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065\u0072\u0061\u0074\u006f\u0072");};if _dabbg =_aggc .WriteBit (int (_egdb .IsTransposed ));_dabbg !=nil {return _bgad ,_gb .Wrap (_dabbg ,_bgfcfa ,"\u0069\u0073\u0020\u0074\u0072\u0061\u006e\u0073\u0070\u006f\u0073\u0065\u0064");
};if _ ,_dabbg =_aggc .WriteBits (uint64 (_egdb .ReferenceCorner ),2);_dabbg !=nil {return _bgad ,_gb .Wrap (_dabbg ,_bgfcfa ,"\u0072\u0065f\u0065\u0072\u0065n\u0063\u0065\u0020\u0063\u006f\u0072\u006e\u0065\u0072");};if _ ,_dabbg =_aggc .WriteBits (uint64 (_egdb .LogSBStrips ),2);
_dabbg !=nil {return _bgad ,_gb .Wrap (_dabbg ,_bgfcfa ,"L\u006f\u0067\u0053\u0042\u0053\u0074\u0072\u0069\u0070\u0073");};var _fbddd int ;if _egdb .UseRefinement {_fbddd =1;};if _dabbg =_aggc .WriteBit (_fbddd );_dabbg !=nil {return _bgad ,_gb .Wrap (_dabbg ,_bgfcfa ,"\u0075\u0073\u0065\u0020\u0072\u0065\u0066\u0069\u006ee\u006d\u0065\u006e\u0074");
};_fbddd =0;if _egdb .IsHuffmanEncoded {_fbddd =1;};if _dabbg =_aggc .WriteBit (_fbddd );_dabbg !=nil {return _bgad ,_gb .Wrap (_dabbg ,_bgfcfa ,"u\u0073\u0065\u0020\u0068\u0075\u0066\u0066\u006d\u0061\u006e");};_bgad =2;return _bgad ,nil ;};func (_afbg *TextRegion )decodeSymbolInstances ()error {_fegc ,_ceaa :=_afbg .decodeStripT ();
if _ceaa !=nil {return _ceaa ;};var (_decbc int64 ;_ebdfg uint32 ;);for _ebdfg < _afbg .NumberOfSymbolInstances {_daed ,_cfag :=_afbg .decodeDT ();if _cfag !=nil {return _cfag ;};_fegc +=_daed ;var _gega int64 ;_eeef :=true ;_afbg ._aebf =0;for {if _eeef {_gega ,_cfag =_afbg .decodeDfs ();
if _cfag !=nil {return _cfag ;};_decbc +=_gega ;_afbg ._aebf =_decbc ;_eeef =false ;}else {_cba ,_dbdfe :=_afbg .decodeIds ();if _ed .Is (_dbdfe ,_d .ErrOOB ){break ;};if _dbdfe !=nil {return _dbdfe ;};if _ebdfg >=_afbg .NumberOfSymbolInstances {break ;
};_afbg ._aebf +=_cba +int64 (_afbg .SbDsOffset );};_gbee ,_cbgb :=_afbg .decodeCurrentT ();if _cbgb !=nil {return _cbgb ;};_ccaa :=_fegc +_gbee ;_bgeecd ,_cbgb :=_afbg .decodeID ();if _cbgb !=nil {return _cbgb ;};_fdede ,_cbgb :=_afbg .decodeRI ();if _cbgb !=nil {return _cbgb ;
};_bfde ,_cbgb :=_afbg .decodeIb (_fdede ,_bgeecd );if _cbgb !=nil {return _cbgb ;};if _cbgb =_afbg .blit (_bfde ,_ccaa );_cbgb !=nil {return _cbgb ;};_ebdfg ++;};};return nil ;};type TextRegion struct{_cgde _ga .StreamReader ;RegionInfo *RegionSegment ;
SbrTemplate int8 ;SbDsOffset int8 ;DefaultPixel int8 ;CombinationOperator _ge .CombinationOperator ;IsTransposed int8 ;ReferenceCorner int16 ;LogSBStrips int16 ;UseRefinement bool ;IsHuffmanEncoded bool ;SbHuffRSize int8 ;SbHuffRDY int8 ;SbHuffRDX int8 ;
SbHuffRDHeight int8 ;SbHuffRDWidth int8 ;SbHuffDT int8 ;SbHuffDS int8 ;SbHuffFS int8 ;SbrATX []int8 ;SbrATY []int8 ;NumberOfSymbolInstances uint32 ;_aebf int64 ;SbStrips int8 ;NumberOfSymbols uint32 ;RegionBitmap *_ge .Bitmap ;Symbols []*_ge .Bitmap ;_cdfa *_ee .Decoder ;
_fead *GenericRefinementRegion ;_egeb *_ee .DecoderStats ;_fafdb *_ee .DecoderStats ;_gedc *_ee .DecoderStats ;_caaf *_ee .DecoderStats ;_cae *_ee .DecoderStats ;_gfbc *_ee .DecoderStats ;_cfgb *_ee .DecoderStats ;_gebb *_ee .DecoderStats ;_gca *_ee .DecoderStats ;
_efafe *_ee .DecoderStats ;_bgfa *_ee .DecoderStats ;_addf int8 ;_adeb *_gef .FixedSizeTable ;Header *Header ;_gadb _gef .Tabler ;_agef _gef .Tabler ;_fbgc _gef .Tabler ;_ddeb _gef .Tabler ;_afgda _gef .Tabler ;_deac _gef .Tabler ;_ffaed _gef .Tabler ;
_babe _gef .Tabler ;_cedcg ,_gfeea map[int ]int ;_eaaba []int ;_bbced *_ge .Points ;_dbfe *_ge .Bitmaps ;_abcbcg *_bf .IntSlice ;_aceda ,_cgbe int ;_cdgfb *_ge .Boxes ;};func (_ccbe *HalftoneRegion )combineGrayscalePlanes (_bedf []*_ge .Bitmap ,_aea int )error {_dbbcc :=0;
for _gecd :=0;_gecd < _bedf [_aea ].Height ;_gecd ++{for _ggb :=0;_ggb < _bedf [_aea ].Width ;_ggb +=8{_bdbe ,_egc :=_bedf [_aea +1].GetByte (_dbbcc );if _egc !=nil {return _egc ;};_ddfa ,_egc :=_bedf [_aea ].GetByte (_dbbcc );if _egc !=nil {return _egc ;
};_egc =_bedf [_aea ].SetByte (_dbbcc ,_ge .CombineBytes (_ddfa ,_bdbe ,_ge .CmbOpXor ));if _egc !=nil {return _egc ;};_dbbcc ++;};};return nil ;};func (_gabe *GenericRegion )GetRegionInfo ()*RegionSegment {return _gabe .RegionSegment };const (TSymbolDictionary Type =0;
TIntermediateTextRegion Type =4;TImmediateTextRegion Type =6;TImmediateLosslessTextRegion Type =7;TPatternDictionary Type =16;TIntermediateHalftoneRegion Type =20;TImmediateHalftoneRegion Type =22;TImmediateLosslessHalftoneRegion Type =23;TIntermediateGenericRegion Type =36;
TImmediateGenericRegion Type =38;TImmediateLosslessGenericRegion Type =39;TIntermediateGenericRefinementRegion Type =40;TImmediateGenericRefinementRegion Type =42;TImmediateLosslessGenericRefinementRegion Type =43;TPageInformation Type =48;TEndOfPage Type =49;
TEndOfStrip Type =50;TEndOfFile Type =51;TProfiles Type =52;TTables Type =53;TExtension Type =62;TBitmap Type =70;);func (_gdcb *SymbolDictionary )encodeFlags (_gceb _ga .BinaryWriter )(_agaad int ,_gcfd error ){const _gfacg ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";
if _gcfd =_gceb .SkipBits (3);_gcfd !=nil {return 0,_gb .Wrap (_gcfd ,_gfacg ,"\u0065\u006d\u0070\u0074\u0079\u0020\u0062\u0069\u0074\u0073");};var _geeg int ;if _gdcb .SdrTemplate > 0{_geeg =1;};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"s\u0064\u0072\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");
};_geeg =0;if _gdcb .SdTemplate > 1{_geeg =1;};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"\u0073\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_geeg =0;if _gdcb .SdTemplate ==1||_gdcb .SdTemplate ==3{_geeg =1;
};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"\u0073\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_geeg =0;if _gdcb ._gffe {_geeg =1;};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"\u0063\u006f\u0064in\u0067\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0065\u0064");
};_geeg =0;if _gdcb ._eged {_geeg =1;};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"\u0063\u006f\u0064\u0069ng\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0075\u0073\u0065\u0064");};_geeg =0;if _gdcb .SdHuffAggInstanceSelection {_geeg =1;
};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"\u0073\u0064\u0048\u0075\u0066\u0066\u0041\u0067\u0067\u0049\u006e\u0073\u0074");};_geeg =int (_gdcb .SdHuffBMSizeSelection );if _gcfd =_gceb .WriteBit (_geeg );
_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"\u0073\u0064\u0048u\u0066\u0066\u0042\u006d\u0053\u0069\u007a\u0065");};_geeg =0;if _gdcb .SdHuffDecodeWidthSelection > 1{_geeg =1;};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"s\u0064\u0048\u0075\u0066\u0066\u0057\u0069\u0064\u0074\u0068");
};_geeg =0;switch _gdcb .SdHuffDecodeWidthSelection {case 1,3:_geeg =1;};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"s\u0064\u0048\u0075\u0066\u0066\u0057\u0069\u0064\u0074\u0068");};_geeg =0;if _gdcb .SdHuffDecodeHeightSelection > 1{_geeg =1;
};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"\u0073\u0064\u0048u\u0066\u0066\u0048\u0065\u0069\u0067\u0068\u0074");};_geeg =0;switch _gdcb .SdHuffDecodeHeightSelection {case 1,3:_geeg =1;};if _gcfd =_gceb .WriteBit (_geeg );
_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"\u0073\u0064\u0048u\u0066\u0066\u0048\u0065\u0069\u0067\u0068\u0074");};_geeg =0;if _gdcb .UseRefinementAggregation {_geeg =1;};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"\u0073\u0064\u0052\u0065\u0066\u0041\u0067\u0067");
};_geeg =0;if _gdcb .IsHuffmanEncoded {_geeg =1;};if _gcfd =_gceb .WriteBit (_geeg );_gcfd !=nil {return _agaad ,_gb .Wrap (_gcfd ,_gfacg ,"\u0073\u0064\u0048\u0075\u0066\u0066");};return 2,nil ;};type SegmentEncoder interface{Encode (_ggag _ga .BinaryWriter )(_ddbc int ,_geef error );
};func (_gcd *HalftoneRegion )renderPattern (_bfcd [][]int )(_begf error ){var _fgfg ,_bcdgg int ;for _cgbf :=0;_cgbf < int (_gcd .HGridHeight );_cgbf ++{for _aadf :=0;_aadf < int (_gcd .HGridWidth );_aadf ++{_fgfg =_gcd .computeX (_cgbf ,_aadf );_bcdgg =_gcd .computeY (_cgbf ,_aadf );
_dac :=_gcd .Patterns [_bfcd [_cgbf ][_aadf ]];if _begf =_ge .Blit (_dac ,_gcd .HalftoneRegionBitmap ,_fgfg +int (_gcd .HGridX ),_bcdgg +int (_gcd .HGridY ),_gcd .CombinationOperator );_begf !=nil {return _begf ;};};};return nil ;};func (_gdac *TextRegion )decodeCurrentT ()(int64 ,error ){if _gdac .SbStrips !=1{if _gdac .IsHuffmanEncoded {_bfgfc ,_fgfd :=_gdac ._cgde .ReadBits (byte (_gdac .LogSBStrips ));
return int64 (_bfgfc ),_fgfd ;};_fagdb ,_decbf :=_gdac ._cdfa .DecodeInt (_gdac ._caaf );if _decbf !=nil {return 0,_decbf ;};return int64 (_fagdb ),nil ;};return 0,nil ;};func (_gdfd *TextRegion )createRegionBitmap ()error {_gdfd .RegionBitmap =_ge .New (int (_gdfd .RegionInfo .BitmapWidth ),int (_gdfd .RegionInfo .BitmapHeight ));
if _gdfd .DefaultPixel !=0{_gdfd .RegionBitmap .SetDefaultPixel ();};return nil ;};func (_cbda *PageInformationSegment )readDefaultPixelValue ()error {_dcga ,_fgg :=_cbda ._efda .ReadBit ();if _fgg !=nil {return _fgg ;};_cbda .DefaultPixelValue =uint8 (_dcga &0xf);
return nil ;};func (_bddc *TextRegion )GetRegionBitmap ()(*_ge .Bitmap ,error ){if _bddc .RegionBitmap !=nil {return _bddc .RegionBitmap ,nil ;};if !_bddc .IsHuffmanEncoded {if _aeafa :=_bddc .setCodingStatistics ();_aeafa !=nil {return nil ,_aeafa ;};
};if _acfg :=_bddc .createRegionBitmap ();_acfg !=nil {return nil ,_acfg ;};if _dag :=_bddc .decodeSymbolInstances ();_dag !=nil {return nil ,_dag ;};return _bddc .RegionBitmap ,nil ;};func (_ffd *GenericRegion )computeSegmentDataStructure ()error {_ffd .DataOffset =_ffd ._gefa .StreamPosition ();
_ffd .DataHeaderLength =_ffd .DataOffset -_ffd .DataHeaderOffset ;_ffd .DataLength =int64 (_ffd ._gefa .Length ())-_ffd .DataHeaderLength ;return nil ;};func (_ecfa *SymbolDictionary )InitEncode (symbols *_ge .Bitmaps ,symbolList []int ,symbolMap map[int ]int ,unborderSymbols bool )error {const _bdafc ="S\u0079\u006d\u0062\u006f\u006c\u0044i\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002eI\u006e\u0069\u0074E\u006ec\u006f\u0064\u0065";
_ecfa .SdATX =[]int8 {3,-3,2,-2};_ecfa .SdATY =[]int8 {-1,-1,-2,-2};_ecfa ._ffbc =symbols ;_ecfa ._egca =make ([]int ,len (symbolList ));copy (_ecfa ._egca ,symbolList );if len (_ecfa ._egca )!=_ecfa ._ffbc .Size (){return _gb .Error (_bdafc ,"s\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0061\u006e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u004ci\u0073\u0074\u0020\u006f\u0066\u0020\u0064\u0069\u0066\u0066er\u0065\u006e\u0074 \u0073i\u007a\u0065");
};_ecfa .NumberOfNewSymbols =uint32 (symbols .Size ());_ecfa .NumberOfExportedSymbols =uint32 (symbols .Size ());_ecfa ._ddbg =symbolMap ;_ecfa ._aggf =unborderSymbols ;return nil ;};func (_gcf *RegionSegment )readCombinationOperator ()error {_adcg ,_cbec :=_gcf ._adbg .ReadBits (3);
if _cbec !=nil {return _cbec ;};_gcf .CombinaionOperator =_ge .CombinationOperator (_adcg &0xF);return nil ;};func (_gafc *GenericRegion )decodeSLTP ()(int ,error ){switch _gafc .GBTemplate {case 0:_gafc ._gbf .SetIndex (0x9B25);case 1:_gafc ._gbf .SetIndex (0x795);
case 2:_gafc ._gbf .SetIndex (0xE5);case 3:_gafc ._gbf .SetIndex (0x195);};return _gafc ._geg .DecodeBit (_gafc ._gbf );};func (_dbcgb *SymbolDictionary )getSbSymCodeLen ()int8 {_ffgge :=int8 (_b .Ceil (_b .Log (float64 (_dbcgb ._gcba +_dbcgb .NumberOfNewSymbols ))/_b .Log (2)));
if _dbcgb .IsHuffmanEncoded &&_ffgge < 1{return 1;};return _ffgge ;};func (_edb *GenericRegion )overrideAtTemplate1 (_dde ,_gea ,_efb ,_cbfb ,_addc int )int {_dde &=0x1FF7;if _edb .GBAtY [0]==0&&_edb .GBAtX [0]>=-int8 (_addc ){_dde |=(_cbfb >>uint (7-(int8 (_addc )+_edb .GBAtX [0]))&0x1)<<3;
}else {_dde |=int (_edb .getPixel (_gea +int (_edb .GBAtX [0]),_efb +int (_edb .GBAtY [0])))<<3;};return _dde ;};type HalftoneRegion struct{_cfb _ga .StreamReader ;_egdf *Header ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;
RegionSegment *RegionSegment ;HDefaultPixel int8 ;CombinationOperator _ge .CombinationOperator ;HSkipEnabled bool ;HTemplate byte ;IsMMREncoded bool ;HGridWidth uint32 ;HGridHeight uint32 ;HGridX int32 ;HGridY int32 ;HRegionX uint16 ;HRegionY uint16 ;HalftoneRegionBitmap *_ge .Bitmap ;
Patterns []*_ge .Bitmap ;};func (_dbdg *Header )writeSegmentDataLength (_gfeg _ga .BinaryWriter )(_edbc int ,_adcc error ){_adgg :=make ([]byte ,4);_e .BigEndian .PutUint32 (_adgg ,uint32 (_dbdg .SegmentDataLength ));if _edbc ,_adcc =_gfeg .Write (_adgg );
_adcc !=nil {return 0,_gb .Wrap (_adcc ,"\u0048\u0065a\u0064\u0065\u0072\u002e\u0077\u0072\u0069\u0074\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0044\u0061\u0074\u0061\u004c\u0065ng\u0074\u0068","");};return _edbc ,nil ;};func (_baag *TextRegion )getUserTable (_dfcd int )(_gef .Tabler ,error ){const _fffc ="\u0067\u0065\u0074U\u0073\u0065\u0072\u0054\u0061\u0062\u006c\u0065";
var _cddf int ;for _ ,_gbbc :=range _baag .Header .RTSegments {if _gbbc .Type ==53{if _cddf ==_dfcd {_gcfe ,_abbeg :=_gbbc .GetSegmentData ();if _abbeg !=nil {return nil ,_abbeg ;};_agga ,_dbad :=_gcfe .(*TableSegment );if !_dbad {_gbce .Log .Debug (_gc .Sprintf ("\u0073\u0065\u0067\u006d\u0065\u006e\u0074 \u0077\u0069\u0074h\u0020\u0054\u0079p\u0065\u00205\u0033\u0020\u002d\u0020\u0061\u006ed\u0020in\u0064\u0065\u0078\u003a\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0054\u0061\u0062\u006c\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074",_gbbc .SegmentNumber ));
return nil ,_gb .Error (_fffc ,"\u0073\u0065\u0067\u006d\u0065\u006e\u0074 \u0077\u0069\u0074h\u0020\u0054\u0079\u0070e\u0020\u0035\u0033\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u002a\u0054\u0061\u0062\u006c\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074");
};return _gef .NewEncodedTable (_agga );};_cddf ++;};};return nil ,nil ;};func (_aadbe *SymbolDictionary )String ()string {_fcad :=&_eb .Builder {};_fcad .WriteString ("\n\u005b\u0053\u0059\u004dBO\u004c-\u0044\u0049\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u000a");
_fcad .WriteString (_gc .Sprintf ("\u0009-\u0020S\u0064\u0072\u0054\u0065\u006dp\u006c\u0061t\u0065\u0020\u0025\u0076\u000a",_aadbe .SdrTemplate ));_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u0025\u0076\u000a",_aadbe .SdTemplate ));
_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0069\u0073\u0043\u006f\u0064\u0069\u006eg\u0043\u006f\u006e\u0074\u0065\u0078\u0074R\u0065\u0074\u0061\u0069\u006e\u0065\u0064\u0020\u0025\u0076\u000a",_aadbe ._gffe ));_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0069\u0073\u0043\u006f\u0064\u0069\u006e\u0067C\u006f\u006e\u0074\u0065\u0078\u0074\u0055\u0073\u0065\u0064 \u0025\u0076\u000a",_aadbe ._eged ));
_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0048u\u0066\u0066\u0041\u0067\u0067\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065S\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0025\u0076\u000a",_aadbe .SdHuffAggInstanceSelection ));
_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053d\u0048\u0075\u0066\u0066\u0042\u004d\u0053\u0069\u007a\u0065S\u0065l\u0065\u0063\u0074\u0069\u006f\u006e\u0020%\u0076\u000a",_aadbe .SdHuffBMSizeSelection ));_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0048u\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0057\u0069\u0064\u0074\u0068S\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0025\u0076\u000a",_aadbe .SdHuffDecodeWidthSelection ));
_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020Sd\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064e\u0048e\u0069g\u0068t\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u0020\u0025\u0076\u000a",_aadbe .SdHuffDecodeHeightSelection ));_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020U\u0073\u0065\u0052\u0065f\u0069\u006e\u0065\u006d\u0065\u006e\u0074A\u0067\u0067\u0072\u0065\u0067\u0061\u0074\u0069\u006f\u006e\u0020\u0025\u0076\u000a",_aadbe .UseRefinementAggregation ));
_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020is\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045\u006e\u0063\u006f\u0064\u0065\u0064\u0020\u0025\u0076\u000a",_aadbe .IsHuffmanEncoded ));_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_aadbe .SdATX ));
_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_aadbe .SdATY ));_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_aadbe .SdrATX ));
_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_aadbe .SdrATY ));_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u004e\u0075\u006d\u0062\u0065\u0072\u004ff\u0045\u0078\u0070\u006f\u0072\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0025\u0076\u000a",_aadbe .NumberOfExportedSymbols ));
_fcad .WriteString (_gc .Sprintf ("\u0009-\u0020\u004e\u0075\u006db\u0065\u0072\u004f\u0066\u004ee\u0077S\u0079m\u0062\u006f\u006c\u0073\u0020\u0025\u0076\n",_aadbe .NumberOfNewSymbols ));_fcad .WriteString (_gc .Sprintf ("\u0009\u002d\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u004ff\u0049\u006d\u0070\u006f\u0072\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0025\u0076\u000a",_aadbe ._gcba ));
_fcad .WriteString (_gc .Sprintf ("\u0009\u002d \u006e\u0075\u006d\u0062\u0065\u0072\u004f\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0064\u0053\u0079\u006d\u0062\u006f\u006c\u0073 %\u0076\u000a",_aadbe ._dcbc ));return _fcad .String ();};func (_ggaf *Header )readNumberOfReferredToSegments (_ddgc _ga .StreamReader )(uint64 ,error ){const _gagd ="\u0072\u0065\u0061\u0064\u004e\u0075\u006d\u0062\u0065\u0072O\u0066\u0052\u0065\u0066\u0065\u0072\u0072e\u0064\u0054\u006f\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073";
_eaaa ,_gdba :=_ddgc .ReadBits (3);if _gdba !=nil {return 0,_gb .Wrap (_gdba ,_gagd ,"\u0063\u006f\u0075n\u0074\u0020\u006f\u0066\u0020\u0072\u0074\u0073");};_eaaa &=0xf;var _aaef []byte ;if _eaaa <=4{_aaef =make ([]byte ,5);for _dce :=0;_dce <=4;_dce ++{_fabe ,_efc :=_ddgc .ReadBit ();
if _efc !=nil {return 0,_gb .Wrap (_efc ,_gagd ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_aaef [_dce ]=byte (_fabe );};}else {_eaaa ,_gdba =_ddgc .ReadBits (29);if _gdba !=nil {return 0,_gdba ;};_eaaa &=_b .MaxInt32 ;_feef :=(_eaaa +8)>>3;
_feef <<=3;_aaef =make ([]byte ,_feef );var _ggeg uint64 ;for _ggeg =0;_ggeg < _feef ;_ggeg ++{_dgdg ,_edbd :=_ddgc .ReadBit ();if _edbd !=nil {return 0,_gb .Wrap (_edbd ,_gagd ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_aaef [_ggeg ]=byte (_dgdg );
};};return _eaaa ,nil ;};func (_agdc *PageInformationSegment )checkInput ()error {if _agdc .PageBMHeight ==_b .MaxInt32 {if !_agdc .IsStripe {_gbce .Log .Debug ("P\u0061\u0067\u0065\u0049\u006e\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0053\u0065\u0067me\u006e\u0074\u002e\u0049s\u0053\u0074\u0072\u0069\u0070\u0065\u0020\u0073\u0068ou\u006c\u0064 \u0062\u0065\u0020\u0074\u0072\u0075\u0065\u002e");
};};return nil ;};func (_dge *GenericRegion )Init (h *Header ,r _ga .StreamReader )error {_dge .RegionSegment =NewRegionSegment (r );_dge ._gefa =r ;return _dge .parseHeader ();};func (_deff *GenericRegion )overrideAtTemplate3 (_gdgc ,_bfgd ,_fefg ,_edcf ,_caa int )int {_gdgc &=0x3EF;
if _deff .GBAtY [0]==0&&_deff .GBAtX [0]>=-int8 (_caa ){_gdgc |=(_edcf >>uint (7-(int8 (_caa )+_deff .GBAtX [0]))&0x1)<<4;}else {_gdgc |=int (_deff .getPixel (_bfgd +int (_deff .GBAtX [0]),_fefg +int (_deff .GBAtY [0])))<<4;};return _gdgc ;};type RegionSegment struct{_adbg _ga .StreamReader ;
BitmapWidth uint32 ;BitmapHeight uint32 ;XLocation uint32 ;YLocation uint32 ;CombinaionOperator _ge .CombinationOperator ;};func (_geec *PageInformationSegment )CombinationOperatorOverrideAllowed ()bool {return _geec ._bdbc };func (_caag *Header )readSegmentNumber (_fdfc _ga .StreamReader )error {const _fbd ="\u0072\u0065\u0061\u0064\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u004eu\u006d\u0062\u0065\u0072";
_fgff :=make ([]byte ,4);_ ,_aef :=_fdfc .Read (_fgff );if _aef !=nil {return _gb .Wrap (_aef ,_fbd ,"");};_caag .SegmentNumber =_e .BigEndian .Uint32 (_fgff );return nil ;};func (_gga *HalftoneRegion )GetRegionBitmap ()(*_ge .Bitmap ,error ){if _gga .HalftoneRegionBitmap !=nil {return _gga .HalftoneRegionBitmap ,nil ;
};var _cfc error ;_gga .HalftoneRegionBitmap =_ge .New (int (_gga .RegionSegment .BitmapWidth ),int (_gga .RegionSegment .BitmapHeight ));if _gga .Patterns ==nil ||len (_gga .Patterns )==0{_gga .Patterns ,_cfc =_gga .GetPatterns ();if _cfc !=nil {return nil ,_cfc ;
};};if _gga .HDefaultPixel ==1{_gga .HalftoneRegionBitmap .SetDefaultPixel ();};_gdf :=_b .Ceil (_b .Log (float64 (len (_gga .Patterns )))/_b .Log (2));_bdeg :=int (_gdf );var _ebdf [][]int ;_ebdf ,_cfc =_gga .grayScaleDecoding (_bdeg );if _cfc !=nil {return nil ,_cfc ;
};if _cfc =_gga .renderPattern (_ebdf );_cfc !=nil {return nil ,_cfc ;};return _gga .HalftoneRegionBitmap ,nil ;};func _afgeb (_beedg _ga .StreamReader ,_abcc *Header )*TextRegion {_feede :=&TextRegion {_cgde :_beedg ,Header :_abcc ,RegionInfo :NewRegionSegment (_beedg )};
return _feede ;};type templater interface{form (_aad ,_cfeb ,_fccd ,_ega ,_fcg int16 )int16 ;setIndex (_eed *_ee .DecoderStats );};type GenericRegion struct{_gefa _ga .StreamReader ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;
RegionSegment *RegionSegment ;UseExtTemplates bool ;IsTPGDon bool ;GBTemplate byte ;IsMMREncoded bool ;UseMMR bool ;GBAtX []int8 ;GBAtY []int8 ;GBAtOverride []bool ;_ggc bool ;Bitmap *_ge .Bitmap ;_geg *_ee .Decoder ;_gbf *_ee .DecoderStats ;_ead *_gbc .Decoder ;
};