mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-05 19:30:30 +08:00
45 lines
11 KiB
Go
45 lines
11 KiB
Go
//
|
|
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
|
//
|
|
// This is a commercial product and requires a license to operate.
|
|
// A trial license can be obtained at https://unidoc.io
|
|
//
|
|
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
|
//
|
|
// Use of this source code is governed by the UniDoc End User License Agreement
|
|
// terms that can be accessed at https://unidoc.io/eula/
|
|
|
|
package huffman ;import (_a "errors";_gf "fmt";_b "github.com/unidoc/unipdf/v3/internal/bitwise";_c "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_bb "math";_g "strings";);func _bdg (_cd int32 )*InternalNode {return &InternalNode {_fg :_cd }};var _ Node =&ValueNode {};
|
|
var _ebd =[][][]int32 {{{1,4,0},{2,8,16},{3,16,272},{3,32,65808}},{{1,0,0},{2,0,1},{3,0,2},{4,3,3},{5,6,11},{6,32,75},{6,-1,0}},{{8,8,-256},{1,0,0},{2,0,1},{3,0,2},{4,3,3},{5,6,11},{8,32,-257,999},{7,32,75},{6,-1,0}},{{1,0,1},{2,0,2},{3,0,3},{4,3,4},{5,6,12},{5,32,76}},{{7,8,-255},{1,0,1},{2,0,2},{3,0,3},{4,3,4},{5,6,12},{7,32,-256,999},{6,32,76}},{{5,10,-2048},{4,9,-1024},{4,8,-512},{4,7,-256},{5,6,-128},{5,5,-64},{4,5,-32},{2,7,0},{3,7,128},{3,8,256},{4,9,512},{4,10,1024},{6,32,-2049,999},{6,32,2048}},{{4,9,-1024},{3,8,-512},{4,7,-256},{5,6,-128},{5,5,-64},{4,5,-32},{4,5,0},{5,5,32},{5,6,64},{4,7,128},{3,8,256},{3,9,512},{3,10,1024},{5,32,-1025,999},{5,32,2048}},{{8,3,-15},{9,1,-7},{8,1,-5},{9,0,-3},{7,0,-2},{4,0,-1},{2,1,0},{5,0,2},{6,0,3},{3,4,4},{6,1,20},{4,4,22},{4,5,38},{5,6,70},{5,7,134},{6,7,262},{7,8,390},{6,10,646},{9,32,-16,999},{9,32,1670},{2,-1,0}},{{8,4,-31},{9,2,-15},{8,2,-11},{9,1,-7},{7,1,-5},{4,1,-3},{3,1,-1},{3,1,1},{5,1,3},{6,1,5},{3,5,7},{6,2,39},{4,5,43},{4,6,75},{5,7,139},{5,8,267},{6,8,523},{7,9,779},{6,11,1291},{9,32,-32,999},{9,32,3339},{2,-1,0}},{{7,4,-21},{8,0,-5},{7,0,-4},{5,0,-3},{2,2,-2},{5,0,2},{6,0,3},{7,0,4},{8,0,5},{2,6,6},{5,5,70},{6,5,102},{6,6,134},{6,7,198},{6,8,326},{6,9,582},{6,10,1094},{7,11,2118},{8,32,-22,999},{8,32,4166},{2,-1,0}},{{1,0,1},{2,1,2},{4,0,4},{4,1,5},{5,1,7},{5,2,9},{6,2,13},{7,2,17},{7,3,21},{7,4,29},{7,5,45},{7,6,77},{7,32,141}},{{1,0,1},{2,0,2},{3,1,3},{5,0,5},{5,1,6},{6,1,8},{7,0,10},{7,1,11},{7,2,13},{7,3,17},{7,4,25},{8,5,41},{8,32,73}},{{1,0,1},{3,0,2},{4,0,3},{5,0,4},{4,1,5},{3,3,7},{6,1,15},{6,2,17},{6,3,21},{6,4,29},{6,5,45},{7,6,77},{7,32,141}},{{3,0,-2},{3,0,-1},{1,0,0},{3,0,1},{3,0,2}},{{7,4,-24},{6,2,-8},{5,1,-4},{4,0,-2},{3,0,-1},{1,0,0},{3,0,1},{4,0,2},{5,1,3},{6,2,5},{7,4,9},{7,32,-25,999},{7,32,25}}};
|
|
var _ Tabler =&EncodedTable {};type InternalNode struct{_fg int32 ;_eb Node ;_efg Node ;};func (_dea *Code )String ()string {var _ebb string ;if _dea ._ced !=-1{_ebb =_dcg (_dea ._ced ,_dea ._cgg );}else {_ebb ="\u003f";};return _gf .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_ebb ,_dea ._cgg ,_dea ._ea ,_dea ._acf );
|
|
};func (_gb *OutOfBandNode )String ()string {return _gf .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_bb .MaxInt64 ));};type FixedSizeTable struct{_f *InternalNode };func (_cg *FixedSizeTable )Decode (r _b .StreamReader )(int64 ,error ){return _cg ._f .Decode (r )};
|
|
func (_gaa *InternalNode )Decode (r _b .StreamReader )(int64 ,error ){_ggg ,_dbg :=r .ReadBit ();if _dbg !=nil {return 0,_dbg ;};if _ggg ==0{return _gaa ._eb .Decode (r );};return _gaa ._efg .Decode (r );};var _cdb =make ([]Tabler ,len (_ebd ));func (_edaf *FixedSizeTable )InitTree (codeTable []*Code )error {_edag (codeTable );
|
|
for _ ,_bgf :=range codeTable {_ab :=_edaf ._f .append (_bgf );if _ab !=nil {return _ab ;};};return nil ;};var _ Node =&OutOfBandNode {};func (_de *StandardTable )String ()string {return _de ._dbe .String ()+"\u000a"};type Tabler interface{Decode (_fbg _b .StreamReader )(int64 ,error );
|
|
InitTree (_fgd []*Code )error ;String ()string ;RootNode ()*InternalNode ;};func (_ef *OutOfBandNode )Decode (r _b .StreamReader )(int64 ,error ){return 0,_c .ErrOOB };type StandardTable struct{_dbe *InternalNode };func (_fb *StandardTable )RootNode ()*InternalNode {return _fb ._dbe };
|
|
type OutOfBandNode struct{};func (_aaf *EncodedTable )String ()string {return _aaf ._bd .String ()+"\u000a"};func (_cca *StandardTable )InitTree (codeTable []*Code )error {_edag (codeTable );for _ ,_eg :=range codeTable {if _bdf :=_cca ._dbe .append (_eg );
|
|
_bdf !=nil {return _bdf ;};};return nil ;};func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_ae :=&FixedSizeTable {_f :&InternalNode {}};if _aafa :=_ae .InitTree (codeTable );_aafa !=nil {return nil ,_aafa ;};return _ae ,nil ;};type ValueNode struct{_cc int32 ;
|
|
_bf int32 ;_df bool ;};func _afa (_efd ,_dgag int32 )int32 {if _efd > _dgag {return _efd ;};return _dgag ;};func (_bc *ValueNode )Decode (r _b .StreamReader )(int64 ,error ){_fe ,_dg :=r .ReadBits (byte (_bc ._cc ));if _dg !=nil {return 0,_dg ;};if _bc ._df {_fe =-_fe ;
|
|
};return int64 (_bc ._bf )+int64 (_fe ),nil ;};func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_cdb ){return nil ,_a .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");};_eed :=_cdb [number -1];
|
|
if _eed ==nil {var _ebc error ;_eed ,_ebc =_fa (_ebd [number -1]);if _ebc !=nil {return nil ,_ebc ;};_cdb [number -1]=_eed ;};return _eed ,nil ;};func (_bdc *FixedSizeTable )RootNode ()*InternalNode {return _bdc ._f };type Node interface{Decode (_cfd _b .StreamReader )(int64 ,error );
|
|
String ()string ;};func (_aa *EncodedTable )RootNode ()*InternalNode {return _aa ._bd };var _ Node =&InternalNode {};func _edag (_faf []*Code ){var _eae int32 ;for _ ,_bbg :=range _faf {_eae =_afa (_eae ,_bbg ._cgg );};_fbb :=make ([]int32 ,_eae +1);for _ ,_def :=range _faf {_fbb [_def ._cgg ]++;
|
|
};var _gbf int32 ;_bdef :=make ([]int32 ,len (_fbb )+1);_fbb [0]=0;for _gbb :=int32 (1);_gbb <=int32 (len (_fbb ));_gbb ++{_bdef [_gbb ]=(_bdef [_gbb -1]+(_fbb [_gbb -1]))<<1;_gbf =_bdef [_gbb ];for _ ,_beg :=range _faf {if _beg ._cgg ==_gbb {_beg ._ced =_gbf ;
|
|
_gbf ++;};};};};func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_cgg :prefixLength ,_ea :rangeLength ,_acf :rangeLow ,_dgae :isLowerRange ,_ced :-1};};func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_gg :=&EncodedTable {_bd :&InternalNode {},BasicTabler :table };
|
|
if _ec :=_gg .parseTable ();_ec !=nil {return nil ,_ec ;};return _gg ,nil ;};func _fc (_fcd *Code )*ValueNode {return &ValueNode {_cc :_fcd ._ea ,_bf :_fcd ._acf ,_df :_fcd ._dgae }};type Code struct{_cgg int32 ;_ea int32 ;_acf int32 ;_dgae bool ;_ced int32 ;
|
|
};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_b .StreamReader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};func _fa (_dab [][]int32 )(*StandardTable ,error ){var _abb []*Code ;for _fbc :=0;_fbc < len (_dab );_fbc ++{_ag :=_dab [_fbc ][0];
|
|
_dfa :=_dab [_fbc ][1];_gad :=_dab [_fbc ][2];var _fag bool ;if len (_dab [_fbc ])> 3{_fag =true ;};_abb =append (_abb ,NewCode (_ag ,_dfa ,_gad ,_fag ));};_bdcf :=&StandardTable {_dbe :_bdg (0)};if _fd :=_bdcf .InitTree (_abb );_fd !=nil {return nil ,_fd ;
|
|
};return _bdcf ,nil ;};type EncodedTable struct{BasicTabler ;_bd *InternalNode ;};func (_cf *EncodedTable )parseTable ()error {var (_gd []*Code ;_dce ,_cfe ,_be int32 ;_ce uint64 ;_eda error ;);_bg :=_cf .StreamReader ();_ga :=_cf .HtLow ();for _ga < _cf .HtHigh (){_ce ,_eda =_bg .ReadBits (byte (_cf .HtPS ()));
|
|
if _eda !=nil {return _eda ;};_dce =int32 (_ce );_ce ,_eda =_bg .ReadBits (byte (_cf .HtRS ()));if _eda !=nil {return _eda ;};_cfe =int32 (_ce );_gd =append (_gd ,NewCode (_dce ,_cfe ,_be ,false ));_ga +=1<<uint (_cfe );};_ce ,_eda =_bg .ReadBits (byte (_cf .HtPS ()));
|
|
if _eda !=nil {return _eda ;};_dce =int32 (_ce );_cfe =32;_be =_cf .HtLow ()-1;_gd =append (_gd ,NewCode (_dce ,_cfe ,_be ,true ));_ce ,_eda =_bg .ReadBits (byte (_cf .HtPS ()));if _eda !=nil {return _eda ;};_dce =int32 (_ce );_cfe =32;_be =_cf .HtHigh ();
|
|
_gd =append (_gd ,NewCode (_dce ,_cfe ,_be ,false ));if _cf .HtOOB ()==1{_ce ,_eda =_bg .ReadBits (byte (_cf .HtPS ()));if _eda !=nil {return _eda ;};_dce =int32 (_ce );_gd =append (_gd ,NewCode (_dce ,-1,-1,false ));};if _eda =_cf .InitTree (_gd );_eda !=nil {return _eda ;
|
|
};return nil ;};func _dcg (_age ,_beb int32 )string {var _acc int32 ;_bgc :=make ([]rune ,_beb );for _dcc :=int32 (1);_dcc <=_beb ;_dcc ++{_acc =_age >>uint (_beb -_dcc )&1;if _acc !=0{_bgc [_dcc -1]='1';}else {_bgc [_dcc -1]='0';};};return string (_bgc );
|
|
};func (_dga *InternalNode )append (_ggga *Code )(_fcc error ){if _ggga ._cgg ==0{return nil ;};_af :=_ggga ._cgg -1-_dga ._fg ;if _af < 0{return _a .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");
|
|
};_ca :=(_ggga ._ced >>uint (_af ))&0x1;if _af ==0{if _ggga ._ea ==-1{if _ca ==1{if _dga ._efg !=nil {return _gf .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_ggga );
|
|
};_dga ._efg =_ecc (_ggga );}else {if _dga ._eb !=nil {return _gf .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_ggga );};_dga ._eb =_ecc (_ggga );};
|
|
}else {if _ca ==1{if _dga ._efg !=nil {return _gf .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",_ggga );};_dga ._efg =_fc (_ggga );
|
|
}else {if _dga ._eb !=nil {return _gf .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",_ggga );};_dga ._eb =_fc (_ggga );
|
|
};};}else {if _ca ==1{if _dga ._efg ==nil {_dga ._efg =_bdg (_dga ._fg +1);};if _fcc =_dga ._efg .(*InternalNode ).append (_ggga );_fcc !=nil {return _fcc ;};}else {if _dga ._eb ==nil {_dga ._eb =_bdg (_dga ._fg +1);};if _fcc =_dga ._eb .(*InternalNode ).append (_ggga );
|
|
_fcc !=nil {return _fcc ;};};};return nil ;};func (_db *FixedSizeTable )String ()string {return _db ._f .String ()+"\u000a"};func (_ac *EncodedTable )InitTree (codeTable []*Code )error {_edag (codeTable );for _ ,_ge :=range codeTable {if _dd :=_ac ._bd .append (_ge );
|
|
_dd !=nil {return _dd ;};};return nil ;};func (_aae *InternalNode )pad (_ccf *_g .Builder ){for _gba :=int32 (0);_gba < _aae ._fg ;_gba ++{_ccf .WriteString ("\u0020\u0020\u0020");};};func (_d *EncodedTable )Decode (r _b .StreamReader )(int64 ,error ){return _d ._bd .Decode (r )};
|
|
func _ecc (_aac *Code )*OutOfBandNode {return &OutOfBandNode {}};func (_bde *StandardTable )Decode (r _b .StreamReader )(int64 ,error ){return _bde ._dbe .Decode (r )};func (_gfd *ValueNode )String ()string {return _gf .Sprintf ("\u0025\u0064\u002f%\u0064",_gfd ._cc ,_gfd ._bf );
|
|
};func (_gae *InternalNode )String ()string {_bge :=&_g .Builder {};_bge .WriteString ("\u000a");_gae .pad (_bge );_bge .WriteString ("\u0030\u003a\u0020");_bge .WriteString (_gae ._eb .String ()+"\u000a");_gae .pad (_bge );_bge .WriteString ("\u0031\u003a\u0020");
|
|
_bge .WriteString (_gae ._efg .String ()+"\u000a");return _bge .String ();}; |