// // 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 cmap ;import (_d "bufio";_f "bytes";_cc "encoding/hex";_fc "errors";_g "fmt";_b "github.com/unidoc/unipdf/v4/common";_eg "github.com/unidoc/unipdf/v4/core";_ed "github.com/unidoc/unipdf/v4/internal/cmap/bcmaps";_dd "io";_gb "sort";_e "strconv"; _a "strings";_cf "unicode/utf16";);func (cmap *CMap )parseVersion ()error {_dgbc :="";_dfd :=false ;for _eae :=0;_eae < 3&&!_dfd ;_eae ++{_cbba ,_gfe :=cmap .parseObject ();if _gfe !=nil {return _gfe ;};switch _dffb :=_cbba .(type ){case cmapOperand :switch _dffb .Operand {case "\u0064\u0065\u0066":_dfd =true ; default:_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0070\u0061\u0072\u0073\u0065\u0056e\u0072\u0073\u0069\u006f\u006e\u003a \u0073\u0074\u0061\u0074\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020o\u003d\u0025\u0023\u0076",_cbba ); return ErrBadCMap ;};case cmapInt :_dgbc =_g .Sprintf ("\u0025\u0064",_dffb ._gffac );case cmapFloat :_dgbc =_g .Sprintf ("\u0025\u0066",_dffb ._dagf );case cmapString :_dgbc =_dffb .String ;default:_b .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020p\u0061\u0072\u0073\u0065Ver\u0073io\u006e\u003a\u0020\u0042\u0061\u0064\u0020ty\u0070\u0065\u002e\u0020\u006f\u003d\u0025#\u0076",_cbba ); };};cmap ._de =_dgbc ;return nil ;};type charRange struct{_bf CharCode ;_bfd CharCode ;};func _cge (_dded string )string {_fgde :=[]rune (_dded );_ef :=make ([]string ,len (_fgde ));for _dgb ,_cbd :=range _fgde {_ef [_dgb ]=_g .Sprintf ("\u0025\u0030\u0034\u0078",_cbd ); };return _g .Sprintf ("\u003c\u0025\u0073\u003e",_a .Join (_ef ,""));};func LoadCmapFromDataCID (data []byte )(*CMap ,error ){return LoadCmapFromData (data ,false )};func (cmap *CMap )Name ()string {return cmap ._ea };func LoadPredefinedCMap (name string )(*CMap ,error ){cmap ,_bgd :=_da (name ); if _bgd !=nil {return nil ,_bgd ;};if cmap ._agc ==""{cmap .computeInverseMappings ();return cmap ,nil ;};_dfg ,_bgd :=_da (cmap ._agc );if _bgd !=nil {return nil ,_bgd ;};for _bfg ,_gg :=range _dfg ._dg {if _ ,_bc :=cmap ._dg [_bfg ];!_bc {cmap ._dg [_bfg ]=_gg ; };};cmap ._fa =append (cmap ._fa ,_dfg ._fa ...);cmap .computeInverseMappings ();return cmap ,nil ;};const (_eggc =100;_ddfb ="\u000a\u002f\u0043\u0049\u0044\u0049\u006e\u0069\u0074\u0020\u002f\u0050\u0072\u006fc\u0053\u0065\u0074\u0020\u0066\u0069\u006e\u0064\u0072es\u006fu\u0072c\u0065 \u0062\u0065\u0067\u0069\u006e\u000a\u0031\u0032\u0020\u0064\u0069\u0063\u0074\u0020\u0062\u0065\u0067\u0069n\u000a\u0062\u0065\u0067\u0069\u006e\u0063\u006d\u0061\u0070\n\u002f\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065m\u0049\u006e\u0066\u006f\u0020\u003c\u003c\u0020\u002f\u0052\u0065\u0067\u0069\u0073t\u0072\u0079\u0020\u0028\u0041\u0064\u006f\u0062\u0065\u0029\u0020\u002f\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067\u0020\u0028\u0055\u0043\u0053)\u0020\u002f\u0053\u0075\u0070p\u006c\u0065\u006d\u0065\u006et\u0020\u0030\u0020\u003e\u003e\u0020\u0064\u0065\u0066\u000a\u002f\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065\u0020\u002f\u0041\u0064\u006f\u0062\u0065-\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0055\u0043\u0053\u0020\u0064\u0065\u0066\u000a\u002fC\u004d\u0061\u0070\u0054\u0079\u0070\u0065\u0020\u0032\u0020\u0064\u0065\u0066\u000a\u0031\u0020\u0062\u0065\u0067\u0069\u006e\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063e\u0072\u0061n\u0067\u0065\n\u003c\u0030\u0030\u0030\u0030\u003e\u0020<\u0046\u0046\u0046\u0046\u003e\u000a\u0065\u006e\u0064\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065r\u0061\u006e\u0067\u0065\u000a"; _bfae ="\u0065\u006e\u0064\u0063\u006d\u0061\u0070\u000a\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065\u0020\u0063ur\u0072e\u006e\u0074\u0064\u0069\u0063\u0074\u0020\u002f\u0043\u004d\u0061\u0070 \u0064\u0065\u0066\u0069\u006e\u0065\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0020\u0070\u006fp\u000a\u0065\u006e\u0064\u000a\u0065\u006e\u0064\u000a"; );func NewToUnicodeCMap (codeToRune map[CharCode ]rune )*CMap {_egg :=make (map[CharCode ]string ,len (codeToRune ));for _bef ,_ad :=range codeToRune {_egg [_bef ]=string (_ad );};cmap :=&CMap {_ea :"\u0041d\u006fb\u0065\u002d\u0049\u0064\u0065n\u0074\u0069t\u0079\u002d\u0055\u0043\u0053",_gf :2,_cfa :16,_dfc :CIDSystemInfo {Registry :"\u0041\u0064\u006fb\u0065",Ordering :"\u0055\u0043\u0053",Supplement :0},_fa :[]Codespace {{Low :0,High :0xffff}},_gfb :_egg ,_be :make (map[string ]CharCode ,len (codeToRune )),_dg :make (map[CharCode ]CharCode ,len (codeToRune )),_cff :make (map[CharCode ]CharCode ,len (codeToRune ))}; cmap .computeInverseMappings ();return cmap ;};func LoadCmapFromData (data []byte ,isSimple bool )(*CMap ,error ){_b .Log .Trace ("\u004c\u006fa\u0064\u0043\u006d\u0061\u0070\u0046\u0072\u006f\u006d\u0044\u0061\u0074\u0061\u003a\u0020\u0069\u0073\u0053\u0069\u006d\u0070\u006ce=\u0025\u0074",isSimple ); cmap :=_ba (isSimple );cmap .cMapParser =_dabf (data );_gde :=cmap .parse ();if _gde !=nil {return nil ,_gde ;};if len (cmap ._fa )==0{if cmap ._agc !=""{return cmap ,nil ;};_b .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u002e\u0020\u0063\u006d\u0061p=\u0025\u0073",cmap ); };cmap .computeInverseMappings ();return cmap ,nil ;};func (cmap *CMap )CharcodeToCID (code CharCode )(CharCode ,bool ){_dag ,_bcg :=cmap ._dg [code ];return _dag ,_bcg ;};func (cmap *CMap )toBfData ()string {if len (cmap ._gfb )==0{return "";};_ace :=make ([]CharCode ,0,len (cmap ._gfb )); for _geb :=range cmap ._gfb {_ace =append (_ace ,_geb );};_gb .Slice (_ace ,func (_gad ,_gbf int )bool {return _ace [_gad ]< _ace [_gbf ]});var _beg []charRange ;_dfcf :=charRange {_ace [0],_ace [0]};_aed :=cmap ._gfb [_ace [0]];for _ ,_bdg :=range _ace [1:]{_gba :=cmap ._gfb [_bdg ]; if _bdg ==_dfcf ._bfd +1&&_eab (_gba )==_eab (_aed )+1{_dfcf ._bfd =_bdg ;}else {_beg =append (_beg ,_dfcf );_dfcf ._bf ,_dfcf ._bfd =_bdg ,_bdg ;};_aed =_gba ;};_beg =append (_beg ,_dfcf );var _cef []CharCode ;var _fgd []fbRange ;for _ ,_bde :=range _beg {if _bde ._bf ==_bde ._bfd {_cef =append (_cef ,_bde ._bf ); }else {_fgd =append (_fgd ,fbRange {_fd :_bde ._bf ,_df :_bde ._bfd ,_bfe :cmap ._gfb [_bde ._bf ]});};};_b .Log .Trace ("\u0063\u0068ar\u0052\u0061\u006eg\u0065\u0073\u003d\u0025d f\u0062Ch\u0061\u0072\u0073\u003d\u0025\u0064\u0020fb\u0052\u0061\u006e\u0067\u0065\u0073\u003d%\u0064",len (_beg ),len (_cef ),len (_fgd )); var _baa []string ;if len (_cef )> 0{_aec :=(len (_cef )+_eggc -1)/_eggc ;for _gc :=0;_gc < _aec ;_gc ++{_bae :=_dgbd (len (_cef )-_gc *_eggc ,_eggc );_baa =append (_baa ,_g .Sprintf ("\u0025\u0064\u0020\u0062\u0065\u0067\u0069\u006e\u0062f\u0063\u0068\u0061\u0072",_bae )); for _eddc :=0;_eddc < _bae ;_eddc ++{_ggf :=_cef [_gc *_eggc +_eddc ];_fbf :=cmap ._gfb [_ggf ];_baa =append (_baa ,_g .Sprintf ("\u003c%\u0030\u0034\u0078\u003e\u0020\u0025s",_ggf ,_cge (_fbf )));};_baa =append (_baa ,"\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r"); };};if len (_fgd )> 0{_dbf :=(len (_fgd )+_eggc -1)/_eggc ;for _fbd :=0;_fbd < _dbf ;_fbd ++{_fgc :=_dgbd (len (_fgd )-_fbd *_eggc ,_eggc );_baa =append (_baa ,_g .Sprintf ("\u0025d\u0020b\u0065\u0067\u0069\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065",_fgc )); for _gca :=0;_gca < _fgc ;_gca ++{_dfa :=_fgd [_fbd *_eggc +_gca ];_baa =append (_baa ,_g .Sprintf ("\u003c%\u00304\u0078\u003e\u003c\u0025\u0030\u0034\u0078\u003e\u0020\u0025\u0073",_dfa ._fd ,_dfa ._df ,_cge (_dfa ._bfe )));};_baa =append (_baa ,"\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065"); };};return _a .Join (_baa ,"\u000a");};func (_dcfc *cMapParser )parseDict ()(cmapDict ,error ){_b .Log .Trace ("\u0052\u0065\u0061\u0064\u0069\u006e\u0067\u0020\u0050\u0044\u0046\u0020D\u0069\u0063\u0074\u0021");_aaf :=_gaf ();_bedg ,_ :=_dcfc ._fcgc .ReadByte (); if _bedg !='<'{return _aaf ,ErrBadCMapDict ;};_bedg ,_ =_dcfc ._fcgc .ReadByte ();if _bedg !='<'{return _aaf ,ErrBadCMapDict ;};for {_dcfc .skipSpaces ();_bdaf ,_gacf :=_dcfc ._fcgc .Peek (2);if _gacf !=nil {return _aaf ,_gacf ;};if (_bdaf [0]=='>')&&(_bdaf [1]=='>'){_dcfc ._fcgc .ReadByte (); _dcfc ._fcgc .ReadByte ();break ;};_beag ,_gacf :=_dcfc .parseName ();_b .Log .Trace ("\u004be\u0079\u003a\u0020\u0025\u0073",_beag .Name );if _gacf !=nil {_b .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0052\u0065\u0074\u0075\u0072\u006e\u0069\u006e\u0067\u0020\u006e\u0061\u006d\u0065\u002e\u0020\u0065\u0072r=\u0025\u0076",_gacf ); return _aaf ,_gacf ;};_dcfc .skipSpaces ();_egga ,_gacf :=_dcfc .parseObject ();if _gacf !=nil {return _aaf ,_gacf ;};_aaf .Dict [_beag .Name ]=_egga ;_dcfc .skipSpaces ();_bdaf ,_gacf =_dcfc ._fcgc .Peek (3);if _gacf !=nil {return _aaf ,_gacf ;};if string (_bdaf )=="\u0064\u0065\u0066"{_dcfc ._fcgc .Discard (3); };};return _aaf ,nil ;};type cmapString struct{String string ;};func (_gage *cMapParser )parseNumber ()(cmapObject ,error ){_dbgg ,_fcb :=_eg .ParseNumber (_gage ._fcgc );if _fcb !=nil {return nil ,_fcb ;};switch _ffb :=_dbgg .(type ){case *_eg .PdfObjectFloat :return cmapFloat {float64 (*_ffb )},nil ; case *_eg .PdfObjectInteger :return cmapInt {int64 (*_ffb )},nil ;};return nil ,_g .Errorf ("\u0075n\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u006e\u0075\u006db\u0065\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0054",_dbgg );};func NewCIDSystemInfo (obj _eg .PdfObject )(_cb CIDSystemInfo ,_gd error ){_bb ,_ddf :=_eg .GetDict (obj ); if !_ddf {return CIDSystemInfo {},_eg .ErrTypeError ;};_dfe ,_ddf :=_eg .GetStringVal (_bb .Get ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"));if !_ddf {return CIDSystemInfo {},_eg .ErrTypeError ;};_ddg ,_ddf :=_eg .GetStringVal (_bb .Get ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067")); if !_ddf {return CIDSystemInfo {},_eg .ErrTypeError ;};_ee ,_ddf :=_eg .GetIntVal (_bb .Get ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"));if !_ddf {return CIDSystemInfo {},_eg .ErrTypeError ;};return CIDSystemInfo {Registry :_dfe ,Ordering :_ddg ,Supplement :_ee },nil ; };func (cmap *CMap )parseWMode ()error {var _bfgc int ;_cba :=false ;for _bga :=0;_bga < 3&&!_cba ;_bga ++{_gbc ,_dad :=cmap .parseObject ();if _dad !=nil {return _dad ;};switch _cbb :=_gbc .(type ){case cmapOperand :switch _cbb .Operand {case "\u0064\u0065\u0066":_cba =true ; default:_b .Log .Error ("\u0070\u0061\u0072\u0073\u0065\u0057\u004d\u006f\u0064\u0065:\u0020\u0073\u0074\u0061\u0074\u0065\u0020e\u0072\u0072\u006f\u0072\u002e\u0020\u006f\u003d\u0025\u0023\u0076",_gbc );return ErrBadCMap ;};case cmapInt :_bfgc =int (_cbb ._gffac ); };};cmap ._bea =integer {_bcd :true ,_cdf :_bfgc };return nil ;};type CIDSystemInfo struct{Registry string ;Ordering string ;Supplement int ;};type CharCode uint32 ;func _eab (_gab string )rune {_ecf :=[]rune (_gab );return _ecf [len (_ecf )-1]};func (cmap *CMap )String ()string {_ga :=cmap ._dfc ; _fdd :=[]string {_g .Sprintf ("\u006e\u0062\u0069\u0074\u0073\u003a\u0025\u0064",cmap ._cfa ),_g .Sprintf ("\u0074y\u0070\u0065\u003a\u0025\u0064",cmap ._gf )};if cmap ._de !=""{_fdd =append (_fdd ,_g .Sprintf ("\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u003a\u0025\u0073",cmap ._de )); };if cmap ._agc !=""{_fdd =append (_fdd ,_g .Sprintf ("u\u0073\u0065\u0063\u006d\u0061\u0070\u003a\u0025\u0023\u0071",cmap ._agc ));};_fdd =append (_fdd ,_g .Sprintf ("\u0073\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f\u003a\u0025\u0073",_ga .String ())); if len (cmap ._fa )> 0{_fdd =append (_fdd ,_g .Sprintf ("\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u003a\u0025\u0064",len (cmap ._fa )));};if len (cmap ._gfb )> 0{_fdd =append (_fdd ,_g .Sprintf ("\u0063\u006fd\u0065\u0054\u006fU\u006e\u0069\u0063\u006f\u0064\u0065\u003a\u0025\u0064",len (cmap ._gfb ))); };return _g .Sprintf ("\u0043\u004d\u0041P\u007b\u0025\u0023\u0071\u0020\u0025\u0073\u007d",cmap ._ea ,_a .Join (_fdd ,"\u0020"));};func (cmap *CMap )BytesToCharcodes (data []byte )([]CharCode ,bool ){var _fcf []CharCode ;if cmap ._cfa ==8{for _ ,_dffd :=range data {_fcf =append (_fcf ,CharCode (_dffd )); };return _fcf ,true ;};for _fb :=0;_fb < len (data );{_ged ,_eggb ,_gedg :=cmap .matchCode (data [_fb :]);if !_gedg {_b .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063\u006f\u0064\u0065\u0020\u006d\u0061\u0074\u0063\u0068\u0020\u0061\u0074\u0020\u0069\u003d\u0025\u0064\u0020\u0062\u0079\u0074\u0065\u0073\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d\u003d\u0025\u0023\u0071",_fb ,data ,string (data )); return _fcf ,false ;};_fcf =append (_fcf ,_ged );_fb +=_eggb ;};return _fcf ,true ;};func (cmap *CMap )WMode ()(int ,bool ){return cmap ._bea ._cdf ,cmap ._bea ._bcd };func (cmap *CMap )parseBfrange ()error {for {var _caad CharCode ;_fffd ,_fcd :=cmap .parseObject (); if _fcd !=nil {if _fcd ==_dd .EOF {break ;};return _fcd ;};switch _ccb :=_fffd .(type ){case cmapOperand :if _ccb .Operand ==_becb {return nil ;};return _fc .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064"); case cmapHexString :_caad =_bccc (_ccb );default:return _fc .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};var _edg CharCode ;_fffd ,_fcd =cmap .parseObject ();if _fcd !=nil {if _fcd ==_dd .EOF {break ;};return _fcd ; };switch _degb :=_fffd .(type ){case cmapOperand :_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006e\u0063\u006f\u006d\u0070\u006c\u0065\u0074\u0065\u0020\u0062\u0066r\u0061\u006e\u0067\u0065\u0020\u0074\u0072i\u0070\u006c\u0065\u0074"); return ErrBadCMap ;case cmapHexString :_edg =_bccc (_degb );if _edg > 0xffff{_edg =0xffff;};default:_b .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_fffd );return ErrBadCMap ; };_fffd ,_fcd =cmap .parseObject ();if _fcd !=nil {if _fcd ==_dd .EOF {break ;};return _fcd ;};switch _aecg :=_fffd .(type ){case cmapArray :if len (_aecg .Array )!=int (_edg -_caad )+1{_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u006e\u0075\u006d\u0062\u0065r\u0020\u006f\u0066\u0020\u0069\u0074\u0065\u006d\u0073\u0020\u0069\u006e\u0020a\u0072\u0072\u0061\u0079"); return ErrBadCMap ;};for _gbbg :=_caad ;_gbbg <=_edg ;_gbbg ++{_afg :=_aecg .Array [_gbbg -_caad ];_ddgg ,_bdac :=_afg .(cmapHexString );if !_bdac {return _fc .New ("\u006e\u006f\u006e-h\u0065\u0078\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0069\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };_fgg :=_ddff (_ddgg );cmap ._gfb [_gbbg ]=string (_fgg );};case cmapHexString :_gcc :=_ddff (_aecg );_agcg :=len (_gcc );for _efbc :=_caad ;_efbc <=_edg ;_efbc ++{cmap ._gfb [_efbc ]=string (_gcc );if _agcg > 0{_gcc [_agcg -1]++;}else {_b .Log .Debug ("\u004e\u006f\u0020c\u006d\u0061\u0070\u0020\u0074\u0061\u0072\u0067\u0065\u0074\u0020\u0063\u0068\u0061\u0072\u0061\u0063\u0074\u0065\u0072\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065d\u0020\u0066\u006f\u0072\u0020\u0025\u0023\u0076",_efbc ); };if _efbc ==1<<32-1{break ;};};default:_b .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_fffd );return ErrBadCMap ;};};return nil ;};func (cmap *CMap )parseBfchar ()error {for {_ddfbd ,_eec :=cmap .parseObject (); if _eec !=nil {if _eec ==_dd .EOF {break ;};return _eec ;};var _cegf CharCode ;switch _abd :=_ddfbd .(type ){case cmapOperand :if _abd .Operand ==_fbcc {return nil ;};return _fc .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064"); case cmapHexString :_cegf =_bccc (_abd );default:return _fc .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};_ddfbd ,_eec =cmap .parseObject ();if _eec !=nil {if _eec ==_dd .EOF {break ;};return _eec ;};var _gdf []rune ; switch _bbf :=_ddfbd .(type ){case cmapOperand :if _bbf .Operand ==_fbcc {return nil ;};_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020o\u0070\u0065\u0072\u0061\u006e\u0064\u002e\u0020\u0025\u0023\u0076",_bbf ); return ErrBadCMap ;case cmapHexString :_gdf =_ddff (_bbf );case cmapName :_b .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064 \u006e\u0061\u006de\u002e \u0025\u0023\u0076",_bbf );_gdf =[]rune {MissingCodeRune }; default:_b .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064 \u0074\u0079\u0070e\u002e \u0025\u0023\u0076",_ddfbd );return ErrBadCMap ;};cmap ._gfb [_cegf ]=string (_gdf );};return nil ;};func (cmap *CMap )CharcodeToUnicode (code CharCode )(string ,bool ){if _fca ,_aa :=cmap ._gfb [code ]; _aa {return _fca ,true ;};return MissingCodeString ,false ;};type cMapParser struct{_fcgc *_d .Reader };func (cmap *CMap )Bytes ()[]byte {_b .Log .Trace ("\u0063\u006d\u0061\u0070.B\u0079\u0074\u0065\u0073\u003a\u0020\u0063\u006d\u0061\u0070\u003d\u0025\u0073",cmap .String ()); if len (cmap ._eb )> 0{return cmap ._eb ;};cmap ._eb =[]byte (_a .Join ([]string {_ddfb ,cmap .toBfData (),_bfae },"\u000a"));return cmap ._eb ;};func _dgbd (_aaec ,_dfab int )int {if _aaec < _dfab {return _aaec ;};return _dfab ;};func (_cbg *CIDSystemInfo )String ()string {return _g .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0025\u0030\u0033\u0064",_cbg .Registry ,_cbg .Ordering ,_cbg .Supplement ); };func (cmap *CMap )inCodespace (_aae CharCode ,_agf int )bool {for _ ,_ccea :=range cmap ._fa {if _ccea .Low <=_aae &&_aae <=_ccea .High &&_agf ==_ccea .NumBytes {return true ;};};return false ;};func (_fga *cMapParser )parseHexString ()(cmapHexString ,error ){_fga ._fcgc .ReadByte (); _aefe :=[]byte ("\u0030\u0031\u0032\u003345\u0036\u0037\u0038\u0039\u0061\u0062\u0063\u0064\u0065\u0066\u0041\u0042\u0043\u0044E\u0046");_abg :=_f .Buffer {};for {_fga .skipSpaces ();_gaaf ,_dadc :=_fga ._fcgc .Peek (1);if _dadc !=nil {return cmapHexString {},_dadc ; };if _gaaf [0]=='>'{_fga ._fcgc .ReadByte ();break ;};_fdag ,_ :=_fga ._fcgc .ReadByte ();if _f .IndexByte (_aefe ,_fdag )>=0{_abg .WriteByte (_fdag );};};if _abg .Len ()%2==1{_b .Log .Debug ("\u0070\u0061rs\u0065\u0048\u0065x\u0053\u0074\u0072\u0069ng:\u0020ap\u0070\u0065\u006e\u0064\u0069\u006e\u0067 '\u0030\u0027\u0020\u0074\u006f\u0020\u0025#\u0071",_abg .String ()); _abg .WriteByte ('0');};_dbgd :=_abg .Len ()/2;_adab ,_ :=_cc .DecodeString (_abg .String ());return cmapHexString {_fdg :_dbgd ,_beca :_adab },nil ;};func (cmap *CMap )Type ()int {return cmap ._gf };var (ErrBadCMap =_fc .New ("\u0062\u0061\u0064\u0020\u0063\u006d\u0061\u0070"); ErrBadCMapComment =_fc .New ("c\u006f\u006d\u006d\u0065\u006e\u0074 \u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0073\u0074a\u0072\u0074\u0020w\u0069t\u0068\u0020\u0025");ErrBadCMapDict =_fc .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0069\u0063\u0074"); );type cmapInt struct{_gffac int64 };type cmapArray struct{Array []cmapObject ;};func (cmap *CMap )computeInverseMappings (){for _fdc ,_ff :=range cmap ._dg {if _ggc ,_bfc :=cmap ._cff [_ff ];!_bfc ||(_bfc &&_ggc > _fdc ){cmap ._cff [_ff ]=_fdc ;};};for _dce ,_ecg :=range cmap ._gfb {if _gee ,_dff :=cmap ._be [_ecg ]; !_dff ||(_dff &&_gee > _dce ){cmap ._be [_ecg ]=_dce ;};};_gb .Slice (cmap ._fa ,func (_dde ,_ebd int )bool {return cmap ._fa [_dde ].Low < cmap ._fa [_ebd ].Low });};func (cmap *CMap )CharcodeBytesToUnicode (data []byte )(string ,int ){_cg ,_ggg :=cmap .BytesToCharcodes (data ); if !_ggg {_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0042\u0079\u0074\u0065s\u0054\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u004e\u006f\u0074\u0020\u0069n\u0020\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u002e\u0020\u0064\u0061\u0074\u0061\u003d\u005b\u0025\u0020\u0030\u0032\u0078]\u0020\u0063\u006d\u0061\u0070=\u0025\u0073",data ,cmap ); return "",0;};_deg :=make ([]string ,len (_cg ));var _eea []CharCode ;for _dgf ,_dcf :=range _cg {_fg ,_dgg :=cmap ._gfb [_dcf ];if !_dgg {_eea =append (_eea ,_dcf );_fg =MissingCodeString ;};_deg [_dgf ]=_fg ;};_bbb :=_a .Join (_deg ,"");if len (_eea )> 0{_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020C\u0068\u0061\u0072c\u006f\u0064\u0065\u0042y\u0074\u0065\u0073\u0054\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u004e\u006f\u0074\u0020\u0069\u006e\u0020\u006d\u0061\u0070\u002e\u000a"+"\u0009d\u0061t\u0061\u003d\u005b\u0025\u00200\u0032\u0078]\u003d\u0025\u0023\u0071\u000a"+"\u0009\u0063h\u0061\u0072\u0063o\u0064\u0065\u0073\u003d\u0025\u0030\u0032\u0078\u000a"+"\u0009\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u003d\u0025\u0064\u0020%\u0030\u0032\u0078\u000a"+"\u0009\u0075\u006e\u0069\u0063\u006f\u0064\u0065\u003d`\u0025\u0073\u0060\u000a"+"\u0009\u0063\u006d\u0061\u0070\u003d\u0025\u0073",data ,string (data ),_cg ,len (_eea ),_eea ,_bbb ,cmap ); };return _bbb ,len (_eea );};func (cmap *CMap )CIDSystemInfo ()CIDSystemInfo {return cmap ._dfc };func (_adde *cMapParser )parseName ()(cmapName ,error ){_eed :="";_cdc :=false ;for {_dgd ,_gdbc :=_adde ._fcgc .Peek (1);if _gdbc ==_dd .EOF {break ;};if _gdbc !=nil {return cmapName {_eed },_gdbc ; };if !_cdc {if _dgd [0]=='/'{_cdc =true ;_adde ._fcgc .ReadByte ();}else {_b .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u004e\u0061\u006d\u0065\u0020\u0073\u0074a\u0072t\u0069n\u0067 \u0077\u0069\u0074\u0068\u0020\u0025\u0073\u0020\u0028\u0025\u0020\u0078\u0029",_dgd ,_dgd ); return cmapName {_eed },_g .Errorf ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u006ea\u006d\u0065:\u0020\u0028\u0025\u0063\u0029",_dgd [0]);};}else {if _eg .IsWhiteSpace (_dgd [0]){break ;}else if (_dgd [0]=='/')||(_dgd [0]=='[')||(_dgd [0]=='(')||(_dgd [0]==']')||(_dgd [0]=='<')||(_dgd [0]=='>'){break ; }else if _dgd [0]=='#'{_egf ,_fbg :=_adde ._fcgc .Peek (3);if _fbg !=nil {return cmapName {_eed },_fbg ;};_adde ._fcgc .Discard (3);_ddc ,_fbg :=_cc .DecodeString (string (_egf [1:3]));if _fbg !=nil {return cmapName {_eed },_fbg ;};_eed +=string (_ddc ); }else {_fdae ,_ :=_adde ._fcgc .ReadByte ();_eed +=string (_fdae );};};};return cmapName {_eed },nil ;};func (cmap *CMap )StringToCID (s string )(CharCode ,bool ){_ada ,_bac :=cmap ._be [s ];return _ada ,_bac ;};func (_bcbc *cMapParser )parseString ()(cmapString ,error ){_bcbc ._fcgc .ReadByte (); _fgdec :=_f .Buffer {};_bgfg :=1;for {_cbdc ,_cca :=_bcbc ._fcgc .Peek (1);if _cca !=nil {return cmapString {_fgdec .String ()},_cca ;};if _cbdc [0]=='\\'{_bcbc ._fcgc .ReadByte ();_fcae ,_bfbg :=_bcbc ._fcgc .ReadByte ();if _bfbg !=nil {return cmapString {_fgdec .String ()},_bfbg ; };if _eg .IsOctalDigit (_fcae ){_cae ,_gefc :=_bcbc ._fcgc .Peek (2);if _gefc !=nil {return cmapString {_fgdec .String ()},_gefc ;};var _eef []byte ;_eef =append (_eef ,_fcae );for _ ,_gaa :=range _cae {if _eg .IsOctalDigit (_gaa ){_eef =append (_eef ,_gaa ); }else {break ;};};_bcbc ._fcgc .Discard (len (_eef )-1);_b .Log .Trace ("\u004e\u0075\u006d\u0065ri\u0063\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0022\u0025\u0073\u0022",_eef );_aaef ,_gefc :=_e .ParseUint (string (_eef ),8,32);if _gefc !=nil {return cmapString {_fgdec .String ()},_gefc ; };_fgdec .WriteByte (byte (_aaef ));continue ;};switch _fcae {case 'n':_fgdec .WriteByte ('\n');case 'r':_fgdec .WriteByte ('\r');case 't':_fgdec .WriteByte ('\t');case 'b':_fgdec .WriteByte ('\b');case 'f':_fgdec .WriteByte ('\f');case '(':_fgdec .WriteByte ('('); case ')':_fgdec .WriteByte (')');case '\\':_fgdec .WriteByte ('\\');};continue ;}else if _cbdc [0]=='('{_bgfg ++;}else if _cbdc [0]==')'{_bgfg --;if _bgfg ==0{_bcbc ._fcgc .ReadByte ();break ;};};_gggc ,_ :=_bcbc ._fcgc .ReadByte ();_fgdec .WriteByte (_gggc ); };return cmapString {_fgdec .String ()},nil ;};func _bccc (_fgcb cmapHexString )CharCode {_becc :=CharCode (0);for _ ,_daa :=range _fgcb ._beca {_becc <<=8;_becc |=CharCode (_daa );};return _becc ;};type CMap struct{*cMapParser ;_ea string ;_cfa int ;_gf int ; _de string ;_agc string ;_dfc CIDSystemInfo ;_fa []Codespace ;_dg map[CharCode ]CharCode ;_cff map[CharCode ]CharCode ;_gfb map[CharCode ]string ;_be map[string ]CharCode ;_eb []byte ;_ab *_eg .PdfObjectStream ;_bea integer ;};const (_fef ="\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"; _cegb ="\u0062e\u0067\u0069\u006e\u0063\u006d\u0061p";_age ="\u0065n\u0064\u0063\u006d\u0061\u0070";_gffc ="\u0062\u0065\u0067\u0069nc\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0072\u0061\u006e\u0067\u0065";_ade ="\u0065\u006e\u0064\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065r\u0061\u006e\u0067\u0065"; _gbd ="b\u0065\u0067\u0069\u006e\u0062\u0066\u0063\u0068\u0061\u0072";_fbcc ="\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r";_abde ="\u0062\u0065\u0067i\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_becb ="\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065"; _gdc ="\u0062\u0065\u0067\u0069\u006e\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_bgcg ="e\u006e\u0064\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_befd ="\u0075s\u0065\u0063\u006d\u0061\u0070";_dfaf ="\u0057\u004d\u006fd\u0065";_agea ="\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065"; _bcf ="\u0043\u004d\u0061\u0070\u0054\u0079\u0070\u0065";_gbde ="C\u004d\u0061\u0070\u0056\u0065\u0072\u0073\u0069\u006f\u006e";);func (_bgf *cMapParser )skipSpaces ()(int ,error ){_cgfe :=0;for {_gfeg ,_adage :=_bgf ._fcgc .Peek (1);if _adage !=nil {return 0,_adage ; };if _eg .IsWhiteSpace (_gfeg [0]){_bgf ._fcgc .ReadByte ();_cgfe ++;}else {break ;};};return _cgfe ,nil ;};func _dabf (_aba []byte )*cMapParser {_ecfb :=cMapParser {};_acgb :=_f .NewBuffer (_aba );_ecfb ._fcgc =_d .NewReader (_acgb );return &_ecfb ;}; func (cmap *CMap )NBits ()int {return cmap ._cfa };func (cmap *CMap )parseCIDRange ()error {for {_cga ,_gagd :=cmap .parseObject ();if _gagd !=nil {if _gagd ==_dd .EOF {break ;};return _gagd ;};_bacb ,_afe :=_cga .(cmapHexString );if !_afe {if _ddbb ,_ceg :=_cga .(cmapOperand ); _ceg {if _ddbb .Operand ==_bgcg {return nil ;};return _fc .New ("\u0063\u0069\u0064\u0020\u0069\u006e\u0074\u0065\u0072\u0076\u0061\u006c\u0020s\u0074\u0061\u0072\u0074\u0020\u006du\u0073\u0074\u0020\u0062\u0065\u0020\u0061\u0020\u0068\u0065\u0078\u0020\u0073t\u0072\u0069\u006e\u0067"); };};_fcg :=_bccc (_bacb );_cga ,_gagd =cmap .parseObject ();if _gagd !=nil {if _gagd ==_dd .EOF {break ;};return _gagd ;};_caa ,_afe :=_cga .(cmapHexString );if !_afe {return _fc .New ("\u0063\u0069d\u0020\u0069\u006e\u0074e\u0072\u0076a\u006c\u0020\u0065\u006e\u0064\u0020\u006d\u0075s\u0074\u0020\u0062\u0065\u0020\u0061\u0020\u0068\u0065\u0078\u0020\u0073t\u0072\u0069\u006e\u0067"); };if len (_bacb ._beca )!=len (_caa ._beca ){return _fc .New ("\u0075\u006e\u0065\u0071\u0075\u0061\u006c\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0062\u0079\u0074\u0065\u0073\u0020\u0069\u006e\u0020\u0072\u0061\u006e\u0067\u0065");};_fafg :=_bccc (_caa ); if _fcg > _fafg {_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0049\u0044\u0020\u0072\u0061\u006e\u0067\u0065\u002e\u0020\u0073t\u0061\u0072\u0074\u003d\u0030\u0078\u0025\u0030\u0032\u0078\u0020\u0065\u006e\u0064=\u0030x\u0025\u0030\u0032\u0078",_fcg ,_fafg ); return ErrBadCMap ;};_cga ,_gagd =cmap .parseObject ();if _gagd !=nil {if _gagd ==_dd .EOF {break ;};return _gagd ;};_ecdg ,_afe :=_cga .(cmapInt );if !_afe {return _fc .New ("\u0063\u0069\u0064\u0020\u0073t\u0061\u0072\u0074\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0064\u0065\u0063\u0069\u006d\u0061\u006c\u0020\u006e\u0075\u006d\u0062\u0065\u0072"); };if _ecdg ._gffac < 0{return _fc .New ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0063\u0069\u0064\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0076\u0061\u006c\u0075\u0065");};_eag :=_ecdg ._gffac ;for _gcf :=_fcg ;_gcf <=_fafg ;_gcf ++{cmap ._dg [_gcf ]=CharCode (_eag ); _eag ++;};_b .Log .Trace ("C\u0049\u0044\u0020\u0072\u0061\u006eg\u0065\u003a\u0020\u003c\u0030\u0078\u0025\u0058\u003e \u003c\u0030\u0078%\u0058>\u0020\u0025\u0064",_fcg ,_fafg ,_ecdg ._gffac );};return nil ;};func _ddff (_dba cmapHexString )[]rune {if len (_dba ._beca )==1{return []rune {rune (_dba ._beca [0])}; };_dcge :=_dba ._beca ;if len (_dcge )%2!=0{_dcge =append (_dcge ,0);_b .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0068\u0065\u0078\u0054\u006f\u0052\u0075\u006e\u0065\u0073\u002e\u0020\u0050\u0061\u0064\u0064\u0069\u006e\u0067\u0020\u0073\u0068\u0065\u0078\u003d\u0025#\u0076\u0020\u0074\u006f\u0020\u0025\u002b\u0076",_dba ,_dcge ); };_ccae :=len (_dcge )>>1;_agg :=make ([]uint16 ,_ccae );for _aac :=0;_aac < _ccae ;_aac ++{_agg [_aac ]=uint16 (_dcge [_aac <<1])<<8+uint16 (_dcge [_aac <<1+1]);};_addf :=_cf .Decode (_agg );return _addf ;};const (_ag =4;MissingCodeRune ='\ufffd';MissingCodeString =string (MissingCodeRune ); );type integer struct{_bcd bool ;_cdf int ;};type Codespace struct{NumBytes int ;Low CharCode ;High CharCode ;};func (cmap *CMap )Stream ()(*_eg .PdfObjectStream ,error ){if cmap ._ab !=nil {return cmap ._ab ,nil ;};_gdec ,_ce :=_eg .MakeStream (cmap .Bytes (),_eg .NewFlateEncoder ()); if _ce !=nil {return nil ,_ce ;};cmap ._ab =_gdec ;return cmap ._ab ,nil ;};type cmapFloat struct{_dagf float64 };type cmapOperand struct{Operand string ;};type cmapName struct{Name string ;};func (cmap *CMap )parseName ()error {_aaa :="";_gef :=false ; for _gac :=0;_gac < 20&&!_gef ;_gac ++{_dab ,_ccg :=cmap .parseObject ();if _ccg !=nil {return _ccg ;};switch _cgee :=_dab .(type ){case cmapOperand :switch _cgee .Operand {case "\u0064\u0065\u0066":_gef =true ;default:_b .Log .Debug ("\u0070\u0061\u0072\u0073\u0065\u004e\u0061\u006d\u0065\u003a\u0020\u0053\u0074\u0061\u0074\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020o\u003d\u0025\u0023\u0076\u0020n\u0061\u006de\u003d\u0025\u0023\u0071",_dab ,_aaa ); if _aaa !=""{_aaa =_g .Sprintf ("\u0025\u0073\u0020%\u0073",_aaa ,_cgee .Operand );};_b .Log .Debug ("\u0070\u0061\u0072\u0073\u0065\u004e\u0061\u006d\u0065\u003a \u0052\u0065\u0063\u006f\u0076\u0065\u0072e\u0064\u002e\u0020\u006e\u0061\u006d\u0065\u003d\u0025\u0023\u0071",_aaa ); };case cmapName :_aaa =_cgee .Name ;};};if !_gef {_b .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0070\u0061\u0072\u0073\u0065N\u0061m\u0065:\u0020\u004e\u006f\u0020\u0064\u0065\u0066 ");return ErrBadCMap ;};cmap ._ea =_aaa ;return nil ;};func (cmap *CMap )parse ()error {var _gag cmapObject ; for {_gce ,_bce :=cmap .parseObject ();if _bce !=nil {if _bce ==_dd .EOF {break ;};_b .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0043\u004d\u0061\u0070\u003a\u0020\u0025\u0076",_bce );return _bce ;}; switch _ca :=_gce .(type ){case cmapOperand :_caf :=_ca ;switch _caf .Operand {case _gffc :_efb :=cmap .parseCodespaceRange ();if _efb !=nil {return _efb ;};case _gdc :_fbc :=cmap .parseCIDRange ();if _fbc !=nil {return _fbc ;};case _gbd :_adc :=cmap .parseBfchar (); if _adc !=nil {return _adc ;};case _abde :_gea :=cmap .parseBfrange ();if _gea !=nil {return _gea ;};case _befd :if _gag ==nil {_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u0073\u0065\u0063m\u0061\u0070\u0020\u0077\u0069\u0074\u0068\u0020\u006e\u006f \u0061\u0072\u0067"); return ErrBadCMap ;};_adb ,_fcfd :=_gag .(cmapName );if !_fcfd {_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0075\u0073\u0065\u0063\u006d\u0061\u0070\u0020\u0061\u0072\u0067\u0020\u006eo\u0074\u0020\u0061\u0020\u006e\u0061\u006de\u0020\u0025\u0023\u0076",_gag ); return ErrBadCMap ;};cmap ._agc =_adb .Name ;case _fef :_aeb :=cmap .parseSystemInfo ();if _aeb !=nil {return _aeb ;};};case cmapName :_acg :=_ca ;switch _acg .Name {case _fef :_cged :=cmap .parseSystemInfo ();if _cged !=nil {return _cged ;};case _agea :_bcb :=cmap .parseName (); if _bcb !=nil {return _bcb ;};case _bcf :_ccead :=cmap .parseType ();if _ccead !=nil {return _ccead ;};case _gbde :_egb :=cmap .parseVersion ();if _egb !=nil {return _egb ;};case _dfaf :if _bce =cmap .parseWMode ();_bce !=nil {return _bce ;};};};_gag =_gce ; };return nil ;};func (_baag *cMapParser )parseArray ()(cmapArray ,error ){_ded :=cmapArray {};_ded .Array =[]cmapObject {};_baag ._fcgc .ReadByte ();for {_baag .skipSpaces ();_efc ,_daba :=_baag ._fcgc .Peek (1);if _daba !=nil {return _ded ,_daba ;};if _efc [0]==']'{_baag ._fcgc .ReadByte (); break ;};_dede ,_daba :=_baag .parseObject ();if _daba !=nil {return _ded ,_daba ;};_ded .Array =append (_ded .Array ,_dede );};return _ded ,nil ;};func _ba (_ec bool )*CMap {_bg :=16;if _ec {_bg =8;};return &CMap {_cfa :_bg ,_dg :make (map[CharCode ]CharCode ),_cff :make (map[CharCode ]CharCode ),_gfb :make (map[CharCode ]string ),_be :make (map[string ]CharCode )}; };func (cmap *CMap )parseType ()error {_fff :=0;_bdge :=false ;for _cgeb :=0;_cgeb < 3&&!_bdge ;_cgeb ++{_gcg ,_gbe :=cmap .parseObject ();if _gbe !=nil {return _gbe ;};switch _aee :=_gcg .(type ){case cmapOperand :switch _aee .Operand {case "\u0064\u0065\u0066":_bdge =true ; default:_b .Log .Error ("\u0070\u0061r\u0073\u0065\u0054\u0079\u0070\u0065\u003a\u0020\u0073\u0074\u0061\u0074\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020\u006f=%\u0023\u0076",_gcg );return ErrBadCMap ;};case cmapInt :_fff =int (_aee ._gffac ); };};cmap ._gf =_fff ;return nil ;};func (cmap *CMap )CIDToCharcode (cid CharCode )(CharCode ,bool ){_gge ,_ac :=cmap ._cff [cid ];return _gge ,_ac ;};func (_bbdf *cMapParser )parseObject ()(cmapObject ,error ){_bbdf .skipSpaces ();for {_gedd ,_eaf :=_bbdf ._fcgc .Peek (2); if _eaf !=nil {return nil ,_eaf ;};if _gedd [0]=='%'{_bbdf .parseComment ();_bbdf .skipSpaces ();continue ;}else if _gedd [0]=='/'{_bgb ,_ffc :=_bbdf .parseName ();return _bgb ,_ffc ;}else if _gedd [0]=='('{_bdd ,_bgdd :=_bbdf .parseString ();return _bdd ,_bgdd ; }else if _gedd [0]=='['{_dcg ,_dge :=_bbdf .parseArray ();return _dcg ,_dge ;}else if (_gedd [0]=='<')&&(_gedd [1]=='<'){_adf ,_agda :=_bbdf .parseDict ();return _adf ,_agda ;}else if _gedd [0]=='<'{_ege ,_gdea :=_bbdf .parseHexString ();return _ege ,_gdea ; }else if _eg .IsDecimalDigit (_gedd [0])||(_gedd [0]=='-'&&_eg .IsDecimalDigit (_gedd [1])){_eeaf ,_fge :=_bbdf .parseNumber ();if _fge !=nil {return nil ,_fge ;};return _eeaf ,nil ;}else {_dbg ,_cgg :=_bbdf .parseOperand ();if _cgg !=nil {return nil ,_cgg ; };return _dbg ,nil ;};};};func (cmap *CMap )parseCodespaceRange ()error {for {_cfb ,_fffe :=cmap .parseObject ();if _fffe !=nil {if _fffe ==_dd .EOF {break ;};return _fffe ;};_dfde ,_gbb :=_cfb .(cmapHexString );if !_gbb {if _agd ,_aef :=_cfb .(cmapOperand ); _aef {if _agd .Operand ==_ade {return nil ;};return _fc .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");};};_cfb ,_fffe =cmap .parseObject ();if _fffe !=nil {if _fffe ==_dd .EOF {break ;};return _fffe ; };_fe ,_gbb :=_cfb .(cmapHexString );if !_gbb {return _fc .New ("\u006e\u006f\u006e-\u0068\u0065\u0078\u0020\u0068\u0069\u0067\u0068");};if len (_dfde ._beca )!=len (_fe ._beca ){return _fc .New ("\u0075\u006e\u0065\u0071\u0075\u0061\u006c\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0062\u0079\u0074\u0065\u0073\u0020\u0069\u006e\u0020\u0072\u0061\u006e\u0067\u0065"); };_gefg :=_bccc (_dfde );_gebb :=_bccc (_fe );if _gebb < _gefg {_b .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0042\u0061d\u0020\u0063\u006fd\u0065\u0073\u0070\u0061\u0063\u0065\u002e\u0020\u006cow\u003d\u0030\u0078%\u0030\u0032x\u0020\u0068\u0069\u0067\u0068\u003d0\u0078\u00250\u0032\u0078",_gefg ,_gebb ); return ErrBadCMap ;};_beeb :=_fe ._fdg ;_abb :=Codespace {NumBytes :_beeb ,Low :_gefg ,High :_gebb };cmap ._fa =append (cmap ._fa ,_abb );_b .Log .Trace ("\u0043\u006f\u0064e\u0073\u0070\u0061\u0063e\u0020\u006c\u006f\u0077\u003a\u0020\u0030x\u0025\u0058\u002c\u0020\u0068\u0069\u0067\u0068\u003a\u0020\u0030\u0078\u0025\u0058",_gefg ,_gebb ); };if len (cmap ._fa )==0{_b .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u0020\u0069\u006e\u0020\u0063ma\u0070\u002e");return ErrBadCMap ;};return nil ;};func (cmap *CMap )matchCode (_bfa []byte )(_bee CharCode ,_bd int ,_cgf bool ){for _bbd :=0; _bbd < _ag ;_bbd ++{if _bbd < len (_bfa ){_bee =_bee <<8|CharCode (_bfa [_bbd ]);_bd ++;};_cgf =cmap .inCodespace (_bee ,_bbd +1);if _cgf {return _bee ,_bd ,true ;};};_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063o\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0020m\u0061t\u0063\u0068\u0065\u0073\u0020\u0062\u0079\u0074\u0065\u0073\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d=\u0025\u0023\u0071\u0020\u0063\u006d\u0061\u0070\u003d\u0025\u0073",_bfa ,string (_bfa ),cmap ); return 0,0,false ;};type cmapDict struct{Dict map[string ]cmapObject ;};func IsPredefinedCMap (name string )bool {return _ed .AssetExists (name )};type cmapHexString struct{_fdg int ;_beca []byte ;};type cmapObject interface{};func _gaf ()cmapDict {return cmapDict {Dict :map[string ]cmapObject {}}}; func (_fbdb *cMapParser )parseOperand ()(cmapOperand ,error ){_dfdg :=cmapOperand {};_gddc :=_f .Buffer {};for {_agbf ,_abf :=_fbdb ._fcgc .Peek (1);if _abf !=nil {if _abf ==_dd .EOF {break ;};return _dfdg ,_abf ;};if _eg .IsDelimiter (_agbf [0]){break ; };if _eg .IsWhiteSpace (_agbf [0]){break ;};_gbbb ,_ :=_fbdb ._fcgc .ReadByte ();_gddc .WriteByte (_gbbb );};if _gddc .Len ()==0{return _dfdg ,_g .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u006f\u0070\u0065\u0072\u0061\u006e\u0064\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029"); };_dfdg .Operand =_gddc .String ();return _dfdg ,nil ;};func (_acaa *cMapParser )parseComment ()(string ,error ){var _gffa _f .Buffer ;_ ,_fgea :=_acaa .skipSpaces ();if _fgea !=nil {return _gffa .String (),_fgea ;};_ffe :=true ;for {_bdc ,_adae :=_acaa ._fcgc .Peek (1); if _adae !=nil {_b .Log .Debug ("p\u0061r\u0073\u0065\u0043\u006f\u006d\u006d\u0065\u006et\u003a\u0020\u0065\u0072r=\u0025\u0076",_adae );return _gffa .String (),_adae ;};if _ffe &&_bdc [0]!='%'{return _gffa .String (),ErrBadCMapComment ;};_ffe =false ; if (_bdc [0]!='\r')&&(_bdc [0]!='\n'){_agdg ,_ :=_acaa ._fcgc .ReadByte ();_gffa .WriteByte (_agdg );}else {break ;};};return _gffa .String (),nil ;};type fbRange struct{_fd CharCode ;_df CharCode ;_bfe string ;};func _egfc (_acgc cmapHexString )rune {_eedf :=_ddff (_acgc ); if _cbc :=len (_eedf );_cbc ==0{_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0068\u0065\u0078\u0054o\u0052\u0075\u006e\u0065\u002e\u0020\u0045\u0078p\u0065c\u0074\u0065\u0064\u0020\u0061\u0074\u0020\u006c\u0065\u0061\u0073\u0074\u0020\u006f\u006e\u0065\u0020\u0072u\u006e\u0065\u0020\u0073\u0068\u0065\u0078\u003d\u0025\u0023\u0076",_acgc ); return MissingCodeRune ;};if len (_eedf )> 1{_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0068\u0065\u0078\u0054\u006f\u0052\u0075\u006e\u0065\u002e\u0020\u0045\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0065\u0078\u0061\u0063\u0074\u006c\u0079\u0020\u006f\u006e\u0065\u0020\u0072\u0075\u006e\u0065\u0020\u0073\u0068\u0065\u0078\u003d\u0025\u0023v\u0020\u002d\u003e\u0020\u0025#\u0076",_acgc ,_eedf ); };return _eedf [0];};func _da (_cfe string )(*CMap ,error ){_cce ,_edd :=_ed .Asset (_cfe );if _edd !=nil {return nil ,_edd ;};return LoadCmapFromDataCID (_cce );};func (cmap *CMap )parseSystemInfo ()error {_dcee :=false ;_ebb :=false ;_eddcf :="";_def :=false ; _gdb :=CIDSystemInfo {};for _ddd :=0;_ddd < 50&&!_def ;_ddd ++{_bad ,_acac :=cmap .parseObject ();if _acac !=nil {return _acac ;};switch _ccef :=_bad .(type ){case cmapDict :_cgec :=_ccef .Dict ;_cbef ,_cd :=_cgec ["\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"]; if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_bag ,_cd :=_cbef .(cmapString );if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f"); return ErrBadCMap ;};_gdb .Registry =_bag .String ;_cbef ,_cd =_cgec ["\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"];if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f"); return ErrBadCMap ;};_bag ,_cd =_cbef .(cmapString );if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_gdb .Ordering =_bag .String ;_fdde ,_cd :=_cgec ["\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"]; if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_gff ,_cd :=_fdde .(cmapInt );if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f"); return ErrBadCMap ;};_gdb .Supplement =int (_gff ._gffac );_def =true ;case cmapOperand :switch _ccef .Operand {case "\u0062\u0065\u0067i\u006e":_dcee =true ;case "\u0065\u006e\u0064":_def =true ;case "\u0064\u0065\u0066":_ebb =false ;};case cmapName :if _dcee {_eddcf =_ccef .Name ; _ebb =true ;};case cmapString :if _ebb {switch _eddcf {case "\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079":_gdb .Registry =_ccef .String ;case "\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067":_gdb .Ordering =_ccef .String ;};};case cmapInt :if _ebb {switch _eddcf {case "\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074":_gdb .Supplement =int (_ccef ._gffac ); };};};};if !_def {_b .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0050\u0061\u0072\u0073\u0065\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006e\u0066\u006f\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u006ec\u006f\u0072\u0072\u0065\u0063\u0074\u006c\u0079"); return ErrBadCMap ;};cmap ._dfc =_gdb ;return nil ;};