2021-03-23 23:12:52 +00:00

43 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 (_df "errors";_b "fmt";_c "github.com/unidoc/unipdf/v3/internal/bitwise";_ce "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_e "math";_g "strings";);var _dgc =[][][]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}}};
func (_cc *EncodedTable )Decode (r _c .StreamReader )(int64 ,error ){return _cc ._cg .Decode (r )};func (_dea *FixedSizeTable )String ()string {return _dea ._gd .String ()+"\u000a"};func (_dde *EncodedTable )parseTable ()error {var (_gc []*Code ;_ec ,_f ,_fa int32 ;
_ecb uint64 ;_de error ;);_ga :=_dde .StreamReader ();_eb :=_dde .HtLow ();for _eb < _dde .HtHigh (){_ecb ,_de =_ga .ReadBits (byte (_dde .HtPS ()));if _de !=nil {return _de ;};_ec =int32 (_ecb );_ecb ,_de =_ga .ReadBits (byte (_dde .HtRS ()));if _de !=nil {return _de ;
};_f =int32 (_ecb );_gc =append (_gc ,NewCode (_ec ,_f ,_fa ,false ));_eb +=1<<uint (_f );};_ecb ,_de =_ga .ReadBits (byte (_dde .HtPS ()));if _de !=nil {return _de ;};_ec =int32 (_ecb );_f =32;_fa =_dde .HtLow ()-1;_gc =append (_gc ,NewCode (_ec ,_f ,_fa ,true ));
_ecb ,_de =_ga .ReadBits (byte (_dde .HtPS ()));if _de !=nil {return _de ;};_ec =int32 (_ecb );_f =32;_fa =_dde .HtHigh ();_gc =append (_gc ,NewCode (_ec ,_f ,_fa ,false ));if _dde .HtOOB ()==1{_ecb ,_de =_ga .ReadBits (byte (_dde .HtPS ()));if _de !=nil {return _de ;
};_ec =int32 (_ecb );_gc =append (_gc ,NewCode (_ec ,-1,-1,false ));};if _de =_dde .InitTree (_gc );_de !=nil {return _de ;};return nil ;};func _cdf (_fef int32 )*InternalNode {return &InternalNode {_bd :_fef }};func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_cec ){return nil ,_df .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
};_efb :=_cec [number -1];if _efb ==nil {var _gae error ;_efb ,_gae =_ccf (_dgc [number -1]);if _gae !=nil {return nil ,_gae ;};_cec [number -1]=_efb ;};return _efb ,nil ;};func (_ba *StandardTable )InitTree (codeTable []*Code )error {_bg (codeTable );
for _ ,_ebe :=range codeTable {if _ge :=_ba ._fce .append (_ebe );_ge !=nil {return _ge ;};};return nil ;};func (_gg *EncodedTable )InitTree (codeTable []*Code )error {_bg (codeTable );for _ ,_af :=range codeTable {if _afg :=_gg ._cg .append (_af );_afg !=nil {return _afg ;
};};return nil ;};func (_fed *Code )String ()string {var _cgg string ;if _fed ._bc !=-1{_cgg =_afgg (_fed ._bc ,_fed ._adc );}else {_cgg ="\u003f";};return _b .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_cgg ,_fed ._adc ,_fed ._aefb ,_fed ._fbd );
};func (_ac *StandardTable )String ()string {return _ac ._fce .String ()+"\u000a"};var _ Node =&InternalNode {};func (_fg *StandardTable )Decode (r _c .StreamReader )(int64 ,error ){return _fg ._fce .Decode (r )};type OutOfBandNode struct{};var _ Tabler =&EncodedTable {};
func (_gfd *FixedSizeTable )InitTree (codeTable []*Code )error {_bg (codeTable );for _ ,_ded :=range codeTable {_bf :=_gfd ._gd .append (_ded );if _bf !=nil {return _bf ;};};return nil ;};var _ Node =&ValueNode {};type EncodedTable struct{BasicTabler ;
_cg *InternalNode ;};func _ddd (_bfd *Code )*OutOfBandNode {return &OutOfBandNode {}};func (_dfg *InternalNode )String ()string {_cce :=&_g .Builder {};_cce .WriteString ("\u000a");_dfg .pad (_cce );_cce .WriteString ("\u0030\u003a\u0020");_cce .WriteString (_dfg ._def .String ()+"\u000a");
_dfg .pad (_cce );_cce .WriteString ("\u0031\u003a\u0020");_cce .WriteString (_dfg ._db .String ()+"\u000a");return _cce .String ();};func _ad (_bb *Code )*ValueNode {return &ValueNode {_gfa :_bb ._aefb ,_be :_bb ._fbd ,_ed :_bb ._ada }};func (_aa *StandardTable )RootNode ()*InternalNode {return _aa ._fce };
func _afgg (_eeg ,_decc int32 )string {var _ff int32 ;_aege :=make ([]rune ,_decc );for _cdff :=int32 (1);_cdff <=_decc ;_cdff ++{_ff =_eeg >>uint (_decc -_cdff )&1;if _ff !=0{_aege [_cdff -1]='1';}else {_aege [_cdff -1]='0';};};return string (_aege );
};func (_ebd *FixedSizeTable )RootNode ()*InternalNode {return _ebd ._gd };type Code struct{_adc int32 ;_aefb int32 ;_fbd int32 ;_ada bool ;_bc int32 ;};func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_dec :=&FixedSizeTable {_gd :&InternalNode {}};
if _fe :=_dec .InitTree (codeTable );_fe !=nil {return nil ,_fe ;};return _dec ,nil ;};func _ccf (_bfc [][]int32 )(*StandardTable ,error ){var _fb []*Code ;for _dbb :=0;_dbb < len (_bfc );_dbb ++{_eea :=_bfc [_dbb ][0];_gaa :=_bfc [_dbb ][1];_bda :=_bfc [_dbb ][2];
var _ebc bool ;if len (_bfc [_dbb ])> 3{_ebc =true ;};_fb =append (_fb ,NewCode (_eea ,_gaa ,_bda ,_ebc ));};_fge :=&StandardTable {_fce :_cdf (0)};if _bdaf :=_fge .InitTree (_fb );_bdaf !=nil {return nil ,_bdaf ;};return _fge ,nil ;};var _ Node =&OutOfBandNode {};
func _bg (_gga []*Code ){var _bfbb int32 ;for _ ,_cdfff :=range _gga {_bfbb =_eed (_bfbb ,_cdfff ._adc );};_afd :=make ([]int32 ,_bfbb +1);for _ ,_cag :=range _gga {_afd [_cag ._adc ]++;};var _fcd int32 ;_agea :=make ([]int32 ,len (_afd )+1);_afd [0]=0;
for _gba :=int32 (1);_gba <=int32 (len (_afd ));_gba ++{_agea [_gba ]=(_agea [_gba -1]+(_afd [_gba -1]))<<1;_fcd =_agea [_gba ];for _ ,_gbg :=range _gga {if _gbg ._adc ==_gba {_gbg ._bc =_fcd ;_fcd ++;};};};};func (_fab *ValueNode )String ()string {return _b .Sprintf ("\u0025\u0064\u002f%\u0064",_fab ._gfa ,_fab ._be );
};type Node interface{Decode (_aef _c .StreamReader )(int64 ,error );String ()string ;};func (_ag *InternalNode )pad (_dbg *_g .Builder ){for _bfb :=int32 (0);_bfb < _ag ._bd ;_bfb ++{_dbg .WriteString ("\u0020\u0020\u0020");};};func _eed (_gce ,_cbe int32 )int32 {if _gce > _cbe {return _gce ;
};return _cbe ;};func (_fd *InternalNode )Decode (r _c .StreamReader )(int64 ,error ){_cac ,_bbb :=r .ReadBit ();if _bbb !=nil {return 0,_bbb ;};if _cac ==0{return _fd ._def .Decode (r );};return _fd ._db .Decode (r );};type Tabler interface{Decode (_cbd _c .StreamReader )(int64 ,error );
InitTree (_age []*Code )error ;String ()string ;RootNode ()*InternalNode ;};type FixedSizeTable struct{_gd *InternalNode };var _cec =make ([]Tabler ,len (_dgc ));type StandardTable struct{_fce *InternalNode };func (_gf *EncodedTable )String ()string {return _gf ._cg .String ()+"\u000a"};
func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_cf :=&EncodedTable {_cg :&InternalNode {},BasicTabler :table };if _ee :=_cf .parseTable ();_ee !=nil {return nil ,_ee ;};return _cf ,nil ;};func (_aeg *OutOfBandNode )Decode (r _c .StreamReader )(int64 ,error ){return 0,_ce .ErrOOB };
type InternalNode struct{_bd int32 ;_def Node ;_db Node ;};func (_ca *OutOfBandNode )String ()string {return _b .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_e .MaxInt64 ));};func (_ggf *FixedSizeTable )Decode (r _c .StreamReader )(int64 ,error ){return _ggf ._gd .Decode (r )};
type ValueNode struct{_gfa int32 ;_be int32 ;_ed bool ;};func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_adc :prefixLength ,_aefb :rangeLength ,_fbd :rangeLow ,_ada :isLowerRange ,_bc :-1};};func (_ae *EncodedTable )RootNode ()*InternalNode {return _ae ._cg };
func (_cb *InternalNode )append (_ea *Code )(_dg error ){if _ea ._adc ==0{return nil ;};_dac :=_ea ._adc -1-_cb ._bd ;if _dac < 0{return _df .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");
};_eee :=(_ea ._bc >>uint (_dac ))&0x1;if _dac ==0{if _ea ._aefb ==-1{if _eee ==1{if _cb ._db !=nil {return _b .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_ea );
};_cb ._db =_ddd (_ea );}else {if _cb ._def !=nil {return _b .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_ea );};_cb ._def =_ddd (_ea );};}else {if _eee ==1{if _cb ._db !=nil {return _b .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",_ea );
};_cb ._db =_ad (_ea );}else {if _cb ._def !=nil {return _b .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",_ea );
};_cb ._def =_ad (_ea );};};}else {if _eee ==1{if _cb ._db ==nil {_cb ._db =_cdf (_cb ._bd +1);};if _dg =_cb ._db .(*InternalNode ).append (_ea );_dg !=nil {return _dg ;};}else {if _cb ._def ==nil {_cb ._def =_cdf (_cb ._bd +1);};if _dg =_cb ._def .(*InternalNode ).append (_ea );
_dg !=nil {return _dg ;};};};return nil ;};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_c .StreamReader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};func (_da *ValueNode )Decode (r _c .StreamReader )(int64 ,error ){_gb ,_fc :=r .ReadBits (byte (_da ._gfa ));
if _fc !=nil {return 0,_fc ;};if _da ._ed {_gb =-_gb ;};return int64 (_da ._be )+int64 (_gb ),nil ;};