From e17a425dfb3382310fb5863f516dacdca9f44956 Mon Sep 17 00:00:00 2001 From: leshe4ka46 Date: Sun, 19 Oct 2025 14:47:59 +0300 Subject: fuck the unipdf licencing --- unipdf/internal/jbig2/document/document.go | 132 +++++ .../internal/jbig2/document/segments/segments.go | 618 +++++++++++++++++++++ 2 files changed, 750 insertions(+) create mode 100644 unipdf/internal/jbig2/document/document.go create mode 100644 unipdf/internal/jbig2/document/segments/segments.go (limited to 'unipdf/internal/jbig2/document') diff --git a/unipdf/internal/jbig2/document/document.go b/unipdf/internal/jbig2/document/document.go new file mode 100644 index 0000000..83ec811 --- /dev/null +++ b/unipdf/internal/jbig2/document/document.go @@ -0,0 +1,132 @@ +// +// 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 document ;import (_fd "encoding/binary";_a "fmt";_fac "github.com/unidoc/unipdf/v4/common";_ag "github.com/unidoc/unipdf/v4/internal/bitwise";_c "github.com/unidoc/unipdf/v4/internal/jbig2/basic";_ed "github.com/unidoc/unipdf/v4/internal/jbig2/bitmap"; +_cf "github.com/unidoc/unipdf/v4/internal/jbig2/document/segments";_ede "github.com/unidoc/unipdf/v4/internal/jbig2/encoder/classer";_b "github.com/unidoc/unipdf/v4/internal/jbig2/errors";_ac "io";_fa "math";_e "runtime/debug";);func (_fded *Page )GetSegment (number int )(*_cf .Header ,error ){const _cab ="\u0050a\u0067e\u002e\u0047\u0065\u0074\u0053\u0065\u0067\u006d\u0065\u006e\u0074"; +for _ ,_eecg :=range _fded .Segments {if _eecg .SegmentNumber ==uint32 (number ){return _eecg ,nil ;};};_eaf :=make ([]uint32 ,len (_fded .Segments ));for _ggc ,_fag :=range _fded .Segments {_eaf [_ggc ]=_fag .SegmentNumber ;};return nil ,_b .Errorf (_cab ,"\u0073e\u0067\u006d\u0065n\u0074\u0020\u0077i\u0074h \u006e\u0075\u006d\u0062\u0065\u0072\u003a \u0027\u0025\u0064\u0027\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0070\u0061\u0067\u0065\u003a\u0020'%\u0064'\u002e\u0020\u004b\u006e\u006f\u0077n\u0020\u0073\u0065\u0067\u006de\u006e\u0074\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0073\u003a \u0025\u0076",number ,_fded .PageNumber ,_eaf ); +};func (_gcg *Page )AddPageInformationSegment (){_ddg :=&_cf .PageInformationSegment {PageBMWidth :_gcg .FinalWidth ,PageBMHeight :_gcg .FinalHeight ,ResolutionX :_gcg .ResolutionX ,ResolutionY :_gcg .ResolutionY ,IsLossless :_gcg .IsLossless };if _gcg .BlackIsOne {_ddg .DefaultPixelValue =uint8 (0x1); +};_cbe :=&_cf .Header {PageAssociation :_gcg .PageNumber ,SegmentDataLength :uint64 (_ddg .Size ()),SegmentData :_ddg ,Type :_cf .TPageInformation };_gcg .Segments =append (_gcg .Segments ,_cbe );};func (_ddc *Document )encodeSegment (_gca *_cf .Header ,_ege *int )error {const _de ="\u0065\u006e\u0063\u006f\u0064\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074"; +_gca .SegmentNumber =_ddc .nextSegmentNumber ();_dae ,_dcf :=_gca .Encode (_ddc ._g );if _dcf !=nil {return _b .Wrapf (_dcf ,_de ,"\u0073\u0065\u0067\u006d\u0065\u006e\u0074\u003a\u0020\u0027\u0025\u0064\u0027",_gca .SegmentNumber );};*_ege +=_dae ;return nil ; +};func (_ab *Document )mapData ()error {const _dg ="\u006da\u0070\u0044\u0061\u0074\u0061";var (_eef []*_cf .Header ;_ded int64 ;_adf _cf .Type ;);_ebe ,_eec :=_ab .isFileHeaderPresent ();if _eec !=nil {return _b .Wrap (_eec ,_dg ,"");};if _ebe {if _eec =_ab .parseFileHeader (); +_eec !=nil {return _b .Wrap (_eec ,_dg ,"");};_ded +=int64 (_ab ._ff );_ab .FullHeaders =true ;};var (_bfg *Page ;_fdbe bool ;);for _adf !=51&&!_fdbe {_dfb ,_daeb :=_cf .NewHeader (_ab ,_ab .InputStream ,_ded ,_ab .OrganizationType );if _daeb !=nil {return _b .Wrap (_daeb ,_dg ,""); +};_fac .Log .Trace ("\u0044\u0065c\u006f\u0064\u0069\u006eg\u0020\u0073e\u0067\u006d\u0065\u006e\u0074\u0020\u006e\u0075m\u0062\u0065\u0072\u003a\u0020\u0025\u0064\u002c\u0020\u0054\u0079\u0070e\u003a\u0020\u0025\u0073",_dfb .SegmentNumber ,_dfb .Type ); +_adf =_dfb .Type ;if _adf !=_cf .TEndOfFile {if _dfb .PageAssociation !=0{_bfg =_ab .Pages [_dfb .PageAssociation ];if _bfg ==nil {_bfg =_cafe (_ab ,_dfb .PageAssociation );_ab .Pages [_dfb .PageAssociation ]=_bfg ;if _ab .NumberOfPagesUnknown {_ab .NumberOfPages ++; +};};_bfg .Segments =append (_bfg .Segments ,_dfb );}else {_ab .GlobalSegments .AddSegment (_dfb );};};_eef =append (_eef ,_dfb );_ded =_ab .InputStream .AbsolutePosition ();if _ab .OrganizationType ==_cf .OSequential {_ded +=int64 (_dfb .SegmentDataLength ); +};_fdbe ,_daeb =_ab .reachedEOF (_ded );if _daeb !=nil {_fac .Log .Debug ("\u006a\u0062\u0069\u0067\u0032 \u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u0020\u0072\u0065\u0061\u0063h\u0065\u0064\u0020\u0045\u004f\u0046\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_daeb ); +return _b .Wrap (_daeb ,_dg ,"");};};_ab .determineRandomDataOffsets (_eef ,uint64 (_ded ));return nil ;};func (_feb *Globals )AddSegment (segment *_cf .Header ){_feb .Segments =append (_feb .Segments ,segment )};func (_dbc *Page )collectPageStripes ()(_agd []_cf .Segmenter ,_fae error ){const _gcb ="\u0063o\u006cl\u0065\u0063\u0074\u0050\u0061g\u0065\u0053t\u0072\u0069\u0070\u0065\u0073"; +var _gec _cf .Segmenter ;for _ ,_gcea :=range _dbc .Segments {switch _gcea .Type {case 6,7,22,23,38,39,42,43:_gec ,_fae =_gcea .GetSegmentData ();if _fae !=nil {return nil ,_b .Wrap (_fae ,_gcb ,"");};_agd =append (_agd ,_gec );case 50:_gec ,_fae =_gcea .GetSegmentData (); +if _fae !=nil {return nil ,_fae ;};_afa ,_eafe :=_gec .(*_cf .EndOfStripe );if !_eafe {return nil ,_b .Errorf (_gcb ,"\u0045\u006e\u0064\u004f\u0066\u0053\u0074\u0072\u0069\u0070\u0065\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u006f\u0066\u0020\u0076\u0061l\u0069\u0064\u0020\u0074\u0079p\u0065\u003a \u0027\u0025\u0054\u0027",_gec ); +};_agd =append (_agd ,_afa );_dbc .FinalHeight =_afa .LineNumber ();};};return _agd ,nil ;};func (_cc *Document )completeClassifiedPages ()(_gbc error ){const _eb ="\u0063\u006f\u006dpl\u0065\u0074\u0065\u0043\u006c\u0061\u0073\u0073\u0069\u0066\u0069\u0065\u0064\u0050\u0061\u0067\u0065\u0073"; +if _cc .Classer ==nil {return nil ;};_cc ._cd =make ([]int ,_cc .Classer .UndilatedTemplates .Size ());for _dc :=0;_dc < _cc .Classer .ClassIDs .Size ();_dc ++{_fde ,_ea :=_cc .Classer .ClassIDs .Get (_dc );if _ea !=nil {return _b .Wrapf (_ea ,_eb ,"\u0063\u006c\u0061\u0073s \u0077\u0069\u0074\u0068\u0020\u0069\u0064\u003a\u0020\u0027\u0025\u0064\u0027",_dc ); +};_cc ._cd [_fde ]++;};var _dcg []int ;for _ga :=0;_ga < _cc .Classer .UndilatedTemplates .Size ();_ga ++{if _cc .NumberOfPages ==1||_cc ._cd [_ga ]> 1{_dcg =append (_dcg ,_ga );};};var (_gbf *Page ;_eba bool ;);for _da ,_fg :=range *_cc .Classer .ComponentPageNumbers {if _gbf ,_eba =_cc .Pages [_fg ]; +!_eba {return _b .Errorf (_eb ,"p\u0061g\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020n\u006f\u0074\u0020\u0066ou\u006e\u0064",_da );};if _gbf .EncodingMethod ==GenericEM {_fac .Log .Error ("\u0047\u0065\u006e\u0065\u0072\u0069c\u0020\u0070\u0061g\u0065\u0020\u0077i\u0074\u0068\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u003a \u0027\u0025\u0064\u0027\u0020ma\u0070\u0070\u0065\u0064\u0020\u0061\u0073\u0020\u0063\u006c\u0061\u0073\u0073\u0069\u0066\u0069\u0065\u0064\u0020\u0070\u0061\u0067\u0065",_da ); +continue ;};_cc ._gb [_fg ]=append (_cc ._gb [_fg ],_da );_fdef ,_bgf :=_cc .Classer .ClassIDs .Get (_da );if _bgf !=nil {return _b .Wrapf (_bgf ,_eb ,"\u006e\u006f\u0020\u0073uc\u0068\u0020\u0063\u006c\u0061\u0073\u0073\u0049\u0044\u003a\u0020\u0025\u0064",_da ); +};if _cc ._cd [_fdef ]==1&&_cc .NumberOfPages !=1{_ead :=append (_cc ._dd [_fg ],_fdef );_cc ._dd [_fg ]=_ead ;};};if _gbc =_cc .Classer .ComputeLLCorners ();_gbc !=nil {return _b .Wrap (_gbc ,_eb ,"");};if _ ,_gbc =_cc .addSymbolDictionary (0,_cc .Classer .UndilatedTemplates ,_dcg ,_cc ._cb ,false ); +_gbc !=nil {return _b .Wrap (_gbc ,_eb ,"");};return nil ;};func (_afad *Page )fitsPage (_edbga *_cf .PageInformationSegment ,_dfa *_ed .Bitmap )bool {return _afad .countRegions ()==1&&_edbga .DefaultPixelValue ==0&&_edbga .PageBMWidth ==_dfa .Width &&_edbga .PageBMHeight ==_dfa .Height ; +};func (_bge *Document )reachedEOF (_cee int64 )(bool ,error ){const _ffd ="\u0072\u0065\u0061\u0063\u0068\u0065\u0064\u0045\u004f\u0046";_ ,_gdb :=_bge .InputStream .Seek (_cee ,_ac .SeekStart );if _gdb !=nil {_fac .Log .Debug ("\u0072\u0065\u0061c\u0068\u0065\u0064\u0045\u004f\u0046\u0020\u002d\u0020\u0064\u002e\u0049\u006e\u0070\u0075\u0074\u0053\u0074\u0072\u0065\u0061\u006d\u002e\u0053\u0065\u0065\u006b\u0020\u0066a\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0076",_gdb ); +return false ,_b .Wrap (_gdb ,_ffd ,"\u0069n\u0070\u0075\u0074\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020s\u0065\u0065\u006b\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};_ ,_gdb =_bge .InputStream .ReadBits (32);if _gdb ==_ac .EOF {return true ,nil ; +}else if _gdb !=nil {return false ,_b .Wrap (_gdb ,_ffd ,"");};return false ,nil ;};func (_ddab *Document )isFileHeaderPresent ()(bool ,error ){_ddab .InputStream .Mark ();for _ ,_gbe :=range _d {_cac ,_edfc :=_ddab .InputStream .ReadByte ();if _edfc !=nil {return false ,_edfc ; +};if _gbe !=_cac {_ddab .InputStream .Reset ();return false ,nil ;};};_ddab .InputStream .Reset ();return true ,nil ;};type Globals struct{Segments []*_cf .Header ;};func _fdd (_ba *_ag .Reader ,_ccc *Globals )(*Document ,error ){_bdd :=&Document {Pages :make (map[int ]*Page ),InputStream :_ba ,OrganizationType :_cf .OSequential ,NumberOfPagesUnknown :true ,GlobalSegments :_ccc ,_ff :9}; +if _bdd .GlobalSegments ==nil {_bdd .GlobalSegments =&Globals {};};if _dbb :=_bdd .mapData ();_dbb !=nil {return nil ,_dbb ;};return _bdd ,nil ;};func (_gge *Globals )GetSymbolDictionary ()(*_cf .Header ,error ){const _gfe ="G\u006c\u006f\u0062\u0061\u006c\u0073.\u0047\u0065\u0074\u0053\u0079\u006d\u0062\u006f\u006cD\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079"; +if _gge ==nil {return nil ,_b .Error (_gfe ,"\u0067\u006c\u006f\u0062al\u0073\u0020\u006e\u006f\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");};if len (_gge .Segments )==0{return nil ,_b .Error (_gfe ,"\u0067\u006c\u006f\u0062\u0061\u006c\u0073\u0020\u0061\u0072\u0065\u0020e\u006d\u0070\u0074\u0079"); +};for _ ,_ggg :=range _gge .Segments {if _ggg .Type ==_cf .TSymbolDictionary {return _ggg ,nil ;};};return nil ,_b .Error (_gfe ,"\u0067\u006c\u006fba\u006c\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0020d\u0069c\u0074i\u006fn\u0061\u0072\u0079\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064"); +};func (_bfc *Globals )GetSegment (segmentNumber int )(*_cf .Header ,error ){const _cedc ="\u0047l\u006fb\u0061\u006c\u0073\u002e\u0047e\u0074\u0053e\u0067\u006d\u0065\u006e\u0074";if _bfc ==nil {return nil ,_b .Error (_cedc ,"\u0067\u006c\u006f\u0062al\u0073\u0020\u006e\u006f\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064"); +};if len (_bfc .Segments )==0{return nil ,_b .Error (_cedc ,"\u0067\u006c\u006f\u0062\u0061\u006c\u0073\u0020\u0061\u0072\u0065\u0020e\u006d\u0070\u0074\u0079");};var _be *_cf .Header ;for _ ,_be =range _bfc .Segments {if _be .SegmentNumber ==uint32 (segmentNumber ){break ; +};};if _be ==nil {return nil ,_b .Error (_cedc ,"\u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};return _be ,nil ;};func (_facd *Page )getCombinationOperator (_efe *_cf .PageInformationSegment ,_fff _ed .CombinationOperator )_ed .CombinationOperator {if _efe .CombinationOperatorOverrideAllowed (){return _fff ; +};return _efe .CombinationOperator ();};func (_fgd *Document )parseFileHeader ()error {const _cfef ="\u0070a\u0072s\u0065\u0046\u0069\u006c\u0065\u0048\u0065\u0061\u0064\u0065\u0072";_ ,_fb :=_fgd .InputStream .Seek (8,_ac .SeekStart );if _fb !=nil {return _b .Wrap (_fb ,_cfef ,"\u0069\u0064"); +};_ ,_fb =_fgd .InputStream .ReadBits (5);if _fb !=nil {return _b .Wrap (_fb ,_cfef ,"\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0064\u0020\u0062\u0069\u0074\u0073");};_abe ,_fb :=_fgd .InputStream .ReadBit ();if _fb !=nil {return _b .Wrap (_fb ,_cfef ,"\u0065x\u0074e\u006e\u0064\u0065\u0064\u0020t\u0065\u006dp\u006c\u0061\u0074\u0065\u0073"); +};if _abe ==1{_fgd .GBUseExtTemplate =true ;};_abe ,_fb =_fgd .InputStream .ReadBit ();if _fb !=nil {return _b .Wrap (_fb ,_cfef ,"\u0075\u006e\u006b\u006eow\u006e\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072");};if _abe !=1{_fgd .NumberOfPagesUnknown =false ; +};_abe ,_fb =_fgd .InputStream .ReadBit ();if _fb !=nil {return _b .Wrap (_fb ,_cfef ,"\u006f\u0072\u0067\u0061\u006e\u0069\u007a\u0061\u0074\u0069\u006f\u006e \u0074\u0079\u0070\u0065");};_fgd .OrganizationType =_cf .OrganizationType (_abe );if !_fgd .NumberOfPagesUnknown {_fgd .NumberOfPages ,_fb =_fgd .InputStream .ReadUint32 (); +if _fb !=nil {return _b .Wrap (_fb ,_cfef ,"\u006eu\u006db\u0065\u0072\u0020\u006f\u0066\u0020\u0070\u0061\u0067\u0065\u0073");};_fgd ._ff =13;};return nil ;};func (_fbc *Page )nextSegmentNumber ()uint32 {return _fbc .Document .nextSegmentNumber ()};func (_dac *Page )GetWidth ()(int ,error ){return _dac .getWidth ()}; +func _fga (_cg int )int {_gfd :=0;_dfd :=(_cg &(_cg -1))==0;_cg >>=1;for ;_cg !=0;_cg >>=1{_gfd ++;};if _dfd {return _gfd ;};return _gfd +1;};func (_ca *Document )produceClassifiedPage (_gc *Page ,_ccf *_cf .Header )(_gce error ){const _fgb ="p\u0072\u006f\u0064\u0075ce\u0043l\u0061\u0073\u0073\u0069\u0066i\u0065\u0064\u0050\u0061\u0067\u0065"; +var _bb map[int ]int ;_fdf :=_ca ._bc ;_edf :=[]*_cf .Header {_ccf };if len (_ca ._dd [_gc .PageNumber ])> 0{_bb =map[int ]int {};_edb ,_aa :=_ca .addSymbolDictionary (_gc .PageNumber ,_ca .Classer .UndilatedTemplates ,_ca ._dd [_gc .PageNumber ],_bb ,false ); +if _aa !=nil {return _b .Wrap (_aa ,_fgb ,"");};_edf =append (_edf ,_edb );_fdf +=len (_ca ._dd [_gc .PageNumber ]);};_ebb :=_ca ._gb [_gc .PageNumber ];_fac .Log .Debug ("P\u0061g\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020c\u006f\u006d\u0070\u0073: \u0025\u0076",_gc .PageNumber ,_ebb ); +_gc .addTextRegionSegment (_edf ,_ca ._cb ,_bb ,_ca ._gb [_gc .PageNumber ],_ca .Classer .PtaLL ,_ca .Classer .UndilatedTemplates ,_ca .Classer .ClassIDs ,nil ,_fga (_fdf ),len (_ca ._gb [_gc .PageNumber ]));return nil ;};func (_fec *Page )GetBitmap ()(_fda *_ed .Bitmap ,_bad error ){_fac .Log .Trace (_a .Sprintf ("\u005b\u0050\u0041G\u0045\u005d\u005b\u0023%\u0064\u005d\u0020\u0047\u0065\u0074\u0042i\u0074\u006d\u0061\u0070\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e",_fec .PageNumber )); +defer func (){if _bad !=nil {_fac .Log .Trace (_a .Sprintf ("\u005b\u0050\u0041\u0047\u0045\u005d\u005b\u0023\u0025\u0064\u005d\u0020\u0047\u0065\u0074B\u0069t\u006d\u0061\u0070\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0076",_fec .PageNumber ,_bad )); +}else {_fac .Log .Trace (_a .Sprintf ("\u005b\u0050\u0041\u0047\u0045\u005d\u005b\u0023\u0025\u0064]\u0020\u0047\u0065\u0074\u0042\u0069\u0074m\u0061\u0070\u0020\u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064",_fec .PageNumber ));};}();if _fec .Bitmap !=nil {return _fec .Bitmap ,nil ; +};_bad =_fec .composePageBitmap ();if _bad !=nil {return nil ,_bad ;};return _fec .Bitmap ,nil ;};func (_cgd *Document )addSymbolDictionary (_ae int ,_bd *_ed .Bitmaps ,_aae []int ,_cgda map[int ]int ,_dad bool )(*_cf .Header ,error ){const _ad ="\u0061\u0064\u0064\u0053ym\u0062\u006f\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"; +_gdg :=&_cf .SymbolDictionary {};if _bcf :=_gdg .InitEncode (_bd ,_aae ,_cgda ,_dad );_bcf !=nil {return nil ,_bcf ;};_acf :=&_cf .Header {Type :_cf .TSymbolDictionary ,PageAssociation :_ae ,SegmentData :_gdg };if _ae ==0{if _cgd .GlobalSegments ==nil {_cgd .GlobalSegments =&Globals {}; +};_cgd .GlobalSegments .AddSegment (_acf );return _acf ,nil ;};_bda ,_eed :=_cgd .Pages [_ae ];if !_eed {return nil ,_b .Errorf (_ad ,"p\u0061g\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020n\u006f\u0074\u0020\u0066ou\u006e\u0064",_ae );};var (_bce int ; +_bgg *_cf .Header ;);for _bce ,_bgg =range _bda .Segments {if _bgg .Type ==_cf .TPageInformation {break ;};};_bce ++;_bda .Segments =append (_bda .Segments ,nil );copy (_bda .Segments [_bce +1:],_bda .Segments [_bce :]);_bda .Segments [_bce ]=_acf ;return _acf ,nil ; +};func (_afg *Page )addTextRegionSegment (_faa []*_cf .Header ,_bed ,_bcbd map[int ]int ,_gdc []int ,_cdf *_ed .Points ,_ggbg *_ed .Bitmaps ,_dfg *_c .IntSlice ,_bef *_ed .Boxes ,_eaef ,_ega int ){_eaec :=&_cf .TextRegion {NumberOfSymbols :uint32 (_ega )}; +_eaec .InitEncode (_bed ,_bcbd ,_gdc ,_cdf ,_ggbg ,_dfg ,_bef ,_afg .FinalWidth ,_afg .FinalHeight ,_eaef );_cde :=&_cf .Header {RTSegments :_faa ,SegmentData :_eaec ,PageAssociation :_afg .PageNumber ,Type :_cf .TImmediateTextRegion };_egg :=_cf .TPageInformation ; +if _bcbd !=nil {_egg =_cf .TSymbolDictionary ;};var _bfbf int ;for ;_bfbf < len (_afg .Segments );_bfbf ++{if _afg .Segments [_bfbf ].Type ==_egg {_bfbf ++;break ;};};_afg .Segments =append (_afg .Segments ,nil );copy (_afg .Segments [_bfbf +1:],_afg .Segments [_bfbf :]); +_afg .Segments [_bfbf ]=_cde ;};func (_fba *Page )getPageInformationSegment ()*_cf .Header {for _ ,_dbd :=range _fba .Segments {if _dbd .Type ==_cf .TPageInformation {return _dbd ;};};_fac .Log .Debug ("\u0050\u0061\u0067\u0065\u0020\u0069\u006e\u0066o\u0072\u006d\u0061ti\u006f\u006e\u0020\u0073\u0065\u0067m\u0065\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u0020\u0066o\u0072\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0073\u002e",_fba ); +return nil ;};func (_eae *Document )nextSegmentNumber ()uint32 {_bdga :=_eae .CurrentSegmentNumber ;_eae .CurrentSegmentNumber ++;return _bdga ;};func (_dfag *Page )getWidth ()(int ,error ){const _gaea ="\u0067\u0065\u0074\u0057\u0069\u0064\u0074\u0068"; +if _dfag .FinalWidth !=0{return _dfag .FinalWidth ,nil ;};_egeb :=_dfag .getPageInformationSegment ();if _egeb ==nil {return 0,_b .Error (_gaea ,"n\u0069l\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006ef\u006f\u0072\u006d\u0061ti\u006f\u006e");};_egdb ,_adbc :=_egeb .GetSegmentData (); +if _adbc !=nil {return 0,_b .Wrap (_adbc ,_gaea ,"");};_dde ,_cbg :=_egdb .(*_cf .PageInformationSegment );if !_cbg {return 0,_b .Errorf (_gaea ,"\u0070\u0061\u0067\u0065\u0020\u0069n\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0069\u0073 \u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0079\u0070e\u003a \u0027\u0025\u0054\u0027",_egdb ); +};_dfag .FinalWidth =_dde .PageBMWidth ;return _dfag .FinalWidth ,nil ;};func (_afb *Page )clearSegmentData (){for _ecg :=range _afb .Segments {_afb .Segments [_ecg ].CleanSegmentData ();};};func (_ggeg *Page )GetResolutionX ()(int ,error ){return _ggeg .getResolutionX ()}; +func (_bff *Page )AddEndOfPageSegment (){_ge :=&_cf .Header {Type :_cf .TEndOfPage ,PageAssociation :_bff .PageNumber };_bff .Segments =append (_bff .Segments ,_ge );};func _cafe (_edbg *Document ,_aea int )*Page {return &Page {Document :_edbg ,PageNumber :_aea ,Segments :[]*_cf .Header {}}; +};func (_egf *Document )nextPageNumber ()uint32 {_egf .NumberOfPages ++;return _egf .NumberOfPages };func (_ceb *Document )encodeEOFHeader (_ebba _ag .BinaryWriter )(_cdg int ,_aab error ){_fca :=&_cf .Header {SegmentNumber :_ceb .nextSegmentNumber (),Type :_cf .TEndOfFile }; +if _cdg ,_aab =_fca .Encode (_ebba );_aab !=nil {return 0,_b .Wrap (_aab ,"\u0065n\u0063o\u0064\u0065\u0045\u004f\u0046\u0048\u0065\u0061\u0064\u0065\u0072","");};return _cdg ,nil ;};func (_acc *Document )determineRandomDataOffsets (_af []*_cf .Header ,_gg uint64 ){if _acc .OrganizationType !=_cf .ORandom {return ; +};for _ ,_caa :=range _af {_caa .SegmentDataStartOffset =_gg ;_gg +=_caa .SegmentDataLength ;};};func (_dada *Document )Encode ()(_cbc []byte ,_caf error ){const _db ="\u0044o\u0063u\u006d\u0065\u006e\u0074\u002e\u0045\u006e\u0063\u006f\u0064\u0065";var _bf ,_acg int ; +if _dada .FullHeaders {if _bf ,_caf =_dada .encodeFileHeader (_dada ._g );_caf !=nil {return nil ,_b .Wrap (_caf ,_db ,"");};};var (_fdc bool ;_ef *_cf .Header ;_fcd *Page ;);if _caf =_dada .completeClassifiedPages ();_caf !=nil {return nil ,_b .Wrap (_caf ,_db ,""); +};if _caf =_dada .produceClassifiedPages ();_caf !=nil {return nil ,_b .Wrap (_caf ,_db ,"");};if _dada .GlobalSegments !=nil {for _ ,_ef =range _dada .GlobalSegments .Segments {if _caf =_dada .encodeSegment (_ef ,&_bf );_caf !=nil {return nil ,_b .Wrap (_caf ,_db ,""); +};};};for _aaa :=1;_aaa <=int (_dada .NumberOfPages );_aaa ++{if _fcd ,_fdc =_dada .Pages [_aaa ];!_fdc {return nil ,_b .Errorf (_db ,"p\u0061g\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020n\u006f\u0074\u0020\u0066ou\u006e\u0064",_aaa );};for _ ,_ef =range _fcd .Segments {if _caf =_dada .encodeSegment (_ef ,&_bf ); +_caf !=nil {return nil ,_b .Wrap (_caf ,_db ,"");};};};if _dada .FullHeaders {if _acg ,_caf =_dada .encodeEOFHeader (_dada ._g );_caf !=nil {return nil ,_b .Wrap (_caf ,_db ,"");};_bf +=_acg ;};_cbc =_dada ._g .Data ();if len (_cbc )!=_bf {_fac .Log .Debug ("\u0042\u0079\u0074\u0065\u0073 \u0077\u0072\u0069\u0074\u0074\u0065\u006e \u0028\u006e\u0029\u003a\u0020\u0027\u0025\u0064\u0027\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0065\u0071\u0075\u0061\u006c\u0020\u0074\u006f\u0020\u0074\u0068\u0065\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006f\u0066\u0020t\u0068\u0065\u0020\u0064\u0061\u0074\u0061\u0020\u0065\u006e\u0063\u006fd\u0065\u0064\u003a\u0020\u0027\u0025d\u0027",_bf ,len (_cbc )); +};return _cbc ,nil ;};func (_gcd *Document )GetGlobalSegment (i int )(*_cf .Header ,error ){_bfa ,_gae :=_gcd .GlobalSegments .GetSegment (i );if _gae !=nil {return nil ,_b .Wrap (_gae ,"\u0047\u0065t\u0047\u006c\u006fb\u0061\u006c\u0053\u0065\u0067\u006d\u0065\u006e\u0074",""); +};return _bfa ,nil ;};const (GenericEM EncodingMethod =iota ;CorrelationEM ;RankHausEM ;);var _d =[]byte {0x97,0x4A,0x42,0x32,0x0D,0x0A,0x1A,0x0A};func (_eg *Document )AddGenericPage (bm *_ed .Bitmap ,duplicateLineRemoval bool )(_cff error ){const _bg ="\u0044\u006f\u0063um\u0065\u006e\u0074\u002e\u0041\u0064\u0064\u0047\u0065\u006e\u0065\u0072\u0069\u0063\u0050\u0061\u0067\u0065"; +if !_eg .FullHeaders &&_eg .NumberOfPages !=0{return _b .Error (_bg ,"\u0064\u006f\u0063\u0075\u006de\u006e\u0074\u0020\u0061\u006c\u0072\u0065a\u0064\u0079\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0073\u0020\u0070\u0061\u0067\u0065\u002e\u0020\u0046\u0069\u006c\u0065\u004d\u006f\u0064\u0065\u0020\u0064\u0069\u0073\u0061\u006c\u006c\u006f\u0077\u0073\u0020\u0061\u0064\u0064i\u006e\u0067\u0020\u006d\u006f\u0072\u0065\u0020\u0074\u0068\u0061\u006e \u006f\u006e\u0065\u0020\u0070\u0061g\u0065"); +};_ee :=&Page {Segments :[]*_cf .Header {},Bitmap :bm ,Document :_eg ,FinalHeight :bm .Height ,FinalWidth :bm .Width ,IsLossless :true ,BlackIsOne :bm .Color ==_ed .Chocolate };_ee .PageNumber =int (_eg .nextPageNumber ());_eg .Pages [_ee .PageNumber ]=_ee ; +bm .InverseData ();_ee .AddPageInformationSegment ();if _cff =_ee .AddGenericRegion (bm ,0,0,0,_cf .TImmediateGenericRegion ,duplicateLineRemoval );_cff !=nil {return _b .Wrap (_cff ,_bg ,"");};if _eg .FullHeaders {_ee .AddEndOfPageSegment ();};return nil ; +};func (_afac *Page )countRegions ()int {var _gbfe int ;for _ ,_abcb :=range _afac .Segments {switch _abcb .Type {case 6,7,22,23,38,39,42,43:_gbfe ++;};};return _gbfe ;};func (_cag *Document )GetNumberOfPages ()(uint32 ,error ){if _cag .NumberOfPagesUnknown ||_cag .NumberOfPages ==0{if len (_cag .Pages )==0{if _bdg :=_cag .mapData (); +_bdg !=nil {return 0,_b .Wrap (_bdg ,"\u0044o\u0063\u0075\u006d\u0065n\u0074\u002e\u0047\u0065\u0074N\u0075m\u0062e\u0072\u004f\u0066\u0050\u0061\u0067\u0065s","");};};return uint32 (len (_cag .Pages )),nil ;};return _cag .NumberOfPages ,nil ;};func (_bbe *Page )createStripedPage (_cffd *_cf .PageInformationSegment )error {const _bee ="\u0063\u0072\u0065\u0061\u0074\u0065\u0053\u0074\u0072\u0069\u0070\u0065d\u0050\u0061\u0067\u0065"; +_bgfa ,_bbdf :=_bbe .collectPageStripes ();if _bbdf !=nil {return _b .Wrap (_bbdf ,_bee ,"");};var _beg int ;for _ ,_faag :=range _bgfa {if _ffb ,_fgag :=_faag .(*_cf .EndOfStripe );_fgag {_beg =_ffb .LineNumber ()+1;}else {_gaef :=_faag .(_cf .Regioner ); +_dgb :=_gaef .GetRegionInfo ();_ebcd :=_bbe .getCombinationOperator (_cffd ,_dgb .CombinaionOperator );_cbd ,_bcg :=_gaef .GetRegionBitmap ();if _bcg !=nil {return _b .Wrap (_bcg ,_bee ,"");};_bcg =_ed .Blit (_cbd ,_bbe .Bitmap ,int (_dgb .XLocation ),_beg ,_ebcd ); +if _bcg !=nil {return _b .Wrap (_bcg ,_bee ,"");};};};return nil ;};func (_ccb *Page )getHeight ()(int ,error ){const _fbb ="\u0067e\u0074\u0048\u0065\u0069\u0067\u0068t";if _ccb .FinalHeight !=0{return _ccb .FinalHeight ,nil ;};_deg :=_ccb .getPageInformationSegment (); +if _deg ==nil {return 0,_b .Error (_fbb ,"n\u0069l\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006ef\u006f\u0072\u006d\u0061ti\u006f\u006e");};_bbae ,_ggae :=_deg .GetSegmentData ();if _ggae !=nil {return 0,_b .Wrap (_ggae ,_fbb ,"");};_ace ,_bcd :=_bbae .(*_cf .PageInformationSegment ); +if !_bcd {return 0,_b .Errorf (_fbb ,"\u0070\u0061\u0067\u0065\u0020\u0069n\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0069\u0073 \u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0079\u0070e\u003a \u0027\u0025\u0054\u0027",_bbae ); +};if _ace .PageBMHeight ==_fa .MaxInt32 {_ ,_ggae =_ccb .GetBitmap ();if _ggae !=nil {return 0,_b .Wrap (_ggae ,_fbb ,"");};}else {_ccb .FinalHeight =_ace .PageBMHeight ;};return _ccb .FinalHeight ,nil ;};type EncodingMethod int ;func (_cfe *Document )AddClassifiedPage (bm *_ed .Bitmap ,method _ede .Method )(_gf error ){const _fe ="\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0041\u0064d\u0043\u006c\u0061\u0073\u0073\u0069\u0066\u0069\u0065\u0064P\u0061\u0067\u0065"; +if !_cfe .FullHeaders &&_cfe .NumberOfPages !=0{return _b .Error (_fe ,"\u0064\u006f\u0063\u0075\u006de\u006e\u0074\u0020\u0061\u006c\u0072\u0065a\u0064\u0079\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0073\u0020\u0070\u0061\u0067\u0065\u002e\u0020\u0046\u0069\u006c\u0065\u004d\u006f\u0064\u0065\u0020\u0064\u0069\u0073\u0061\u006c\u006c\u006f\u0077\u0073\u0020\u0061\u0064\u0064i\u006e\u0067\u0020\u006d\u006f\u0072\u0065\u0020\u0074\u0068\u0061\u006e \u006f\u006e\u0065\u0020\u0070\u0061g\u0065"); +};if _cfe .Classer ==nil {if _cfe .Classer ,_gf =_ede .Init (_ede .DefaultSettings ());_gf !=nil {return _b .Wrap (_gf ,_fe ,"");};};_cda :=int (_cfe .nextPageNumber ());_gd :=&Page {Segments :[]*_cf .Header {},Bitmap :bm ,Document :_cfe ,FinalHeight :bm .Height ,FinalWidth :bm .Width ,PageNumber :_cda }; +_cfe .Pages [_cda ]=_gd ;switch method {case _ede .RankHaus :_gd .EncodingMethod =RankHausEM ;case _ede .Correlation :_gd .EncodingMethod =CorrelationEM ;};_gd .AddPageInformationSegment ();if _gf =_cfe .Classer .AddPage (bm ,_cda ,method );_gf !=nil {return _b .Wrap (_gf ,_fe ,""); +};if _cfe .FullHeaders {_gd .AddEndOfPageSegment ();};return nil ;};func (_acb *Document )completeSymbols ()(_ec error ){const _ce ="\u0063o\u006dp\u006c\u0065\u0074\u0065\u0053\u0079\u006d\u0062\u006f\u006c\u0073";if _acb .Classer ==nil {return nil ;}; +if _acb .Classer .UndilatedTemplates ==nil {return _b .Error (_ce ,"\u006e\u006f t\u0065\u006d\u0070l\u0061\u0074\u0065\u0073 de\u0066in\u0065\u0064\u0020\u0066\u006f\u0072\u0020th\u0065\u0020\u0063\u006c\u0061\u0073\u0073e\u0072");};_cgb :=len (_acb .Pages )==1; +_dca :=make ([]int ,_acb .Classer .UndilatedTemplates .Size ());var _fc int ;for _bdb :=0;_bdb < _acb .Classer .ClassIDs .Size ();_bdb ++{_fc ,_ec =_acb .Classer .ClassIDs .Get (_bdb );if _ec !=nil {return _b .Wrap (_ec ,_ce ,"\u0063\u006c\u0061\u0073\u0073\u0020\u0049\u0044\u0027\u0073"); +};_dca [_fc ]++;};var _fcb []int ;for _ced :=0;_ced < _acb .Classer .UndilatedTemplates .Size ();_ced ++{if _dca [_ced ]==0{return _b .Error (_ce ,"\u006eo\u0020\u0073y\u006d\u0062\u006f\u006cs\u0020\u0069\u006es\u0074\u0061\u006e\u0063\u0065\u0073\u0020\u0066\u006fun\u0064\u0020\u0066o\u0072\u0020g\u0069\u0076\u0065\u006e\u0020\u0063l\u0061\u0073s\u003f\u0020"); +};if _dca [_ced ]> 1||_cgb {_fcb =append (_fcb ,_ced );};};_acb ._bc =len (_fcb );var _adb ,_aag int ;for _aef :=0;_aef < _acb .Classer .ComponentPageNumbers .Size ();_aef ++{_adb ,_ec =_acb .Classer .ComponentPageNumbers .Get (_aef );if _ec !=nil {return _b .Wrapf (_ec ,_ce ,"p\u0061\u0067\u0065\u003a\u0020\u0027\u0025\u0064\u0027 \u006e\u006f\u0074\u0020\u0066\u006f\u0075nd\u0020\u0069\u006e\u0020t\u0068\u0065\u0020\u0063\u006c\u0061\u0073\u0073\u0065r \u0070\u0061g\u0065\u006e\u0075\u006d\u0062\u0065\u0072\u0073",_aef ); +};_aag ,_ec =_acb .Classer .ClassIDs .Get (_aef );if _ec !=nil {return _b .Wrapf (_ec ,_ce ,"\u0063\u0061\u006e\u0027\u0074\u0020\u0067e\u0074\u0020\u0073y\u006d\u0062\u006f\u006c \u0066\u006f\u0072\u0020\u0070\u0061\u0067\u0065\u0020\u0027\u0025\u0064\u0027\u0020\u0066\u0072\u006f\u006d\u0020\u0063\u006c\u0061\u0073\u0073\u0065\u0072",_adb ); +};if _dca [_aag ]==1&&!_cgb {_acb ._dd [_adb ]=append (_acb ._dd [_adb ],_aag );};};if _ec =_acb .Classer .ComputeLLCorners ();_ec !=nil {return _b .Wrap (_ec ,_ce ,"");};return nil ;};func (_abg *Page )createPage (_acfd *_cf .PageInformationSegment )error {var _dbe error ; +if !_acfd .IsStripe ||_acfd .PageBMHeight !=-1{_dbe =_abg .createNormalPage (_acfd );}else {_dbe =_abg .createStripedPage (_acfd );};return _dbe ;};func (_df *Document )produceClassifiedPages ()(_age error ){const _egd ="\u0070\u0072\u006f\u0064uc\u0065\u0043\u006c\u0061\u0073\u0073\u0069\u0066\u0069\u0065\u0064\u0050\u0061\u0067e\u0073"; +if _df .Classer ==nil {return nil ;};var (_fdb *Page ;_bcb bool ;_aca *_cf .Header ;);for _faf :=1;_faf <=int (_df .NumberOfPages );_faf ++{if _fdb ,_bcb =_df .Pages [_faf ];!_bcb {return _b .Errorf (_egd ,"p\u0061g\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020n\u006f\u0074\u0020\u0066ou\u006e\u0064",_faf ); +};if _fdb .EncodingMethod ==GenericEM {continue ;};if _aca ==nil {if _aca ,_age =_df .GlobalSegments .GetSymbolDictionary ();_age !=nil {return _b .Wrap (_age ,_egd ,"");};};if _age =_df .produceClassifiedPage (_fdb ,_aca );_age !=nil {return _b .Wrapf (_age ,_egd ,"\u0070\u0061\u0067\u0065\u003a\u0020\u0027\u0025\u0064\u0027",_faf ); +};};return nil ;};func (_bfb *Document )encodeFileHeader (_gde _ag .BinaryWriter )(_ggb int ,_fgg error ){const _gadf ="\u0065\u006ec\u006f\u0064\u0065F\u0069\u006c\u0065\u0048\u0065\u0061\u0064\u0065\u0072";_ggb ,_fgg =_gde .Write (_d );if _fgg !=nil {return _ggb ,_b .Wrap (_fgg ,_gadf ,"\u0069\u0064"); +};if _fgg =_gde .WriteByte (0x01);_fgg !=nil {return _ggb ,_b .Wrap (_fgg ,_gadf ,"\u0066\u006c\u0061g\u0073");};_ggb ++;_acac :=make ([]byte ,4);_fd .BigEndian .PutUint32 (_acac ,_bfb .NumberOfPages );_bgd ,_fgg :=_gde .Write (_acac );if _fgg !=nil {return _bgd ,_b .Wrap (_fgg ,_gadf ,"p\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072"); +};_ggb +=_bgd ;return _ggb ,nil ;};type Document struct{Pages map[int ]*Page ;NumberOfPagesUnknown bool ;NumberOfPages uint32 ;GBUseExtTemplate bool ;InputStream *_ag .Reader ;GlobalSegments *Globals ;OrganizationType _cf .OrganizationType ;Classer *_ede .Classer ; +XRes ,YRes int ;FullHeaders bool ;CurrentSegmentNumber uint32 ;AverageTemplates *_ed .Bitmaps ;BaseIndexes []int ;Refinement bool ;RefineLevel int ;_ff uint8 ;_g *_ag .BufferedWriter ;EncodeGlobals bool ;_bc int ;_dd map[int ][]int ;_gb map[int ][]int ; +_cd []int ;_cb map[int ]int ;};func DecodeDocument (input *_ag .Reader ,globals *Globals )(*Document ,error ){return _fdd (input ,globals );};func (_bged *Page )GetResolutionY ()(int ,error ){return _bged .getResolutionY ()};func (_bggb *Page )AddGenericRegion (bm *_ed .Bitmap ,xloc ,yloc ,template int ,tp _cf .Type ,duplicateLineRemoval bool )error {const _eea ="P\u0061\u0067\u0065\u002eAd\u0064G\u0065\u006e\u0065\u0072\u0069c\u0052\u0065\u0067\u0069\u006f\u006e"; +_gfde :=&_cf .GenericRegion {};if _accg :=_gfde .InitEncode (bm ,xloc ,yloc ,template ,duplicateLineRemoval );_accg !=nil {return _b .Wrap (_accg ,_eea ,"");};_fbd :=&_cf .Header {Type :_cf .TImmediateGenericRegion ,PageAssociation :_bggb .PageNumber ,SegmentData :_gfde }; +_bggb .Segments =append (_bggb .Segments ,_fbd );return nil ;};func (_eead *Page )composePageBitmap ()error {const _ccg ="\u0063\u006f\u006d\u0070\u006f\u0073\u0065\u0050\u0061\u0067\u0065\u0042i\u0074\u006d\u0061\u0070";if _eead .PageNumber ==0{return nil ; +};_bfd :=_eead .getPageInformationSegment ();if _bfd ==nil {return _b .Error (_ccg ,"\u0070\u0061\u0067e \u0069\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069o\u006e \u0073e\u0067m\u0065\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064"); +};_ccda ,_ddabd :=_bfd .GetSegmentData ();if _ddabd !=nil {return _ddabd ;};_gea ,_cef :=_ccda .(*_cf .PageInformationSegment );if !_cef {return _b .Error (_ccg ,"\u0070\u0061\u0067\u0065\u0020\u0069\u006ef\u006f\u0072\u006da\u0074\u0069\u006f\u006e \u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0069\u0073\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065"); +};if _ddabd =_eead .createPage (_gea );_ddabd !=nil {return _b .Wrap (_ddabd ,_ccg ,"");};_eead .clearSegmentData ();return nil ;};func (_bbd *Page )String ()string {return _a .Sprintf ("\u0050\u0061\u0067\u0065\u0020\u0023\u0025\u0064",_bbd .PageNumber ); +};func (_bcec *Page )GetHeight ()(int ,error ){return _bcec .getHeight ()};func (_ecc *Page )Encode (w _ag .BinaryWriter )(_aaab int ,_ebaf error ){const _cbf ="P\u0061\u0067\u0065\u002e\u0045\u006e\u0063\u006f\u0064\u0065";var _ggbc int ;for _ ,_dcb :=range _ecc .Segments {if _ggbc ,_ebaf =_dcb .Encode (w ); +_ebaf !=nil {return _aaab ,_b .Wrap (_ebaf ,_cbf ,"");};_aaab +=_ggbc ;};return _aaab ,nil ;};type Page struct{Segments []*_cf .Header ;PageNumber int ;Bitmap *_ed .Bitmap ;FinalHeight int ;FinalWidth int ;ResolutionX int ;ResolutionY int ;IsLossless bool ; +Document *Document ;FirstSegmentNumber int ;EncodingMethod EncodingMethod ;BlackIsOne bool ;};func (_cec *Globals )GetSegmentByIndex (index int )(*_cf .Header ,error ){const _bec ="\u0047l\u006f\u0062\u0061\u006cs\u002e\u0047\u0065\u0074\u0053e\u0067m\u0065n\u0074\u0042\u0079\u0049\u006e\u0064\u0065x"; +if _cec ==nil {return nil ,_b .Error (_bec ,"\u0067\u006c\u006f\u0062al\u0073\u0020\u006e\u006f\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");};if len (_cec .Segments )==0{return nil ,_b .Error (_bec ,"\u0067\u006c\u006f\u0062\u0061\u006c\u0073\u0020\u0061\u0072\u0065\u0020e\u006d\u0070\u0074\u0079"); +};if index > len (_cec .Segments )-1{return nil ,_b .Error (_bec ,"\u0069n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");};return _cec .Segments [index ],nil ;};func (_add *Page )getResolutionY ()(int ,error ){const _bege ="\u0067\u0065\u0074\u0052\u0065\u0073\u006f\u006c\u0075t\u0069\u006f\u006e\u0059"; +if _add .ResolutionY !=0{return _add .ResolutionY ,nil ;};_fcg :=_add .getPageInformationSegment ();if _fcg ==nil {return 0,_b .Error (_bege ,"n\u0069l\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006ef\u006f\u0072\u006d\u0061ti\u006f\u006e");};_bdac ,_ccge :=_fcg .GetSegmentData (); +if _ccge !=nil {return 0,_b .Wrap (_ccge ,_bege ,"");};_caaf ,_dge :=_bdac .(*_cf .PageInformationSegment );if !_dge {return 0,_b .Errorf (_bege ,"\u0070\u0061\u0067\u0065\u0020\u0069\u006e\u0066o\u0072\u006d\u0061ti\u006f\u006e\u0020\u0073\u0065\u0067m\u0065\u006e\u0074\u0020\u0069\u0073\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0074\u0079\u0070\u0065\u003a\u0027%\u0054\u0027",_bdac ); +};_add .ResolutionY =_caaf .ResolutionY ;return _add .ResolutionY ,nil ;};func (_egb *Document )GetPage (pageNumber int )(_cf .Pager ,error ){const _ffa ="\u0044\u006fc\u0075\u006d\u0065n\u0074\u002e\u0047\u0065\u0074\u0050\u0061\u0067\u0065";if pageNumber < 0{_fac .Log .Debug ("\u004a\u0042\u0049\u00472\u0020\u0050\u0061\u0067\u0065\u0020\u002d\u0020\u0047e\u0074\u0050\u0061\u0067\u0065\u003a\u0020\u0025\u0064\u002e\u0020\u0050\u0061\u0067\u0065\u0020\u0063\u0061n\u006e\u006f\u0074\u0020\u0062e\u0020\u006c\u006f\u0077\u0065\u0072\u0020\u0074\u0068\u0061\u006e\u0020\u0030\u002e\u0020\u0025\u0073",pageNumber ,_e .Stack ()); +return nil ,_b .Errorf (_ffa ,"\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006a\u0062\u0069\u0067\u0032\u0020d\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u0020\u002d\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064 \u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u003a\u0020\u0025\u0064",pageNumber ); +};if pageNumber > len (_egb .Pages ){_fac .Log .Debug ("\u0050\u0061\u0067\u0065 n\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u003a\u0020\u0025\u0064\u002e\u0020%\u0073",pageNumber ,_e .Stack ());return nil ,_b .Error (_ffa ,"\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006a\u0062\u0069\u0067\u0032 \u0064\u006f\u0063\u0075\u006d\u0065n\u0074\u0020\u002d\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064"); +};_cdc ,_fgae :=_egb .Pages [pageNumber ];if !_fgae {_fac .Log .Debug ("\u0050\u0061\u0067\u0065 n\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u003a\u0020\u0025\u0064\u002e\u0020%\u0073",pageNumber ,_e .Stack ());return nil ,_b .Errorf (_ffa ,"\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006a\u0062\u0069\u0067\u0032 \u0064\u006f\u0063\u0075\u006d\u0065n\u0074\u0020\u002d\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064"); +};return _cdc ,nil ;};func InitEncodeDocument (fullHeaders bool )*Document {return &Document {FullHeaders :fullHeaders ,_g :_ag .BufferedMSB (),Pages :map[int ]*Page {},_dd :map[int ][]int {},_cb :map[int ]int {},_gb :map[int ][]int {}};};func (_eece *Page )createNormalPage (_fdbg *_cf .PageInformationSegment )error {const _gaee ="\u0063\u0072e\u0061\u0074\u0065N\u006f\u0072\u006d\u0061\u006c\u0050\u0061\u0067\u0065"; +_eece .Bitmap =_ed .New (_fdbg .PageBMWidth ,_fdbg .PageBMHeight );if _fdbg .DefaultPixelValue !=0{_eece .Bitmap .SetDefaultPixel ();};for _ ,_ebc :=range _eece .Segments {switch _ebc .Type {case 6,7,22,23,38,39,42,43:_fac .Log .Trace ("\u0047\u0065\u0074\u0074in\u0067\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u003a\u0020\u0025\u0064",_ebc .SegmentNumber ); +_eeb ,_bfcg :=_ebc .GetSegmentData ();if _bfcg !=nil {return _bfcg ;};_acab ,_fggg :=_eeb .(_cf .Regioner );if !_fggg {_fac .Log .Debug ("\u0053\u0065g\u006d\u0065\u006e\u0074\u003a\u0020\u0025\u0054\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0052\u0065\u0067\u0069on\u0065\u0072",_eeb ); +return _b .Errorf (_gaee ,"i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006a\u0062i\u0067\u0032\u0020\u0073\u0065\u0067\u006den\u0074\u0020\u0074\u0079p\u0065\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061 R\u0065\u0067i\u006f\u006e\u0065\u0072\u003a\u0020\u0025\u0054",_eeb ); +};_fbf ,_bfcg :=_acab .GetRegionBitmap ();if _bfcg !=nil {return _b .Wrap (_bfcg ,_gaee ,"");};if _eece .fitsPage (_fdbg ,_fbf ){_eece .Bitmap =_fbf ;}else {_daf :=_acab .GetRegionInfo ();_gga :=_eece .getCombinationOperator (_fdbg ,_daf .CombinaionOperator ); +_bfcg =_ed .Blit (_fbf ,_eece .Bitmap ,int (_daf .XLocation ),int (_daf .YLocation ),_gga );if _bfcg !=nil {return _b .Wrap (_bfcg ,_gaee ,"");};};};};return nil ;};func (_ccdf *Page )lastSegmentNumber ()(_cbdg uint32 ,_faff error ){const _eebe ="\u006c\u0061\u0073\u0074\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u004eu\u006d\u0062\u0065\u0072"; +if len (_ccdf .Segments )==0{return _cbdg ,_b .Errorf (_eebe ,"\u006e\u006f\u0020se\u0067\u006d\u0065\u006e\u0074\u0073\u0020\u0066\u006fu\u006ed\u0020i\u006e \u0074\u0068\u0065\u0020\u0070\u0061\u0067\u0065\u0020\u0027\u0025\u0064\u0027",_ccdf .PageNumber ); +};return _ccdf .Segments [len (_ccdf .Segments )-1].SegmentNumber ,nil ;};func (_gceb *Page )getResolutionX ()(int ,error ){const _ggf ="\u0067\u0065\u0074\u0052\u0065\u0073\u006f\u006c\u0075t\u0069\u006f\u006e\u0058";if _gceb .ResolutionX !=0{return _gceb .ResolutionX ,nil ; +};_aec :=_gceb .getPageInformationSegment ();if _aec ==nil {return 0,_b .Error (_ggf ,"n\u0069l\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006ef\u006f\u0072\u006d\u0061ti\u006f\u006e");};_bbf ,_fdag :=_aec .GetSegmentData ();if _fdag !=nil {return 0,_b .Wrap (_fdag ,_ggf ,""); +};_abcc ,_bac :=_bbf .(*_cf .PageInformationSegment );if !_bac {return 0,_b .Errorf (_ggf ,"\u0070\u0061\u0067\u0065\u0020\u0069n\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0069\u0073 \u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0079\u0070e\u003a \u0027\u0025\u0054\u0027",_bbf ); +};_gceb .ResolutionX =_abcc .ResolutionX ;return _gceb .ResolutionX ,nil ;}; \ No newline at end of file diff --git a/unipdf/internal/jbig2/document/segments/segments.go b/unipdf/internal/jbig2/document/segments/segments.go new file mode 100644 index 0000000..8144416 --- /dev/null +++ b/unipdf/internal/jbig2/document/segments/segments.go @@ -0,0 +1,618 @@ +// +// 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 (_b "encoding/binary";_ec "errors";_gb "fmt";_age "github.com/unidoc/unipdf/v4/common";_c "github.com/unidoc/unipdf/v4/internal/bitwise";_ag "github.com/unidoc/unipdf/v4/internal/jbig2/basic";_f "github.com/unidoc/unipdf/v4/internal/jbig2/bitmap"; +_cc "github.com/unidoc/unipdf/v4/internal/jbig2/decoder/arithmetic";_ece "github.com/unidoc/unipdf/v4/internal/jbig2/decoder/huffman";_ee "github.com/unidoc/unipdf/v4/internal/jbig2/decoder/mmr";_bdc "github.com/unidoc/unipdf/v4/internal/jbig2/encoder/arithmetic"; +_dg "github.com/unidoc/unipdf/v4/internal/jbig2/errors";_d "github.com/unidoc/unipdf/v4/internal/jbig2/internal";_g "image";_ed "io";_a "math";_ab "strings";_bd "time";);func (_fbaa *PageInformationSegment )readContainsRefinement ()error {_caea ,_agfc :=_fbaa ._eade .ReadBit (); +if _agfc !=nil {return _agfc ;};if _caea ==1{_fbaa ._fabe =true ;};return nil ;};func (_aecd *SymbolDictionary )setCodingStatistics ()error {if _aecd ._fbbc ==nil {_aecd ._fbbc =_cc .NewStats (512,1);};if _aecd ._adbgg ==nil {_aecd ._adbgg =_cc .NewStats (512,1); +};if _aecd ._ggcfb ==nil {_aecd ._ggcfb =_cc .NewStats (512,1);};if _aecd ._dbdb ==nil {_aecd ._dbdb =_cc .NewStats (512,1);};if _aecd ._ggec ==nil {_aecd ._ggec =_cc .NewStats (512,1);};if _aecd .UseRefinementAggregation &&_aecd ._fbac ==nil {_aecd ._fbac =_cc .NewStats (1<=1{_aea ,_aebe =_cgd .Bitmap .GetByte (_gbad );if _aebe !=nil {return _dg .Wrap (_aebe ,_abd ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0031"); +};_eab =int (_aea );};if _aac >=2{_aea ,_aebe =_cgd .Bitmap .GetByte (_gbad -_cgd .Bitmap .RowStride );if _aebe !=nil {return _dg .Wrap (_aebe ,_abd ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0032");};_bdb =int (_aea )<<4; +};_fdbe =(_eab >>3&0x7c)|(_bdb >>3&0x380);for _egeg :=0;_egeg < _gfag ;_egeg =_afc {var (_fafe byte ;_baa int ;);_afc =_egeg +8;if _bagc :=_ega -_egeg ;_bagc > 8{_baa =8;}else {_baa =_bagc ;};if _aac > 0{_eab <<=8;if _afc < _ega {_aea ,_aebe =_cgd .Bitmap .GetByte (_gbad +1); +if _aebe !=nil {return _dg .Wrap (_aebe ,_abd ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0030");};_eab |=int (_aea );};};if _aac > 1{_bdb <<=8;if _afc < _ega {_aea ,_aebe =_cgd .Bitmap .GetByte (_gbad -_cgd .Bitmap .RowStride +1); +if _aebe !=nil {return _dg .Wrap (_aebe ,_abd ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0031");};_bdb |=int (_aea )<<4;};};for _gffg :=0;_gffg < _baa ;_gffg ++{_fff :=uint (10-_gffg );if _cgd ._aeed {_ecff =_cgd .overrideAtTemplate2 (_fdbe ,_egeg +_gffg ,_aac ,int (_fafe ),_gffg ); +_cgd ._fgce .SetIndex (int32 (_ecff ));}else {_cgd ._fgce .SetIndex (int32 (_fdbe ));};_bceg ,_aebe =_cgd ._fba .DecodeBit (_cgd ._fgce );if _aebe !=nil {return _dg .Wrap (_aebe ,_abd ,"");};_fafe |=byte (_bceg <>_fff )&0x4)|((_bdb >>_fff )&0x80); +};if _adb :=_cgd .Bitmap .SetByte (_aagf ,_fafe );_adb !=nil {return _dg .Wrap (_adb ,_abd ,"");};_aagf ++;_gbad ++;};return nil ;};func (_fcde *Header )Encode (w _c .BinaryWriter )(_dagca int ,_cdbd error ){const _fgef ="\u0048\u0065\u0061d\u0065\u0072\u002e\u0057\u0072\u0069\u0074\u0065"; +var _fegb _c .BinaryWriter ;_age .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 _cdbd !=nil {_age .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",_cdbd ); +}else {_age .Log .Trace ("\u005b\u0053\u0045\u0047ME\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0025\u0076",_fcde );_age .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 _fcde .SegmentData !=nil {_cfb ,_ffd :=_fcde .SegmentData .(SegmentEncoder );if !_ffd {return 0,_dg .Errorf (_fgef ,"\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",_fcde .SegmentData ); +};_fegb =_c .BufferedMSB ();_dagca ,_cdbd =_cfb .Encode (_fegb );if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");};_fcde .SegmentDataLength =uint64 (_dagca );};if _fcde .pageSize ()==4{_fcde .PageAssociationFieldSize =true ;};var _ageg int ;_ageg ,_cdbd =_fcde .writeSegmentNumber (w ); +if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");};_dagca +=_ageg ;if _cdbd =_fcde .writeFlags (w );_cdbd !=nil {return _dagca ,_dg .Wrap (_cdbd ,_fgef ,"");};_dagca ++;_ageg ,_cdbd =_fcde .writeReferredToCount (w );if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,""); +};_dagca +=_ageg ;_ageg ,_cdbd =_fcde .writeReferredToSegments (w );if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");};_dagca +=_ageg ;_ageg ,_cdbd =_fcde .writeSegmentPageAssociation (w );if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");};_dagca +=_ageg ; +_ageg ,_cdbd =_fcde .writeSegmentDataLength (w );if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");};_dagca +=_ageg ;_fcde .HeaderLength =int64 (_dagca )-int64 (_fcde .SegmentDataLength );if _fegb !=nil {if _ ,_cdbd =w .Write (_fegb .Data ());_cdbd !=nil {return _dagca ,_dg .Wrap (_cdbd ,_fgef ,"\u0077r\u0069t\u0065\u0020\u0073\u0065\u0067m\u0065\u006et\u0020\u0064\u0061\u0074\u0061"); +};};return _dagca ,nil ;};func (_cdedg *SymbolDictionary )Init (h *Header ,r *_c .Reader )error {_cdedg .Header =h ;_cdedg ._dabd =r ;return _cdedg .parseHeader ();};func (_aebb *PatternDictionary )extractPatterns (_eced *_f .Bitmap )error {var _faaf int ; +_ecgb :=make ([]*_f .Bitmap ,_aebb .GrayMax +1);for _faaf <=int (_aebb .GrayMax ){_ccd :=int (_aebb .HdpWidth )*_faaf ;_dgdf :=_g .Rect (_ccd ,0,_ccd +int (_aebb .HdpWidth ),int (_aebb .HdpHeight ));_ffgdf ,_faba :=_f .Extract (_dgdf ,_eced );if _faba !=nil {return _faba ; +};_ecgb [_faaf ]=_ffgdf ;_faaf ++;};_aebb .Patterns =_ecgb ;return nil ;};func (_fgd *GenericRegion )computeSegmentDataStructure ()error {_fgd .DataOffset =_fgd ._faca .AbsolutePosition ();_fgd .DataHeaderLength =_fgd .DataOffset -_fgd .DataHeaderOffset ; +_fgd .DataLength =int64 (_fgd ._faca .AbsoluteLength ())-_fgd .DataHeaderLength ;return nil ;};func (_geeg *PageInformationSegment )readRequiresAuxiliaryBuffer ()error {_bcfa ,_fggc :=_geeg ._eade .ReadBit ();if _fggc !=nil {return _fggc ;};if _bcfa ==1{_geeg ._bdag =true ; +};return nil ;};func (_db *GenericRefinementRegion )getGrReference ()(*_f .Bitmap ,error ){segments :=_db ._gg .RTSegments ;if len (segments )==0{return nil ,_ec .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"); +};_gfd ,_gff :=segments [0].GetSegmentData ();if _gff !=nil {return nil ,_gff ;};_afd ,_acd :=_gfd .(Regioner );if !_acd {return nil ,_gb .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",_gfd ); +};return _afd .GetRegionBitmap ();};func (_bbd *GenericRefinementRegion )overrideAtTemplate0 (_cbc ,_eef ,_agb ,_aaf ,_cba int )int {if _bbd ._eecb [0]{_cbc &=0xfff7;if _bbd .GrAtY [0]==0&&int (_bbd .GrAtX [0])>=-_cba {_cbc |=(_aaf >>uint (7-(_cba +int (_bbd .GrAtX [0])))&0x1)<<3; +}else {_cbc |=_bbd .getPixel (_bbd .RegionBitmap ,_eef +int (_bbd .GrAtX [0]),_agb +int (_bbd .GrAtY [0]))<<3;};};if _bbd ._eecb [1]{_cbc &=0xefff;if _bbd .GrAtY [1]==0&&int (_bbd .GrAtX [1])>=-_cba {_cbc |=(_aaf >>uint (7-(_cba +int (_bbd .GrAtX [1])))&0x1)<<12; +}else {_cbc |=_bbd .getPixel (_bbd .ReferenceBitmap ,_eef +int (_bbd .GrAtX [1]),_agb +int (_bbd .GrAtY [1]));};};return _cbc ;};func (_fga *HalftoneRegion )computeGrayScalePlanes (_ggbcd []*_f .Bitmap ,_begf int )([][]int ,error ){_eceb :=make ([][]int ,_fga .HGridHeight ); +for _fbaf :=0;_fbaf < len (_eceb );_fbaf ++{_eceb [_fbaf ]=make ([]int ,_fga .HGridWidth );};for _bff :=0;_bff < int (_fga .HGridHeight );_bff ++{for _dde :=0;_dde < int (_fga .HGridWidth );_dde +=8{var _ebggc int ;if _ccbb :=int (_fga .HGridWidth )-_dde ; +_ccbb > 8{_ebggc =8;}else {_ebggc =_ccbb ;};_cdg :=_ggbcd [0].GetByteIndex (_dde ,_bff );for _aeac :=0;_aeac < _ebggc ;_aeac ++{_gaaa :=_aeac +_dde ;_eceb [_bff ][_gaaa ]=0;for _dfd :=0;_dfd < _begf ;_dfd ++{_feff ,_ecee :=_ggbcd [_dfd ].GetByte (_cdg ); +if _ecee !=nil {return nil ,_ecee ;};_abga :=_feff >>uint (7-_gaaa &7);_fbada :=_abga &1;_bcdd :=1<>1;_degd |=_degd >>2; +_degd |=_degd >>4;_degd |=_degd >>8;_degd |=_degd >>16;return (_degd +1)>>1;};func (_dcgd *SymbolDictionary )decodeDirectlyThroughGenericRegion (_eedb ,_fgde uint32 )error {if _dcgd ._cddgf ==nil {_dcgd ._cddgf =NewGenericRegion (_dcgd ._dabd );};_dcgd ._cddgf .setParametersWithAt (false ,byte (_dcgd .SdTemplate ),false ,false ,_dcgd .SdATX ,_dcgd .SdATY ,_eedb ,_fgde ,_dcgd ._cfba ,_dcgd ._ded ); +return _dcgd .addSymbol (_dcgd ._cddgf );};func (_aced *PatternDictionary )readTemplate ()error {_bbbf ,_aaaf :=_aced ._ebcg .ReadBits (2);if _aaaf !=nil {return _aaaf ;};_aced .HDTemplate =byte (_bbbf );return nil ;};func (_fcda *HalftoneRegion )GetPatterns ()([]*_f .Bitmap ,error ){var (_edfa []*_f .Bitmap ; +_fge error ;);for _ ,_fbgea :=range _fcda ._ccge .RTSegments {var _ffad Segmenter ;_ffad ,_fge =_fbgea .GetSegmentData ();if _fge !=nil {_age .Log .Debug ("\u0047e\u0074\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061 \u0066a\u0069\u006c\u0065\u0064\u003a\u0020\u0025v",_fge ); +return nil ,_fge ;};_aab ,_fbgd :=_ffad .(*PatternDictionary );if !_fbgd {_fge =_gb .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",_ffad ); +return nil ,_fge ;};var _cfgc []*_f .Bitmap ;_cfgc ,_fge =_aab .GetDictionary ();if _fge !=nil {_age .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",_fge ); +return nil ,_fge ;};_edfa =append (_edfa ,_cfgc ...);};return _edfa ,nil ;};func (_bfbb *Header )readNumberOfReferredToSegments (_gadd *_c .Reader )(uint64 ,error ){const _cdfd ="\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"; +_gefc ,_fdd :=_gadd .ReadBits (3);if _fdd !=nil {return 0,_dg .Wrap (_fdd ,_cdfd ,"\u0063\u006f\u0075n\u0074\u0020\u006f\u0066\u0020\u0072\u0074\u0073");};_gefc &=0xf;var _bccc []byte ;if _gefc <=4{_bccc =make ([]byte ,5);for _cfea :=0;_cfea <=4;_cfea ++{_bbaa ,_eda :=_gadd .ReadBit (); +if _eda !=nil {return 0,_dg .Wrap (_eda ,_cdfd ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_bccc [_cfea ]=byte (_bbaa );};}else {_gefc ,_fdd =_gadd .ReadBits (29);if _fdd !=nil {return 0,_fdd ;};_gefc &=_a .MaxInt32 ;_ccca :=(_gefc +8)>>3; +_ccca <<=3;_bccc =make ([]byte ,_ccca );var _fceb uint64 ;for _fceb =0;_fceb < _ccca ;_fceb ++{_dfb ,_eac :=_gadd .ReadBit ();if _eac !=nil {return 0,_dg .Wrap (_eac ,_cdfd ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_bccc [_fceb ]=byte (_dfb ); +};};return _gefc ,nil ;};func (_bfgb *TextRegion )setContexts (_bacf *_cc .DecoderStats ,_caddc *_cc .DecoderStats ,_dadee *_cc .DecoderStats ,_gaff *_cc .DecoderStats ,_bddb *_cc .DecoderStats ,_cedg *_cc .DecoderStats ,_baedb *_cc .DecoderStats ,_eadf *_cc .DecoderStats ,_cgdf *_cc .DecoderStats ,_cggbf *_cc .DecoderStats ){_bfgb ._fecfa =_caddc ; +_bfgb ._dfca =_dadee ;_bfgb ._cgbe =_gaff ;_bfgb ._edbc =_bddb ;_bfgb ._gbeg =_baedb ;_bfgb ._gebe =_eadf ;_bfgb ._eadb =_cedg ;_bfgb ._aaba =_cgdf ;_bfgb ._gaad =_cggbf ;_bfgb ._bdfb =_bacf ;};func (_faabe *PageInformationSegment )String ()string {_fgac :=&_ab .Builder {}; +_fgac .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");_fgac .WriteString (_gb .Sprintf ("\u0009\u002d \u0042\u004d\u0048e\u0069\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u000a",_faabe .PageBMHeight )); +_fgac .WriteString (_gb .Sprintf ("\u0009-\u0020B\u004d\u0057\u0069\u0064\u0074\u0068\u003a\u0020\u0025\u0064\u000a",_faabe .PageBMWidth ));_fgac .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0058\u003a\u0020\u0025\u0064\u000a",_faabe .ResolutionX )); +_fgac .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0059\u003a\u0020\u0025\u0064\u000a",_faabe .ResolutionY ));_fgac .WriteString (_gb .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0073\u000a",_faabe ._dafc )); +_fgac .WriteString (_gb .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",_faabe ._cbfcb ));_fgac .WriteString (_gb .Sprintf ("\u0009-\u0020I\u0073\u004c\u006f\u0073\u0073l\u0065\u0073s\u003a\u0020\u0025\u0076\u000a",_faabe .IsLossless )); +_fgac .WriteString (_gb .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",_faabe ._bdag ));_fgac .WriteString (_gb .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",_faabe ._fabe )); +_fgac .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0049\u0073\u0053\u0074\u0072\u0069\u0070\u0065\u0064:\u0020\u0025\u0076\u000a",_faabe .IsStripe ));_fgac .WriteString (_gb .Sprintf ("\t\u002d\u0020\u004d\u0061xS\u0074r\u0069\u0070\u0065\u0053\u0069z\u0065\u003a\u0020\u0025\u0076\u000a",_faabe .MaxStripeSize )); +return _fgac .String ();};func (_bgbc *TextRegion )GetRegionBitmap ()(*_f .Bitmap ,error ){if _bgbc .RegionBitmap !=nil {return _bgbc .RegionBitmap ,nil ;};if !_bgbc .IsHuffmanEncoded {if _fdea :=_bgbc .setCodingStatistics ();_fdea !=nil {return nil ,_fdea ; +};};if _dbbag :=_bgbc .createRegionBitmap ();_dbbag !=nil {return nil ,_dbbag ;};if _defe :=_bgbc .decodeSymbolInstances ();_defe !=nil {return nil ,_defe ;};return _bgbc .RegionBitmap ,nil ;};func (_abee *SymbolDictionary )encodeNumSyms (_dded _c .BinaryWriter )(_eada int ,_dagac error ){const _eccd ="\u0065\u006e\u0063\u006f\u0064\u0065\u004e\u0075\u006d\u0053\u0079\u006d\u0073"; +_edfdd :=make ([]byte ,4);_b .BigEndian .PutUint32 (_edfdd ,_abee .NumberOfExportedSymbols );if _eada ,_dagac =_dded .Write (_edfdd );_dagac !=nil {return _eada ,_dg .Wrap (_dagac ,_eccd ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073"); +};_b .BigEndian .PutUint32 (_edfdd ,_abee .NumberOfNewSymbols );_ffgc ,_dagac :=_dded .Write (_edfdd );if _dagac !=nil {return _eada ,_dg .Wrap (_dagac ,_eccd ,"n\u0065\u0077\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};return _eada +_ffgc ,nil ; +};func (_bad *GenericRefinementRegion )setParameters (_gfb *_cc .DecoderStats ,_efc *_cc .Decoder ,_abc int8 ,_eeb ,_acdaa uint32 ,_bgdd *_f .Bitmap ,_aeee ,_bgca int32 ,_fecf bool ,_bdae []int8 ,_accf []int8 ){_age .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 _gfb !=nil {_bad ._cd =_gfb ;};if _efc !=nil {_bad ._gaf =_efc ;};_bad .TemplateID =_abc ;_bad .RegionInfo .BitmapWidth =_eeb ;_bad .RegionInfo .BitmapHeight =_acdaa ;_bad .ReferenceBitmap =_bgdd ;_bad .ReferenceDX =_aeee ;_bad .ReferenceDY =_bgca ; +_bad .IsTPGROn =_fecf ;_bad .GrAtX =_bdae ;_bad .GrAtY =_accf ;_bad .RegionBitmap =nil ;_age .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",_bad ); +};func (_fdfc *TextRegion )Init (header *Header ,r *_c .Reader )error {_fdfc .Header =header ;_fdfc ._bgge =r ;_fdfc .RegionInfo =NewRegionSegment (_fdfc ._bgge );return _fdfc .parseHeader ();};func (_daccf *TextRegion )getUserTable (_ccdb int )(_ece .Tabler ,error ){const _ecga ="\u0067\u0065\u0074U\u0073\u0065\u0072\u0054\u0061\u0062\u006c\u0065"; +var _dgbe int ;for _ ,_faaa :=range _daccf .Header .RTSegments {if _faaa .Type ==53{if _dgbe ==_ccdb {_ebccd ,_gbbe :=_faaa .GetSegmentData ();if _gbbe !=nil {return nil ,_gbbe ;};_eeee ,_ebgd :=_ebccd .(*TableSegment );if !_ebgd {_age .Log .Debug (_gb .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",_faaa .SegmentNumber )); +return nil ,_dg .Error (_ecga ,"\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 _ece .NewEncodedTable (_eeee );};_dgbe ++;};};return nil ,nil ;};type SymbolDictionary struct{_dabd *_c .Reader ;SdrTemplate int8 ;SdTemplate int8 ;_eegc bool ;_eaf 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 ;_acg uint32 ;_dfbg []*_f .Bitmap ; +_cec uint32 ;_ddae []*_f .Bitmap ;_gdgd _ece .Tabler ;_gagc _ece .Tabler ;_feea _ece .Tabler ;_afec _ece .Tabler ;_ffdg []*_f .Bitmap ;_ecac []*_f .Bitmap ;_ded *_cc .Decoder ;_fagf *TextRegion ;_cddgf *GenericRegion ;_ggcf *GenericRefinementRegion ;_cfba *_cc .DecoderStats ; +_adbgg *_cc .DecoderStats ;_ggcfb *_cc .DecoderStats ;_dbdb *_cc .DecoderStats ;_ggec *_cc .DecoderStats ;_gffd *_cc .DecoderStats ;_fdff *_cc .DecoderStats ;_fbbc *_cc .DecoderStats ;_fbac *_cc .DecoderStats ;_gdfg int8 ;_gabd *_f .Bitmaps ;_cacb []int ; +_gbdf map[int ]int ;_dfadf bool ;};func (_fca *template1 )setIndex (_cfe *_cc .DecoderStats ){_cfe .SetIndex (0x080)};func (_gged *SymbolDictionary )decodeNewSymbols (_dbafd ,_ffec uint32 ,_adgb *_f .Bitmap ,_gdfc ,_cbbe int32 )error {if _gged ._ggcf ==nil {_gged ._ggcf =_bcbf (_gged ._dabd ,nil ); +if _gged ._ded ==nil {var _ecfc error ;_gged ._ded ,_ecfc =_cc .New (_gged ._dabd );if _ecfc !=nil {return _ecfc ;};};if _gged ._cfba ==nil {_gged ._cfba =_cc .NewStats (65536,1);};};_gged ._ggcf .setParameters (_gged ._cfba ,_gged ._ded ,_gged .SdrTemplate ,_dbafd ,_ffec ,_adgb ,_gdfc ,_cbbe ,false ,_gged .SdrATX ,_gged .SdrATY ); +return _gged .addSymbol (_gged ._ggcf );};func (_addce *TextRegion )symbolIDCodeLengths ()error {var (_gedda []*_ece .Code ;_cgac uint64 ;_agff _ece .Tabler ;_fcbg error ;);for _abgcb :=0;_abgcb < 35;_abgcb ++{_cgac ,_fcbg =_addce ._bgge .ReadBits (4); +if _fcbg !=nil {return _fcbg ;};_debb :=int (_cgac &0xf);if _debb > 0{_gedda =append (_gedda ,_ece .NewCode (int32 (_debb ),0,int32 (_abgcb ),false ));};};_agff ,_fcbg =_ece .NewFixedSizeTable (_gedda );if _fcbg !=nil {return _fcbg ;};var (_acef int64 ; +_adge uint32 ;_bdff []*_ece .Code ;_febb int64 ;);for _adge < _addce .NumberOfSymbols {_febb ,_fcbg =_agff .Decode (_addce ._bgge );if _fcbg !=nil {return _fcbg ;};if _febb < 32{if _febb > 0{_bdff =append (_bdff ,_ece .NewCode (int32 (_febb ),0,int32 (_adge ),false )); +};_acef =_febb ;_adge ++;}else {var _dcaf ,_gagee int64 ;switch _febb {case 32:_cgac ,_fcbg =_addce ._bgge .ReadBits (2);if _fcbg !=nil {return _fcbg ;};_dcaf =3+int64 (_cgac );if _adge > 0{_gagee =_acef ;};case 33:_cgac ,_fcbg =_addce ._bgge .ReadBits (3); +if _fcbg !=nil {return _fcbg ;};_dcaf =3+int64 (_cgac );case 34:_cgac ,_fcbg =_addce ._bgge .ReadBits (7);if _fcbg !=nil {return _fcbg ;};_dcaf =11+int64 (_cgac );};for _cbfac :=0;_cbfac < int (_dcaf );_cbfac ++{if _gagee > 0{_bdff =append (_bdff ,_ece .NewCode (int32 (_gagee ),0,int32 (_adge ),false )); +};_adge ++;};};};_addce ._bgge .Align ();_addce ._bgcg ,_fcbg =_ece .NewFixedSizeTable (_bdff );return _fcbg ;};func (_afde *TextRegion )decodeRdy ()(int64 ,error ){const _ecebb ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064y";if _afde .IsHuffmanEncoded {if _afde .SbHuffRDY ==3{if _afde ._fdcag ==nil {var (_fggcc int ; +_cfgf error ;);if _afde .SbHuffFS ==3{_fggcc ++;};if _afde .SbHuffDS ==3{_fggcc ++;};if _afde .SbHuffDT ==3{_fggcc ++;};if _afde .SbHuffRDWidth ==3{_fggcc ++;};if _afde .SbHuffRDHeight ==3{_fggcc ++;};if _afde .SbHuffRDX ==3{_fggcc ++;};_afde ._fdcag ,_cfgf =_afde .getUserTable (_fggcc ); +if _cfgf !=nil {return 0,_dg .Wrap (_cfgf ,_ecebb ,"");};};return _afde ._fdcag .Decode (_afde ._bgge );};_abgc ,_gdccd :=_ece .GetStandardTable (14+int (_afde .SbHuffRDY ));if _gdccd !=nil {return 0,_gdccd ;};return _abgc .Decode (_afde ._bgge );};_eddaf ,_cafa :=_afde ._cefb .DecodeInt (_afde ._gaad ); +if _cafa !=nil {return 0,_dg .Wrap (_cafa ,_ecebb ,"");};return int64 (_eddaf ),nil ;};func (_gfgc *GenericRegion )Init (h *Header ,r *_c .Reader )error {_gfgc .RegionSegment =NewRegionSegment (r );_gfgc ._faca =r ;return _gfgc .parseHeader ();};func (_ggbf *TextRegion )decodeID ()(int64 ,error ){if _ggbf .IsHuffmanEncoded {if _ggbf ._bgcg ==nil {_fdfg ,_fedb :=_ggbf ._bgge .ReadBits (byte (_ggbf ._aeaca )); +return int64 (_fdfg ),_fedb ;};return _ggbf ._bgcg .Decode (_ggbf ._bgge );};return _ggbf ._cefb .DecodeIAID (uint64 (_ggbf ._aeaca ),_ggbf ._eadb );};func (_caad *GenericRegion )setParametersMMR (_ddd bool ,_dbc ,_fege int64 ,_baeb ,_dbaf uint32 ,_cbfa byte ,_gbb ,_bef bool ,_ccgg ,_dagc []int8 ){_caad .DataOffset =_dbc ; +_caad .DataLength =_fege ;_caad .RegionSegment =&RegionSegment {};_caad .RegionSegment .BitmapHeight =_baeb ;_caad .RegionSegment .BitmapWidth =_dbaf ;_caad .GBTemplate =_cbfa ;_caad .IsMMREncoded =_ddd ;_caad .IsTPGDon =_gbb ;_caad .GBAtX =_ccgg ;_caad .GBAtY =_dagc ; +};func (_gf *EndOfStripe )parseHeader ()error {_ga ,_be :=_gf ._ff .ReadBits (32);if _be !=nil {return _be ;};_gf ._cce =int (_ga &_a .MaxInt32 );return nil ;};func (_bdbad *HalftoneRegion )grayScaleDecoding (_gbde int )([][]int ,error ){var (_ddaf []int8 ; +_fafg []int8 ;);if !_bdbad .IsMMREncoded {_ddaf =make ([]int8 ,4);_fafg =make ([]int8 ,4);if _bdbad .HTemplate <=1{_ddaf [0]=3;}else if _bdbad .HTemplate >=2{_ddaf [0]=2;};_fafg [0]=-1;_ddaf [1]=-3;_fafg [1]=-1;_ddaf [2]=2;_fafg [2]=-2;_ddaf [3]=-2;_fafg [3]=-2; +};_fecda :=make ([]*_f .Bitmap ,_gbde );_eegd :=NewGenericRegion (_bdbad ._dade );_eegd .setParametersMMR (_bdbad .IsMMREncoded ,_bdbad .DataOffset ,_bdbad .DataLength ,_bdbad .HGridHeight ,_bdbad .HGridWidth ,_bdbad .HTemplate ,false ,_bdbad .HSkipEnabled ,_ddaf ,_fafg ); +_fffa :=_gbde -1;var _dbee error ;_fecda [_fffa ],_dbee =_eegd .GetRegionBitmap ();if _dbee !=nil {return nil ,_dbee ;};for _fffa > 0{_fffa --;_eegd .Bitmap =nil ;_fecda [_fffa ],_dbee =_eegd .GetRegionBitmap ();if _dbee !=nil {return nil ,_dbee ;};if _dbee =_bdbad .combineGrayscalePlanes (_fecda ,_fffa ); +_dbee !=nil {return nil ,_dbee ;};};return _bdbad .computeGrayScalePlanes (_fecda ,_gbde );};const (ORandom OrganizationType =iota ;OSequential ;);func (_ecde *SymbolDictionary )setExportedSymbols (_agee []int ){for _feee :=uint32 (0);_feee < _ecde ._acg +_ecde .NumberOfNewSymbols ; +_feee ++{if _agee [_feee ]==1{var _dcac *_f .Bitmap ;if _feee < _ecde ._acg {_dcac =_ecde ._dfbg [_feee ];}else {_dcac =_ecde ._ddae [_feee -_ecde ._acg ];};_age .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",_dcac ); +_ecde ._ffdg =append (_ecde ._ffdg ,_dcac );};};};func (_affgf *RegionSegment )Encode (w _c .BinaryWriter )(_fbbe int ,_face error ){const _gafb ="R\u0065g\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065n\u0074\u002e\u0045\u006eco\u0064\u0065";_efcc :=make ([]byte ,4); +_b .BigEndian .PutUint32 (_efcc ,_affgf .BitmapWidth );_fbbe ,_face =w .Write (_efcc );if _face !=nil {return 0,_dg .Wrap (_face ,_gafb ,"\u0057\u0069\u0064t\u0068");};_b .BigEndian .PutUint32 (_efcc ,_affgf .BitmapHeight );var _faea int ;_faea ,_face =w .Write (_efcc ); +if _face !=nil {return 0,_dg .Wrap (_face ,_gafb ,"\u0048\u0065\u0069\u0067\u0068\u0074");};_fbbe +=_faea ;_b .BigEndian .PutUint32 (_efcc ,_affgf .XLocation );_faea ,_face =w .Write (_efcc );if _face !=nil {return 0,_dg .Wrap (_face ,_gafb ,"\u0058L\u006f\u0063\u0061\u0074\u0069\u006fn"); +};_fbbe +=_faea ;_b .BigEndian .PutUint32 (_efcc ,_affgf .YLocation );_faea ,_face =w .Write (_efcc );if _face !=nil {return 0,_dg .Wrap (_face ,_gafb ,"\u0059L\u006f\u0063\u0061\u0074\u0069\u006fn");};_fbbe +=_faea ;if _face =w .WriteByte (byte (_affgf .CombinaionOperator )&0x07); +_face !=nil {return 0,_dg .Wrap (_face ,_gafb ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};_fbbe ++;return _fbbe ,nil ;};func (_ccb *GenericRegion )decodeSLTP ()(int ,error ){switch _ccb .GBTemplate {case 0:_ccb ._fgce .SetIndex (0x9B25); +case 1:_ccb ._fgce .SetIndex (0x795);case 2:_ccb ._fgce .SetIndex (0xE5);case 3:_ccb ._fgce .SetIndex (0x195);};return _ccb ._fba .DecodeBit (_ccb ._fgce );};func (_aae *SymbolDictionary )readAtPixels (_bbfc int )error {_aae .SdATX =make ([]int8 ,_bbfc ); +_aae .SdATY =make ([]int8 ,_bbfc );var (_caeaa byte ;_agbe error ;);for _cbcd :=0;_cbcd < _bbfc ;_cbcd ++{_caeaa ,_agbe =_aae ._dabd .ReadByte ();if _agbe !=nil {return _agbe ;};_aae .SdATX [_cbcd ]=int8 (_caeaa );_caeaa ,_agbe =_aae ._dabd .ReadByte (); +if _agbe !=nil {return _agbe ;};_aae .SdATY [_cbcd ]=int8 (_caeaa );};return nil ;};func (_ggb *GenericRegion )copyLineAbove (_gbgg int )error {_cfgd :=_gbgg *_ggb .Bitmap .RowStride ;_dba :=_cfgd -_ggb .Bitmap .RowStride ;for _dbd :=0;_dbd < _ggb .Bitmap .RowStride ; +_dbd ++{_fbea ,_dbgf :=_ggb .Bitmap .GetByte (_dba );if _dbgf !=nil {return _dbgf ;};_dba ++;if _dbgf =_ggb .Bitmap .SetByte (_cfgd ,_fbea );_dbgf !=nil {return _dbgf ;};_cfgd ++;};return nil ;};func (_ad *EndOfStripe )Init (h *Header ,r *_c .Reader )error {_ad ._ff =r ; +return _ad .parseHeader ()};func (_caddd *TextRegion )setCodingStatistics ()error {if _caddd ._fecfa ==nil {_caddd ._fecfa =_cc .NewStats (512,1);};if _caddd ._dfca ==nil {_caddd ._dfca =_cc .NewStats (512,1);};if _caddd ._cgbe ==nil {_caddd ._cgbe =_cc .NewStats (512,1); +};if _caddd ._edbc ==nil {_caddd ._edbc =_cc .NewStats (512,1);};if _caddd ._adbfe ==nil {_caddd ._adbfe =_cc .NewStats (512,1);};if _caddd ._gbeg ==nil {_caddd ._gbeg =_cc .NewStats (512,1);};if _caddd ._gebe ==nil {_caddd ._gebe =_cc .NewStats (512,1); +};if _caddd ._eadb ==nil {_caddd ._eadb =_cc .NewStats (1<=1{_afdd ,_fdb =_cdf .Bitmap .GetByte (_ggcb );if _fdb !=nil {return _dg .Wrap (_fdb ,_dbea ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_bdgg =int (_afdd );};if _dcb >=2{_afdd ,_fdb =_cdf .Bitmap .GetByte (_ggcb -_cdf .Bitmap .RowStride ); +if _fdb !=nil {return _dg .Wrap (_fdb ,_dbea ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_bag =int (_afdd )<<6;};_bde =(_bdgg &0xf0)|(_bag &0x3800);for _daea :=0;_daea < _bfg ;_daea =_cegc {var (_bdf byte ;_bccb int ;);_cegc =_daea +8;if _cdb :=_bgb -_daea ; +_cdb > 8{_bccb =8;}else {_bccb =_cdb ;};if _dcb > 0{_bdgg <<=8;if _cegc < _bgb {_afdd ,_fdb =_cdf .Bitmap .GetByte (_ggcb +1);if _fdb !=nil {return _dg .Wrap (_fdb ,_dbea ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_bdgg |=int (_afdd );};};if _dcb > 1{_gfc :=_ggcb -_cdf .Bitmap .RowStride +1; +_bag <<=8;if _cegc < _bgb {_afdd ,_fdb =_cdf .Bitmap .GetByte (_gfc );if _fdb !=nil {return _dg .Wrap (_fdb ,_dbea ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_bag |=int (_afdd )<<6;}else {_bag |=0;};};for _cbaa :=0;_cbaa < _bccb ;_cbaa ++{_bcca :=uint (7-_cbaa ); +if _cdf ._aeed {_egg =_cdf .overrideAtTemplate0a (_bde ,_daea +_cbaa ,_dcb ,int (_bdf ),_cbaa ,int (_bcca ));_cdf ._fgce .SetIndex (int32 (_egg ));}else {_cdf ._fgce .SetIndex (int32 (_bde ));};var _egd int ;_egd ,_fdb =_cdf ._fba .DecodeBit (_cdf ._fgce ); +if _fdb !=nil {return _dg .Wrap (_fdb ,_dbea ,"");};_bdf |=byte (_egd )<<_bcca ;_bde =((_bde &0x7bf7)<<1)|_egd |((_bdgg >>_bcca )&0x10)|((_bag >>_bcca )&0x800);};if _bba :=_cdf .Bitmap .SetByte (_bdcec ,_bdf );_bba !=nil {return _dg .Wrap (_bba ,_dbea ,""); +};_bdcec ++;_ggcb ++;};return nil ;};type HalftoneRegion struct{_dade *_c .Reader ;_ccge *Header ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;RegionSegment *RegionSegment ;HDefaultPixel int8 ;CombinationOperator _f .CombinationOperator ; +HSkipEnabled bool ;HTemplate byte ;IsMMREncoded bool ;HGridWidth uint32 ;HGridHeight uint32 ;HGridX int32 ;HGridY int32 ;HRegionX uint16 ;HRegionY uint16 ;HalftoneRegionBitmap *_f .Bitmap ;Patterns []*_f .Bitmap ;};func (_daga *HalftoneRegion )computeSegmentDataStructure ()error {_daga .DataOffset =_daga ._dade .AbsolutePosition (); +_daga .DataHeaderLength =_daga .DataOffset -_daga .DataHeaderOffset ;_daga .DataLength =int64 (_daga ._dade .AbsoluteLength ())-_daga .DataHeaderLength ;return nil ;};func (_eggf *PatternDictionary )readIsMMREncoded ()error {_dcfc ,_ebf :=_eggf ._ebcg .ReadBit (); +if _ebf !=nil {return _ebf ;};if _dcfc !=0{_eggf .IsMMREncoded =true ;};return nil ;};func (_eacc *PatternDictionary )readPatternWidthAndHeight ()error {_abde ,_fcebc :=_eacc ._ebcg .ReadByte ();if _fcebc !=nil {return _fcebc ;};_eacc .HdpWidth =_abde ; +_abde ,_fcebc =_eacc ._ebcg .ReadByte ();if _fcebc !=nil {return _fcebc ;};_eacc .HdpHeight =_abde ;return nil ;};func (_cbee *PatternDictionary )Init (h *Header ,r *_c .Reader )error {_cbee ._ebcg =r ;return _cbee .parseHeader ();};func (_eefbg *SymbolDictionary )setSymbolsArray ()error {if _eefbg ._dfbg ==nil {if _agcc :=_eefbg .retrieveImportSymbols (); +_agcc !=nil {return _agcc ;};};if _eefbg ._ecac ==nil {_eefbg ._ecac =append (_eefbg ._ecac ,_eefbg ._dfbg ...);};return nil ;};func (_aeec *TextRegion )decodeCurrentT ()(int64 ,error ){if _aeec .SbStrips !=1{if _aeec .IsHuffmanEncoded {_febce ,_decf :=_aeec ._bgge .ReadBits (byte (_aeec .LogSBStrips )); +return int64 (_febce ),_decf ;};_aggdf ,_dafa :=_aeec ._cefb .DecodeInt (_aeec ._edbc );if _dafa !=nil {return 0,_dafa ;};return int64 (_aggdf ),nil ;};return 0,nil ;};func (_fabb *PatternDictionary )computeSegmentDataStructure ()error {_fabb .DataOffset =_fabb ._ebcg .AbsolutePosition (); +_fabb .DataHeaderLength =_fabb .DataOffset -_fabb .DataHeaderOffset ;_fabb .DataLength =int64 (_fabb ._ebcg .AbsoluteLength ())-_fabb .DataHeaderLength ;return nil ;};type GenericRefinementRegion struct{_dc templater ;_af templater ;_bf *_c .Reader ;_gg *Header ; +RegionInfo *RegionSegment ;IsTPGROn bool ;TemplateID int8 ;Template templater ;GrAtX []int8 ;GrAtY []int8 ;RegionBitmap *_f .Bitmap ;ReferenceBitmap *_f .Bitmap ;ReferenceDX int32 ;ReferenceDY int32 ;_gaf *_cc .Decoder ;_cd *_cc .DecoderStats ;_eec bool ; +_eecb []bool ;};func (_eegfe *HalftoneRegion )renderPattern (_bbgf [][]int )(_acdb error ){var _dbb ,_agc int ;for _gce :=0;_gce < int (_eegfe .HGridHeight );_gce ++{for _bdef :=0;_bdef < int (_eegfe .HGridWidth );_bdef ++{_dbb =_eegfe .computeX (_gce ,_bdef ); +_agc =_eegfe .computeY (_gce ,_bdef );_febd :=_eegfe .Patterns [_bbgf [_gce ][_bdef ]];if _acdb =_f .Blit (_febd ,_eegfe .HalftoneRegionBitmap ,_dbb +int (_eegfe .HGridX ),_agc +int (_eegfe .HGridY ),_eegfe .CombinationOperator );_acdb !=nil {return _acdb ; +};};};return nil ;};func (_gcea *PageInformationSegment )readDefaultPixelValue ()error {_abcb ,_fccf :=_gcea ._eade .ReadBit ();if _fccf !=nil {return _fccf ;};_gcea .DefaultPixelValue =uint8 (_abcb &0xf);return nil ;};func NewHeader (d Documenter ,r *_c .Reader ,offset int64 ,organizationType OrganizationType )(*Header ,error ){_aedgg :=&Header {Reader :r }; +if _fagcg :=_aedgg .parse (d ,r ,offset ,organizationType );_fagcg !=nil {return nil ,_dg .Wrap (_fagcg ,"\u004ee\u0077\u0048\u0065\u0061\u0064\u0065r","");};return _aedgg ,nil ;};func (_ddbc *GenericRegion )setParameters (_dcef bool ,_dfgc ,_fgca int64 ,_dfef ,_ggac uint32 ){_ddbc .IsMMREncoded =_dcef ; +_ddbc .DataOffset =_dfgc ;_ddbc .DataLength =_fgca ;_ddbc .RegionSegment .BitmapHeight =_dfef ;_ddbc .RegionSegment .BitmapWidth =_ggac ;_ddbc ._gag =nil ;_ddbc .Bitmap =nil ;};func (_dbfda *SymbolDictionary )decodeAggregate (_bfgf ,_aeea uint32 )error {var (_cbeb int64 ; +_agfaf error ;);if _dbfda .IsHuffmanEncoded {_cbeb ,_agfaf =_dbfda .huffDecodeRefAggNInst ();if _agfaf !=nil {return _agfaf ;};}else {_cbbc ,_dadc :=_dbfda ._ded .DecodeInt (_dbfda ._dbdb );if _dadc !=nil {return _dadc ;};_cbeb =int64 (_cbbc );};if _cbeb > 1{return _dbfda .decodeThroughTextRegion (_bfgf ,_aeea ,uint32 (_cbeb )); +}else if _cbeb ==1{return _dbfda .decodeRefinedSymbol (_bfgf ,_aeea );};return nil ;};func (_edfb *HalftoneRegion )combineGrayscalePlanes (_aebf []*_f .Bitmap ,_ebccc int )error {_bbf :=0;for _geded :=0;_geded < _aebf [_ebccc ].Height ;_geded ++{for _ecffe :=0; +_ecffe < _aebf [_ebccc ].Width ;_ecffe +=8{_fdaa ,_gab :=_aebf [_ebccc +1].GetByte (_bbf );if _gab !=nil {return _gab ;};_aedc ,_gab :=_aebf [_ebccc ].GetByte (_bbf );if _gab !=nil {return _gab ;};_gab =_aebf [_ebccc ].SetByte (_bbf ,_f .CombineBytes (_aedc ,_fdaa ,_f .CmbOpXor )); +if _gab !=nil {return _gab ;};_bbf ++;};};return nil ;};func (_cdcbf *HalftoneRegion )parseHeader ()error {if _ebd :=_cdcbf .RegionSegment .parseHeader ();_ebd !=nil {return _ebd ;};_dbgfd ,_bbae :=_cdcbf ._dade .ReadBit ();if _bbae !=nil {return _bbae ; +};_cdcbf .HDefaultPixel =int8 (_dbgfd );_dfec ,_bbae :=_cdcbf ._dade .ReadBits (3);if _bbae !=nil {return _bbae ;};_cdcbf .CombinationOperator =_f .CombinationOperator (_dfec &0xf);_dbgfd ,_bbae =_cdcbf ._dade .ReadBit ();if _bbae !=nil {return _bbae ; +};if _dbgfd ==1{_cdcbf .HSkipEnabled =true ;};_dfec ,_bbae =_cdcbf ._dade .ReadBits (2);if _bbae !=nil {return _bbae ;};_cdcbf .HTemplate =byte (_dfec &0xf);_dbgfd ,_bbae =_cdcbf ._dade .ReadBit ();if _bbae !=nil {return _bbae ;};if _dbgfd ==1{_cdcbf .IsMMREncoded =true ; +};_dfec ,_bbae =_cdcbf ._dade .ReadBits (32);if _bbae !=nil {return _bbae ;};_cdcbf .HGridWidth =uint32 (_dfec &_a .MaxUint32 );_dfec ,_bbae =_cdcbf ._dade .ReadBits (32);if _bbae !=nil {return _bbae ;};_cdcbf .HGridHeight =uint32 (_dfec &_a .MaxUint32 ); +_dfec ,_bbae =_cdcbf ._dade .ReadBits (32);if _bbae !=nil {return _bbae ;};_cdcbf .HGridX =int32 (_dfec &_a .MaxInt32 );_dfec ,_bbae =_cdcbf ._dade .ReadBits (32);if _bbae !=nil {return _bbae ;};_cdcbf .HGridY =int32 (_dfec &_a .MaxInt32 );_dfec ,_bbae =_cdcbf ._dade .ReadBits (16); +if _bbae !=nil {return _bbae ;};_cdcbf .HRegionX =uint16 (_dfec &_a .MaxUint16 );_dfec ,_bbae =_cdcbf ._dade .ReadBits (16);if _bbae !=nil {return _bbae ;};_cdcbf .HRegionY =uint16 (_dfec &_a .MaxUint16 );if _bbae =_cdcbf .computeSegmentDataStructure (); +_bbae !=nil {return _bbae ;};return _cdcbf .checkInput ();};func (_dfc *Header )CleanSegmentData (){if _dfc .SegmentData !=nil {_dfc .SegmentData =nil ;};};func (_bea *HalftoneRegion )Init (hd *Header ,r *_c .Reader )error {_bea ._dade =r ;_bea ._ccge =hd ; +_bea .RegionSegment =NewRegionSegment (r );return _bea .parseHeader ();};func (_dfe *template0 )setIndex (_feda *_cc .DecoderStats ){_feda .SetIndex (0x100)};func (_bgad *PageInformationSegment )encodeStripingInformation (_aabe _c .BinaryWriter )(_gagb int ,_cfgg error ){const _gbcb ="\u0065n\u0063\u006f\u0064\u0065S\u0074\u0072\u0069\u0070\u0069n\u0067I\u006ef\u006f\u0072\u006d\u0061\u0074\u0069\u006fn"; +if !_bgad .IsStripe {if _gagb ,_cfgg =_aabe .Write ([]byte {0x00,0x00});_cfgg !=nil {return 0,_dg .Wrap (_cfgg ,_gbcb ,"n\u006f\u0020\u0073\u0074\u0072\u0069\u0070\u0069\u006e\u0067");};return _gagb ,nil ;};_afe :=make ([]byte ,2);_b .BigEndian .PutUint16 (_afe ,_bgad .MaxStripeSize |1<<15); +if _gagb ,_cfgg =_aabe .Write (_afe );_cfgg !=nil {return 0,_dg .Wrapf (_cfgg ,_gbcb ,"\u0073\u0074\u0072i\u0070\u0069\u006e\u0067\u003a\u0020\u0025\u0064",_bgad .MaxStripeSize );};return _gagb ,nil ;};func (_fgeed *TableSegment )HtOOB ()int32 {return _fgeed ._egcdd }; +func (_bada *GenericRefinementRegion )String ()string {_beda :=&_ab .Builder {};_beda .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");_beda .WriteString (_bada .RegionInfo .String ()+"\u000a");_beda .WriteString (_gb .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0052\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_bada .IsTPGROn )); +_beda .WriteString (_gb .Sprintf ("\u0009-\u0020T\u0065\u006d\u0070\u006c\u0061t\u0065\u0049D\u003a\u0020\u0025\u0076\u000a",_bada .TemplateID ));_beda .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_bada .GrAtX )); +_beda .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_bada .GrAtY ));_beda .WriteString (_gb .Sprintf ("\u0009-\u0020R\u0065\u0066\u0065\u0072\u0065n\u0063\u0065D\u0058\u0020\u0025\u0076\u000a",_bada .ReferenceDX )); +_beda .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0052ef\u0065\u0072\u0065\u006e\u0063\u0044\u0065\u0059\u003a\u0020\u0025\u0076\u000a",_bada .ReferenceDY ));return _beda .String ();};func (_cfdb *PageInformationSegment )readMaxStripeSize ()error {_cded ,_agcg :=_cfdb ._eade .ReadBits (15); +if _agcg !=nil {return _agcg ;};_cfdb .MaxStripeSize =uint16 (_cded &_a .MaxUint16 );return nil ;};var _ SegmentEncoder =&RegionSegment {};func (_ceeca *TextRegion )createRegionBitmap ()error {_ceeca .RegionBitmap =_f .New (int (_ceeca .RegionInfo .BitmapWidth ),int (_ceeca .RegionInfo .BitmapHeight )); +if _ceeca .DefaultPixel !=0{_ceeca .RegionBitmap .SetDefaultPixel ();};return nil ;};func _bcbf (_cgc *_c .Reader ,_bcfd *Header )*GenericRefinementRegion {return &GenericRefinementRegion {_bf :_cgc ,RegionInfo :NewRegionSegment (_cgc ),_gg :_bcfd ,_dc :&template0 {},_af :&template1 {}}; +};func (_geb *Header )writeReferredToSegments (_abf _c .BinaryWriter )(_facd int ,_ggd error ){const _bgdg ="\u0077\u0072\u0069te\u0052\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073";var (_facg uint16 ; +_fbcc uint32 ;);_afa :=_geb .referenceSize ();_adg :=1;_fede :=make ([]byte ,_afa );for _ ,_dfab :=range _geb .RTSNumbers {switch _afa {case 4:_fbcc =uint32 (_dfab );_b .BigEndian .PutUint32 (_fede ,_fbcc );_adg ,_ggd =_abf .Write (_fede );if _ggd !=nil {return 0,_dg .Wrap (_ggd ,_bgdg ,"u\u0069\u006e\u0074\u0033\u0032\u0020\u0073\u0069\u007a\u0065"); +};case 2:_facg =uint16 (_dfab );_b .BigEndian .PutUint16 (_fede ,_facg );_adg ,_ggd =_abf .Write (_fede );if _ggd !=nil {return 0,_dg .Wrap (_ggd ,_bgdg ,"\u0075\u0069\u006e\u0074\u0031\u0036");};default:if _ggd =_abf .WriteByte (byte (_dfab ));_ggd !=nil {return 0,_dg .Wrap (_ggd ,_bgdg ,"\u0075\u0069\u006et\u0038"); +};};_facd +=_adg ;};return _facd ,nil ;};type Documenter interface{GetPage (int )(Pager ,error );GetGlobalSegment (int )(*Header ,error );};func (_ffbd *GenericRegion )setParametersWithAt (_ggbc bool ,_eecbb byte ,_agfa ,_aaag bool ,_eba ,_cddg []int8 ,_dcfd ,_dbfd uint32 ,_bcff *_cc .DecoderStats ,_dfadd *_cc .Decoder ){_ffbd .IsMMREncoded =_ggbc ; +_ffbd .GBTemplate =_eecbb ;_ffbd .IsTPGDon =_agfa ;_ffbd .GBAtX =_eba ;_ffbd .GBAtY =_cddg ;_ffbd .RegionSegment .BitmapHeight =_dbfd ;_ffbd .RegionSegment .BitmapWidth =_dcfd ;_ffbd ._gag =nil ;_ffbd .Bitmap =nil ;if _bcff !=nil {_ffbd ._fgce =_bcff ; +};if _dfadd !=nil {_ffbd ._fba =_dfadd ;};_age .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",_ffbd ); +};func (_dgg *template1 )form (_febf ,_cab ,_fagc ,_daf ,_agbc int16 )int16 {return ((_febf &0x02)<<8)|(_cab <<6)|((_fagc &0x03)<<4)|(_daf <<1)|_agbc ;};func (_acebc *TextRegion )setParameters (_ggcc *_cc .Decoder ,_agbcb ,_aagaa bool ,_agae ,_cbdgf uint32 ,_aedad uint32 ,_fgda int8 ,_edad uint32 ,_gbcab int8 ,_egcce _f .CombinationOperator ,_ggab int8 ,_eege int16 ,_feeag ,_bbge ,_bcge ,_bbdg ,_add ,_gbeb ,_bdcfe ,_edge ,_ddcg ,_cfbd int8 ,_defd ,_aaaff []int8 ,_dbafg []*_f .Bitmap ,_addc int8 ){_acebc ._cefb =_ggcc ; +_acebc .IsHuffmanEncoded =_agbcb ;_acebc .UseRefinement =_aagaa ;_acebc .RegionInfo .BitmapWidth =_agae ;_acebc .RegionInfo .BitmapHeight =_cbdgf ;_acebc .NumberOfSymbolInstances =_aedad ;_acebc .SbStrips =_fgda ;_acebc .NumberOfSymbols =_edad ;_acebc .DefaultPixel =_gbcab ; +_acebc .CombinationOperator =_egcce ;_acebc .IsTransposed =_ggab ;_acebc .ReferenceCorner =_eege ;_acebc .SbDsOffset =_feeag ;_acebc .SbHuffFS =_bbge ;_acebc .SbHuffDS =_bcge ;_acebc .SbHuffDT =_bbdg ;_acebc .SbHuffRDWidth =_add ;_acebc .SbHuffRDHeight =_gbeb ; +_acebc .SbHuffRSize =_ddcg ;_acebc .SbHuffRDX =_bdcfe ;_acebc .SbHuffRDY =_edge ;_acebc .SbrTemplate =_cfbd ;_acebc .SbrATX =_defd ;_acebc .SbrATY =_aaaff ;_acebc .Symbols =_dbafg ;_acebc ._aeaca =_addc ;};func (_edce *TableSegment )HtPS ()int32 {return _edce ._beea }; +func (_gbgb *RegionSegment )Size ()int {return 17};func (_bfgg *GenericRegion )decodeTemplate1 (_agbg ,_edda ,_aba int ,_ebc ,_dbeg int )(_eceg error ){const _bedd ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0031";var (_ege ,_eed int ; +_bce ,_cdeg int ;_dee byte ;_cfa ,_ebcc int ;);if _agbg >=1{_dee ,_eceg =_bfgg .Bitmap .GetByte (_dbeg );if _eceg !=nil {return _dg .Wrap (_eceg ,_bedd ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_bce =int (_dee );};if _agbg >=2{_dee ,_eceg =_bfgg .Bitmap .GetByte (_dbeg -_bfgg .Bitmap .RowStride ); +if _eceg !=nil {return _dg .Wrap (_eceg ,_bedd ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_cdeg =int (_dee )<<5;};_ege =((_bce >>1)&0x1f8)|((_cdeg >>1)&0x1e00);for _bae :=0;_bae < _aba ;_bae =_cfa {var (_dac byte ;_gda int ;);_cfa =_bae +8;if _gagf :=_edda -_bae ; +_gagf > 8{_gda =8;}else {_gda =_gagf ;};if _agbg > 0{_bce <<=8;if _cfa < _edda {_dee ,_eceg =_bfgg .Bitmap .GetByte (_dbeg +1);if _eceg !=nil {return _dg .Wrap (_eceg ,_bedd ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_bce |=int (_dee );};}; +if _agbg > 1{_cdeg <<=8;if _cfa < _edda {_dee ,_eceg =_bfgg .Bitmap .GetByte (_dbeg -_bfgg .Bitmap .RowStride +1);if _eceg !=nil {return _dg .Wrap (_eceg ,_bedd ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_cdeg |=int (_dee )<<5;};};for _aaga :=0; +_aaga < _gda ;_aaga ++{if _bfgg ._aeed {_eed =_bfgg .overrideAtTemplate1 (_ege ,_bae +_aaga ,_agbg ,int (_dac ),_aaga );_bfgg ._fgce .SetIndex (int32 (_eed ));}else {_bfgg ._fgce .SetIndex (int32 (_ege ));};_ebcc ,_eceg =_bfgg ._fba .DecodeBit (_bfgg ._fgce ); +if _eceg !=nil {return _dg .Wrap (_eceg ,_bedd ,"");};_dac |=byte (_ebcc )<>_fdc )&0x8)|((_cdeg >>_fdc )&0x200);};if _edc :=_bfgg .Bitmap .SetByte (_ebc ,_dac );_edc !=nil {return _dg .Wrap (_edc ,_bedd ,""); +};_ebc ++;_dbeg ++;};return nil ;};func (_cbea *SymbolDictionary )decodeHeightClassDeltaHeightWithHuffman ()(int64 ,error ){switch _cbea .SdHuffDecodeHeightSelection {case 0:_afga ,_bfbbg :=_ece .GetStandardTable (4);if _bfbbg !=nil {return 0,_bfbbg ;}; +return _afga .Decode (_cbea ._dabd );case 1:_gcg ,_dcce :=_ece .GetStandardTable (5);if _dcce !=nil {return 0,_dcce ;};return _gcg .Decode (_cbea ._dabd );case 3:if _cbea ._gdgd ==nil {_bbaae ,_aadb :=_ece .GetStandardTable (0);if _aadb !=nil {return 0,_aadb ; +};_cbea ._gdgd =_bbaae ;};return _cbea ._gdgd .Decode (_cbea ._dabd );};return 0,nil ;};func (_caga *TextRegion )decodeRdw ()(int64 ,error ){const _caf ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064w";if _caga .IsHuffmanEncoded {if _caga .SbHuffRDWidth ==3{if _caga ._cabg ==nil {var (_feeaa int ; +_daddc error ;);if _caga .SbHuffFS ==3{_feeaa ++;};if _caga .SbHuffDS ==3{_feeaa ++;};if _caga .SbHuffDT ==3{_feeaa ++;};_caga ._cabg ,_daddc =_caga .getUserTable (_feeaa );if _daddc !=nil {return 0,_dg .Wrap (_daddc ,_caf ,"");};};return _caga ._cabg .Decode (_caga ._bgge ); +};_ffee ,_abdd :=_ece .GetStandardTable (14+int (_caga .SbHuffRDWidth ));if _abdd !=nil {return 0,_dg .Wrap (_abdd ,_caf ,"");};return _ffee .Decode (_caga ._bgge );};_aebg ,_cgdd :=_caga ._cefb .DecodeInt (_caga ._gbeg );if _cgdd !=nil {return 0,_dg .Wrap (_cgdd ,_caf ,""); +};return int64 (_aebg ),nil ;};func (_ccgac *RegionSegment )String ()string {_ffdb :=&_ab .Builder {};_ffdb .WriteString ("\u0009[\u0052E\u0047\u0049\u004f\u004e\u0020S\u0045\u0047M\u0045\u004e\u0054\u005d\u000a");_ffdb .WriteString (_gb .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",_ccgac .BitmapWidth ,_ccgac .BitmapHeight )); +_ffdb .WriteString (_gb .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",_ccgac .XLocation ,_ccgac .YLocation ));_ffdb .WriteString (_gb .Sprintf ("\t\u0009\u002d\u0020\u0043\u006f\u006db\u0069\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070e\u0072\u0061\u0074o\u0072:\u0020\u0025\u0073",_ccgac .CombinaionOperator )); +return _ffdb .String ();};func (_afgf *SymbolDictionary )decodeRefinedSymbol (_aaaag ,_adce uint32 )error {var (_cbff int ;_cgad ,_afff int32 ;);if _afgf .IsHuffmanEncoded {_dcdb ,_aged :=_afgf ._dabd .ReadBits (byte (_afgf ._gdfg ));if _aged !=nil {return _aged ; +};_cbff =int (_dcdb );_fdbd ,_aged :=_ece .GetStandardTable (15);if _aged !=nil {return _aged ;};_cdgc ,_aged :=_fdbd .Decode (_afgf ._dabd );if _aged !=nil {return _aged ;};_cgad =int32 (_cdgc );_cdgc ,_aged =_fdbd .Decode (_afgf ._dabd );if _aged !=nil {return _aged ; +};_afff =int32 (_cdgc );_fdbd ,_aged =_ece .GetStandardTable (1);if _aged !=nil {return _aged ;};if _ ,_aged =_fdbd .Decode (_afgf ._dabd );_aged !=nil {return _aged ;};_afgf ._dabd .Align ();}else {_affb ,_bcdb :=_afgf ._ded .DecodeIAID (uint64 (_afgf ._gdfg ),_afgf ._fbac ); +if _bcdb !=nil {return _bcdb ;};_cbff =int (_affb );_cgad ,_bcdb =_afgf ._ded .DecodeInt (_afgf ._gffd );if _bcdb !=nil {return _bcdb ;};_afff ,_bcdb =_afgf ._ded .DecodeInt (_afgf ._fdff );if _bcdb !=nil {return _bcdb ;};};if _bdbe :=_afgf .setSymbolsArray (); +_bdbe !=nil {return _bdbe ;};_gae :=_afgf ._ecac [_cbff ];if _afcc :=_afgf .decodeNewSymbols (_aaaag ,_adce ,_gae ,_cgad ,_afff );_afcc !=nil {return _afcc ;};if _afgf .IsHuffmanEncoded {_afgf ._dabd .Align ();};return nil ;};func (_bafg *SymbolDictionary )encodeFlags (_aabc _c .BinaryWriter )(_cabd int ,_eacd error ){const _gbfa ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073"; +if _eacd =_aabc .SkipBits (3);_eacd !=nil {return 0,_dg .Wrap (_eacd ,_gbfa ,"\u0065\u006d\u0070\u0074\u0079\u0020\u0062\u0069\u0074\u0073");};var _dcgf int ;if _bafg .SdrTemplate > 0{_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"s\u0064\u0072\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065"); +};_dcgf =0;if _bafg .SdTemplate > 1{_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_dcgf =0;if _bafg .SdTemplate ==1||_bafg .SdTemplate ==3{_dcgf =1; +};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_dcgf =0;if _bafg ._eegc {_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0063\u006f\u0064in\u0067\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0065\u0064"); +};_dcgf =0;if _bafg ._eaf {_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0063\u006f\u0064\u0069ng\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0075\u0073\u0065\u0064");};_dcgf =0;if _bafg .SdHuffAggInstanceSelection {_dcgf =1; +};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0048\u0075\u0066\u0066\u0041\u0067\u0067\u0049\u006e\u0073\u0074");};_dcgf =int (_bafg .SdHuffBMSizeSelection );if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0048u\u0066\u0066\u0042\u006d\u0053\u0069\u007a\u0065"); +};_dcgf =0;if _bafg .SdHuffDecodeWidthSelection > 1{_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"s\u0064\u0048\u0075\u0066\u0066\u0057\u0069\u0064\u0074\u0068");};_dcgf =0;switch _bafg .SdHuffDecodeWidthSelection {case 1,3:_dcgf =1; +};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"s\u0064\u0048\u0075\u0066\u0066\u0057\u0069\u0064\u0074\u0068");};_dcgf =0;if _bafg .SdHuffDecodeHeightSelection > 1{_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf ); +_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0048u\u0066\u0066\u0048\u0065\u0069\u0067\u0068\u0074");};_dcgf =0;switch _bafg .SdHuffDecodeHeightSelection {case 1,3:_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0048u\u0066\u0066\u0048\u0065\u0069\u0067\u0068\u0074"); +};_dcgf =0;if _bafg .UseRefinementAggregation {_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0052\u0065\u0066\u0041\u0067\u0067");};_dcgf =0;if _bafg .IsHuffmanEncoded {_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf ); +_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0048\u0075\u0066\u0066");};return 2,nil ;};func (_affe *PageInformationSegment )Init (h *Header ,r *_c .Reader )(_gggb error ){_affe ._eade =r ;if _gggb =_affe .parseHeader ();_gggb !=nil {return _dg .Wrap (_gggb ,"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 (_bbcf *Header )readSegmentNumber (_cdea *_c .Reader )error {const _cbb ="\u0072\u0065\u0061\u0064\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u004eu\u006d\u0062\u0065\u0072";_cbe :=make ([]byte ,4);_ ,_eegfa :=_cdea .Read (_cbe );if _eegfa !=nil {return _dg .Wrap (_eegfa ,_cbb ,""); +};_bbcf .SegmentNumber =_b .BigEndian .Uint32 (_cbe );return nil ;};func (_ffga *GenericRegion )overrideAtTemplate0a (_bade ,_bdcb ,_ccf ,_gdgc ,_eeaf ,_gfgb int )int {if _ffga .GBAtOverride [0]{_bade &=0xFFEF;if _ffga .GBAtY [0]==0&&_ffga .GBAtX [0]>=-int8 (_eeaf ){_bade |=(_gdgc >>uint (int8 (_gfgb )-_ffga .GBAtX [0]&0x1))<<4; +}else {_bade |=int (_ffga .getPixel (_bdcb +int (_ffga .GBAtX [0]),_ccf +int (_ffga .GBAtY [0])))<<4;};};if _ffga .GBAtOverride [1]{_bade &=0xFBFF;if _ffga .GBAtY [1]==0&&_ffga .GBAtX [1]>=-int8 (_eeaf ){_bade |=(_gdgc >>uint (int8 (_gfgb )-_ffga .GBAtX [1]&0x1))<<10; +}else {_bade |=int (_ffga .getPixel (_bdcb +int (_ffga .GBAtX [1]),_ccf +int (_ffga .GBAtY [1])))<<10;};};if _ffga .GBAtOverride [2]{_bade &=0xF7FF;if _ffga .GBAtY [2]==0&&_ffga .GBAtX [2]>=-int8 (_eeaf ){_bade |=(_gdgc >>uint (int8 (_gfgb )-_ffga .GBAtX [2]&0x1))<<11; +}else {_bade |=int (_ffga .getPixel (_bdcb +int (_ffga .GBAtX [2]),_ccf +int (_ffga .GBAtY [2])))<<11;};};if _ffga .GBAtOverride [3]{_bade &=0x7FFF;if _ffga .GBAtY [3]==0&&_ffga .GBAtX [3]>=-int8 (_eeaf ){_bade |=(_gdgc >>uint (int8 (_gfgb )-_ffga .GBAtX [3]&0x1))<<15; +}else {_bade |=int (_ffga .getPixel (_bdcb +int (_ffga .GBAtX [3]),_ccf +int (_ffga .GBAtY [3])))<<15;};};return _bade ;};func (_gdf *GenericRegion )String ()string {_bcd :=&_ab .Builder {};_bcd .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a"); +_bcd .WriteString (_gdf .RegionSegment .String ()+"\u000a");_bcd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020Us\u0065\u0045\u0078\u0074\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0073\u003a\u0020\u0025\u0076\u000a",_gdf .UseExtTemplates ));_bcd .WriteString (_gb .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0044\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_gdf .IsTPGDon )); +_bcd .WriteString (_gb .Sprintf ("\u0009-\u0020G\u0042\u0054\u0065\u006d\u0070l\u0061\u0074e\u003a\u0020\u0025\u0064\u000a",_gdf .GBTemplate ));_bcd .WriteString (_gb .Sprintf ("\t\u002d \u0049\u0073\u004d\u004d\u0052\u0045\u006e\u0063o\u0064\u0065\u0064\u003a %\u0076\u000a",_gdf .IsMMREncoded )); +_bcd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_gdf .GBAtX ));_bcd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_gdf .GBAtY )); +_bcd .WriteString (_gb .Sprintf ("\t\u002d \u0047\u0042\u0041\u0074\u004f\u0076\u0065\u0072r\u0069\u0064\u0065\u003a %\u0076\u000a",_gdf .GBAtOverride ));return _bcd .String ();};type EncodeInitializer interface{InitEncode ();};func (_defg *Header )readHeaderFlags ()error {const _bgae ="\u0072e\u0061d\u0048\u0065\u0061\u0064\u0065\u0072\u0046\u006c\u0061\u0067\u0073"; +_fffe ,_bbce :=_defg .Reader .ReadBit ();if _bbce !=nil {return _dg .Wrap (_bbce ,_bgae ,"r\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067");};if _fffe !=0{_defg .RetainFlag =true ;};_fffe ,_bbce =_defg .Reader .ReadBit ();if _bbce !=nil {return _dg .Wrap (_bbce ,_bgae ,"\u0070\u0061g\u0065\u0020\u0061s\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e"); +};if _fffe !=0{_defg .PageAssociationFieldSize =true ;};_cegad ,_bbce :=_defg .Reader .ReadBits (6);if _bbce !=nil {return _dg .Wrap (_bbce ,_bgae ,"\u0073\u0065\u0067m\u0065\u006e\u0074\u0020\u0074\u0079\u0070\u0065");};_defg .Type =Type (int (_cegad )); +return nil ;};var _ templater =&template0 {};type Regioner interface{GetRegionBitmap ()(*_f .Bitmap ,error );GetRegionInfo ()*RegionSegment ;};func (_cagf *Header )writeSegmentPageAssociation (_fagd _c .BinaryWriter )(_dfeg int ,_gbca error ){const _dbcc ="w\u0072\u0069\u0074\u0065\u0053\u0065g\u006d\u0065\u006e\u0074\u0050\u0061\u0067\u0065\u0041s\u0073\u006f\u0063i\u0061t\u0069\u006f\u006e"; +if _cagf .pageSize ()!=4{if _gbca =_fagd .WriteByte (byte (_cagf .PageAssociation ));_gbca !=nil {return 0,_dg .Wrap (_gbca ,_dbcc ,"\u0070\u0061\u0067\u0065\u0053\u0069\u007a\u0065\u0020\u0021\u003d\u0020\u0034");};return 1,nil ;};_gddf :=make ([]byte ,4); +_b .BigEndian .PutUint32 (_gddf ,uint32 (_cagf .PageAssociation ));if _dfeg ,_gbca =_fagd .Write (_gddf );_gbca !=nil {return 0,_dg .Wrap (_gbca ,_dbcc ,"\u0034 \u0062y\u0074\u0065\u0020\u0070\u0061g\u0065\u0020n\u0075\u006d\u0062\u0065\u0072");};return _dfeg ,nil ; +};func (_ceb *SymbolDictionary )decodeHeightClassBitmap (_cbde *_f .Bitmap ,_aegb int64 ,_efb int ,_bcad []int )error {for _fefg :=_aegb ;_fefg < int64 (_ceb ._cec );_fefg ++{var _aeaf int ;for _cbeg :=_aegb ;_cbeg <=_fefg -1;_cbeg ++{_aeaf +=_bcad [_cbeg ]; +};_cfdg :=_g .Rect (_aeaf ,0,_aeaf +_bcad [_fefg ],_efb );_afgc ,_fdad :=_f .Extract (_cfdg ,_cbde );if _fdad !=nil {return _fdad ;};_ceb ._ddae [_fefg ]=_afgc ;_ceb ._ecac =append (_ceb ._ecac ,_afgc );};return nil ;};func (_fac *GenericRefinementRegion )getPixel (_daed *_f .Bitmap ,_cde ,_efg int )int {if _cde < 0||_cde >=_daed .Width {return 0; +};if _efg < 0||_efg >=_daed .Height {return 0;};if _daed .GetPixel (_cde ,_efg ){return 1;};return 0;};func (_ebe *TextRegion )readUseRefinement ()error {if !_ebe .UseRefinement ||_ebe .SbrTemplate !=0{return nil ;};var (_acgb byte ;_bggf error ;);_ebe .SbrATX =make ([]int8 ,2); +_ebe .SbrATY =make ([]int8 ,2);_acgb ,_bggf =_ebe ._bgge .ReadByte ();if _bggf !=nil {return _bggf ;};_ebe .SbrATX [0]=int8 (_acgb );_acgb ,_bggf =_ebe ._bgge .ReadByte ();if _bggf !=nil {return _bggf ;};_ebe .SbrATY [0]=int8 (_acgb );_acgb ,_bggf =_ebe ._bgge .ReadByte (); +if _bggf !=nil {return _bggf ;};_ebe .SbrATX [1]=int8 (_acgb );_acgb ,_bggf =_ebe ._bgge .ReadByte ();if _bggf !=nil {return _bggf ;};_ebe .SbrATY [1]=int8 (_acgb );return nil ;};func (_fcce *Header )readReferredToSegmentNumbers (_dacg *_c .Reader ,_ecggg int )([]int ,error ){const _fbc ="\u0072\u0065\u0061\u0064R\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053e\u0067m\u0065\u006e\u0074\u004e\u0075\u006d\u0062e\u0072\u0073"; +_ccadb :=make ([]int ,_ecggg );if _ecggg > 0{_fcce .RTSegments =make ([]*Header ,_ecggg );var (_abea uint64 ;_bdcd error ;);for _bgag :=0;_bgag < _ecggg ;_bgag ++{_abea ,_bdcd =_dacg .ReadBits (byte (_fcce .referenceSize ())<<3);if _bdcd !=nil {return nil ,_dg .Wrapf (_bdcd ,_fbc ,"\u0027\u0025\u0064\u0027 \u0072\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0020\u0073e\u0067m\u0065\u006e\u0074\u0020\u006e\u0075\u006db\u0065\u0072",_bgag ); +};_ccadb [_bgag ]=int (_abea &_a .MaxInt32 );};};return _ccadb ,nil ;};func (_bbda *Header )readDataStartOffset (_cdce *_c .Reader ,_acdc OrganizationType ){if _acdc ==OSequential {_bbda .SegmentDataStartOffset =uint64 (_cdce .AbsolutePosition ());};}; +func (_afbb *SymbolDictionary )readNumberOfNewSymbols ()error {_ecaa ,_fbdc :=_afbb ._dabd .ReadBits (32);if _fbdc !=nil {return _fbdc ;};_afbb .NumberOfNewSymbols =uint32 (_ecaa &_a .MaxUint32 );return nil ;};type TextRegion struct{_bgge *_c .Reader ; +RegionInfo *RegionSegment ;SbrTemplate int8 ;SbDsOffset int8 ;DefaultPixel int8 ;CombinationOperator _f .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 ;_defb int64 ;SbStrips int8 ;NumberOfSymbols uint32 ;RegionBitmap *_f .Bitmap ;Symbols []*_f .Bitmap ; +_cefb *_cc .Decoder ;_gagbe *GenericRefinementRegion ;_fecfa *_cc .DecoderStats ;_dfca *_cc .DecoderStats ;_cgbe *_cc .DecoderStats ;_edbc *_cc .DecoderStats ;_adbfe *_cc .DecoderStats ;_gbeg *_cc .DecoderStats ;_gebe *_cc .DecoderStats ;_eadb *_cc .DecoderStats ; +_aaba *_cc .DecoderStats ;_gaad *_cc .DecoderStats ;_bdfb *_cc .DecoderStats ;_aeaca int8 ;_bgcg *_ece .FixedSizeTable ;Header *Header ;_fdabc _ece .Tabler ;_cbge _ece .Tabler ;_bddg _ece .Tabler ;_cabg _ece .Tabler ;_bceb _ece .Tabler ;_acgf _ece .Tabler ; +_fdcag _ece .Tabler ;_dccdc _ece .Tabler ;_eafd ,_fgf map[int ]int ;_ebab []int ;_efcg *_f .Points ;_afcg *_f .Bitmaps ;_eebf *_ag .IntSlice ;_efae ,_abccf int ;_dddb *_f .Boxes ;};func (_gcce *SymbolDictionary )getToExportFlags ()([]int ,error ){var (_bfc int ; +_abce int32 ;_gcef error ;_ggcd =int32 (_gcce ._acg +_gcce .NumberOfNewSymbols );_agge =make ([]int ,_ggcd ););for _bbfd :=int32 (0);_bbfd < _ggcd ;_bbfd +=_abce {if _gcce .IsHuffmanEncoded {_cgeee ,_eacdc :=_ece .GetStandardTable (1);if _eacdc !=nil {return nil ,_eacdc ; +};_ecfff ,_eacdc :=_cgeee .Decode (_gcce ._dabd );if _eacdc !=nil {return nil ,_eacdc ;};_abce =int32 (_ecfff );}else {_abce ,_gcef =_gcce ._ded .DecodeInt (_gcce ._ggec );if _gcef !=nil {return nil ,_gcef ;};};if _abce !=0{if _bbfd +_abce > _ggcd {return nil ,_dg .Error ("\u0053\u0079\u006d\u0062\u006f\u006cD\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0067\u0065\u0074T\u006f\u0045\u0078\u0070\u006f\u0072\u0074F\u006c\u0061\u0067\u0073","\u006d\u0061\u006c\u0066\u006f\u0072m\u0065\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0064\u0061\u0074\u0061\u0020\u0070\u0072\u006f\u0076\u0069\u0064e\u0064\u002e\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u006f\u0075\u0074\u0020\u006ff\u0020r\u0061\u006e\u0067\u0065"); +};for _cdda :=_bbfd ;_cdda < _bbfd +_abce ;_cdda ++{_agge [_cdda ]=_bfc ;};};if _bfc ==0{_bfc =1;}else {_bfc =0;};};return _agge ,nil ;};func (_dfeb *SymbolDictionary )encodeSymbols (_gcba _c .BinaryWriter )(_decd int ,_dffa error ){const _gfdd ="\u0065\u006e\u0063o\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c"; +_ffab :=_bdc .New ();_ffab .Init ();_ceda ,_dffa :=_dfeb ._gabd .SelectByIndexes (_dfeb ._cacb );if _dffa !=nil {return 0,_dg .Wrap (_dffa ,_gfdd ,"\u0069n\u0069\u0074\u0069\u0061\u006c");};_dffcg :=map[*_f .Bitmap ]int {};for _ebfg ,_ffbge :=range _ceda .Values {_dffcg [_ffbge ]=_ebfg ; +};_ceda .SortByHeight ();var _ebcf ,_ceggc int ;_ddage ,_dffa :=_ceda .GroupByHeight ();if _dffa !=nil {return 0,_dg .Wrap (_dffa ,_gfdd ,"");};for _ ,_ffac :=range _ddage .Values {_cecf :=_ffac .Values [0].Height ;_ffde :=_cecf -_ebcf ;if _dffa =_ffab .EncodeInteger (_bdc .IADH ,_ffde ); +_dffa !=nil {return 0,_dg .Wrapf (_dffa ,_gfdd ,"\u0049\u0041\u0044\u0048\u0020\u0066\u006f\u0072\u0020\u0064\u0068\u003a \u0027\u0025\u0064\u0027",_ffde );};_ebcf =_cecf ;_aega ,_feec :=_ffac .GroupByWidth ();if _feec !=nil {return 0,_dg .Wrapf (_feec ,_gfdd ,"\u0068\u0065\u0069g\u0068\u0074\u003a\u0020\u0027\u0025\u0064\u0027",_cecf ); +};var _daee int ;for _ ,_agac :=range _aega .Values {for _ ,_fbbg :=range _agac .Values {_bffd :=_fbbg .Width ;_bbbb :=_bffd -_daee ;if _feec =_ffab .EncodeInteger (_bdc .IADW ,_bbbb );_feec !=nil {return 0,_dg .Wrapf (_feec ,_gfdd ,"\u0049\u0041\u0044\u0057\u0020\u0066\u006f\u0072\u0020\u0064\u0077\u003a \u0027\u0025\u0064\u0027",_bbbb ); +};_daee +=_bbbb ;if _feec =_ffab .EncodeBitmap (_fbbg ,false );_feec !=nil {return 0,_dg .Wrapf (_feec ,_gfdd ,"H\u0065i\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u0020W\u0069\u0064\u0074\u0068: \u0025\u0064",_cecf ,_bffd );};_aadc :=_dffcg [_fbbg ];_dfeb ._gbdf [_aadc ]=_ceggc ; +_ceggc ++;};};if _feec =_ffab .EncodeOOB (_bdc .IADW );_feec !=nil {return 0,_dg .Wrap (_feec ,_gfdd ,"\u0049\u0041\u0044\u0057");};};if _dffa =_ffab .EncodeInteger (_bdc .IAEX ,0);_dffa !=nil {return 0,_dg .Wrap (_dffa ,_gfdd ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073"); +};if _dffa =_ffab .EncodeInteger (_bdc .IAEX ,len (_dfeb ._cacb ));_dffa !=nil {return 0,_dg .Wrap (_dffa ,_gfdd ,"\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0073\u0079m\u0062\u006f\u006c\u0073");};_ffab .Final ();_egae ,_dffa :=_ffab .WriteTo (_gcba ); +if _dffa !=nil {return 0,_dg .Wrap (_dffa ,_gfdd ,"\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 (_egae ),nil ;};type PatternDictionary struct{_ebcg *_c .Reader ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;GBAtX []int8 ;GBAtY []int8 ;IsMMREncoded bool ;HDTemplate byte ;HdpWidth byte ;HdpHeight byte ; +Patterns []*_f .Bitmap ;GrayMax uint32 ;};func (_ddff *SymbolDictionary )getSbSymCodeLen ()int8 {_dacgc :=int8 (_a .Ceil (_a .Log (float64 (_ddff ._acg +_ddff .NumberOfNewSymbols ))/_a .Log (2)));if _ddff .IsHuffmanEncoded &&_dacgc < 1{return 1;};return _dacgc ; +};func (_cg *GenericRefinementRegion )decodeTemplate (_dda ,_gbe ,_edd ,_beg ,_bcb ,_bac ,_cega ,_egf ,_cac ,_gbf int ,_aede templater )(_ea error ){var (_bbg ,_abg ,_fee ,_gbee ,_bfba int16 ;_ced ,_aa ,_acc ,_ecgg int ;_gdgb byte ;);if _cac >=1&&(_cac -1)< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -_beg ); +if _ea !=nil {return _ea ;};_ced =int (_gdgb );};if _cac >=0&&(_cac )< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf );if _ea !=nil {return _ea ;};_aa =int (_gdgb );};if _cac >=-1&&(_cac +1)< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf +_beg ); +if _ea !=nil {return _ea ;};_acc =int (_gdgb );};_gbf ++;if _dda >=1{_gdgb ,_ea =_cg .RegionBitmap .GetByte (_egf -_edd );if _ea !=nil {return _ea ;};_ecgg =int (_gdgb );};_egf ++;_cga :=_cg .ReferenceDX %8;_cfc :=6+_cga ;_cca :=_gbf %_beg ;if _cfc >=0{if _cfc < 8{_bbg =int16 (_ced >>uint (_cfc ))&0x07; +};if _cfc < 8{_abg =int16 (_aa >>uint (_cfc ))&0x07;};if _cfc < 8{_fee =int16 (_acc >>uint (_cfc ))&0x07;};if _cfc ==6&&_cca > 1{if _cac >=1&&(_cac -1)< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -_beg -2);if _ea !=nil {return _ea ; +};_bbg |=int16 (_gdgb <<2)&0x04;};if _cac >=0&&_cac < _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -2);if _ea !=nil {return _ea ;};_abg |=int16 (_gdgb <<2)&0x04;};if _cac >=-1&&_cac +1< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf +_beg -2); +if _ea !=nil {return _ea ;};_fee |=int16 (_gdgb <<2)&0x04;};};if _cfc ==0{_ced =0;_aa =0;_acc =0;if _cca < _beg -1{if _cac >=1&&_cac -1< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -_beg );if _ea !=nil {return _ea ;};_ced =int (_gdgb ); +};if _cac >=0&&_cac < _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf );if _ea !=nil {return _ea ;};_aa =int (_gdgb );};if _cac >=-1&&_cac +1< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf +_beg ); +if _ea !=nil {return _ea ;};_acc =int (_gdgb );};};_gbf ++;};}else {_bbg =int16 (_ced <<1)&0x07;_abg =int16 (_aa <<1)&0x07;_fee =int16 (_acc <<1)&0x07;_ced =0;_aa =0;_acc =0;if _cca < _beg -1{if _cac >=1&&_cac -1< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -_beg ); +if _ea !=nil {return _ea ;};_ced =int (_gdgb );};if _cac >=0&&_cac < _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf );if _ea !=nil {return _ea ;};_aa =int (_gdgb );};if _cac >=-1&&_cac +1< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf +_beg ); +if _ea !=nil {return _ea ;};_acc =int (_gdgb );};_gbf ++;};_bbg |=int16 ((_ced >>7)&0x07);_abg |=int16 ((_aa >>7)&0x07);_fee |=int16 ((_acc >>7)&0x07);};_gbee =int16 (_ecgg >>6);_bfba =0;_abe :=(2-_cga )%8;_ced <<=uint (_abe );_aa <<=uint (_abe );_acc <<=uint (_abe ); +_ecgg <<=2;var _ddg int ;for _ebg :=0;_ebg < _gbe ;_ebg ++{_gcc :=_ebg &0x07;_fde :=_aede .form (_bbg ,_abg ,_fee ,_gbee ,_bfba );if _cg ._eec {_gdgb ,_ea =_cg .RegionBitmap .GetByte (_cg .RegionBitmap .GetByteIndex (_ebg ,_dda ));if _ea !=nil {return _ea ; +};_cg ._cd .SetIndex (int32 (_cg .overrideAtTemplate0 (int (_fde ),_ebg ,_dda ,int (_gdgb ),_gcc )));}else {_cg ._cd .SetIndex (int32 (_fde ));};_ddg ,_ea =_cg ._gaf .DecodeBit (_cg ._cd );if _ea !=nil {return _ea ;};if _ea =_cg .RegionBitmap .SetPixel (_ebg ,_dda ,byte (_ddg )); +_ea !=nil {return _ea ;};_bbg =((_bbg <<1)|0x01&int16 (_ced >>7))&0x07;_abg =((_abg <<1)|0x01&int16 (_aa >>7))&0x07;_fee =((_fee <<1)|0x01&int16 (_acc >>7))&0x07;_gbee =((_gbee <<1)|0x01&int16 (_ecgg >>7))&0x07;_bfba =int16 (_ddg );if (_ebg -int (_cg .ReferenceDX ))%8==5{_ced =0; +_aa =0;_acc =0;if ((_ebg -int (_cg .ReferenceDX ))/8)+1< _cg .ReferenceBitmap .RowStride {if _cac >=1&&(_cac -1)< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -_beg );if _ea !=nil {return _ea ;};_ced =int (_gdgb );};if _cac >=0&&_cac < _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf ); +if _ea !=nil {return _ea ;};_aa =int (_gdgb );};if _cac >=-1&&(_cac +1)< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf +_beg );if _ea !=nil {return _ea ;};_acc =int (_gdgb );};};_gbf ++;}else {_ced <<=1;_aa <<=1;_acc <<=1; +};if _gcc ==5&&_dda >=1{if ((_ebg >>3)+1)>=_cg .RegionBitmap .RowStride {_ecgg =0;}else {_gdgb ,_ea =_cg .RegionBitmap .GetByte (_egf -_edd );if _ea !=nil {return _ea ;};_ecgg =int (_gdgb );};_egf ++;}else {_ecgg <<=1;};};return nil ;};func (_bebc *TableSegment )parseHeader ()error {var (_bdga int ; +_gedd uint64 ;_eeac error ;);_bdga ,_eeac =_bebc ._adbf .ReadBit ();if _eeac !=nil {return _eeac ;};if _bdga ==1{return _gb .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",_bdga ); +};if _gedd ,_eeac =_bebc ._adbf .ReadBits (3);_eeac !=nil {return _eeac ;};_bebc ._baed =(int32 (_gedd )+1)&0xf;if _gedd ,_eeac =_bebc ._adbf .ReadBits (3);_eeac !=nil {return _eeac ;};_bebc ._beea =(int32 (_gedd )+1)&0xf;if _gedd ,_eeac =_bebc ._adbf .ReadBits (32); +_eeac !=nil {return _eeac ;};_bebc ._gdb =int32 (_gedd &_a .MaxInt32 );if _gedd ,_eeac =_bebc ._adbf .ReadBits (32);_eeac !=nil {return _eeac ;};_bebc ._ggdc =int32 (_gedd &_a .MaxInt32 );return nil ;};func (_fgcea *SymbolDictionary )readNumberOfExportedSymbols ()error {_edg ,_fadg :=_fgcea ._dabd .ReadBits (32); +if _fadg !=nil {return _fadg ;};_fgcea .NumberOfExportedSymbols =uint32 (_edg &_a .MaxUint32 );return nil ;};func (_bcec *Header )writeSegmentDataLength (_fddeb _c .BinaryWriter )(_dgde int ,_eecbf error ){_fegc :=make ([]byte ,4);_b .BigEndian .PutUint32 (_fegc ,uint32 (_bcec .SegmentDataLength )); +if _dgde ,_eecbf =_fddeb .Write (_fegc );_eecbf !=nil {return 0,_dg .Wrap (_eecbf ,"\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 _dgde ,nil ; +};func (_bgce *PatternDictionary )parseHeader ()error {_age .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 (){_age .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"); +}();_ ,_gegc :=_bgce ._ebcg .ReadBits (5);if _gegc !=nil {return _gegc ;};if _gegc =_bgce .readTemplate ();_gegc !=nil {return _gegc ;};if _gegc =_bgce .readIsMMREncoded ();_gegc !=nil {return _gegc ;};if _gegc =_bgce .readPatternWidthAndHeight ();_gegc !=nil {return _gegc ; +};if _gegc =_bgce .readGrayMax ();_gegc !=nil {return _gegc ;};if _gegc =_bgce .computeSegmentDataStructure ();_gegc !=nil {return _gegc ;};return _bgce .checkInput ();};func (_daba *PageInformationSegment )Encode (w _c .BinaryWriter )(_ceab int ,_egac error ){const _abge ="\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"; +_ffdf :=make ([]byte ,4);_b .BigEndian .PutUint32 (_ffdf ,uint32 (_daba .PageBMWidth ));_ceab ,_egac =w .Write (_ffdf );if _egac !=nil {return _ceab ,_dg .Wrap (_egac ,_abge ,"\u0077\u0069\u0064t\u0068");};_b .BigEndian .PutUint32 (_ffdf ,uint32 (_daba .PageBMHeight )); +var _gge int ;_gge ,_egac =w .Write (_ffdf );if _egac !=nil {return _gge +_ceab ,_dg .Wrap (_egac ,_abge ,"\u0068\u0065\u0069\u0067\u0068\u0074");};_ceab +=_gge ;_b .BigEndian .PutUint32 (_ffdf ,uint32 (_daba .ResolutionX ));_gge ,_egac =w .Write (_ffdf ); +if _egac !=nil {return _gge +_ceab ,_dg .Wrap (_egac ,_abge ,"\u0078\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");};_ceab +=_gge ;_b .BigEndian .PutUint32 (_ffdf ,uint32 (_daba .ResolutionY ));if _gge ,_egac =w .Write (_ffdf );_egac !=nil {return _gge +_ceab ,_dg .Wrap (_egac ,_abge ,"\u0079\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e"); +};_ceab +=_gge ;if _egac =_daba .encodeFlags (w );_egac !=nil {return _ceab ,_dg .Wrap (_egac ,_abge ,"");};_ceab ++;if _gge ,_egac =_daba .encodeStripingInformation (w );_egac !=nil {return _ceab ,_dg .Wrap (_egac ,_abge ,"");};_ceab +=_gge ;return _ceab ,nil ; +};func (_aeda *SymbolDictionary )parseHeader ()(_bcbgc error ){_age .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 _bcbgc !=nil {_age .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",_bcbgc ); +}else {_age .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 _bcbgc =_aeda .readRegionFlags ();_bcbgc !=nil {return _bcbgc ;};if _bcbgc =_aeda .setAtPixels ();_bcbgc !=nil {return _bcbgc ;};if _bcbgc =_aeda .setRefinementAtPixels ();_bcbgc !=nil {return _bcbgc ;};if _bcbgc =_aeda .readNumberOfExportedSymbols (); +_bcbgc !=nil {return _bcbgc ;};if _bcbgc =_aeda .readNumberOfNewSymbols ();_bcbgc !=nil {return _bcbgc ;};if _bcbgc =_aeda .setInSyms ();_bcbgc !=nil {return _bcbgc ;};if _aeda ._eaf {_cbdg :=_aeda .Header .RTSegments ;for _efcd :=len (_cbdg )-1;_efcd >=0; +_efcd --{if _cbdg [_efcd ].Type ==0{_bedc ,_acbf :=_cbdg [_efcd ].SegmentData .(*SymbolDictionary );if !_acbf {_bcbgc =_gb .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",_cbdg [_efcd ]); +return _bcbgc ;};if _bedc ._eaf {_aeda .setRetainedCodingContexts (_bedc );};break ;};};};if _bcbgc =_aeda .checkInput ();_bcbgc !=nil {return _bcbgc ;};return nil ;};type Type int ;func (_adeba *TableSegment )HtRS ()int32 {return _adeba ._baed };func (_dfaa *TextRegion )computeSymbolCodeLength ()error {if _dfaa .IsHuffmanEncoded {return _dfaa .symbolIDCodeLengths (); +};_dfaa ._aeaca =int8 (_a .Ceil (_a .Log (float64 (_dfaa .NumberOfSymbols ))/_a .Log (2)));return nil ;};func (_aceb *SymbolDictionary )String ()string {_dggd :=&_ab .Builder {};_dggd .WriteString ("\n\u005b\u0053\u0059\u004dBO\u004c-\u0044\u0049\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u000a"); +_dggd .WriteString (_gb .Sprintf ("\u0009-\u0020S\u0064\u0072\u0054\u0065\u006dp\u006c\u0061t\u0065\u0020\u0025\u0076\u000a",_aceb .SdrTemplate ));_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u0025\u0076\u000a",_aceb .SdTemplate )); +_dggd .WriteString (_gb .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",_aceb ._eegc ));_dggd .WriteString (_gb .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",_aceb ._eaf )); +_dggd .WriteString (_gb .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",_aceb .SdHuffAggInstanceSelection )); +_dggd .WriteString (_gb .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",_aceb .SdHuffBMSizeSelection ));_dggd .WriteString (_gb .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",_aceb .SdHuffDecodeWidthSelection )); +_dggd .WriteString (_gb .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",_aceb .SdHuffDecodeHeightSelection ));_dggd .WriteString (_gb .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",_aceb .UseRefinementAggregation )); +_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020is\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045\u006e\u0063\u006f\u0064\u0065\u0064\u0020\u0025\u0076\u000a",_aceb .IsHuffmanEncoded ));_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_aceb .SdATX )); +_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_aceb .SdATY ));_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_aceb .SdrATX )); +_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_aceb .SdrATY ));_dggd .WriteString (_gb .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",_aceb .NumberOfExportedSymbols )); +_dggd .WriteString (_gb .Sprintf ("\u0009-\u0020\u004e\u0075\u006db\u0065\u0072\u004f\u0066\u004ee\u0077S\u0079m\u0062\u006f\u006c\u0073\u0020\u0025\u0076\n",_aceb .NumberOfNewSymbols ));_dggd .WriteString (_gb .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",_aceb ._acg )); +_dggd .WriteString (_gb .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",_aceb ._cec ));return _dggd .String ();};func (_beeb *SymbolDictionary )InitEncode (symbols *_f .Bitmaps ,symbolList []int ,symbolMap map[int ]int ,unborderSymbols bool )error {const _dgfa ="S\u0079\u006d\u0062\u006f\u006c\u0044i\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002eI\u006e\u0069\u0074E\u006ec\u006f\u0064\u0065"; +_beeb .SdATX =[]int8 {3,-3,2,-2};_beeb .SdATY =[]int8 {-1,-1,-2,-2};_beeb ._gabd =symbols ;_beeb ._cacb =make ([]int ,len (symbolList ));copy (_beeb ._cacb ,symbolList );if len (_beeb ._cacb )!=_beeb ._gabd .Size (){return _dg .Error (_dgfa ,"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"); +};_beeb .NumberOfNewSymbols =uint32 (symbols .Size ());_beeb .NumberOfExportedSymbols =uint32 (symbols .Size ());_beeb ._gbdf =symbolMap ;_beeb ._dfadf =unborderSymbols ;return nil ;};var (_ Regioner =&TextRegion {};_ Segmenter =&TextRegion {};);func (_geda *Header )writeReferredToCount (_bacc _c .BinaryWriter )(_daeg int ,_ebgb error ){const _cbaad ="w\u0072i\u0074\u0065\u0052\u0065\u0066\u0065\u0072\u0072e\u0064\u0054\u006f\u0043ou\u006e\u0074"; +_geda .RTSNumbers =make ([]int ,len (_geda .RTSegments ));for _gbea ,_cddf :=range _geda .RTSegments {_geda .RTSNumbers [_gbea ]=int (_cddf .SegmentNumber );};if len (_geda .RTSNumbers )<=4{var _afgg byte ;if len (_geda .RetainBits )>=1{_afgg =_geda .RetainBits [0]; +};_afgg |=byte (len (_geda .RTSNumbers ))<<5;if _ebgb =_bacc .WriteByte (_afgg );_ebgb !=nil {return 0,_dg .Wrap (_ebgb ,_cbaad ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};return 1,nil ;};_bdd :=uint32 (len (_geda .RTSNumbers )); +_fdde :=make ([]byte ,4+_ag .Ceil (len (_geda .RTSNumbers )+1,8));_bdd |=0x7<<29;_b .BigEndian .PutUint32 (_fdde ,_bdd );copy (_fdde [1:],_geda .RetainBits );_daeg ,_ebgb =_bacc .Write (_fdde );if _ebgb !=nil {return 0,_dg .Wrap (_ebgb ,_cbaad ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074"); +};return _daeg ,nil ;};func (_gcf *template0 )form (_aaa ,_bcg ,_afg ,_ddf ,_dfg int16 )int16 {return (_aaa <<10)|(_bcg <<7)|(_afg <<4)|(_ddf <<1)|_dfg ;};func (_cad *GenericRefinementRegion )readAtPixels ()error {_cad .GrAtX =make ([]int8 ,2);_cad .GrAtY =make ([]int8 ,2); +_ceac ,_fbg :=_cad ._bf .ReadByte ();if _fbg !=nil {return _fbg ;};_cad .GrAtX [0]=int8 (_ceac );_ceac ,_fbg =_cad ._bf .ReadByte ();if _fbg !=nil {return _fbg ;};_cad .GrAtY [0]=int8 (_ceac );_ceac ,_fbg =_cad ._bf .ReadByte ();if _fbg !=nil {return _fbg ; +};_cad .GrAtX [1]=int8 (_ceac );_ceac ,_fbg =_cad ._bf .ReadByte ();if _fbg !=nil {return _fbg ;};_cad .GrAtY [1]=int8 (_ceac );return nil ;};func (_cdec *Header )readHeaderLength (_gada *_c .Reader ,_aeab int64 ){_cdec .HeaderLength =_gada .AbsolutePosition ()-_aeab ; +};func (_fecfb *SymbolDictionary )huffDecodeBmSize ()(int64 ,error ){if _fecfb ._feea ==nil {var (_cdgb int ;_eddab error ;);if _fecfb .SdHuffDecodeHeightSelection ==3{_cdgb ++;};if _fecfb .SdHuffDecodeWidthSelection ==3{_cdgb ++;};_fecfb ._feea ,_eddab =_fecfb .getUserTable (_cdgb ); +if _eddab !=nil {return 0,_eddab ;};};return _fecfb ._feea .Decode (_fecfb ._dabd );};func (_cgaa *TextRegion )decodeRdh ()(int64 ,error ){const _bfe ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064h";if _cgaa .IsHuffmanEncoded {if _cgaa .SbHuffRDHeight ==3{if _cgaa ._bceb ==nil {var (_eefe int ; +_dfbd error ;);if _cgaa .SbHuffFS ==3{_eefe ++;};if _cgaa .SbHuffDS ==3{_eefe ++;};if _cgaa .SbHuffDT ==3{_eefe ++;};if _cgaa .SbHuffRDWidth ==3{_eefe ++;};_cgaa ._bceb ,_dfbd =_cgaa .getUserTable (_eefe );if _dfbd !=nil {return 0,_dg .Wrap (_dfbd ,_bfe ,""); +};};return _cgaa ._bceb .Decode (_cgaa ._bgge );};_acgg ,_bfgd :=_ece .GetStandardTable (14+int (_cgaa .SbHuffRDHeight ));if _bfgd !=nil {return 0,_dg .Wrap (_bfgd ,_bfe ,"");};return _acgg .Decode (_cgaa ._bgge );};_bagg ,_beab :=_cgaa ._cefb .DecodeInt (_cgaa ._gebe ); +if _beab !=nil {return 0,_dg .Wrap (_beab ,_bfe ,"");};return int64 (_bagg ),nil ;};type Pager interface{GetSegment (int )(*Header ,error );GetBitmap ()(*_f .Bitmap ,error );};func (_befd *SymbolDictionary )checkInput ()error {if _befd .SdHuffDecodeHeightSelection ==2{_age .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",_befd .SdHuffDecodeHeightSelection ); +};if _befd .SdHuffDecodeWidthSelection ==2{_age .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",_befd .SdHuffDecodeWidthSelection ); +};if _befd .IsHuffmanEncoded {if _befd .SdTemplate !=0{_age .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",_befd .SdTemplate ); +};if !_befd .UseRefinementAggregation {if !_befd .UseRefinementAggregation {if _befd ._eegc {_age .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"); +_befd ._eegc =false ;};if _befd ._eaf {_age .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"); +_befd ._eaf =false ;};};};}else {if _befd .SdHuffBMSizeSelection !=0{_age .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"); +_befd .SdHuffBMSizeSelection =0;};if _befd .SdHuffDecodeWidthSelection !=0{_age .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"); +_befd .SdHuffDecodeWidthSelection =0;};if _befd .SdHuffDecodeHeightSelection !=0{_age .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"); +_befd .SdHuffDecodeHeightSelection =0;};};if !_befd .UseRefinementAggregation {if _befd .SdrTemplate !=0{_age .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",_befd .SdrTemplate ); +_befd .SdrTemplate =0;};};if !_befd .IsHuffmanEncoded ||!_befd .UseRefinementAggregation {if _befd .SdHuffAggInstanceSelection {_age .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",_befd .SdHuffAggInstanceSelection ); +};};return nil ;};func (_deg *GenericRegion )InitEncode (bm *_f .Bitmap ,xLoc ,yLoc ,template int ,duplicateLineRemoval bool )error {const _cbf ="\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 _dg .Error (_cbf ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");};if xLoc < 0||yLoc < 0{return _dg .Error (_cbf ,"\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"); +};_deg .Bitmap =bm ;_deg .GBTemplate =byte (template );switch _deg .GBTemplate {case 0:_deg .GBAtX =[]int8 {3,-3,2,-2};_deg .GBAtY =[]int8 {-1,-1,-2,-2};case 1:_deg .GBAtX =[]int8 {3};_deg .GBAtY =[]int8 {-1};case 2,3:_deg .GBAtX =[]int8 {2};_deg .GBAtY =[]int8 {-1}; +default:return _dg .Errorf (_cbf ,"\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 ); +};_deg .RegionSegment =&RegionSegment {BitmapHeight :uint32 (bm .Height ),BitmapWidth :uint32 (bm .Width ),XLocation :uint32 (xLoc ),YLocation :uint32 (yLoc )};_deg .IsTPGDon =duplicateLineRemoval ;return nil ;};func (_egb *PageInformationSegment )checkInput ()error {if _egb .PageBMHeight ==_a .MaxInt32 {if !_egb .IsStripe {_age .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 ;};type templater interface{form (_cccd ,_dcg ,_bdg ,_bca ,_fbe int16 )int16 ;setIndex (_gbcg *_cc .DecoderStats );};func (_ffcd *GenericRegion )overrideAtTemplate1 (_geg ,_cgfb ,_fce ,_bdba ,_dffc int )int {_geg &=0x1FF7;if _ffcd .GBAtY [0]==0&&_ffcd .GBAtX [0]>=-int8 (_dffc ){_geg |=(_bdba >>uint (7-(int8 (_dffc )+_ffcd .GBAtX [0]))&0x1)<<3; +}else {_geg |=int (_ffcd .getPixel (_cgfb +int (_ffcd .GBAtX [0]),_fce +int (_ffcd .GBAtY [0])))<<3;};return _geg ;};func (_cegg *HalftoneRegion )computeX (_dgdc ,_ceff int )int {return _cegg .shiftAndFill (int (_cegg .HGridX )+_dgdc *int (_cegg .HRegionY )+_ceff *int (_cegg .HRegionX )); +};func (_daac *RegionSegment )readCombinationOperator ()error {_ebfb ,_bbfb :=_daac ._fcaf .ReadBits (3);if _bbfb !=nil {return _bbfb ;};_daac .CombinaionOperator =_f .CombinationOperator (_ebfb &0xF);return nil ;};func (_fbgfc *SymbolDictionary )setAtPixels ()error {if _fbgfc .IsHuffmanEncoded {return nil ; +};_bcbgd :=1;if _fbgfc .SdTemplate ==0{_bcbgd =4;};if _bddf :=_fbgfc .readAtPixels (_bcbgd );_bddf !=nil {return _bddf ;};return nil ;};func (_eggfd *TextRegion )String ()string {_ddbcf :=&_ab .Builder {};_ddbcf .WriteString ("\u000a[\u0054E\u0058\u0054\u0020\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u000a"); +_ddbcf .WriteString (_eggfd .RegionInfo .String ()+"\u000a");_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053br\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u003a\u0020\u0025\u0076\u000a",_eggfd .SbrTemplate ));_ddbcf .WriteString (_gb .Sprintf ("\u0009-\u0020S\u0062\u0044\u0073\u004f\u0066f\u0073\u0065t\u003a\u0020\u0025\u0076\u000a",_eggfd .SbDsOffset )); +_ddbcf .WriteString (_gb .Sprintf ("\t\u002d \u0044\u0065\u0066\u0061\u0075\u006c\u0074\u0050i\u0078\u0065\u006c\u003a %\u0076\u000a",_eggfd .DefaultPixel ));_ddbcf .WriteString (_gb .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0076\u000a",_eggfd .CombinationOperator )); +_ddbcf .WriteString (_gb .Sprintf ("\t\u002d \u0049\u0073\u0054\u0072\u0061\u006e\u0073\u0070o\u0073\u0065\u0064\u003a %\u0076\u000a",_eggfd .IsTransposed ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020Re\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0043\u006f\u0072\u006e\u0065\u0072\u003a\u0020\u0025\u0076\u000a",_eggfd .ReferenceCorner )); +_ddbcf .WriteString (_gb .Sprintf ("\t\u002d\u0020\u0055\u0073eR\u0065f\u0069\u006e\u0065\u006d\u0065n\u0074\u003a\u0020\u0025\u0076\u000a",_eggfd .UseRefinement ));_ddbcf .WriteString (_gb .Sprintf ("\u0009-\u0020\u0049\u0073\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045n\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0076\u000a",_eggfd .IsHuffmanEncoded )); +if _eggfd .IsHuffmanEncoded {_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0053\u0069\u007a\u0065\u003a\u0020\u0025\u0076\u000a",_eggfd .SbHuffRSize ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0059:\u0020\u0025\u0076\u000a",_eggfd .SbHuffRDY )); +_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0058:\u0020\u0025\u0076\u000a",_eggfd .SbHuffRDX ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0044\u0048\u0065\u0069\u0067\u0068\u0074\u003a\u0020\u0025v\u000a",_eggfd .SbHuffRDHeight )); +_ddbcf .WriteString (_gb .Sprintf ("\t\u002d\u0020\u0053\u0062Hu\u0066f\u0052\u0044\u0057\u0069\u0064t\u0068\u003a\u0020\u0025\u0076\u000a",_eggfd .SbHuffRDWidth ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0054\u003a\u0020\u0025\u0076\u000a",_eggfd .SbHuffDT )); +_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0053\u003a\u0020\u0025\u0076\u000a",_eggfd .SbHuffDS ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0046\u0053\u003a\u0020\u0025\u0076\u000a",_eggfd .SbHuffFS )); +};_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_eggfd .SbrATX ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0059:\u0020\u0025\u0076\u000a",_eggfd .SbrATY )); +_ddbcf .WriteString (_gb .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",_eggfd .NumberOfSymbolInstances ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_eggfd .SbrATX )); +return _ddbcf .String ();};func (_fcb *GenericRegion )Encode (w _c .BinaryWriter )(_afb int ,_dag error ){const _acf ="G\u0065n\u0065\u0072\u0069\u0063\u0052\u0065\u0067\u0069o\u006e\u002e\u0045\u006eco\u0064\u0065";if _fcb .Bitmap ==nil {return 0,_dg .Error (_acf ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070"); +};_fcc ,_dag :=_fcb .RegionSegment .Encode (w );if _dag !=nil {return 0,_dg .Wrap (_dag ,_acf ,"\u0052\u0065\u0067\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065\u006e\u0074");};_afb +=_fcc ;if _dag =w .SkipBits (4);_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"\u0073k\u0069p\u0020\u0072\u0065\u0073\u0065r\u0076\u0065d\u0020\u0062\u0069\u0074\u0073"); +};var _ddag int ;if _fcb .IsTPGDon {_ddag =1;};if _dag =w .WriteBit (_ddag );_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"\u0074\u0070\u0067\u0064\u006f\u006e");};_ddag =0;if _dag =w .WriteBit (int (_fcb .GBTemplate >>1)&0x01);_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"f\u0069r\u0073\u0074\u0020\u0067\u0062\u0074\u0065\u006dp\u006c\u0061\u0074\u0065 b\u0069\u0074"); +};if _dag =w .WriteBit (int (_fcb .GBTemplate )&0x01);_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"s\u0065\u0063\u006f\u006ed \u0067b\u0074\u0065\u006d\u0070\u006ca\u0074\u0065\u0020\u0062\u0069\u0074");};if _fcb .UseMMR {_ddag =1;};if _dag =w .WriteBit (_ddag ); +_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"u\u0073\u0065\u0020\u004d\u004d\u0052\u0020\u0062\u0069\u0074");};_afb ++;if _fcc ,_dag =_fcb .writeGBAtPixels (w );_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"");};_afb +=_fcc ;_cfd :=_bdc .New (); +if _dag =_cfd .EncodeBitmap (_fcb .Bitmap ,_fcb .IsTPGDon );_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"");};_cfd .Final ();var _dgf int64 ;if _dgf ,_dag =_cfd .WriteTo (w );_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"");};_afb +=int (_dgf ); +return _afb ,nil ;};func (_ecc *SymbolDictionary )Encode (w _c .BinaryWriter )(_ffdgc int ,_bdbg error ){const _cggb ="\u0053\u0079\u006dbo\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0045\u006e\u0063\u006f\u0064\u0065";if _ecc ==nil {return 0,_dg .Error (_cggb ,"\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 _ffdgc ,_bdbg =_ecc .encodeFlags (w );_bdbg !=nil {return _ffdgc ,_dg .Wrap (_bdbg ,_cggb ,"");};_gdef ,_bdbg :=_ecc .encodeATFlags (w );if _bdbg !=nil {return _ffdgc ,_dg .Wrap (_bdbg ,_cggb ,"");};_ffdgc +=_gdef ;if _gdef ,_bdbg =_ecc .encodeRefinementATFlags (w ); +_bdbg !=nil {return _ffdgc ,_dg .Wrap (_bdbg ,_cggb ,"");};_ffdgc +=_gdef ;if _gdef ,_bdbg =_ecc .encodeNumSyms (w );_bdbg !=nil {return _ffdgc ,_dg .Wrap (_bdbg ,_cggb ,"");};_ffdgc +=_gdef ;if _gdef ,_bdbg =_ecc .encodeSymbols (w );_bdbg !=nil {return _ffdgc ,_dg .Wrap (_bdbg ,_cggb ,""); +};_ffdgc +=_gdef ;return _ffdgc ,nil ;};func (_gcdg *TableSegment )HtHigh ()int32 {return _gcdg ._ggdc };func (_ebgg *GenericRegion )decodeLine (_faa ,_dfa ,_cgcb int )error {const _ffg ="\u0064\u0065\u0063\u006f\u0064\u0065\u004c\u0069\u006e\u0065";_ged :=_ebgg .Bitmap .GetByteIndex (0,_faa ); +_bdca :=_ged -_ebgg .Bitmap .RowStride ;switch _ebgg .GBTemplate {case 0:if !_ebgg .UseExtTemplates {return _ebgg .decodeTemplate0a (_faa ,_dfa ,_cgcb ,_ged ,_bdca );};return _ebgg .decodeTemplate0b (_faa ,_dfa ,_cgcb ,_ged ,_bdca );case 1:return _ebgg .decodeTemplate1 (_faa ,_dfa ,_cgcb ,_ged ,_bdca ); +case 2:return _ebgg .decodeTemplate2 (_faa ,_dfa ,_cgcb ,_ged ,_bdca );case 3:return _ebgg .decodeTemplate3 (_faa ,_dfa ,_cgcb ,_ged ,_bdca );};return _dg .Errorf (_ffg ,"\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",_ebgg .GBTemplate ); +};func (_ddbf *TextRegion )blit (_dbce *_f .Bitmap ,_bcbb int64 )error {if _ddbf .IsTransposed ==0&&(_ddbf .ReferenceCorner ==2||_ddbf .ReferenceCorner ==3){_ddbf ._defb +=int64 (_dbce .Width -1);}else if _ddbf .IsTransposed ==1&&(_ddbf .ReferenceCorner ==0||_ddbf .ReferenceCorner ==2){_ddbf ._defb +=int64 (_dbce .Height -1); +};_ebbb :=_ddbf ._defb ;if _ddbf .IsTransposed ==1{_ebbb ,_bcbb =_bcbb ,_ebbb ;};switch _ddbf .ReferenceCorner {case 0:_bcbb -=int64 (_dbce .Height -1);case 2:_bcbb -=int64 (_dbce .Height -1);_ebbb -=int64 (_dbce .Width -1);case 3:_ebbb -=int64 (_dbce .Width -1); +};_gdefc :=_f .Blit (_dbce ,_ddbf .RegionBitmap ,int (_ebbb ),int (_bcbb ),_ddbf .CombinationOperator );if _gdefc !=nil {return _gdefc ;};if _ddbf .IsTransposed ==0&&(_ddbf .ReferenceCorner ==0||_ddbf .ReferenceCorner ==1){_ddbf ._defb +=int64 (_dbce .Width -1); +};if _ddbf .IsTransposed ==1&&(_ddbf .ReferenceCorner ==1||_ddbf .ReferenceCorner ==3){_ddbf ._defb +=int64 (_dbce .Height -1);};return nil ;};func (_fdag *GenericRegion )overrideAtTemplate0b (_gde ,_fccg ,_faab ,_cgfe ,_aeg ,_cead int )int {if _fdag .GBAtOverride [0]{_gde &=0xFFFD; +if _fdag .GBAtY [0]==0&&_fdag .GBAtX [0]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [0]&0x1))<<1;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [0]),_faab +int (_fdag .GBAtY [0])))<<1;};};if _fdag .GBAtOverride [1]{_gde &=0xDFFF; +if _fdag .GBAtY [1]==0&&_fdag .GBAtX [1]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [1]&0x1))<<13;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [1]),_faab +int (_fdag .GBAtY [1])))<<13;};};if _fdag .GBAtOverride [2]{_gde &=0xFDFF; +if _fdag .GBAtY [2]==0&&_fdag .GBAtX [2]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [2]&0x1))<<9;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [2]),_faab +int (_fdag .GBAtY [2])))<<9;};};if _fdag .GBAtOverride [3]{_gde &=0xBFFF; +if _fdag .GBAtY [3]==0&&_fdag .GBAtX [3]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [3]&0x1))<<14;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [3]),_faab +int (_fdag .GBAtY [3])))<<14;};};if _fdag .GBAtOverride [4]{_gde &=0xEFFF; +if _fdag .GBAtY [4]==0&&_fdag .GBAtX [4]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [4]&0x1))<<12;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [4]),_faab +int (_fdag .GBAtY [4])))<<12;};};if _fdag .GBAtOverride [5]{_gde &=0xFFDF; +if _fdag .GBAtY [5]==0&&_fdag .GBAtX [5]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [5]&0x1))<<5;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [5]),_faab +int (_fdag .GBAtY [5])))<<5;};};if _fdag .GBAtOverride [6]{_gde &=0xFFFB; +if _fdag .GBAtY [6]==0&&_fdag .GBAtX [6]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [6]&0x1))<<2;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [6]),_faab +int (_fdag .GBAtY [6])))<<2;};};if _fdag .GBAtOverride [7]{_gde &=0xFFF7; +if _fdag .GBAtY [7]==0&&_fdag .GBAtX [7]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [7]&0x1))<<3;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [7]),_faab +int (_fdag .GBAtY [7])))<<3;};};if _fdag .GBAtOverride [8]{_gde &=0xF7FF; +if _fdag .GBAtY [8]==0&&_fdag .GBAtX [8]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [8]&0x1))<<11;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [8]),_faab +int (_fdag .GBAtY [8])))<<11;};};if _fdag .GBAtOverride [9]{_gde &=0xFFEF; +if _fdag .GBAtY [9]==0&&_fdag .GBAtX [9]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [9]&0x1))<<4;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [9]),_faab +int (_fdag .GBAtY [9])))<<4;};};if _fdag .GBAtOverride [10]{_gde &=0x7FFF; +if _fdag .GBAtY [10]==0&&_fdag .GBAtX [10]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [10]&0x1))<<15;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [10]),_faab +int (_fdag .GBAtY [10])))<<15;};};if _fdag .GBAtOverride [11]{_gde &=0xFDFF; +if _fdag .GBAtY [11]==0&&_fdag .GBAtX [11]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [11]&0x1))<<10;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [11]),_faab +int (_fdag .GBAtY [11])))<<10;};};return _gde ;};func (_bbc *GenericRefinementRegion )updateOverride ()error {if _bbc .GrAtX ==nil ||_bbc .GrAtY ==nil {return _ec .New ("\u0041\u0054\u0020\u0070\u0069\u0078\u0065\u006c\u0073\u0020\u006e\u006ft\u0020\u0073\u0065\u0074"); +};if len (_bbc .GrAtX )!=len (_bbc .GrAtY ){return _ec .New ("A\u0054\u0020\u0070\u0069xe\u006c \u0069\u006e\u0063\u006f\u006es\u0069\u0073\u0074\u0065\u006e\u0074");};_bbc ._eecb =make ([]bool ,len (_bbc .GrAtX ));switch _bbc .TemplateID {case 0:if _bbc .GrAtX [0]!=-1&&_bbc .GrAtY [0]!=-1{_bbc ._eecb [0]=true ; +_bbc ._eec =true ;};if _bbc .GrAtX [1]!=-1&&_bbc .GrAtY [1]!=-1{_bbc ._eecb [1]=true ;_bbc ._eec =true ;};case 1:_bbc ._eec =false ;};return nil ;};func (_ecb *GenericRefinementRegion )decodeTypicalPredictedLineTemplate0 (_eg ,_ebb ,_cbd ,_agf ,_gfa ,_fb ,_ffa ,_gca ,_ccg int )error {var (_cea ,_gdg ,_ccc ,_feg ,_aee ,_ccga int ; +_bfb byte ;_bcf error ;);if _eg > 0{_bfb ,_bcf =_ecb .RegionBitmap .GetByte (_ffa -_cbd );if _bcf !=nil {return _bcf ;};_ccc =int (_bfb );};if _gca > 0&&_gca <=_ecb .ReferenceBitmap .Height {_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg -_agf +_fb ); +if _bcf !=nil {return _bcf ;};_feg =int (_bfb )<<4;};if _gca >=0&&_gca < _ecb .ReferenceBitmap .Height {_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg +_fb );if _bcf !=nil {return _bcf ;};_aee =int (_bfb )<<1;};if _gca > -2&&_gca < _ecb .ReferenceBitmap .Height -1{_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg +_agf +_fb ); +if _bcf !=nil {return _bcf ;};_ccga =int (_bfb );};_cea =((_ccc >>5)&0x6)|((_ccga >>2)&0x30)|(_aee &0x180)|(_feg &0xc00);var _fc int ;for _dcf :=0;_dcf < _gfa ;_dcf =_fc {var _gga int ;_fc =_dcf +8;var _dad int ;if _dad =_ebb -_dcf ;_dad > 8{_dad =8;}; +_fgc :=_fc < _ebb ;_cceb :=_fc < _ecb .ReferenceBitmap .Width ;_aff :=_fb +1;if _eg > 0{_bfb =0;if _fgc {_bfb ,_bcf =_ecb .RegionBitmap .GetByte (_ffa -_cbd +1);if _bcf !=nil {return _bcf ;};};_ccc =(_ccc <<8)|int (_bfb );};if _gca > 0&&_gca <=_ecb .ReferenceBitmap .Height {var _fbb int ; +if _cceb {_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg -_agf +_aff );if _bcf !=nil {return _bcf ;};_fbb =int (_bfb )<<4;};_feg =(_feg <<8)|_fbb ;};if _gca >=0&&_gca < _ecb .ReferenceBitmap .Height {var _gbc int ;if _cceb {_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg +_aff ); +if _bcf !=nil {return _bcf ;};_gbc =int (_bfb )<<1;};_aee =(_aee <<8)|_gbc ;};if _gca > -2&&_gca < (_ecb .ReferenceBitmap .Height -1){_bfb =0;if _cceb {_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg +_agf +_aff );if _bcf !=nil {return _bcf ;};};_ccga =(_ccga <<8)|int (_bfb ); +};for _affc :=0;_affc < _dad ;_affc ++{var _agd int ;_dd :=false ;_ef :=(_cea >>4)&0x1ff;if _ef ==0x1ff{_dd =true ;_agd =1;}else if _ef ==0x00{_dd =true ;};if !_dd {if _ecb ._eec {_gdg =_ecb .overrideAtTemplate0 (_cea ,_dcf +_affc ,_eg ,_gga ,_affc );_ecb ._cd .SetIndex (int32 (_gdg )); +}else {_ecb ._cd .SetIndex (int32 (_cea ));};_agd ,_bcf =_ecb ._gaf .DecodeBit (_ecb ._cd );if _bcf !=nil {return _bcf ;};};_eca :=uint (7-_affc );_gga |=_agd <<_eca ;_cea =((_cea &0xdb6)<<1)|_agd |(_ccc >>_eca +5)&0x002|((_ccga >>_eca +2)&0x010)|((_aee >>_eca )&0x080)|((_feg >>_eca )&0x400); +};_bcf =_ecb .RegionBitmap .SetByte (_ffa ,byte (_gga ));if _bcf !=nil {return _bcf ;};_ffa ++;_ccg ++;};return nil ;};func (_ffdd *SymbolDictionary )encodeRefinementATFlags (_ebce _c .BinaryWriter )(_ade int ,_bagb error ){const _egfb ="\u0065\u006e\u0063od\u0065\u0052\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074\u0041\u0054\u0046\u006c\u0061\u0067\u0073"; +if !_ffdd .UseRefinementAggregation ||_ffdd .SdrTemplate !=0{return 0,nil ;};for _aec :=0;_aec < 2;_aec ++{if _bagb =_ebce .WriteByte (byte (_ffdd .SdrATX [_aec ]));_bagb !=nil {return _ade ,_dg .Wrapf (_bagb ,_egfb ,"\u0053\u0064\u0072\u0041\u0054\u0058\u005b\u0025\u0064\u005d",_aec ); +};_ade ++;if _bagb =_ebce .WriteByte (byte (_ffdd .SdrATY [_aec ]));_bagb !=nil {return _ade ,_dg .Wrapf (_bagb ,_egfb ,"\u0053\u0064\u0072\u0041\u0054\u0059\u005b\u0025\u0064\u005d",_aec );};_ade ++;};return _ade ,nil ;};func (_gaa *GenericRegion )GetRegionInfo ()*RegionSegment {return _gaa .RegionSegment }; +func (_agea *GenericRegion )Size ()int {return _agea .RegionSegment .Size ()+1+2*len (_agea .GBAtX )};func (_egcf *HalftoneRegion )computeY (_ffgd ,_becf int )int {return _egcf .shiftAndFill (int (_egcf .HGridY )+_ffgd *int (_egcf .HRegionX )-_becf *int (_egcf .HRegionY )); +};func (_ce *GenericRefinementRegion )decodeSLTP ()(int ,error ){_ce .Template .setIndex (_ce ._cd );return _ce ._gaf .DecodeBit (_ce ._cd );};func (_fdg *GenericRegion )overrideAtTemplate2 (_fad ,_ccad ,_ccgab ,_ecag ,_gad int )int {_fad &=0x3FB;if _fdg .GBAtY [0]==0&&_fdg .GBAtX [0]>=-int8 (_gad ){_fad |=(_ecag >>uint (7-(int8 (_gad )+_fdg .GBAtX [0]))&0x1)<<2; +}else {_fad |=int (_fdg .getPixel (_ccad +int (_fdg .GBAtX [0]),_ccgab +int (_fdg .GBAtY [0])))<<2;};return _fad ;};func (_ffddg *TextRegion )decodeIb (_ggdce ,_gdcc int64 )(*_f .Bitmap ,error ){const _cagc ="\u0064\u0065\u0063\u006f\u0064\u0065\u0049\u0062"; +var (_aeaa error ;_gbacc *_f .Bitmap ;);if _ggdce ==0{if int (_gdcc )> len (_ffddg .Symbols )-1{return nil ,_dg .Error (_cagc ,"\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 _ffddg .Symbols [int (_gdcc )],nil ;};var _bbaed ,_agec ,_agaf ,_dgfgg int64 ;_bbaed ,_aeaa =_ffddg .decodeRdw ();if _aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"");};_agec ,_aeaa =_ffddg .decodeRdh ();if _aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,""); +};_agaf ,_aeaa =_ffddg .decodeRdx ();if _aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"");};_dgfgg ,_aeaa =_ffddg .decodeRdy ();if _aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"");};if _ffddg .IsHuffmanEncoded {if _ ,_aeaa =_ffddg .decodeSymInRefSize (); +_aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"");};_ffddg ._bgge .Align ();};_gfccc :=_ffddg .Symbols [_gdcc ];_dbcf :=uint32 (_gfccc .Width );_edeg :=uint32 (_gfccc .Height );_bgef :=int32 (uint32 (_bbaed )>>1)+int32 (_agaf );_ggf :=int32 (uint32 (_agec )>>1)+int32 (_dgfgg ); +if _ffddg ._gagbe ==nil {_ffddg ._gagbe =_bcbf (_ffddg ._bgge ,nil );};_ffddg ._gagbe .setParameters (_ffddg ._bdfb ,_ffddg ._cefb ,_ffddg .SbrTemplate ,_dbcf +uint32 (_bbaed ),_edeg +uint32 (_agec ),_gfccc ,_bgef ,_ggf ,false ,_ffddg .SbrATX ,_ffddg .SbrATY ); +_gbacc ,_aeaa =_ffddg ._gagbe .GetRegionBitmap ();if _aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"\u0067\u0072\u0066");};if _ffddg .IsHuffmanEncoded {_ffddg ._bgge .Align ();};return _gbacc ,nil ;};func (_ecd *GenericRegion )setOverrideFlag (_bbcd int ){_ecd .GBAtOverride [_bbcd ]=true ; +_ecd ._aeed =true ;};func (_gadab *SymbolDictionary )GetDictionary ()([]*_f .Bitmap ,error ){_age .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 (){_age .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"); +_age .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",_gadab ._ffdg ,_gadab ._ddae ); +}();if _gadab ._ffdg ==nil {var _agbbe error ;if _gadab .UseRefinementAggregation {_gadab ._gdfg =_gadab .getSbSymCodeLen ();};if !_gadab .IsHuffmanEncoded {if _agbbe =_gadab .setCodingStatistics ();_agbbe !=nil {return nil ,_agbbe ;};};_gadab ._ddae =make ([]*_f .Bitmap ,_gadab .NumberOfNewSymbols ); +var _ecgbc []int ;if _gadab .IsHuffmanEncoded &&!_gadab .UseRefinementAggregation {_ecgbc =make ([]int ,_gadab .NumberOfNewSymbols );};if _agbbe =_gadab .setSymbolsArray ();_agbbe !=nil {return nil ,_agbbe ;};var _dagcf ,_bcbg int64 ;_gadab ._cec =0;for _gadab ._cec < _gadab .NumberOfNewSymbols {_bcbg ,_agbbe =_gadab .decodeHeightClassDeltaHeight (); +if _agbbe !=nil {return nil ,_agbbe ;};_dagcf +=_bcbg ;var _ffdef ,_ddcc uint32 ;_daegb :=int64 (_gadab ._cec );for {var _cccb int64 ;_cccb ,_agbbe =_gadab .decodeDifferenceWidth ();if _ec .Is (_agbbe ,_d .ErrOOB ){break ;};if _agbbe !=nil {return nil ,_agbbe ; +};if _gadab ._cec >=_gadab .NumberOfNewSymbols {break ;};_ffdef +=uint32 (_cccb );_ddcc +=_ffdef ;if !_gadab .IsHuffmanEncoded ||_gadab .UseRefinementAggregation {if !_gadab .UseRefinementAggregation {_agbbe =_gadab .decodeDirectlyThroughGenericRegion (_ffdef ,uint32 (_dagcf )); +if _agbbe !=nil {return nil ,_agbbe ;};}else {_agbbe =_gadab .decodeAggregate (_ffdef ,uint32 (_dagcf ));if _agbbe !=nil {return nil ,_agbbe ;};};}else if _gadab .IsHuffmanEncoded &&!_gadab .UseRefinementAggregation {_ecgbc [_gadab ._cec ]=int (_ffdef ); +};_gadab ._cec ++;};if _gadab .IsHuffmanEncoded &&!_gadab .UseRefinementAggregation {var _ffe int64 ;if _gadab .SdHuffBMSizeSelection ==0{var _eeafg _ece .Tabler ;_eeafg ,_agbbe =_ece .GetStandardTable (1);if _agbbe !=nil {return nil ,_agbbe ;};_ffe ,_agbbe =_eeafg .Decode (_gadab ._dabd ); +if _agbbe !=nil {return nil ,_agbbe ;};}else {_ffe ,_agbbe =_gadab .huffDecodeBmSize ();if _agbbe !=nil {return nil ,_agbbe ;};};_gadab ._dabd .Align ();var _ffgb *_f .Bitmap ;_ffgb ,_agbbe =_gadab .decodeHeightClassCollectiveBitmap (_ffe ,uint32 (_dagcf ),_ddcc ); +if _agbbe !=nil {return nil ,_agbbe ;};_agbbe =_gadab .decodeHeightClassBitmap (_ffgb ,_daegb ,int (_dagcf ),_ecgbc );if _agbbe !=nil {return nil ,_agbbe ;};};};_babd ,_agbbe :=_gadab .getToExportFlags ();if _agbbe !=nil {return nil ,_agbbe ;};_gadab .setExportedSymbols (_babd ); +};return _gadab ._ffdg ,nil ;};func (_dcgb *TextRegion )parseHeader ()error {var _ecfb error ;_age .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 _ecfb !=nil {_age .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",_ecfb ); +}else {_age .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 _ecfb =_dcgb .RegionInfo .parseHeader (); +_ecfb !=nil {return _ecfb ;};if _ecfb =_dcgb .readRegionFlags ();_ecfb !=nil {return _ecfb ;};if _dcgb .IsHuffmanEncoded {if _ecfb =_dcgb .readHuffmanFlags ();_ecfb !=nil {return _ecfb ;};};if _ecfb =_dcgb .readUseRefinement ();_ecfb !=nil {return _ecfb ; +};if _ecfb =_dcgb .readAmountOfSymbolInstances ();_ecfb !=nil {return _ecfb ;};if _ecfb =_dcgb .getSymbols ();_ecfb !=nil {return _ecfb ;};if _ecfb =_dcgb .computeSymbolCodeLength ();_ecfb !=nil {return _ecfb ;};if _ecfb =_dcgb .checkInput ();_ecfb !=nil {return _ecfb ; +};_age .Log .Trace ("\u0025\u0073",_dcgb .String ());return nil ;};func (_adcc *PageInformationSegment )readResolution ()error {_cgee ,_bcege :=_adcc ._eade .ReadBits (32);if _bcege !=nil {return _bcege ;};_adcc .ResolutionX =int (_cgee &_a .MaxInt32 ); +_cgee ,_bcege =_adcc ._eade .ReadBits (32);if _bcege !=nil {return _bcege ;};_adcc .ResolutionY =int (_cgee &_a .MaxInt32 );return nil ;};func (_gdac *SymbolDictionary )encodeATFlags (_gfab _c .BinaryWriter )(_gabe int ,_adfc error ){const _bdgge ="\u0065\u006e\u0063\u006f\u0064\u0065\u0041\u0054\u0046\u006c\u0061\u0067\u0073"; +if _gdac .IsHuffmanEncoded ||_gdac .SdTemplate !=0{return 0,nil ;};_bede :=4;if _gdac .SdTemplate !=0{_bede =1;};for _cgfg :=0;_cgfg < _bede ;_cgfg ++{if _adfc =_gfab .WriteByte (byte (_gdac .SdATX [_cgfg ]));_adfc !=nil {return _gabe ,_dg .Wrapf (_adfc ,_bdgge ,"\u0053d\u0041\u0054\u0058\u005b\u0025\u0064]",_cgfg ); +};_gabe ++;if _adfc =_gfab .WriteByte (byte (_gdac .SdATY [_cgfg ]));_adfc !=nil {return _gabe ,_dg .Wrapf (_adfc ,_bdgge ,"\u0053d\u0041\u0054\u0059\u005b\u0025\u0064]",_cgfg );};_gabe ++;};return _gabe ,nil ;};func (_cdead *TextRegion )checkInput ()error {const _gbcf ="\u0063\u0068\u0065\u0063\u006b\u0049\u006e\u0070\u0075\u0074"; +if !_cdead .UseRefinement {if _cdead .SbrTemplate !=0{_age .Log .Debug ("\u0053\u0062\u0072Te\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_cdead .SbrTemplate =0;};};if _cdead .SbHuffFS ==2||_cdead .SbHuffRDWidth ==2||_cdead .SbHuffRDHeight ==2||_cdead .SbHuffRDX ==2||_cdead .SbHuffRDY ==2{return _dg .Error (_gbcf ,"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 !_cdead .UseRefinement {if _cdead .SbHuffRSize !=0{_age .Log .Debug ("\u0053\u0062\u0048uf\u0066\u0052\u0053\u0069\u007a\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_cdead .SbHuffRSize =0;};if _cdead .SbHuffRDY !=0{_age .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044Y\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030"); +_cdead .SbHuffRDY =0;};if _cdead .SbHuffRDX !=0{_age .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044X\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");_cdead .SbHuffRDX =0;};if _cdead .SbHuffRDWidth !=0{_age .Log .Debug ("\u0053b\u0048\u0075\u0066\u0066R\u0044\u0057\u0069\u0064\u0074h\u0020s\u0068o\u0075\u006c\u0064\u0020\u0062\u0065\u00200"); +_cdead .SbHuffRDWidth =0;};if _cdead .SbHuffRDHeight !=0{_age .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");_cdead .SbHuffRDHeight =0;}; +};return nil ;};func (_ccae *TextRegion )Encode (w _c .BinaryWriter )(_ebgac int ,_gec error ){const _ebacb ="\u0054\u0065\u0078\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u002e\u0045n\u0063\u006f\u0064\u0065";if _ebgac ,_gec =_ccae .RegionInfo .Encode (w ); +_gec !=nil {return _ebgac ,_dg .Wrap (_gec ,_ebacb ,"");};var _cfgdg int ;if _cfgdg ,_gec =_ccae .encodeFlags (w );_gec !=nil {return _ebgac ,_dg .Wrap (_gec ,_ebacb ,"");};_ebgac +=_cfgdg ;if _cfgdg ,_gec =_ccae .encodeSymbols (w );_gec !=nil {return _ebgac ,_dg .Wrap (_gec ,_ebacb ,""); +};_ebgac +=_cfgdg ;return _ebgac ,nil ;};func (_ecgd *TextRegion )decodeSymInRefSize ()(int64 ,error ){const _fcfd ="\u0064e\u0063o\u0064\u0065\u0053\u0079\u006dI\u006e\u0052e\u0066\u0053\u0069\u007a\u0065";if _ecgd .SbHuffRSize ==0{_edaeg ,_caace :=_ece .GetStandardTable (1); +if _caace !=nil {return 0,_dg .Wrap (_caace ,_fcfd ,"");};return _edaeg .Decode (_ecgd ._bgge );};if _ecgd ._dccdc ==nil {var (_bgec int ;_daca error ;);if _ecgd .SbHuffFS ==3{_bgec ++;};if _ecgd .SbHuffDS ==3{_bgec ++;};if _ecgd .SbHuffDT ==3{_bgec ++; +};if _ecgd .SbHuffRDWidth ==3{_bgec ++;};if _ecgd .SbHuffRDHeight ==3{_bgec ++;};if _ecgd .SbHuffRDX ==3{_bgec ++;};if _ecgd .SbHuffRDY ==3{_bgec ++;};_ecgd ._dccdc ,_daca =_ecgd .getUserTable (_bgec );if _daca !=nil {return 0,_dg .Wrap (_daca ,_fcfd ,""); +};};_cade ,_cdcg :=_ecgd ._dccdc .Decode (_ecgd ._bgge );if _cdcg !=nil {return 0,_dg .Wrap (_cdcg ,_fcfd ,"");};return _cade ,nil ;};func (_ceec *SymbolDictionary )decodeThroughTextRegion (_fcae ,_ffaf ,_acdff uint32 )error {if _ceec ._fagf ==nil {_ceec ._fagf =_dabc (_ceec ._dabd ,nil ); +_ceec ._fagf .setContexts (_ceec ._cfba ,_cc .NewStats (512,1),_cc .NewStats (512,1),_cc .NewStats (512,1),_cc .NewStats (512,1),_ceec ._fbac ,_cc .NewStats (512,1),_cc .NewStats (512,1),_cc .NewStats (512,1),_cc .NewStats (512,1));};if _dca :=_ceec .setSymbolsArray (); +_dca !=nil {return _dca ;};_ceec ._fagf .setParameters (_ceec ._ded ,_ceec .IsHuffmanEncoded ,true ,_fcae ,_ffaf ,_acdff ,1,_ceec ._acg +_ceec ._cec ,0,0,0,1,0,0,0,0,0,0,0,0,0,_ceec .SdrTemplate ,_ceec .SdrATX ,_ceec .SdrATY ,_ceec ._ecac ,_ceec ._gdfg ); +return _ceec .addSymbol (_ceec ._fagf );};func (_bdfc *Header )writeFlags (_fegbb _c .BinaryWriter )(_cdge error ){const _edfd ="\u0048\u0065\u0061\u0064\u0065\u0072\u002e\u0077\u0072\u0069\u0074\u0065F\u006c\u0061\u0067\u0073";_gdca :=byte (_bdfc .Type ); +if _cdge =_fegbb .WriteByte (_gdca );_cdge !=nil {return _dg .Wrap (_cdge ,_edfd ,"\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 !_bdfc .RetainFlag &&!_bdfc .PageAssociationFieldSize {return nil ;};if _cdge =_fegbb .SkipBits (-8);_cdge !=nil {return _dg .Wrap (_cdge ,_edfd ,"\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 _fbef int ;if _bdfc .RetainFlag {_fbef =1;};if _cdge =_fegbb .WriteBit (_fbef );_cdge !=nil {return _dg .Wrap (_cdge ,_edfd ,"\u0072\u0065\u0074\u0061in\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067\u0073");};_fbef =0;if _bdfc .PageAssociationFieldSize {_fbef =1; +};if _cdge =_fegbb .WriteBit (_fbef );_cdge !=nil {return _dg .Wrap (_cdge ,_edfd ,"p\u0061\u0067\u0065\u0020as\u0073o\u0063\u0069\u0061\u0074\u0069o\u006e\u0020\u0066\u006c\u0061\u0067");};_fegbb .FinishByte ();return nil ;};type GenericRegion struct{_faca *_c .Reader ; +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 ;_aeed bool ; +Bitmap *_f .Bitmap ;_fba *_cc .Decoder ;_fgce *_cc .DecoderStats ;_gag *_ee .Decoder ;};func (_bgecc *TextRegion )readRegionFlags ()error {var (_gfabb int ;_dfbf uint64 ;_cebc error ;);_gfabb ,_cebc =_bgecc ._bgge .ReadBit ();if _cebc !=nil {return _cebc ; +};_bgecc .SbrTemplate =int8 (_gfabb );_dfbf ,_cebc =_bgecc ._bgge .ReadBits (5);if _cebc !=nil {return _cebc ;};_bgecc .SbDsOffset =int8 (_dfbf );if _bgecc .SbDsOffset > 0x0f{_bgecc .SbDsOffset -=0x20;};_gfabb ,_cebc =_bgecc ._bgge .ReadBit ();if _cebc !=nil {return _cebc ; +};_bgecc .DefaultPixel =int8 (_gfabb );_dfbf ,_cebc =_bgecc ._bgge .ReadBits (2);if _cebc !=nil {return _cebc ;};_bgecc .CombinationOperator =_f .CombinationOperator (int (_dfbf )&0x3);_gfabb ,_cebc =_bgecc ._bgge .ReadBit ();if _cebc !=nil {return _cebc ; +};_bgecc .IsTransposed =int8 (_gfabb );_dfbf ,_cebc =_bgecc ._bgge .ReadBits (2);if _cebc !=nil {return _cebc ;};_bgecc .ReferenceCorner =int16 (_dfbf )&0x3;_dfbf ,_cebc =_bgecc ._bgge .ReadBits (2);if _cebc !=nil {return _cebc ;};_bgecc .LogSBStrips =int16 (_dfbf )&0x3; +_bgecc .SbStrips =1<>=8; +if _fdbcb < 0{_dga :=int (_a .Log (float64 (_deb (_fdbcb )))/_a .Log (2));_egda :=31-_dga ;for _caac :=1;_caac < _egda ;_caac ++{_fdbcb |=1<=-int8 (_bec ){_cge |=(_gfdg >>uint (7-(int8 (_bec )+_dfad .GBAtX [0]))&0x1)<<4; +}else {_cge |=int (_dfad .getPixel (_fbadd +int (_dfad .GBAtX [0]),_dbff +int (_dfad .GBAtY [0])))<<4;};return _cge ;};func (_ffge *PageInformationSegment )readCombinationOperatorOverrideAllowed ()error {_egee ,_gage :=_ffge ._eade .ReadBit ();if _gage !=nil {return _gage ; +};if _egee ==1{_ffge ._cbfcb =true ;};return nil ;};func (_dbbf *PageInformationSegment )CombinationOperator ()_f .CombinationOperator {return _dbbf ._dafc };func (_bedac *PatternDictionary )setGbAtPixels (){if _bedac .HDTemplate ==0{_bedac .GBAtX =make ([]int8 ,4); +_bedac .GBAtY =make ([]int8 ,4);_bedac .GBAtX [0]=-int8 (_bedac .HdpWidth );_bedac .GBAtY [0]=0;_bedac .GBAtX [1]=-3;_bedac .GBAtY [1]=-1;_bedac .GBAtX [2]=2;_bedac .GBAtY [2]=-2;_bedac .GBAtX [3]=-2;_bedac .GBAtY [3]=-2;}else {_bedac .GBAtX =[]int8 {-int8 (_bedac .HdpWidth )}; +_bedac .GBAtY =[]int8 {0};};};func (_cbeee *SymbolDictionary )decodeDifferenceWidth ()(int64 ,error ){if _cbeee .IsHuffmanEncoded {switch _cbeee .SdHuffDecodeWidthSelection {case 0:_efde ,_gadb :=_ece .GetStandardTable (2);if _gadb !=nil {return 0,_gadb ; +};return _efde .Decode (_cbeee ._dabd );case 1:_cegada ,_dccd :=_ece .GetStandardTable (3);if _dccd !=nil {return 0,_dccd ;};return _cegada .Decode (_cbeee ._dabd );case 3:if _cbeee ._gagc ==nil {var _adeb int ;if _cbeee .SdHuffDecodeHeightSelection ==3{_adeb ++; +};_dgc ,_ffef :=_cbeee .getUserTable (_adeb );if _ffef !=nil {return 0,_ffef ;};_cbeee ._gagc =_dgc ;};return _cbeee ._gagc .Decode (_cbeee ._dabd );};}else {_bgcb ,_abfg :=_cbeee ._ded .DecodeInt (_cbeee ._ggcfb );if _abfg !=nil {return 0,_abfg ;};return int64 (_bgcb ),nil ; +};return 0,nil ;};func (_bgg *PageInformationSegment )parseHeader ()(_bdfe error ){_age .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 _efdb ="[\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 _bdfe !=nil {_efdb +="\u0020\u0077\u0069t\u0068\u0020\u0065\u0072\u0072\u006f\u0072\u0020"+_bdfe .Error ();}else {_efdb +="\u0020\u0073\u0075\u0063\u0063\u0065\u0073\u0073\u0066\u0075\u006c\u006c\u0079";};_age .Log .Trace (_efdb );}();if _bdfe =_bgg .readWidthAndHeight (); +_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readResolution ();_bdfe !=nil {return _bdfe ;};_ ,_bdfe =_bgg ._eade .ReadBit ();if _bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readCombinationOperatorOverrideAllowed ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readRequiresAuxiliaryBuffer (); +_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readCombinationOperator ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readDefaultPixelValue ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readContainsRefinement ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readIsLossless (); +_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readIsStriped ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readMaxStripeSize ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .checkInput ();_bdfe !=nil {return _bdfe ;};_age .Log .Trace ("\u0025\u0073",_bgg ); +return nil ;};func (_eee *PageInformationSegment )Size ()int {return 19};func (_cdc *GenericRefinementRegion )decodeOptimized (_ffc ,_bgc ,_eeg ,_faf ,_bed ,_dcc ,_dbf int )error {var (_eb error ;_edf int ;_daa int ;);_eegf :=_ffc -int (_cdc .ReferenceDY ); +if _df :=int (-_cdc .ReferenceDX );_df > 0{_edf =_df ;};_dae :=_cdc .ReferenceBitmap .GetByteIndex (_edf ,_eegf );if _cdc .ReferenceDX > 0{_daa =int (_cdc .ReferenceDX );};_ace :=_cdc .RegionBitmap .GetByteIndex (_daa ,_ffc );switch _cdc .TemplateID {case 0:_eb =_cdc .decodeTemplate (_ffc ,_bgc ,_eeg ,_faf ,_bed ,_dcc ,_dbf ,_ace ,_eegf ,_dae ,_cdc ._dc ); +case 1:_eb =_cdc .decodeTemplate (_ffc ,_bgc ,_eeg ,_faf ,_bed ,_dcc ,_dbf ,_ace ,_eegf ,_dae ,_cdc ._af );};return _eb ;};type SegmentEncoder interface{Encode (_affg _c .BinaryWriter )(_gbbc int ,_egef error );};func (_edcb *TextRegion )encodeFlags (_bece _c .BinaryWriter )(_acee int ,_affbf error ){const _fecdb ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073"; +if _affbf =_bece .WriteBit (int (_edcb .SbrTemplate ));_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"s\u0062\u0072\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};if _ ,_affbf =_bece .WriteBits (uint64 (_edcb .SbDsOffset ),5);_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0073\u0062\u0044\u0073\u004f\u0066\u0066\u0073\u0065\u0074"); +};if _affbf =_bece .WriteBit (int (_edcb .DefaultPixel ));_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0044\u0065\u0066a\u0075\u006c\u0074\u0050\u0069\u0078\u0065\u006c");};if _ ,_affbf =_bece .WriteBits (uint64 (_edcb .CombinationOperator ),2); +_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0043\u006f\u006d\u0062in\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065\u0072\u0061\u0074\u006f\u0072");};if _affbf =_bece .WriteBit (int (_edcb .IsTransposed ));_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0069\u0073\u0020\u0074\u0072\u0061\u006e\u0073\u0070\u006f\u0073\u0065\u0064"); +};if _ ,_affbf =_bece .WriteBits (uint64 (_edcb .ReferenceCorner ),2);_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0072\u0065f\u0065\u0072\u0065n\u0063\u0065\u0020\u0063\u006f\u0072\u006e\u0065\u0072");};if _ ,_affbf =_bece .WriteBits (uint64 (_edcb .LogSBStrips ),2); +_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"L\u006f\u0067\u0053\u0042\u0053\u0074\u0072\u0069\u0070\u0073");};var _eddad int ;if _edcb .UseRefinement {_eddad =1;};if _affbf =_bece .WriteBit (_eddad );_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0075\u0073\u0065\u0020\u0072\u0065\u0066\u0069\u006ee\u006d\u0065\u006e\u0074"); +};_eddad =0;if _edcb .IsHuffmanEncoded {_eddad =1;};if _affbf =_bece .WriteBit (_eddad );_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"u\u0073\u0065\u0020\u0068\u0075\u0066\u0066\u006d\u0061\u006e");};_acee =2;return _acee ,nil ;};func (_gcd *PageInformationSegment )readIsStriped ()error {_gbac ,_adbg :=_gcd ._eade .ReadBit (); +if _adbg !=nil {return _adbg ;};if _gbac ==1{_gcd .IsStripe =true ;};return nil ;};func (_aggc *RegionSegment )parseHeader ()error {const _bbbfb ="p\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072";_age .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 (){_age .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");}();_fefd ,_bbfa :=_aggc ._fcaf .ReadBits (32); +if _bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"\u0077\u0069\u0064t\u0068");};_aggc .BitmapWidth =uint32 (_fefd &_a .MaxUint32 );_fefd ,_bbfa =_aggc ._fcaf .ReadBits (32);if _bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"\u0068\u0065\u0069\u0067\u0068\u0074"); +};_aggc .BitmapHeight =uint32 (_fefd &_a .MaxUint32 );_fefd ,_bbfa =_aggc ._fcaf .ReadBits (32);if _bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"\u0078\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_aggc .XLocation =uint32 (_fefd &_a .MaxUint32 ); +_fefd ,_bbfa =_aggc ._fcaf .ReadBits (32);if _bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"\u0079\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_aggc .YLocation =uint32 (_fefd &_a .MaxUint32 );if _ ,_bbfa =_aggc ._fcaf .ReadBits (5);_bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"\u0064i\u0072\u0079\u0020\u0072\u0065\u0061d"); +};if _bbfa =_aggc .readCombinationOperator ();_bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};return nil ;};func (_adbd *PageInformationSegment )readWidthAndHeight ()error {_fbd ,_bgccc :=_adbd ._eade .ReadBits (32); +if _bgccc !=nil {return _bgccc ;};_adbd .PageBMWidth =int (_fbd &_a .MaxInt32 );_fbd ,_bgccc =_adbd ._eade .ReadBits (32);if _bgccc !=nil {return _bgccc ;};_adbd .PageBMHeight =int (_fbd &_a .MaxInt32 );return nil ;};func (_dfgg *PageInformationSegment )encodeFlags (_ccggg _c .BinaryWriter )(_adbb error ){const _egcd ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073"; +if _adbb =_ccggg .SkipBits (1);_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\u0072\u0065\u0073e\u0072\u0076\u0065\u0064\u0020\u0062\u0069\u0074");};var _gdcb int ;if _dfgg .CombinationOperatorOverrideAllowed (){_gdcb =1;};if _adbb =_ccggg .WriteBit (_gdcb ); +_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\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");};_gdcb =0;if _dfgg ._bdag {_gdcb =1; +};if _adbb =_ccggg .WriteBit (_gdcb );_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\u0072e\u0071\u0075\u0069\u0072e\u0073\u0020\u0061\u0075\u0078i\u006ci\u0061r\u0079\u0020\u0062\u0075\u0066\u0066\u0065r");};if _adbb =_ccggg .WriteBit ((int (_dfgg ._dafc )>>1)&0x01); +_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\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 _adbb =_ccggg .WriteBit (int (_dfgg ._dafc )&0x01); +_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\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");};_gdcb =int (_dfgg .DefaultPixelValue ); +if _adbb =_ccggg .WriteBit (_gdcb );_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\u0064e\u0066\u0061\u0075\u006c\u0074\u0020\u0070\u0061\u0067\u0065\u0020p\u0069\u0078\u0065\u006c\u0020\u0076\u0061\u006c\u0075\u0065");};_gdcb =0;if _dfgg ._fabe {_gdcb =1; +};if _adbb =_ccggg .WriteBit (_gdcb );_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\u0063\u006f\u006e\u0074ai\u006e\u0073\u0020\u0072\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074");};_gdcb =0;if _dfgg .IsLossless {_gdcb =1;};if _adbb =_ccggg .WriteBit (_gdcb ); +_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"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 ;};type RegionSegment struct{_fcaf *_c .Reader ;BitmapWidth uint32 ; +BitmapHeight uint32 ;XLocation uint32 ;YLocation uint32 ;CombinaionOperator _f .CombinationOperator ;};func (_fdeb *GenericRegion )updateOverrideFlags ()error {const _bga ="\u0075\u0070\u0064\u0061te\u004f\u0076\u0065\u0072\u0072\u0069\u0064\u0065\u0046\u006c\u0061\u0067\u0073"; +if _fdeb .GBAtX ==nil ||_fdeb .GBAtY ==nil {return nil ;};if len (_fdeb .GBAtX )!=len (_fdeb .GBAtY ){return _dg .Errorf (_bga ,"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 (_fdeb .GBAtX ),len (_fdeb .GBAtY )); +};_fdeb .GBAtOverride =make ([]bool ,len (_fdeb .GBAtX ));switch _fdeb .GBTemplate {case 0:if !_fdeb .UseExtTemplates {if _fdeb .GBAtX [0]!=3||_fdeb .GBAtY [0]!=-1{_fdeb .setOverrideFlag (0);};if _fdeb .GBAtX [1]!=-3||_fdeb .GBAtY [1]!=-1{_fdeb .setOverrideFlag (1); +};if _fdeb .GBAtX [2]!=2||_fdeb .GBAtY [2]!=-2{_fdeb .setOverrideFlag (2);};if _fdeb .GBAtX [3]!=-2||_fdeb .GBAtY [3]!=-2{_fdeb .setOverrideFlag (3);};}else {if _fdeb .GBAtX [0]!=-2||_fdeb .GBAtY [0]!=0{_fdeb .setOverrideFlag (0);};if _fdeb .GBAtX [1]!=0||_fdeb .GBAtY [1]!=-2{_fdeb .setOverrideFlag (1); +};if _fdeb .GBAtX [2]!=-2||_fdeb .GBAtY [2]!=-1{_fdeb .setOverrideFlag (2);};if _fdeb .GBAtX [3]!=-1||_fdeb .GBAtY [3]!=-2{_fdeb .setOverrideFlag (3);};if _fdeb .GBAtX [4]!=1||_fdeb .GBAtY [4]!=-2{_fdeb .setOverrideFlag (4);};if _fdeb .GBAtX [5]!=2||_fdeb .GBAtY [5]!=-1{_fdeb .setOverrideFlag (5); +};if _fdeb .GBAtX [6]!=-3||_fdeb .GBAtY [6]!=0{_fdeb .setOverrideFlag (6);};if _fdeb .GBAtX [7]!=-4||_fdeb .GBAtY [7]!=0{_fdeb .setOverrideFlag (7);};if _fdeb .GBAtX [8]!=2||_fdeb .GBAtY [8]!=-2{_fdeb .setOverrideFlag (8);};if _fdeb .GBAtX [9]!=3||_fdeb .GBAtY [9]!=-1{_fdeb .setOverrideFlag (9); +};if _fdeb .GBAtX [10]!=-2||_fdeb .GBAtY [10]!=-2{_fdeb .setOverrideFlag (10);};if _fdeb .GBAtX [11]!=-3||_fdeb .GBAtY [11]!=-1{_fdeb .setOverrideFlag (11);};};case 1:if _fdeb .GBAtX [0]!=3||_fdeb .GBAtY [0]!=-1{_fdeb .setOverrideFlag (0);};case 2:if _fdeb .GBAtX [0]!=2||_fdeb .GBAtY [0]!=-1{_fdeb .setOverrideFlag (0); +};case 3:if _fdeb .GBAtX [0]!=2||_fdeb .GBAtY [0]!=-1{_fdeb .setOverrideFlag (0);};};return nil ;};func (_ffbf *TextRegion )decodeDfs ()(int64 ,error ){if _ffbf .IsHuffmanEncoded {if _ffbf .SbHuffFS ==3{if _ffbf ._fdabc ==nil {var _dfcd error ;_ffbf ._fdabc ,_dfcd =_ffbf .getUserTable (0); +if _dfcd !=nil {return 0,_dfcd ;};};return _ffbf ._fdabc .Decode (_ffbf ._bgge );};_bdbb ,_baedc :=_ece .GetStandardTable (6+int (_ffbf .SbHuffFS ));if _baedc !=nil {return 0,_baedc ;};return _bdbb .Decode (_ffbf ._bgge );};_daef ,_fccc :=_ffbf ._cefb .DecodeInt (_ffbf ._dfca ); +if _fccc !=nil {return 0,_fccc ;};return int64 (_daef ),nil ;};func (_dbba *Header )parse (_abb Documenter ,_ecdc *_c .Reader ,_fdbed int64 ,_ggbg OrganizationType )(_dgdd error ){const _bbfe ="\u0070\u0061\u0072s\u0065";_age .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 _dgdd !=nil {_age .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",_dgdd );}else {_age .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"); +};}();_ ,_dgdd =_ecdc .Seek (_fdbed ,_ed .SeekStart );if _dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"\u0073\u0065\u0065\u006b\u0020\u0073\u0074\u0061\u0072\u0074");};if _dgdd =_dbba .readSegmentNumber (_ecdc );_dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,""); +};if _dgdd =_dbba .readHeaderFlags ();_dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");};var _bgaa uint64 ;_bgaa ,_dgdd =_dbba .readNumberOfReferredToSegments (_ecdc );if _dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");};_dbba .RTSNumbers ,_dgdd =_dbba .readReferredToSegmentNumbers (_ecdc ,int (_bgaa )); +if _dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");};_dgdd =_dbba .readSegmentPageAssociation (_abb ,_ecdc ,_bgaa ,_dbba .RTSNumbers ...);if _dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");};if _dbba .Type !=TEndOfFile {if _dgdd =_dbba .readSegmentDataLength (_ecdc ); +_dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");};};_dbba .readDataStartOffset (_ecdc ,_ggbg );_dbba .readHeaderLength (_ecdc ,_fdbed );_age .Log .Trace ("\u0025\u0073",_dbba );return nil ;};func (_adeg *TableSegment )HtLow ()int32 {return _adeg ._gdb }; +var (_gfbe Segmenter ;_ddab =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 _gfbe },TEndOfStrip :func ()Segmenter {return &EndOfStripe {}},TEndOfFile :func ()Segmenter {return _gfbe },TProfiles :func ()Segmenter {return _gfbe },TTables :func ()Segmenter {return &TableSegment {}},TExtension :func ()Segmenter {return _gfbe },TBitmap :func ()Segmenter {return _gfbe }}; +);func (_dgec *TableSegment )StreamReader ()*_c .Reader {return _dgec ._adbf };func (_aefg *TextRegion )decodeRI ()(int64 ,error ){if !_aefg .UseRefinement {return 0,nil ;};if _aefg .IsHuffmanEncoded {_eded ,_fdce :=_aefg ._bgge .ReadBit ();return int64 (_eded ),_fdce ; +};_afbe ,_ecdg :=_aefg ._cefb .DecodeInt (_aefg ._adbfe );return int64 (_afbe ),_ecdg ;};func (_bfge *GenericRegion )writeGBAtPixels (_gcbf _c .BinaryWriter )(_daead int ,_fbgf error ){const _bgcc ="\u0077r\u0069t\u0065\u0047\u0042\u0041\u0074\u0050\u0069\u0078\u0065\u006c\u0073"; +if _bfge .UseMMR {return 0,nil ;};_bfd :=1;if _bfge .GBTemplate ==0{_bfd =4;}else if _bfge .UseExtTemplates {_bfd =12;};if len (_bfge .GBAtX )!=_bfd {return 0,_dg .Errorf (_bgcc ,"\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 (_bfge .GBAtY )!=_bfd {return 0,_dg .Errorf (_bgcc ,"\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 _bgbg :=0;_bgbg < _bfd ;_bgbg ++{if _fbgf =_gcbf .WriteByte (byte (_bfge .GBAtX [_bgbg ]));_fbgf !=nil {return _daead ,_dg .Wrap (_fbgf ,_bgcc ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0058");};_daead ++;if _fbgf =_gcbf .WriteByte (byte (_bfge .GBAtY [_bgbg ])); +_fbgf !=nil {return _daead ,_dg .Wrap (_fbgf ,_bgcc ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0059");};_daead ++;};return _daead ,nil ;};func (_fdbg *GenericRegion )getPixel (_ebga ,_beddc int )int8 {if _ebga < 0||_ebga >=_fdbg .Bitmap .Width {return 0; +};if _beddc < 0||_beddc >=_fdbg .Bitmap .Height {return 0;};if _fdbg .Bitmap .GetPixel (_ebga ,_beddc ){return 1;};return 0;};func (_fegf *Header )readSegmentDataLength (_gddb *_c .Reader )(_dbeaa error ){_fegf .SegmentDataLength ,_dbeaa =_gddb .ReadBits (32); +if _dbeaa !=nil {return _dbeaa ;};_fegf .SegmentDataLength &=_a .MaxInt32 ;return nil ;};func (_acdf *GenericRefinementRegion )parseHeader ()(_gfe error ){_age .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"); +_aga :=_bd .Now ();defer func (){if _gfe ==nil {_age .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",_bd .Since (_aga ).Nanoseconds ()); +}else {_age .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",_gfe ); +};}();if _gfe =_acdf .RegionInfo .parseHeader ();_gfe !=nil {return _gfe ;};_ ,_gfe =_acdf ._bf .ReadBits (6);if _gfe !=nil {return _gfe ;};_acdf .IsTPGROn ,_gfe =_acdf ._bf .ReadBool ();if _gfe !=nil {return _gfe ;};var _egc int ;_egc ,_gfe =_acdf ._bf .ReadBit (); +if _gfe !=nil {return _gfe ;};_acdf .TemplateID =int8 (_egc );switch _acdf .TemplateID {case 0:_acdf .Template =_acdf ._dc ;if _gfe =_acdf .readAtPixels ();_gfe !=nil {return _gfe ;};case 1:_acdf .Template =_acdf ._af ;};return nil ;};func (_gbga *TextRegion )InitEncode (globalSymbolsMap ,localSymbolsMap map[int ]int ,comps []int ,inLL *_f .Points ,symbols *_f .Bitmaps ,classIDs *_ag .IntSlice ,boxes *_f .Boxes ,width ,height ,symBits int ){_gbga .RegionInfo =&RegionSegment {BitmapWidth :uint32 (width ),BitmapHeight :uint32 (height )}; +_gbga ._eafd =globalSymbolsMap ;_gbga ._fgf =localSymbolsMap ;_gbga ._ebab =comps ;_gbga ._efcg =inLL ;_gbga ._afcg =symbols ;_gbga ._eebf =classIDs ;_gbga ._dddb =boxes ;_gbga ._abccf =symBits ;};func (_ecae *GenericRegion )decodeTemplate0b (_dagf ,_gdgba ,_aag int ,_cgcf ,_edb int )(_facb error ){const _agbb ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0062"; +var (_fdf ,_gdc int ;_fef ,_bdcf int ;_cbg byte ;_ffbb int ;);if _dagf >=1{_cbg ,_facb =_ecae .Bitmap .GetByte (_edb );if _facb !=nil {return _dg .Wrap (_facb ,_agbb ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_fef =int (_cbg );};if _dagf >=2{_cbg ,_facb =_ecae .Bitmap .GetByte (_edb -_ecae .Bitmap .RowStride ); +if _facb !=nil {return _dg .Wrap (_facb ,_agbb ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_bdcf =int (_cbg )<<6;};_fdf =(_fef &0xf0)|(_bdcf &0x3800);for _dab :=0;_dab < _aag ;_dab =_ffbb {var (_cgfa byte ;_fbad int ;);_ffbb =_dab +8;if _ede :=_gdgba -_dab ; +_ede > 8{_fbad =8;}else {_fbad =_ede ;};if _dagf > 0{_fef <<=8;if _ffbb < _gdgba {_cbg ,_facb =_ecae .Bitmap .GetByte (_edb +1);if _facb !=nil {return _dg .Wrap (_facb ,_agbb ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_fef |=int (_cbg );};}; +if _dagf > 1{_bdcf <<=8;if _ffbb < _gdgba {_cbg ,_facb =_ecae .Bitmap .GetByte (_edb -_ecae .Bitmap .RowStride +1);if _facb !=nil {return _dg .Wrap (_facb ,_agbb ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_bdcf |=int (_cbg )<<6;};};for _abcc :=0; +_abcc < _fbad ;_abcc ++{_bdgd :=uint (7-_abcc );if _ecae ._aeed {_gdc =_ecae .overrideAtTemplate0b (_fdf ,_dab +_abcc ,_dagf ,int (_cgfa ),_abcc ,int (_bdgd ));_ecae ._fgce .SetIndex (int32 (_gdc ));}else {_ecae ._fgce .SetIndex (int32 (_fdf ));};var _cfdc int ; +_cfdc ,_facb =_ecae ._fba .DecodeBit (_ecae ._fgce );if _facb !=nil {return _dg .Wrap (_facb ,_agbb ,"");};_cgfa |=byte (_cfdc <<_bdgd );_fdf =((_fdf &0x7bf7)<<1)|_cfdc |((_fef >>_bdgd )&0x10)|((_bdcf >>_bdgd )&0x800);};if _cee :=_ecae .Bitmap .SetByte (_cgcf ,_cgfa ); +_cee !=nil {return _dg .Wrap (_cee ,_agbb ,"");};_cgcf ++;_edb ++;};return nil ;};func (_caa *GenericRegion )GetRegionBitmap ()(_fda *_f .Bitmap ,_cdd error ){if _caa .Bitmap !=nil {return _caa .Bitmap ,nil ;};if _caa .IsMMREncoded {if _caa ._gag ==nil {_caa ._gag ,_cdd =_ee .New (_caa ._faca ,int (_caa .RegionSegment .BitmapWidth ),int (_caa .RegionSegment .BitmapHeight ),_caa .DataOffset ,_caa .DataLength ); +if _cdd !=nil {return nil ,_cdd ;};};_caa .Bitmap ,_cdd =_caa ._gag .UncompressMMR ();return _caa .Bitmap ,_cdd ;};if _cdd =_caa .updateOverrideFlags ();_cdd !=nil {return nil ,_cdd ;};var _fecd int ;if _caa ._fba ==nil {_caa ._fba ,_cdd =_cc .New (_caa ._faca ); +if _cdd !=nil {return nil ,_cdd ;};};if _caa ._fgce ==nil {_caa ._fgce =_cc .NewStats (65536,1);};_caa .Bitmap =_f .New (int (_caa .RegionSegment .BitmapWidth ),int (_caa .RegionSegment .BitmapHeight ));_adc :=int (uint32 (_caa .Bitmap .Width +7)&(^uint32 (7))); +for _gafa :=0;_gafa < _caa .Bitmap .Height ;_gafa ++{if _caa .IsTPGDon {var _acde int ;_acde ,_cdd =_caa .decodeSLTP ();if _cdd !=nil {return nil ,_cdd ;};_fecd ^=_acde ;};if _fecd ==1{if _gafa > 0{if _cdd =_caa .copyLineAbove (_gafa );_cdd !=nil {return nil ,_cdd ; +};};}else {if _cdd =_caa .decodeLine (_gafa ,_caa .Bitmap .Width ,_adc );_cdd !=nil {return nil ,_cdd ;};};};return _caa .Bitmap ,nil ;};func (_ggcfa *TextRegion )getSymbols ()error {if _ggcfa .Header .RTSegments !=nil {return _ggcfa .initSymbols ();}; +return nil ;};func (_dagaa *SymbolDictionary )setRefinementAtPixels ()error {if !_dagaa .UseRefinementAggregation ||_dagaa .SdrTemplate !=0{return nil ;};if _dbed :=_dagaa .readRefinementAtPixels (2);_dbed !=nil {return _dbed ;};return nil ;};func (_cdff *SymbolDictionary )setInSyms ()error {if _cdff .Header .RTSegments !=nil {return _cdff .retrieveImportSymbols (); +};_cdff ._dfbg =make ([]*_f .Bitmap ,0);return nil ;};func (_abeb *TextRegion )encodeSymbols (_feed _c .BinaryWriter )(_ccgf int ,_baedg error ){const _fagdf ="\u0065\u006e\u0063\u006f\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c\u0073";_aegd :=make ([]byte ,4); +_b .BigEndian .PutUint32 (_aegd ,_abeb .NumberOfSymbols );if _ccgf ,_baedg =_feed .Write (_aegd );_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"\u004e\u0075\u006dbe\u0072\u004f\u0066\u0053\u0079\u006d\u0062\u006f\u006c\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0073"); +};_afccb ,_baedg :=_f .NewClassedPoints (_abeb ._efcg ,_abeb ._ebab );if _baedg !=nil {return 0,_dg .Wrap (_baedg ,_fagdf ,"");};var _cfcb ,_fcdf int ;_aegc :=_bdc .New ();_aegc .Init ();if _baedg =_aegc .EncodeInteger (_bdc .IADT ,0);_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0020\u0044\u0054"); +};_dcaa ,_baedg :=_afccb .GroupByY ();if _baedg !=nil {return 0,_dg .Wrap (_baedg ,_fagdf ,"");};for _ ,_fcdag :=range _dcaa {_dacc :=int (_fcdag .YAtIndex (0));_cbae :=_dacc -_cfcb ;if _baedg =_aegc .EncodeInteger (_bdc .IADT ,_cbae );_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,""); +};var _abeeg int ;for _gdae ,_dggde :=range _fcdag .IntSlice {switch _gdae {case 0:_efda :=int (_fcdag .XAtIndex (_gdae ))-_fcdf ;if _baedg =_aegc .EncodeInteger (_bdc .IAFS ,_efda );_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"");};_fcdf +=_efda ; +_abeeg =_fcdf ;default:_fdaga :=int (_fcdag .XAtIndex (_gdae ))-_abeeg ;if _baedg =_aegc .EncodeInteger (_bdc .IADS ,_fdaga );_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"");};_abeeg +=_fdaga ;};_gabee ,_ccfd :=_abeb ._eebf .Get (_dggde );if _ccfd !=nil {return _ccgf ,_dg .Wrap (_ccfd ,_fagdf ,""); +};_aeeg ,_dgbd :=_abeb ._eafd [_gabee ];if !_dgbd {_aeeg ,_dgbd =_abeb ._fgf [_gabee ];if !_dgbd {return _ccgf ,_dg .Errorf (_fagdf ,"\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",_gabee ); +};};if _ccfd =_aegc .EncodeIAID (_abeb ._abccf ,_aeeg );_ccfd !=nil {return _ccgf ,_dg .Wrap (_ccfd ,_fagdf ,"");};};if _baedg =_aegc .EncodeOOB (_bdc .IADS );_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"");};};_aegc .Final ();_bfa ,_baedg :=_aegc .WriteTo (_feed ); +if _baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"");};_ccgf +=int (_bfa );return _ccgf ,nil ;};func (_caef *TextRegion )GetRegionInfo ()*RegionSegment {return _caef .RegionInfo };type Segmenter interface{Init (_ceaa *Header ,_gabaf *_c .Reader )error ; +};func (_bgd *GenericRefinementRegion )decodeTypicalPredictedLineTemplate1 (_dff ,_dce ,_ggg ,_ddb ,_ffb ,_feb ,_cef ,_ba ,_gba int )(_aed error ){var (_agg ,_ecf int ;_fgg ,_aeb int ;_bbb ,_ecg int ;_gdd byte ;);if _dff > 0{_gdd ,_aed =_bgd .RegionBitmap .GetByte (_cef -_ggg ); +if _aed !=nil {return _aed ;};_fgg =int (_gdd );};if _ba > 0&&_ba <=_bgd .ReferenceBitmap .Height {_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba -_ddb +_feb );if _aed !=nil {return _aed ;};_aeb =int (_gdd )<<2;};if _ba >=0&&_ba < _bgd .ReferenceBitmap .Height {_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba +_feb ); +if _aed !=nil {return _aed ;};_bbb =int (_gdd );};if _ba > -2&&_ba < _bgd .ReferenceBitmap .Height -1{_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba +_ddb +_feb );if _aed !=nil {return _aed ;};_ecg =int (_gdd );};_agg =((_fgg >>5)&0x6)|((_ecg >>2)&0x30)|(_bbb &0xc0)|(_aeb &0x200); +_ecf =((_ecg >>2)&0x70)|(_bbb &0xc0)|(_aeb &0x700);var _de int ;for _fcd :=0;_fcd < _ffb ;_fcd =_de {var (_dbg int ;_acda int ;);_de =_fcd +8;if _dbg =_dce -_fcd ;_dbg > 8{_dbg =8;};_ddc :=_de < _dce ;_fed :=_de < _bgd .ReferenceBitmap .Width ;_cfg :=_feb +1; +if _dff > 0{_gdd =0;if _ddc {_gdd ,_aed =_bgd .RegionBitmap .GetByte (_cef -_ggg +1);if _aed !=nil {return _aed ;};};_fgg =(_fgg <<8)|int (_gdd );};if _ba > 0&&_ba <=_bgd .ReferenceBitmap .Height {var _bda int ;if _fed {_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba -_ddb +_cfg ); +if _aed !=nil {return _aed ;};_bda =int (_gdd )<<2;};_aeb =(_aeb <<8)|_bda ;};if _ba >=0&&_ba < _bgd .ReferenceBitmap .Height {_gdd =0;if _fed {_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba +_cfg );if _aed !=nil {return _aed ;};};_bbb =(_bbb <<8)|int (_gdd ); +};if _ba > -2&&_ba < (_bgd .ReferenceBitmap .Height -1){_gdd =0;if _fed {_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba +_ddb +_cfg );if _aed !=nil {return _aed ;};};_ecg =(_ecg <<8)|int (_gdd );};for _ca :=0;_ca < _dbg ;_ca ++{var _bge int ;_gfg :=(_ecf >>4)&0x1ff; +switch _gfg {case 0x1ff:_bge =1;case 0x00:_bge =0;default:_bgd ._cd .SetIndex (int32 (_agg ));_bge ,_aed =_bgd ._gaf .DecodeBit (_bgd ._cd );if _aed !=nil {return _aed ;};};_ccgb :=uint (7-_ca );_acda |=_bge <<_ccgb ;_agg =((_agg &0x0d6)<<1)|_bge |(_fgg >>_ccgb +5)&0x002|((_ecg >>_ccgb +2)&0x010)|((_bbb >>_ccgb )&0x040)|((_aeb >>_ccgb )&0x200); +_ecf =((_ecf &0xdb)<<1)|((_ecg >>_ccgb +2)&0x010)|((_bbb >>_ccgb )&0x080)|((_aeb >>_ccgb )&0x400);};_aed =_bgd .RegionBitmap .SetByte (_cef ,byte (_acda ));if _aed !=nil {return _aed ;};_cef ++;_gba ++;};return nil ;};func (_dbca *SymbolDictionary )readRegionFlags ()error {var (_dadd uint64 ; +_gdgde int ;);_ ,_efa :=_dbca ._dabd .ReadBits (3);if _efa !=nil {return _efa ;};_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};_dbca .SdrTemplate =int8 (_gdgde );_dadd ,_efa =_dbca ._dabd .ReadBits (2);if _efa !=nil {return _efa ; +};_dbca .SdTemplate =int8 (_dadd &0xf);_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};if _gdgde ==1{_dbca ._eegc =true ;};_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};if _gdgde ==1{_dbca ._eaf =true ;};_gdgde ,_efa =_dbca ._dabd .ReadBit (); +if _efa !=nil {return _efa ;};if _gdgde ==1{_dbca .SdHuffAggInstanceSelection =true ;};_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};_dbca .SdHuffBMSizeSelection =int8 (_gdgde );_dadd ,_efa =_dbca ._dabd .ReadBits (2);if _efa !=nil {return _efa ; +};_dbca .SdHuffDecodeWidthSelection =int8 (_dadd &0xf);_dadd ,_efa =_dbca ._dabd .ReadBits (2);if _efa !=nil {return _efa ;};_dbca .SdHuffDecodeHeightSelection =int8 (_dadd &0xf);_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};if _gdgde ==1{_dbca .UseRefinementAggregation =true ; +};_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};if _gdgde ==1{_dbca .IsHuffmanEncoded =true ;};return nil ;};func (_ccee *TextRegion )readHuffmanFlags ()error {var (_gcac int ;_gbgd uint64 ;_gfce error ;);_ ,_gfce =_ccee ._bgge .ReadBit (); +if _gfce !=nil {return _gfce ;};_gcac ,_gfce =_ccee ._bgge .ReadBit ();if _gfce !=nil {return _gfce ;};_ccee .SbHuffRSize =int8 (_gcac );_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;};_ccee .SbHuffRDY =int8 (_gbgd )&0xf;_gbgd ,_gfce =_ccee ._bgge .ReadBits (2); +if _gfce !=nil {return _gfce ;};_ccee .SbHuffRDX =int8 (_gbgd )&0xf;_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;};_ccee .SbHuffRDHeight =int8 (_gbgd )&0xf;_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ; +};_ccee .SbHuffRDWidth =int8 (_gbgd )&0xf;_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;};_ccee .SbHuffDT =int8 (_gbgd )&0xf;_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;};_ccee .SbHuffDS =int8 (_gbgd )&0xf; +_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;};_ccee .SbHuffFS =int8 (_gbgd )&0xf;return nil ;};func (_ebfbb *TextRegion )readAmountOfSymbolInstances ()error {_aafd ,_aade :=_ebfbb ._bgge .ReadBits (32);if _aade !=nil {return _aade ; +};_ebfbb .NumberOfSymbolInstances =uint32 (_aafd &_a .MaxUint32 );_gdcd :=_ebfbb .RegionInfo .BitmapWidth *_ebfbb .RegionInfo .BitmapHeight ;if _gdcd < _ebfbb .NumberOfSymbolInstances {_age .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",_gdcd ,_ebfbb .NumberOfSymbolInstances ); +_ebfbb .NumberOfSymbolInstances =_gdcd ;};return nil ;};func (_cabc *SymbolDictionary )decodeHeightClassCollectiveBitmap (_gcff int64 ,_baccb ,_febc uint32 )(*_f .Bitmap ,error ){if _gcff ==0{_fgee :=_f .New (int (_febc ),int (_baccb ));var (_dgaa byte ; +_cgb error ;);for _ecbb :=0;_ecbb < len (_fgee .Data );_ecbb ++{_dgaa ,_cgb =_cabc ._dabd .ReadByte ();if _cgb !=nil {return nil ,_cgb ;};if _cgb =_fgee .SetByte (_ecbb ,_dgaa );_cgb !=nil {return nil ,_cgb ;};};return _fgee ,nil ;};if _cabc ._cddgf ==nil {_cabc ._cddgf =NewGenericRegion (_cabc ._dabd ); +};_cabc ._cddgf .setParameters (true ,_cabc ._dabd .AbsolutePosition (),_gcff ,_baccb ,_febc );_abab ,_cagb :=_cabc ._cddgf .GetRegionBitmap ();if _cagb !=nil {return nil ,_cagb ;};return _abab ,nil ;};func (_afcd *GenericRegion )readGBAtPixels (_aedg int )error {const _gedg ="\u0072\u0065\u0061\u0064\u0047\u0042\u0041\u0074\u0050i\u0078\u0065\u006c\u0073"; +_afcd .GBAtX =make ([]int8 ,_aedg );_afcd .GBAtY =make ([]int8 ,_aedg );for _ccbf :=0;_ccbf < _aedg ;_ccbf ++{_aggd ,_efd :=_afcd ._faca .ReadByte ();if _efd !=nil {return _dg .Wrapf (_efd ,_gedg ,"\u0058\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_ccbf ); +};_afcd .GBAtX [_ccbf ]=int8 (_aggd );_aggd ,_efd =_afcd ._faca .ReadByte ();if _efd !=nil {return _dg .Wrapf (_efd ,_gedg ,"\u0059\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_ccbf );};_afcd .GBAtY [_ccbf ]=int8 (_aggd );};return nil ; +};func (_gfcc *Header )referenceSize ()uint {switch {case _gfcc .SegmentNumber <=255:return 1;case _gfcc .SegmentNumber <=65535:return 2;default:return 4;};};func (_eff *GenericRegion )decodeTemplate3 (_bgde ,_eeab ,_dbaa int ,_dea ,_dcd int )(_gggg error ){const _fdab ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0033"; +var (_cbfg ,_dfgd int ;_ffbg int ;_dgfg byte ;_gbadb ,_gef int ;);if _bgde >=1{_dgfg ,_gggg =_eff .Bitmap .GetByte (_dcd );if _gggg !=nil {return _dg .Wrap (_gggg ,_fdab ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_ffbg =int (_dgfg );};_cbfg =(_ffbg >>1)&0x70; +for _baf :=0;_baf < _dbaa ;_baf =_gbadb {var (_ceacd byte ;_fdbc int ;);_gbadb =_baf +8;if _afbc :=_eeab -_baf ;_afbc > 8{_fdbc =8;}else {_fdbc =_afbc ;};if _bgde >=1{_ffbg <<=8;if _gbadb < _eeab {_dgfg ,_gggg =_eff .Bitmap .GetByte (_dcd +1);if _gggg !=nil {return _dg .Wrap (_gggg ,_fdab ,"\u0069\u006e\u006e\u0065\u0072\u0020\u002d\u0020\u006c\u0069\u006e\u0065 \u003e\u003d\u0020\u0031"); +};_ffbg |=int (_dgfg );};};for _gede :=0;_gede < _fdbc ;_gede ++{if _eff ._aeed {_dfgd =_eff .overrideAtTemplate3 (_cbfg ,_baf +_gede ,_bgde ,int (_ceacd ),_gede );_eff ._fgce .SetIndex (int32 (_dfgd ));}else {_eff ._fgce .SetIndex (int32 (_cbfg ));};_gef ,_gggg =_eff ._fba .DecodeBit (_eff ._fgce ); +if _gggg !=nil {return _dg .Wrap (_gggg ,_fdab ,"");};_ceacd |=byte (_gef )<>uint (8-_gede ))&0x010);};if _fffd :=_eff .Bitmap .SetByte (_dea ,_ceacd );_fffd !=nil {return _dg .Wrap (_fffd ,_fdab ,""); +};_dea ++;_dcd ++;};return nil ;};func (_ffbc *PatternDictionary )GetDictionary ()([]*_f .Bitmap ,error ){if _ffbc .Patterns !=nil {return _ffbc .Patterns ,nil ;};if !_ffbc .IsMMREncoded {_ffbc .setGbAtPixels ();};_agad :=NewGenericRegion (_ffbc ._ebcg ); +_agad .setParametersMMR (_ffbc .IsMMREncoded ,_ffbc .DataOffset ,_ffbc .DataLength ,uint32 (_ffbc .HdpHeight ),(_ffbc .GrayMax +1)*uint32 (_ffbc .HdpWidth ),_ffbc .HDTemplate ,false ,false ,_ffbc .GBAtX ,_ffbc .GBAtY );_efdg ,_acb :=_agad .GetRegionBitmap (); +if _acb !=nil {return nil ,_acb ;};if _acb =_ffbc .extractPatterns (_efdg );_acb !=nil {return nil ,_acb ;};return _ffbc .Patterns ,nil ;};func (_cf *EndOfStripe )LineNumber ()int {return _cf ._cce };func NewRegionSegment (r *_c .Reader )*RegionSegment {return &RegionSegment {_fcaf :r }}; +type EndOfStripe struct{_ff *_c .Reader ;_cce int ;};type PageInformationSegment struct{_eade *_c .Reader ;PageBMHeight int ;PageBMWidth int ;ResolutionX int ;ResolutionY int ;_cbfcb bool ;_dafc _f .CombinationOperator ;_bdag bool ;DefaultPixelValue uint8 ; +_fabe bool ;IsLossless bool ;IsStripe bool ;MaxStripeSize uint16 ;};func (_fgec *TextRegion )decodeIds ()(int64 ,error ){const _dbfdf ="\u0064e\u0063\u006f\u0064\u0065\u0049\u0064s";if _fgec .IsHuffmanEncoded {if _fgec .SbHuffDS ==3{if _fgec ._cbge ==nil {_cbgf :=0; +if _fgec .SbHuffFS ==3{_cbgf ++;};var _abbd error ;_fgec ._cbge ,_abbd =_fgec .getUserTable (_cbgf );if _abbd !=nil {return 0,_dg .Wrap (_abbd ,_dbfdf ,"");};};return _fgec ._cbge .Decode (_fgec ._bgge );};_ddedd ,_ffgae :=_ece .GetStandardTable (8+int (_fgec .SbHuffDS )); +if _ffgae !=nil {return 0,_dg .Wrap (_ffgae ,_dbfdf ,"");};return _ddedd .Decode (_fgec ._bgge );};_cggd ,_fgfa :=_fgec ._cefb .DecodeInt (_fgec ._cgbe );if _fgfa !=nil {return 0,_dg .Wrap (_fgfa ,_dbfdf ,"\u0063\u0078\u0049\u0041\u0044\u0053");};return int64 (_cggd ),nil ; +};func (_fdbad *Header )readSegmentPageAssociation (_dec Documenter ,_edbg *_c .Reader ,_fbae uint64 ,_ada ...int )(_efe error ){const _bdad ="\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 !_fdbad .PageAssociationFieldSize {_dacd ,_afbcd :=_edbg .ReadBits (8);if _afbcd !=nil {return _dg .Wrap (_afbcd ,_bdad ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_fdbad .PageAssociation =int (_dacd &0xFF);}else {_ddee ,_gefg :=_edbg .ReadBits (32); +if _gefg !=nil {return _dg .Wrap (_gefg ,_bdad ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_fdbad .PageAssociation =int (_ddee &_a .MaxInt32 );};if _fbae ==0{return nil ;};if _fdbad .PageAssociation !=0{_dafg ,_ead :=_dec .GetPage (_fdbad .PageAssociation ); +if _ead !=nil {return _dg .Wrap (_ead ,_bdad ,"\u0061s\u0073\u006f\u0063\u0069a\u0074\u0065\u0064\u0020\u0070a\u0067e\u0020n\u006f\u0074\u0020\u0066\u006f\u0075\u006ed");};var _cbfc int ;for _cff :=uint64 (0);_cff < _fbae ;_cff ++{_cbfc =_ada [_cff ];_fdbad .RTSegments [_cff ],_ead =_dafg .GetSegment (_cbfc ); +if _ead !=nil {var _fbgee error ;_fdbad .RTSegments [_cff ],_fbgee =_dec .GetGlobalSegment (_cbfc );if _fbgee !=nil {return _dg .Wrapf (_ead ,_bdad ,"\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",_fdbad .PageAssociation ); +};};};return nil ;};for _daeag :=uint64 (0);_daeag < _fbae ;_daeag ++{_fdbad .RTSegments [_daeag ],_efe =_dec .GetGlobalSegment (_ada [_daeag ]);if _efe !=nil {return _dg .Wrapf (_efe ,_bdad ,"\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",_ada [_daeag ]); +};};return nil ;};func (_bc *GenericRefinementRegion )decodeTypicalPredictedLine (_gbg ,_dbe ,_gc ,_cdcb ,_fec ,_fd int )error {_cb :=_gbg -int (_bc .ReferenceDY );_ggc :=_bc .ReferenceBitmap .GetByteIndex (0,_cb );_ceg :=_bc .RegionBitmap .GetByteIndex (0,_gbg ); +var _adf error ;switch _bc .TemplateID {case 0:_adf =_bc .decodeTypicalPredictedLineTemplate0 (_gbg ,_dbe ,_gc ,_cdcb ,_fec ,_fd ,_ceg ,_cb ,_ggc );case 1:_adf =_bc .decodeTypicalPredictedLineTemplate1 (_gbg ,_dbe ,_gc ,_cdcb ,_fec ,_fd ,_ceg ,_cb ,_ggc ); +};return _adf ;};func (_eedf *TextRegion )decodeSymbolInstances ()error {_fcba ,_gece :=_eedf .decodeStripT ();if _gece !=nil {return _gece ;};var (_cgbc int64 ;_cacae uint32 ;);for _cacae < _eedf .NumberOfSymbolInstances {_cgfc ,_babb :=_eedf .decodeDT (); +if _babb !=nil {return _babb ;};_fcba +=_cgfc ;var _ggdca int64 ;_ebfd :=true ;_eedf ._defb =0;for {if _ebfd {_ggdca ,_babb =_eedf .decodeDfs ();if _babb !=nil {return _babb ;};_cgbc +=_ggdca ;_eedf ._defb =_cgbc ;_ebfd =false ;}else {_fbf ,_fegd :=_eedf .decodeIds (); +if _ec .Is (_fegd ,_d .ErrOOB ){break ;};if _fegd !=nil {return _fegd ;};if _cacae >=_eedf .NumberOfSymbolInstances {break ;};_eedf ._defb +=_fbf +int64 (_eedf .SbDsOffset );};_cecg ,_cdeac :=_eedf .decodeCurrentT ();if _cdeac !=nil {return _cdeac ;};_befg :=_fcba +_cecg ; +_cdbdc ,_cdeac :=_eedf .decodeID ();if _cdeac !=nil {return _cdeac ;};_eag ,_cdeac :=_eedf .decodeRI ();if _cdeac !=nil {return _cdeac ;};_gddg ,_cdeac :=_eedf .decodeIb (_eag ,_cdbdc );if _cdeac !=nil {return _cdeac ;};if _cdeac =_eedf .blit (_gddg ,_befg ); +_cdeac !=nil {return _cdeac ;};_cacae ++;};};return nil ;};func (_acea *SymbolDictionary )huffDecodeRefAggNInst ()(int64 ,error ){if !_acea .SdHuffAggInstanceSelection {_deaa ,_feba :=_ece .GetStandardTable (1);if _feba !=nil {return 0,_feba ;};return _deaa .Decode (_acea ._dabd ); +};if _acea ._afec ==nil {var (_fegbbd int ;_bbdb error ;);if _acea .SdHuffDecodeHeightSelection ==3{_fegbbd ++;};if _acea .SdHuffDecodeWidthSelection ==3{_fegbbd ++;};if _acea .SdHuffBMSizeSelection ==3{_fegbbd ++;};_acea ._afec ,_bbdb =_acea .getUserTable (_fegbbd ); +if _bbdb !=nil {return 0,_bbdb ;};};return _acea ._afec .Decode (_acea ._dabd );};func (_gbbd *PatternDictionary )checkInput ()error {if _gbbd .HdpHeight < 1||_gbbd .HdpWidth < 1{return _ec .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 _gbbd .IsMMREncoded {if _gbbd .HDTemplate !=0{_age .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 (_fcag *TextRegion )initSymbols ()error {const _badaf ="i\u006e\u0069\u0074\u0053\u0079\u006d\u0062\u006f\u006c\u0073";for _ ,_dadeb :=range _fcag .Header .RTSegments {if _dadeb ==nil {return _dg .Error (_badaf ,"\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 _dadeb .Type ==0{_ffcdf ,_ecab :=_dadeb .GetSegmentData ();if _ecab !=nil {return _dg .Wrap (_ecab ,_badaf ,"");};_gcgg ,_bdgc :=_ffcdf .(*SymbolDictionary );if !_bdgc {return _dg .Error (_badaf ,"\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"); +};_gcgg ._fbac =_fcag ._eadb ;_dcbf ,_ecab :=_gcgg .GetDictionary ();if _ecab !=nil {return _dg .Wrap (_ecab ,_badaf ,"");};_fcag .Symbols =append (_fcag .Symbols ,_dcbf ...);};};_fcag .NumberOfSymbols =uint32 (len (_fcag .Symbols ));return nil ;};type OrganizationType uint8 ; +func (_aef *HalftoneRegion )GetRegionInfo ()*RegionSegment {return _aef .RegionSegment };func (_aagc *TextRegion )decodeRdx ()(int64 ,error ){const _bgefg ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064x";if _aagc .IsHuffmanEncoded {if _aagc .SbHuffRDX ==3{if _aagc ._acgf ==nil {var (_fdbeb int ; +_agcf error ;);if _aagc .SbHuffFS ==3{_fdbeb ++;};if _aagc .SbHuffDS ==3{_fdbeb ++;};if _aagc .SbHuffDT ==3{_fdbeb ++;};if _aagc .SbHuffRDWidth ==3{_fdbeb ++;};if _aagc .SbHuffRDHeight ==3{_fdbeb ++;};_aagc ._acgf ,_agcf =_aagc .getUserTable (_fdbeb ); +if _agcf !=nil {return 0,_dg .Wrap (_agcf ,_bgefg ,"");};};return _aagc ._acgf .Decode (_aagc ._bgge );};_cadg ,_daad :=_ece .GetStandardTable (14+int (_aagc .SbHuffRDX ));if _daad !=nil {return 0,_dg .Wrap (_daad ,_bgefg ,"");};return _cadg .Decode (_aagc ._bgge ); +};_bdda ,_fega :=_aagc ._cefb .DecodeInt (_aagc ._aaba );if _fega !=nil {return 0,_dg .Wrap (_fega ,_bgefg ,"");};return int64 (_bdda ),nil ;};type TableSegment struct{_adbf *_c .Reader ;_egcdd int32 ;_beea int32 ;_baed int32 ;_gdb int32 ;_ggdc int32 ; +};func (_fccd *PatternDictionary )readGrayMax ()error {_adcce ,_gbbg :=_fccd ._ebcg .ReadBits (32);if _gbbg !=nil {return _gbbg ;};_fccd .GrayMax =uint32 (_adcce &_a .MaxUint32 );return nil ;};func (_dcad *TableSegment )Init (h *Header ,r *_c .Reader )error {_dcad ._adbf =r ; +return _dcad .parseHeader ();};func (_dcbg *SymbolDictionary )readRefinementAtPixels (_faeg int )error {_dcbg .SdrATX =make ([]int8 ,_faeg );_dcbg .SdrATY =make ([]int8 ,_faeg );var (_agde byte ;_fada error ;);for _eegfac :=0;_eegfac < _faeg ;_eegfac ++{_agde ,_fada =_dcbg ._dabd .ReadByte (); +if _fada !=nil {return _fada ;};_dcbg .SdrATX [_eegfac ]=int8 (_agde );_agde ,_fada =_dcbg ._dabd .ReadByte ();if _fada !=nil {return _fada ;};_dcbg .SdrATY [_eegfac ]=int8 (_agde );};return nil ;};type Header struct{SegmentNumber uint32 ;Type Type ;RetainFlag bool ; +PageAssociation int ;PageAssociationFieldSize bool ;RTSegments []*Header ;HeaderLength int64 ;SegmentDataLength uint64 ;SegmentDataStartOffset uint64 ;Reader *_c .Reader ;SegmentData Segmenter ;RTSNumbers []int ;RetainBits []uint8 ;};func (_ggee *PageInformationSegment )readIsLossless ()error {_cceg ,_dcba :=_ggee ._eade .ReadBit (); +if _dcba !=nil {return _dcba ;};if _cceg ==1{_ggee .IsLossless =true ;};return nil ;};func (_eea *GenericRefinementRegion )GetRegionBitmap ()(*_f .Bitmap ,error ){var _fg error ;_age .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 _fg !=nil {_age .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",_fg ); +}else {_age .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 _eea .RegionBitmap !=nil {return _eea .RegionBitmap ,nil ;};_fa :=0;if _eea .ReferenceBitmap ==nil {_eea .ReferenceBitmap ,_fg =_eea .getGrReference ();if _fg !=nil {return nil ,_fg ;};};if _eea ._gaf ==nil {_eea ._gaf ,_fg =_cc .New (_eea ._bf ); +if _fg !=nil {return nil ,_fg ;};};if _eea ._cd ==nil {_eea ._cd =_cc .NewStats (8192,1);};_eea .RegionBitmap =_f .New (int (_eea .RegionInfo .BitmapWidth ),int (_eea .RegionInfo .BitmapHeight ));if _eea .TemplateID ==0{if _fg =_eea .updateOverride (); +_fg !=nil {return nil ,_fg ;};};_da :=(_eea .RegionBitmap .Width +7)&-8;var _fe int ;if _eea .IsTPGROn {_fe =int (-_eea .ReferenceDY )*_eea .ReferenceBitmap .RowStride ;};_bg :=_fe +1;for _bb :=0;_bb < _eea .RegionBitmap .Height ;_bb ++{if _eea .IsTPGROn {_bdce ,_ac :=_eea .decodeSLTP (); +if _ac !=nil {return nil ,_ac ;};_fa ^=_bdce ;};if _fa ==0{_fg =_eea .decodeOptimized (_bb ,_eea .RegionBitmap .Width ,_eea .RegionBitmap .RowStride ,_eea .ReferenceBitmap .RowStride ,_da ,_fe ,_bg );if _fg !=nil {return nil ,_fg ;};}else {_fg =_eea .decodeTypicalPredictedLine (_bb ,_eea .RegionBitmap .Width ,_eea .RegionBitmap .RowStride ,_eea .ReferenceBitmap .RowStride ,_da ,_fe ); +if _fg !=nil {return nil ,_fg ;};};};return _eea .RegionBitmap ,nil ;};func (_cgae *Header )GetSegmentData ()(Segmenter ,error ){var _cgg Segmenter ;if _cgae .SegmentData !=nil {_cgg =_cgae .SegmentData ;};if _cgg ==nil {_cae ,_ccfg :=_ddab [_cgae .Type ]; +if !_ccfg {return nil ,_gb .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",_cgae .Type ,_cgae .Type );};_cgg =_cae (); +_age .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",_cgae .SegmentNumber ,_cgae .SegmentDataStartOffset ); +_fab ,_cbad :=_cgae .subInputReader ();if _cbad !=nil {return nil ,_cbad ;};if _faeb :=_cgg .Init (_cgae ,_fab );_faeb !=nil {_age .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",_faeb ,_cgg ); +return nil ,_faeb ;};_cgae .SegmentData =_cgg ;};return _cgg ,nil ;};func (_cccdd *Header )writeSegmentNumber (_bbgb _c .BinaryWriter )(_bacg int ,_affd error ){_abdg :=make ([]byte ,4);_b .BigEndian .PutUint32 (_abdg ,_cccdd .SegmentNumber );if _bacg ,_affd =_bbgb .Write (_abdg ); +_affd !=nil {return 0,_dg .Wrap (_affd ,"\u0048e\u0061\u0064\u0065\u0072.\u0077\u0072\u0069\u0074\u0065S\u0065g\u006de\u006e\u0074\u004e\u0075\u006d\u0062\u0065r","");};return _bacg ,nil ;};func (_eaaf *TextRegion )decodeDT ()(_dccc int64 ,_ddfb error ){if _eaaf .IsHuffmanEncoded {if _eaaf .SbHuffDT ==3{_dccc ,_ddfb =_eaaf ._bddg .Decode (_eaaf ._bgge ); +if _ddfb !=nil {return 0,_ddfb ;};}else {var _ddfff _ece .Tabler ;_ddfff ,_ddfb =_ece .GetStandardTable (11+int (_eaaf .SbHuffDT ));if _ddfb !=nil {return 0,_ddfb ;};_dccc ,_ddfb =_ddfff .Decode (_eaaf ._bgge );if _ddfb !=nil {return 0,_ddfb ;};};}else {var _gcbaf int32 ; +_gcbaf ,_ddfb =_eaaf ._cefb .DecodeInt (_eaaf ._fecfa );if _ddfb !=nil {return 0,_ddfb ;};_dccc =int64 (_gcbaf );};_dccc *=int64 (_eaaf .SbStrips );return _dccc ,nil ;};func (_aaaa *PageInformationSegment )CombinationOperatorOverrideAllowed ()bool {return _aaaa ._cbfcb }; +func (_gaba *Header )pageSize ()uint {if _gaba .PageAssociation <=255{return 1;};return 4;};func (_abgad *SymbolDictionary )decodeHeightClassDeltaHeight ()(int64 ,error ){if _abgad .IsHuffmanEncoded {return _abgad .decodeHeightClassDeltaHeightWithHuffman (); +};_fdfa ,_fdca :=_abgad ._ded .DecodeInt (_abgad ._adbgg );if _fdca !=nil {return 0,_fdca ;};return int64 (_fdfa ),nil ;};func (_dcgc *Header )subInputReader ()(*_c .Reader ,error ){_fedd :=int (_dcgc .SegmentDataLength );if _dcgc .SegmentDataLength ==_a .MaxInt32 {_fedd =-1; +};return _dcgc .Reader .NewPartialReader (int (_dcgc .SegmentDataStartOffset ),_fedd ,false );};var _ templater =&template1 {};func (_febe *SymbolDictionary )addSymbol (_dfefc Regioner )error {_adfcb ,_ebac :=_dfefc .GetRegionBitmap ();if _ebac !=nil {return _ebac ; +};_febe ._ddae [_febe ._cec ]=_adfcb ;_febe ._ecac =append (_febe ._ecac ,_adfcb );_age .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",_adfcb ); +return nil ;}; \ No newline at end of file -- cgit v1.2.3