mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-01 22:17:29 +08:00
12 lines
11 KiB
Go
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 (_ed "errors";_f "fmt";_d "github.com/unidoc/unipdf/v3/internal/bitwise";_ea "math";_e "strings";);func (_af *StandardTable )Decode (r _d .StreamReader )(int64 ,error ){return _af ._caf .Decode (r )};func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_fb :=&EncodedTable {_c :&InternalNode {},BasicTabler :table };if _eaf :=_fb .parseTable ();_eaf !=nil {return nil ,_eaf ;};return _fb ,nil ;};var _ Node =&OutOfBandNode {};type EncodedTable struct{BasicTabler ;_c *InternalNode ;};func (_cfd *FixedSizeTable )InitTree (codeTable []*Code )error {_bfc (codeTable );for _ ,_gfc :=range codeTable {_db :=_cfd ._eag .append (_gfc );if _db !=nil {return _db ;};};return nil ;};func (_dccb *StandardTable )RootNode ()*InternalNode {return _dccb ._caf };type OutOfBandNode struct{};func (_gbb *InternalNode )append (_efd *Code )(_aca error ){if _efd ._fdba ==0{return nil ;};_dcc :=_efd ._fdba -1-_gbb ._gc ;if _dcc < 0{return _ed .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");};_aa :=(_efd ._edg >>uint (_dcc ))&0x1;if _dcc ==0{if _efd ._cbac ==-1{if _aa ==1{if _gbb ._gbf !=nil {return _f .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_efd );};_gbb ._gbf =_bd (_efd );}else {if _gbb ._bg !=nil {return _f .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_efd );};_gbb ._bg =_bd (_efd );};}else {if _aa ==1{if _gbb ._gbf !=nil {return _f .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",_efd );};_gbb ._gbf =_fgc (_efd );}else {if _gbb ._bg !=nil {return _f .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",_efd );};_gbb ._bg =_fgc (_efd );};};}else {if _aa ==1{if _gbb ._gbf ==nil {_gbb ._gbf =_dbfd (_gbb ._gc +1);};if _aca =_gbb ._gbf .(*InternalNode ).append (_efd );_aca !=nil {return _aca ;};}else {if _gbb ._bg ==nil {_gbb ._bg =_dbfd (_gbb ._gc +1);};if _aca =_gbb ._bg .(*InternalNode ).append (_efd );_aca !=nil {return _aca ;};};};return nil ;};func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_dc :=&FixedSizeTable {_eag :&InternalNode {}};if _ac :=_dc .InitTree (codeTable );_ac !=nil {return nil ,_ac ;};return _dc ,nil ;};func (_be *EncodedTable )InitTree (codeTable []*Code )error {_bfc (codeTable );for _ ,_fd :=range codeTable {if _cb :=_be ._c .append (_fd );_cb !=nil {return _cb ;};};return nil ;};func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_fdba :prefixLength ,_cbac :rangeLength ,_bf :rangeLow ,_acg :isLowerRange ,_edg :-1};};func (_eg *ValueNode )Decode (r _d .StreamReader )(int64 ,error ){_fag ,_fbe :=r .ReadBits (byte (_eg ._bb ));if _fbe !=nil {return 0,_fbe ;};if _eg ._eb {_fag =-_fag ;};return int64 (_eg ._cg )+int64 (_fag ),nil ;};func (_dd *OutOfBandNode )String ()string {return _f .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_ea .MaxInt64 ));};var _ Node =&ValueNode {};func (_da *StandardTable )InitTree (codeTable []*Code )error {_bfc (codeTable );for _ ,_dfc :=range codeTable {if _cab :=_da ._caf .append (_dfc );_cab !=nil {return _cab ;};};return nil ;};func (_cc *OutOfBandNode )Decode (r _d .StreamReader )(int64 ,error ){return int64 (_ea .MaxInt64 ),nil };type StandardTable struct{_caf *InternalNode };func _bd (_fba *Code )*OutOfBandNode {return &OutOfBandNode {}};func _gce (_bcg [][]int32 )(*StandardTable ,error ){var _cgb []*Code ;for _bge :=0;_bge < len (_bcg );_bge ++{_efa :=_bcg [_bge ][0];_ebg :=_bcg [_bge ][1];_dea :=_bcg [_bge ][2];var _agb bool ;if len (_bcg [_bge ])> 3{_agb =true ;};_cgb =append (_cgb ,NewCode (_efa ,_ebg ,_dea ,_agb ));};_fgcc :=&StandardTable {_caf :_dbfd (0)};if _ecb :=_fgcc .InitTree (_cgb );_ecb !=nil {return nil ,_ecb ;};return _fgcc ,nil ;};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_d .StreamReader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};type Tabler interface{Decode (_aeg _d .StreamReader )(int64 ,error );InitTree (_ff []*Code )error ;String ()string ;RootNode ()*InternalNode ;};func _dbfd (_ab int32 )*InternalNode {return &InternalNode {_gc :_ab }};func (_de *FixedSizeTable )RootNode ()*InternalNode {return _de ._eag };func (_dcg *StandardTable )String ()string {return _dcg ._caf .String ()+"\u000a"};func (_baf *InternalNode )pad (_bc *_e .Builder ){for _fbd :=int32 (0);_fbd < _baf ._gc ;_fbd ++{_bc .WriteString ("\u0020\u0020\u0020");};};func (_dbf *InternalNode )String ()string {_ba :=&_e .Builder {};_ba .WriteString ("\u000a");_dbf .pad (_ba );_ba .WriteString ("\u0030\u003a\u0020");_ba .WriteString (_dbf ._bg .String ()+"\u000a");_dbf .pad (_ba );_ba .WriteString ("\u0031\u003a\u0020");_ba .WriteString (_dbf ._gbf .String ()+"\u000a");return _ba .String ();};func (_cag *ValueNode )String ()string {return _f .Sprintf ("\u0025\u0064\u002f%\u0064",_cag ._bb ,_cag ._cg );};func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_bbe ){return nil ,_ed .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");};_cfe :=_bbe [number -1];if _cfe ==nil {var _ag error ;_cfe ,_ag =_gce (_fdc [number -1]);if _ag !=nil {return nil ,_ag ;};_bbe [number -1]=_cfe ;};return _cfe ,nil ;};type InternalNode struct{_gc int32 ;_bg Node ;_gbf Node ;};func (_eae *FixedSizeTable )String ()string {return _eae ._eag .String ()+"\u000a"};func (_ee *EncodedTable )Decode (r _d .StreamReader )(int64 ,error ){return _ee ._c .Decode (r )};type FixedSizeTable struct{_eag *InternalNode };func (_abd *Code )String ()string {var _dae string ;if _abd ._edg !=-1{_dae =_dda (_abd ._edg ,_abd ._fdba );}else {_dae ="\u003f";};return _f .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_dae ,_abd ._fdba ,_abd ._cbac ,_abd ._bf );};func (_ae *EncodedTable )RootNode ()*InternalNode {return _ae ._c };var _fdc =[][][]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 _ Node =&InternalNode {};func _fgc (_df *Code )*ValueNode {return &ValueNode {_bb :_df ._cbac ,_cg :_df ._bf ,_eb :_df ._acg }};func _dda (_fce ,_acf int32 )string {var _fdg int32 ;_bce :=make ([]rune ,_acf );for _faf :=int32 (1);_faf <=_acf ;_faf ++{_fdg =_fce >>uint (_acf -_faf )&1;if _fdg !=0{_bce [_faf -1]='1';}else {_bce [_faf -1]='0';};};return string (_bce );};var _ Tabler =&EncodedTable {};func _cd (_geg ,_dgb int32 )int32 {if _geg > _dgb {return _geg ;};return _dgb ;};type Node interface{Decode (_dg _d .StreamReader )(int64 ,error );String ()string ;};type Code struct{_fdba int32 ;_cbac int32 ;_bf int32 ;_acg bool ;_edg int32 ;};func (_gb *FixedSizeTable )Decode (r _d .StreamReader )(int64 ,error ){return _gb ._eag .Decode (r )};func _bfc (_ga []*Code ){var _fe int32 ;for _ ,_afd :=range _ga {_fe =_cd (_fe ,_afd ._fdba );};_efe :=make ([]int32 ,_fe +1);for _ ,_dee :=range _ga {_efe [_dee ._fdba ]++;};var _efab int32 ;_ffc :=make ([]int32 ,len (_efe )+1);_efe [0]=0;for _bgc :=int32 (1);_bgc <=int32 (len (_efe ));_bgc ++{_ffc [_bgc ]=(_ffc [_bgc -1]+(_efe [_bgc -1]))<<1;_efab =_ffc [_bgc ];for _ ,_aeb :=range _ga {if _aeb ._fdba ==_bgc {_aeb ._edg =_efab ;_efab ++;};};};};func (_fc *EncodedTable )String ()string {return _fc ._c .String ()+"\u000a"};func (_bbg *InternalNode )Decode (r _d .StreamReader )(int64 ,error ){_fdbf ,_aed :=r .ReadBit ();if _aed !=nil {return 0,_aed ;};if _fdbf ==0{return _bbg ._bg .Decode (r );};return _bbg ._gbf .Decode (r );};type ValueNode struct{_bb int32 ;_cg int32 ;_eb bool ;};func (_gf *EncodedTable )parseTable ()error {var (_ef []*Code ;_ec ,_fg ,_ca int32 ;_fdb uint64 ;_cf error ;);_fa :=_gf .StreamReader ();_ce :=_gf .HtLow ();for _ce < _gf .HtHigh (){_fdb ,_cf =_fa .ReadBits (byte (_gf .HtPS ()));if _cf !=nil {return _cf ;};_ec =int32 (_fdb );_fdb ,_cf =_fa .ReadBits (byte (_gf .HtRS ()));if _cf !=nil {return _cf ;};_fg =int32 (_fdb );_ef =append (_ef ,NewCode (_ec ,_fg ,_ca ,false ));_ce +=1<<uint (_fg );};_fdb ,_cf =_fa .ReadBits (byte (_gf .HtPS ()));if _cf !=nil {return _cf ;};_ec =int32 (_fdb );_fg =32;_ca =_gf .HtLow ()-1;_ef =append (_ef ,NewCode (_ec ,_fg ,_ca ,true ));_fdb ,_cf =_fa .ReadBits (byte (_gf .HtPS ()));if _cf !=nil {return _cf ;};_ec =int32 (_fdb );_fg =32;_ca =_gf .HtHigh ();_ef =append (_ef ,NewCode (_ec ,_fg ,_ca ,false ));if _gf .HtOOB ()==1{_fdb ,_cf =_fa .ReadBits (byte (_gf .HtPS ()));if _cf !=nil {return _cf ;};_ec =int32 (_fdb );_ef =append (_ef ,NewCode (_ec ,-1,-1,false ));};if _cf =_gf .InitTree (_ef );_cf !=nil {return _cf ;};return nil ;};var _bbe =make ([]Tabler ,len (_fdc )); |