2020-11-23 22:15:56 +00:00

12 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 (_afd "errors";_e "fmt";_be "github.com/unidoc/unipdf/v3/internal/bitwise";_c "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_af "math";_a "strings";);func _ggd (_ecc int32 )*InternalNode {return &InternalNode {_ba :_ecc }};type Code struct{_eb int32 ;_dfc int32 ;_gd int32 ;_fee bool ;_gf int32 ;};type ValueNode struct{_ec int32 ;_dac int32 ;_ff bool ;};var _ Tabler =&EncodedTable {};func _afg (_bb ,_gc int32 )string {var _cc int32 ;_cge :=make ([]rune ,_gc );for _cbb :=int32 (1);_cbb <=_gc ;_cbb ++{_cc =_bb >>uint (_gc -_cbb )&1;if _cc !=0{_cge [_cbb -1]='1';}else {_cge [_cbb -1]='0';};};return string (_cge );};func (_dacd *ValueNode )Decode (r _be .StreamReader )(int64 ,error ){_dc ,_ecf :=r .ReadBits (byte (_dacd ._ec ));if _ecf !=nil {return 0,_ecf ;};if _dacd ._ff {_dc =-_dc ;};return int64 (_dacd ._dac )+int64 (_dc ),nil ;};func _abba (_gae [][]int32 )(*StandardTable ,error ){var _bdb []*Code ;for _aec :=0;_aec < len (_gae );_aec ++{_afba :=_gae [_aec ][0];_dae :=_gae [_aec ][1];_add :=_gae [_aec ][2];var _bgf bool ;if len (_gae [_aec ])> 3{_bgf =true ;};_bdb =append (_bdb ,NewCode (_afba ,_dae ,_add ,_bgf ));};_eab :=&StandardTable {_dgf :_ggd (0)};if _afac :=_eab .InitTree (_bdb );_afac !=nil {return nil ,_afac ;};return _eab ,nil ;};func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_fad ){return nil ,_afd .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");};_ged :=_fad [number -1];if _ged ==nil {var _fbe error ;_ged ,_fbe =_abba (_ggdf [number -1]);if _fbe !=nil {return nil ,_fbe ;};_fad [number -1]=_ged ;};return _ged ,nil ;};type InternalNode struct{_ba int32 ;_abc Node ;_daf Node ;};func (_eg *StandardTable )Decode (r _be .StreamReader )(int64 ,error ){return _eg ._dgf .Decode (r )};func (_cbf *StandardTable )String ()string {return _cbf ._dgf .String ()+"\u000a"};func (_bed *InternalNode )String ()string {_ge :=&_a .Builder {};_ge .WriteString ("\u000a");_bed .pad (_ge );_ge .WriteString ("\u0030\u003a\u0020");_ge .WriteString (_bed ._abc .String ()+"\u000a");_bed .pad (_ge );_ge .WriteString ("\u0031\u003a\u0020");_ge .WriteString (_bed ._daf .String ()+"\u000a");return _ge .String ();};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_be .StreamReader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};func (_dge *OutOfBandNode )String ()string {return _e .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_af .MaxInt64 ));};func (_ed *InternalNode )Decode (r _be .StreamReader )(int64 ,error ){_cg ,_bea :=r .ReadBit ();if _bea !=nil {return 0,_bea ;};if _cg ==0{return _ed ._abc .Decode (r );};return _ed ._daf .Decode (r );};type StandardTable struct{_dgf *InternalNode };func (_g *EncodedTable )InitTree (codeTable []*Code )error {_aad (codeTable );for _ ,_ga :=range codeTable {if _gac :=_g ._ac .append (_ga );_gac !=nil {return _gac ;};};return nil ;};func (_d *EncodedTable )RootNode ()*InternalNode {return _d ._ac };type FixedSizeTable struct{_ab *InternalNode };var _ Node =&InternalNode {};type Node interface{Decode (_afa _be .StreamReader )(int64 ,error );String ()string ;};func (_bcb *FixedSizeTable )Decode (r _be .StreamReader )(int64 ,error ){return _bcb ._ab .Decode (r )};func (_adf *InternalNode )pad (_afb *_a .Builder ){for _afe :=int32 (0);_afe < _adf ._ba ;_afe ++{_afb .WriteString ("\u0020\u0020\u0020");};};func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_gbb :=&FixedSizeTable {_ab :&InternalNode {}};if _bgd :=_gbb .InitTree (codeTable );_bgd !=nil {return nil ,_bgd ;};return _gbb ,nil ;};var _fad =make ([]Tabler ,len (_ggdf ));func (_fe *OutOfBandNode )Decode (r _be .StreamReader )(int64 ,error ){return 0,_c .ErrOOB };type EncodedTable struct{BasicTabler ;_ac *InternalNode ;};func _df (_abb *Code )*OutOfBandNode {return &OutOfBandNode {}};func _fae (_gbf ,_caf int32 )int32 {if _gbf > _caf {return _gbf ;};return _caf ;};type OutOfBandNode struct{};func (_de *EncodedTable )parseTable ()error {var (_gacg []*Code ;_cb ,_bc ,_ea int32 ;_gb uint64 ;_f error ;);_aea :=_de .StreamReader ();_da :=_de .HtLow ();for _da < _de .HtHigh (){_gb ,_f =_aea .ReadBits (byte (_de .HtPS ()));if _f !=nil {return _f ;};_cb =int32 (_gb );_gb ,_f =_aea .ReadBits (byte (_de .HtRS ()));if _f !=nil {return _f ;};_bc =int32 (_gb );_gacg =append (_gacg ,NewCode (_cb ,_bc ,_ea ,false ));_da +=1<<uint (_bc );};_gb ,_f =_aea .ReadBits (byte (_de .HtPS ()));if _f !=nil {return _f ;};_cb =int32 (_gb );_bc =32;_ea =_de .HtLow ()-1;_gacg =append (_gacg ,NewCode (_cb ,_bc ,_ea ,true ));_gb ,_f =_aea .ReadBits (byte (_de .HtPS ()));if _f !=nil {return _f ;};_cb =int32 (_gb );_bc =32;_ea =_de .HtHigh ();_gacg =append (_gacg ,NewCode (_cb ,_bc ,_ea ,false ));if _de .HtOOB ()==1{_gb ,_f =_aea .ReadBits (byte (_de .HtPS ()));if _f !=nil {return _f ;};_cb =int32 (_gb );_gacg =append (_gacg ,NewCode (_cb ,-1,-1,false ));};if _f =_de .InitTree (_gacg );_f !=nil {return _f ;};return nil ;};func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_ae :=&EncodedTable {_ac :&InternalNode {},BasicTabler :table };if _acf :=_ae .parseTable ();_acf !=nil {return nil ,_acf ;};return _ae ,nil ;};func (_gba *InternalNode )append (_aa *Code )(_gg error ){if _aa ._eb ==0{return nil ;};_aba :=_aa ._eb -1-_gba ._ba ;if _aba < 0{return _afd .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");};_bec :=(_aa ._gf >>uint (_aba ))&0x1;if _aba ==0{if _aa ._dfc ==-1{if _bec ==1{if _gba ._daf !=nil {return _e .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_aa );};_gba ._daf =_df (_aa );}else {if _gba ._abc !=nil {return _e .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_aa );};_gba ._abc =_df (_aa );};}else {if _bec ==1{if _gba ._daf !=nil {return _e .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",_aa );};_gba ._daf =_gad (_aa );}else {if _gba ._abc !=nil {return _e .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",_aa );};_gba ._abc =_gad (_aa );};};}else {if _bec ==1{if _gba ._daf ==nil {_gba ._daf =_ggd (_gba ._ba +1);};if _gg =_gba ._daf .(*InternalNode ).append (_aa );_gg !=nil {return _gg ;};}else {if _gba ._abc ==nil {_gba ._abc =_ggd (_gba ._ba +1);};if _gg =_gba ._abc .(*InternalNode ).append (_aa );_gg !=nil {return _gg ;};};};return nil ;};func (_abd *FixedSizeTable )String ()string {return _abd ._ab .String ()+"\u000a"};func _aad (_cgg []*Code ){var _ce int32 ;for _ ,_gdd :=range _cgg {_ce =_fae (_ce ,_gdd ._eb );};_cbc :=make ([]int32 ,_ce +1);for _ ,_bbg :=range _cgg {_cbc [_bbg ._eb ]++;};var _fbf int32 ;_cd :=make ([]int32 ,len (_cbc )+1);_cbc [0]=0;for _cgee :=int32 (1);_cgee <=int32 (len (_cbc ));_cgee ++{_cd [_cgee ]=(_cd [_cgee -1]+(_cbc [_cgee -1]))<<1;_fbf =_cd [_cgee ];for _ ,_fdd :=range _cgg {if _fdd ._eb ==_cgee {_fdd ._gf =_fbf ;_fbf ++;};};};};func (_dg *FixedSizeTable )InitTree (codeTable []*Code )error {_aad (codeTable );for _ ,_ef :=range codeTable {_dd :=_dg ._ab .append (_ef );if _dd !=nil {return _dd ;};};return nil ;};func _gad (_bgc *Code )*ValueNode {return &ValueNode {_ec :_bgc ._dfc ,_dac :_bgc ._gd ,_ff :_bgc ._fee }};func (_ca *EncodedTable )Decode (r _be .StreamReader )(int64 ,error ){return _ca ._ac .Decode (r )};type Tabler interface{Decode (_bgb _be .StreamReader )(int64 ,error );InitTree (_gag []*Code )error ;String ()string ;RootNode ()*InternalNode ;};func (_egf *StandardTable )RootNode ()*InternalNode {return _egf ._dgf };func (_bg *EncodedTable )String ()string {return _bg ._ac .String ()+"\u000a"};func (_fbb *Code )String ()string {var _egff string ;if _fbb ._gf !=-1{_egff =_afg (_fbb ._gf ,_fbb ._eb );}else {_egff ="\u003f";};return _e .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_egff ,_fbb ._eb ,_fbb ._dfc ,_fbb ._gd );};var _ggdf =[][][]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 (_bcf *StandardTable )InitTree (codeTable []*Code )error {_aad (codeTable );for _ ,_fa :=range codeTable {if _fd :=_bcf ._dgf .append (_fa );_fd !=nil {return _fd ;};};return nil ;};func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_eb :prefixLength ,_dfc :rangeLength ,_gd :rangeLow ,_fee :isLowerRange ,_gf :-1};};func (_fb *FixedSizeTable )RootNode ()*InternalNode {return _fb ._ab };func (_gbc *ValueNode )String ()string {return _e .Sprintf ("\u0025\u0064\u002f%\u0064",_gbc ._ec ,_gbc ._dac );};var _ Node =&ValueNode {};var _ Node =&OutOfBandNode {};