12 lines
11 KiB
Go
Raw Normal View History

2020-08-27 21:45:09 +00:00
//
// 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/
2020-12-06 13:03:03 +00:00
package huffman ;import (_ac "errors";_a "fmt";_fb "github.com/unidoc/unipdf/v3/internal/bitwise";_c "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_gd "math";_g "strings";);func (_aca *FixedSizeTable )RootNode ()*InternalNode {return _aca ._ce };type Node interface{Decode (_cfg _fb .StreamReader )(int64 ,error );String ()string ;};var _ Tabler =&EncodedTable {};type InternalNode struct{_cfb int32 ;_fbb Node ;_cbgc Node ;};func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_ab :=&EncodedTable {_b :&InternalNode {},BasicTabler :table };if _gb :=_ab .parseTable ();_gb !=nil {return nil ,_gb ;};return _ab ,nil ;};type Code struct{_dg int32 ;_bef int32 ;_gad int32 ;_cgd bool ;_caf int32 ;};func _age (_agb int32 )*InternalNode {return &InternalNode {_cfb :_agb }};func (_da *EncodedTable )InitTree (codeTable []*Code )error {_fca (codeTable );for _ ,_dc :=range codeTable {if _db :=_da ._b .append (_dc );_db !=nil {return _db ;};};return nil ;};func (_gdg *EncodedTable )Decode (r _fb .StreamReader )(int64 ,error ){return _gdg ._b .Decode (r )};func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_bg :=&FixedSizeTable {_ce :&InternalNode {}};if _afd :=_bg .InitTree (codeTable );_afd !=nil {return nil ,_afd ;};return _bg ,nil ;};func (_df *InternalNode )Decode (r _fb .StreamReader )(int64 ,error ){_cef ,_abe :=r .ReadBit ();if _abe !=nil {return 0,_abe ;};if _cef ==0{return _df ._fbb .Decode (r );};return _df ._cbgc .Decode (r );};func (_ba *OutOfBandNode )Decode (r _fb .StreamReader )(int64 ,error ){return 0,_c .ErrOOB };func (_ad *StandardTable )String ()string {return _ad ._bf .String ()+"\u000a"};func (_cd *OutOfBandNode )String ()string {return _a .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_gd .MaxInt64 ));};func (_cba *ValueNode )String ()string {return _a .Sprintf ("\u0025\u0064\u002f%\u0064",_cba ._afc ,_cba ._ggbf );};func (_cfge *InternalNode )pad (_gda *_g .Builder ){for _fcg :=int32 (0);_fcg < _cfge ._cfb ;_fcg ++{_gda .WriteString ("\u0020\u0020\u0020");};};func (_cg *StandardTable )InitTree (codeTable []*Code )error {_fca (codeTable );for _ ,_bgf :=range codeTable {if _gf :=_cg ._bf .append (_bgf );_gf !=nil {return _gf ;};};return nil ;};func (_dbg *InternalNode )append (_bb *Code )(_de error ){if _bb ._dg ==0{return nil ;};_dec :=_bb ._dg -1-_dbg ._cfb ;if _dec < 0{return _ac .New ("\u004e\u0065\u0067\u0061\u0074\u0069\u0076\u0065\u0020\u0073\u0068\u0069\u0066\u0074\u0069n\u0067 \u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006c\u006c\u006f\u0077\u0065\u0064");};_ddd :=(_bb ._caf >>uint (_dec ))&0x1;if _dec ==0{if _bb ._bef ==-1{if _ddd ==1{if _dbg ._cbgc !=nil {return _a .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_bb );};_dbg ._cbgc =_cda (_bb );}else {if _dbg ._fbb !=nil {return _a .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_bb );};_dbg ._fbb =_cda (_bb );};}else {if _ddd ==1{if _dbg ._cbgc !=nil {return _a .Errorf ("\u0056\u0061\u006cue\u0020\u004e\u006f\u0064\u0065\u0020\u0061\u006c\u0072e\u0061d\u0079 \u0073e\u0074\u0020\u0066\u006f\u0072\u0020\u0063\u006f\u0064\u0065\u0020\u0025\u0073",_bb );};_dbg ._cbgc =_ca (_bb );}else {if _dbg ._fbb !=nil {return _a .Errorf ("\u0056\u0061\u006cue\u0020\u004e\u006f\u0064\u0065\u0020\u0061\u006c\u0072e\u0061d\u0079 \u0073e\u0074\u0020\u0066\u006f\u0072\u0020\u0063\u006f\u0064\u0065\u0020\u0025\u0073",_bb );};_dbg ._fbb =_ca (_bb );};};}else {if _ddd ==1{if _dbg ._cbgc ==nil {_dbg ._cbgc =_age (_dbg ._cfb +1);};if _de =_dbg ._cbgc .(*InternalNode ).append (_bb );_de !=nil {return _de ;};}else {if _dbg ._fbb ==nil {_dbg ._fbb =_age (_dbg ._cfb +1);};if _de =_dbg ._fbb .(*InternalNode ).append (_bb );_de !=nil {return _de ;};};};return nil ;};func (_gg *EncodedTable )parseTable ()error {var (_cf []*Code ;_ggf ,_fg ,_cbg int32 ;_ef uint64 ;_af error ;);_eb :=_gg .StreamReader ();_ebb :=_gg .HtLow ();for _ebb < _gg .HtHigh (){