// // 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 (_fb "bufio";_d "bytes";_g "encoding/hex";_b "errors";_c "fmt";_bb "github.com/unidoc/unipdf/v3/common";_fbae "github.com/unidoc/unipdf/v3/core";_fbb "github.com/unidoc/unipdf/v3/internal/cmap/bcmaps";_fba "io";_gf "sort";_e "strconv";_a "strings";_ce "unicode/utf16";);func (cmap *CMap )parseName ()error {_daag :="";_dfc :=false ;for _gee :=0;_gee < 20&&!_dfc ;_gee ++{_gec ,_gcfb :=cmap .parseObject ();if _gcfb !=nil {return _gcfb ;};switch _dba :=_gec .(type ){case cmapOperand :switch _dba .Operand {case "\u0064\u0065\u0066":_dfc =true ;default:_bb .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",_gec ,_daag );if _daag !=""{_daag =_c .Sprintf ("\u0025\u0073\u0020%\u0073",_daag ,_dba .Operand );};_bb .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",_daag );};case cmapName :_daag =_dba .Name ;};};if !_dfc {_bb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0070\u0061\u0072\u0073\u0065N\u0061m\u0065:\u0020\u004e\u006f\u0020\u0064\u0065\u0066 ");return ErrBadCMap ;};cmap ._ee =_daag ;return nil ;};func LoadCmapFromDataCID (data []byte )(*CMap ,error ){return LoadCmapFromData (data ,false )};func (cmap *CMap )NBits ()int {return cmap ._ag };func (cmap *CMap )toBfData ()string {if len (cmap ._gfe )==0{return "";};_gag :=make ([]CharCode ,0,len (cmap ._gfe ));for _bd :=range cmap ._gfe {_gag =append (_gag ,_bd );};_gf .Slice (_gag ,func (_fce ,_fcea int )bool {return _gag [_fce ]< _gag [_fcea ]});var _dc []charRange ;_dga :=charRange {_gag [0],_gag [0]};_bff :=cmap ._gfe [_gag [0]];for _ ,_cga :=range _gag [1:]{_aag :=cmap ._gfe [_cga ];if _cga ==_dga ._ge +1&&_db (_aag )==_db (_bff )+1{_dga ._ge =_cga ;}else {_dc =append (_dc ,_dga );_dga ._eb ,_dga ._ge =_cga ,_cga ;};_bff =_aag ;};_dc =append (_dc ,_dga );var _gba []CharCode ;var _adc []fbRange ;for _ ,_daae :=range _dc {if _daae ._eb ==_daae ._ge {_gba =append (_gba ,_daae ._eb );}else {_adc =append (_adc ,fbRange {_gg :_daae ._eb ,_ff :_daae ._ge ,_gc :cmap ._gfe [_daae ._eb ]});};};_bb .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 (_dc ),len (_gba ),len (_adc ));var _fa []string ;if len (_gba )> 0{_gae :=(len (_gba )+_gdf -1)/_gdf ;for _adg :=0;_adg < _gae ;_adg ++{_ceb :=_edcf (len (_gba )-_adg *_gdf ,_gdf );_fa =append (_fa ,_c .Sprintf ("\u0025\u0064\u0020\u0062\u0065\u0067\u0069\u006e\u0062f\u0063\u0068\u0061\u0072",_ceb ));for _eaf :=0;_eaf < _ceb ;_eaf ++{_ccd :=_gba [_adg *_gdf +_eaf ];_gfa :=cmap ._gfe [_ccd ];_fa =append (_fa ,_c .Sprintf ("\u003c%\u0030\u0034\u0078\u003e\u0020\u0025s",_ccd ,_faa (_gfa )));};_fa =append (_fa ,"\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r");};};if len (_adc )> 0{_cfea :=(len (_adc )+_gdf -1)/_gdf ;for _ffb :=0;_ffb < _cfea ;_ffb ++{_dfeg :=_edcf (len (_adc )-_ffb *_gdf ,_gdf );_fa =append (_fa ,_c .Sprintf ("\u0025d\u0020b\u0065\u0067\u0069\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065",_dfeg ));for _cbc :=0;_cbc < _dfeg ;_cbc ++{_fac :=_adc [_ffb *_gdf +_cbc ];_fa =append (_fa ,_c .Sprintf ("\u003c%\u00304\u0078\u003e\u003c\u0025\u0030\u0034\u0078\u003e\u0020\u0025\u0073",_fac ._gg ,_fac ._ff ,_faa (_fac ._gc )));};_fa =append (_fa ,"\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065");};};return _a .Join (_fa ,"\u000a");};func (_aaf *cMapParser )parseObject ()(cmapObject ,error ){_aaf .skipSpaces ();for {_ebfg ,_fee :=_aaf ._ecg .Peek (2);if _fee !=nil {return nil ,_fee ;};if _ebfg [0]=='%'{_aaf .parseComment ();_aaf .skipSpaces ();continue ;}else if _ebfg [0]=='/'{_cbe ,_ed :=_aaf .parseName ();return _cbe ,_ed ;}else if _ebfg [0]=='('{_fabf ,_dee :=_aaf .parseString ();return _fabf ,_dee ;}else if _ebfg [0]=='['{_bggd ,_deab :=_aaf .parseArray ();return _bggd ,_deab ;}else if (_ebfg [0]=='<')&&(_ebfg [1]=='<'){_ggdg ,_afe :=_aaf .parseDict ();return _ggdg ,_afe ;}else if _ebfg [0]=='<'{_ecf ,_dbfa :=_aaf .parseHexString ();return _ecf ,_dbfa ;}else if _fbae .IsDecimalDigit (_ebfg [0])||(_ebfg [0]=='-'&&_fbae .IsDecimalDigit (_ebfg [1])){_ecb ,_dde :=_aaf .parseNumber ();if _dde !=nil {return nil ,_dde ;};return _ecb ,nil ;}else {_eff ,_aed :=_aaf .parseOperand ();if _aed !=nil {return nil ,_aed ;};return _eff ,nil ;};};};func _aba (_fbef []byte )*cMapParser {_fdab :=cMapParser {};_bge :=_d .NewBuffer (_fbef );_fdab ._ecg =_fb .NewReader (_bge );return &_fdab ;};func (_cebf *cMapParser )parseNumber ()(cmapObject ,error ){_ada ,_ecd :=_fbae .ParseNumber (_cebf ._ecg );if _ecd !=nil {return nil ,_ecd ;};switch _fgba :=_ada .(type ){case *_fbae .PdfObjectFloat :return cmapFloat {float64 (*_fgba )},nil ;case *_fbae .PdfObjectInteger :return cmapInt {int64 (*_fgba )},nil ;};return nil ,_c .Errorf ("\u0075n\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u006e\u0075\u006db\u0065\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0054",_ada );};func (cmap *CMap )parseVersion ()error {_bda :="";_dfg :=false ;for _dcbb :=0;_dcbb < 3&&!_dfg ;_dcbb ++{_bag ,_bace :=cmap .parseObject ();if _bace !=nil {return _bace ;};switch _cba :=_bag .(type ){case cmapOperand :switch _cba .Operand {case "\u0064\u0065\u0066":_dfg =true ;default:_bb .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",_bag );return ErrBadCMap ;};case cmapInt :_bda =_c .Sprintf ("\u0025\u0064",_cba ._fga );case cmapFloat :_bda =_c .Sprintf ("\u0025\u0066",_cba ._gbbe );case cmapString :_bda =_cba .String ;default:_bb .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",_bag );};};cmap ._gdg =_bda ;return nil ;};func (cmap *CMap )parseBfchar ()error {for {_dbf ,_dgc :=cmap .parseObject ();if _dgc !=nil {if _dgc ==_fba .EOF {break ;};return _dgc ;};var _aec CharCode ;switch _ddf :=_dbf .(type ){case cmapOperand :if _ddf .Operand ==_ecc {return nil ;};return _b .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");case cmapHexString :_aec =_effc (_ddf );default:return _b .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};_dbf ,_dgc =cmap .parseObject ();if _dgc !=nil {if _dgc ==_fba .EOF {break ;};return _dgc ;};var _ffde []rune ;switch _gcfe :=_dbf .(type ){case cmapOperand :if _gcfe .Operand ==_ecc {return nil ;};_bb .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",_gcfe );return ErrBadCMap ;case cmapHexString :_ffde =_ecdd (_gcfe );case cmapName :_bb .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",_gcfe );_ffde =[]rune {MissingCodeRune };default:_bb .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",_dbf );return ErrBadCMap ;};cmap ._gfe [_aec ]=string (_ffde );};return nil ;};func (_bbe *CIDSystemInfo )String ()string {return _c .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0025\u0030\u0033\u0064",_bbe .Registry ,_bbe .Ordering ,_bbe .Supplement );};func (_dgfc *cMapParser )parseString ()(cmapString ,error ){_dgfc ._ecg .ReadByte ();_bbba :=_d .Buffer {};_edb :=1;for {_feea ,_feac :=_dgfc ._ecg .Peek (1);if _feac !=nil {return cmapString {_bbba .String ()},_feac ;};if _feea [0]=='\\'{_dgfc ._ecg .ReadByte ();_edc ,_dad :=_dgfc ._ecg .ReadByte ();if _dad !=nil {return cmapString {_bbba .String ()},_dad ;};if _fbae .IsOctalDigit (_edc ){_geb ,_caec :=_dgfc ._ecg .Peek (2);if _caec !=nil {return cmapString {_bbba .String ()},_caec ;};var _eeea []byte ;_eeea =append (_eeea ,_edc );for _ ,_dgb :=range _geb {if _fbae .IsOctalDigit (_dgb ){_eeea =append (_eeea ,_dgb );}else {break ;};};_dgfc ._ecg .Discard (len (_eeea )-1);_bb .Log .Trace ("\u004e\u0075\u006d\u0065ri\u0063\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0022\u0025\u0073\u0022",_eeea );_bca ,_caec :=_e .ParseUint (string (_eeea ),8,32);if _caec !=nil {return cmapString {_bbba .String ()},_caec ;};_bbba .WriteByte (byte (_bca ));continue ;};switch _edc {case 'n':_bbba .WriteByte ('\n');case 'r':_bbba .WriteByte ('\r');case 't':_bbba .WriteByte ('\t');case 'b':_bbba .WriteByte ('\b');case 'f':_bbba .WriteByte ('\f');case '(':_bbba .WriteByte ('(');case ')':_bbba .WriteByte (')');case '\\':_bbba .WriteByte ('\\');};continue ;}else if _feea [0]=='('{_edb ++;}else if _feea [0]==')'{_edb --;if _edb ==0{_dgfc ._ecg .ReadByte ();break ;};};_aece ,_ :=_dgfc ._ecg .ReadByte ();_bbba .WriteByte (_aece );};return cmapString {_bbba .String ()},nil ;};func (_agf *cMapParser )parseHexString ()(cmapHexString ,error ){_agf ._ecg .ReadByte ();_abcfb :=[]byte ("\u0030\u0031\u0032\u003345\u0036\u0037\u0038\u0039\u0061\u0062\u0063\u0064\u0065\u0066\u0041\u0042\u0043\u0044E\u0046");_caee :=_d .Buffer {};for {_agf .skipSpaces ();_dcda ,_dcdd :=_agf ._ecg .Peek (1);if _dcdd !=nil {return cmapHexString {},_dcdd ;};if _dcda [0]=='>'{_agf ._ecg .ReadByte ();break ;};_fdbb ,_ :=_agf ._ecg .ReadByte ();if _d .IndexByte (_abcfb ,_fdbb )>=0{_caee .WriteByte (_fdbb );};};if _caee .Len ()%2==1{_bb .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",_caee .String ());_caee .WriteByte ('0');};_fed :=_caee .Len ()/2;_ccga ,_ :=_g .DecodeString (_caee .String ());return cmapHexString {_egg :_fed ,_gbbd :_ccga },nil ;};func (cmap *CMap )BytesToCharcodes (data []byte )([]CharCode ,bool ){var _fbaf []CharCode ;if cmap ._ag ==8{for _ ,_baf :=range data {_fbaf =append (_fbaf ,CharCode (_baf ));};return _fbaf ,true ;};for _gbb :=0;_gbb < len (data );{_agce ,_ead ,_bgf :=cmap .matchCode (data [_gbb :]);if !_bgf {_bb .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",_gbb ,data ,string (data ));return _fbaf ,false ;};_fbaf =append (_fbaf ,_agce );_gbb +=_ead ;};return _fbaf ,true ;};func NewToUnicodeCMap (codeToRune map[CharCode ]rune )*CMap {_df :=make (map[CharCode ]string ,len (codeToRune ));for _dd ,_cdd :=range codeToRune {_df [_dd ]=string (_cdd );};cmap :=&CMap {_ee :"\u0041d\u006fb\u0065\u002d\u0049\u0064\u0065n\u0074\u0069t\u0079\u002d\u0055\u0043\u0053",_ea :2,_ag :16,_ebg :CIDSystemInfo {Registry :"\u0041\u0064\u006fb\u0065",Ordering :"\u0055\u0043\u0053",Supplement :0},_ab :[]Codespace {{Low :0,High :0xffff}},_gfe :_df ,_daa :make (map[string ]CharCode ,len (codeToRune )),_fe :make (map[CharCode ]CharCode ,len (codeToRune )),_gge :make (map[CharCode ]CharCode ,len (codeToRune ))};cmap .computeInverseMappings ();return cmap ;};func (cmap *CMap )CharcodeBytesToUnicode (data []byte )(string ,int ){_abe ,_afc :=cmap .BytesToCharcodes (data );if !_afc {_bb .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;};_fc :=make ([]string ,len (_abe ));var _bbd []CharCode ;for _bc ,_dag :=range _abe {_fca ,_agc :=cmap ._gfe [_dag ];if !_agc {_bbd =append (_bbd ,_dag );_fca =MissingCodeString ;};_fc [_bc ]=_fca ;};_fbe :=_a .Join (_fc ,"");if len (_bbd )> 0{_bb .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 ),_abe ,len (_bbd ),_bbd ,_fbe ,cmap );};return _fbe ,len (_bbd );};func _cgf (_bg string )(*CMap ,error ){_cc ,_ebea :=_fbb .Asset (_bg );if _ebea !=nil {return nil ,_ebea ;};return LoadCmapFromDataCID (_cc );};func _db (_ebf string )rune {_eagb :=[]rune (_ebf );return _eagb [len (_eagb )-1]};func (cmap *CMap )StringToCID (s string )(CharCode ,bool ){_gda ,_adb :=cmap ._daa [s ];return _gda ,_adb ;};func (_ddfa *cMapParser )skipSpaces ()(int ,error ){_edf :=0;for {_fbec ,_add :=_ddfa ._ecg .Peek (1);if _add !=nil {return 0,_add ;};if _fbae .IsWhiteSpace (_fbec [0]){_ddfa ._ecg .ReadByte ();_edf ++;}else {break ;};};return _edf ,nil ;};type cmapInt struct{_fga int64 };func (cmap *CMap )parseSystemInfo ()error {_fda :=false ;_gdde :=false ;_cge :="";_aga :=false ;_gbbf :=CIDSystemInfo {};for _bafd :=0;_bafd < 50&&!_aga ;_bafd ++{_aad ,_cfc :=cmap .parseObject ();if _cfc !=nil {return _cfc ;};switch _acea :=_aad .(type ){case cmapDict :_dea :=_acea .Dict ;_bbc ,_dgf :=_dea ["\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"];if !_dgf {_bb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_gfc ,_dgf :=_bbc .(cmapString );if !_dgf {_bb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_gbbf .Registry =_gfc .String ;_bbc ,_dgf =_dea ["\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"];if !_dgf {_bb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_gfc ,_dgf =_bbc .(cmapString );if !_dgf {_bb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_gbbf .Ordering =_gfc .String ;_aac ,_dgf :=_dea ["\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"];if !_dgf {_bb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_be ,_dgf :=_aac .(cmapInt );if !_dgf {_bb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_gbbf .Supplement =int (_be ._fga );_aga =true ;case cmapOperand :switch _acea .Operand {case "\u0062\u0065\u0067i\u006e":_fda =true ;case "\u0065\u006e\u0064":_aga =true ;case "\u0064\u0065\u0066":_gdde =false ;};case cmapName :if _fda {_cge =_acea .Name ;_gdde =true ;};case cmapString :if _gdde {switch _cge {case "\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079":_gbbf .Registry =_acea .String ;case "\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067":_gbbf .Ordering =_acea .String ;};};case cmapInt :if _gdde {switch _cge {case "\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074":_gbbf .Supplement =int (_acea ._fga );};};};};if !_aga {_bb .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 ._ebg =_gbbf ;return nil ;};type CIDSystemInfo struct{Registry string ;Ordering string ;Supplement int ;};func (cmap *CMap )matchCode (_feb []byte )(_cbg CharCode ,_cfe int ,_dda bool ){for _fgg :=0;_fgg < _gd ;_fgg ++{if _fgg < len (_feb ){_cbg =_cbg <<8|CharCode (_feb [_fgg ]);_cfe ++;};_dda =cmap .inCodespace (_cbg ,_fgg +1);if _dda {return _cbg ,_cfe ,true ;};};_bb .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",_feb ,string (_feb ),cmap );return 0,0,false ;};type cmapObject interface{};func (cmap *CMap )CharcodeToUnicode (code CharCode )(string ,bool ){if _bbb ,_fg :=cmap ._gfe [code ];_fg {return _bbb ,true ;};return MissingCodeString ,false ;};type charRange struct{_eb CharCode ;_ge CharCode ;};func _effc (_fcc cmapHexString )CharCode {_ggf :=CharCode (0);for _ ,_fgc :=range _fcc ._gbbd {_ggf <<=8;_ggf |=CharCode (_fgc );};return _ggf ;};const (_cfg ="\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f";_agaee ="\u0062e\u0067\u0069\u006e\u0063\u006d\u0061p";_egbe ="\u0065n\u0064\u0063\u006d\u0061\u0070";_cbcb ="\u0062\u0065\u0067\u0069nc\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0072\u0061\u006e\u0067\u0065";_gced ="\u0065\u006e\u0064\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065r\u0061\u006e\u0067\u0065";_dcdc ="b\u0065\u0067\u0069\u006e\u0062\u0066\u0063\u0068\u0061\u0072";_ecc ="\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r";_agaeb ="\u0062\u0065\u0067i\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_gaa ="\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_gbd ="\u0062\u0065\u0067\u0069\u006e\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_abcf ="e\u006e\u0064\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_fbed ="\u0075s\u0065\u0063\u006d\u0061\u0070";_ffab ="\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065";_acd ="\u0043\u004d\u0061\u0070\u0054\u0079\u0070\u0065";_dabd ="C\u004d\u0061\u0070\u0056\u0065\u0072\u0073\u0069\u006f\u006e";);const (_gdf =100;_cda ="\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";_bgc ="\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 _faa (_fbd string )string {_ef :=[]rune (_fbd );_bfa :=make ([]string ,len (_ef ));for _dcd ,_feg :=range _ef {_bfa [_dcd ]=_c .Sprintf ("\u0025\u0030\u0034\u0078",_feg );};return _c .Sprintf ("\u003c\u0025\u0073\u003e",_a .Join (_bfa ,""));};func _edcf (_deg ,_cdba int )int {if _deg < _cdba {return _deg ;};return _cdba ;};func (_cegg *cMapParser )parseComment ()(string ,error ){var _gcbg _d .Buffer ;_ ,_bde :=_cegg .skipSpaces ();if _bde !=nil {return _gcbg .String (),_bde ;};_fbf :=true ;for {_dcg ,_bffe :=_cegg ._ecg .Peek (1);if _bffe !=nil {_bb .Log .Debug ("p\u0061r\u0073\u0065\u0043\u006f\u006d\u006d\u0065\u006et\u003a\u0020\u0065\u0072r=\u0025\u0076",_bffe );return _gcbg .String (),_bffe ;};if _fbf &&_dcg [0]!='%'{return _gcbg .String (),ErrBadCMapComment ;};_fbf =false ;if (_dcg [0]!='\r')&&(_dcg [0]!='\n'){_cgcc ,_ :=_cegg ._ecg .ReadByte ();_gcbg .WriteByte (_cgcc );}else {break ;};};return _gcbg .String (),nil ;};func LoadPredefinedCMap (name string )(*CMap ,error ){cmap ,_fec :=_cgf (name );if _fec !=nil {return nil ,_fec ;};if cmap ._gb ==""{cmap .computeInverseMappings ();return cmap ,nil ;};_ac ,_fec :=_cgf (cmap ._gb );if _fec !=nil {return nil ,_fec ;};for _abb ,_gce :=range _ac ._fe {if _ ,_ffd :=cmap ._fe [_abb ];!_ffd {cmap ._fe [_abb ]=_gce ;};};cmap ._ab =append (cmap ._ab ,_ac ._ab ...);cmap .computeInverseMappings ();return cmap ,nil ;};const (_gd =4;MissingCodeRune ='\ufffd';MissingCodeString =string (MissingCodeRune ););func NewCIDSystemInfo (obj _fbae .PdfObject )(_da CIDSystemInfo ,_gdc error ){_ba ,_bf :=_fbae .GetDict (obj );if !_bf {return CIDSystemInfo {},_fbae .ErrTypeError ;};_cd ,_bf :=_fbae .GetStringVal (_ba .Get ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"));if !_bf {return CIDSystemInfo {},_fbae .ErrTypeError ;};_gcf ,_bf :=_fbae .GetStringVal (_ba .Get ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"));if !_bf {return CIDSystemInfo {},_fbae .ErrTypeError ;};_bfc ,_bf :=_fbae .GetIntVal (_ba .Get ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"));if !_bf {return CIDSystemInfo {},_fbae .ErrTypeError ;};return CIDSystemInfo {Registry :_cd ,Ordering :_gcf ,Supplement :_bfc },nil ;};func (_cac *cMapParser )parseName ()(cmapName ,error ){_edfa :="";_cegc :=false ;for {_bcd ,_fgd :=_cac ._ecg .Peek (1);if _fgd ==_fba .EOF {break ;};if _fgd !=nil {return cmapName {_edfa },_fgd ;};if !_cegc {if _bcd [0]=='/'{_cegc =true ;_cac ._ecg .ReadByte ();}else {_bb .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",_bcd ,_bcd );return cmapName {_edfa },_c .Errorf ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u006ea\u006d\u0065:\u0020\u0028\u0025\u0063\u0029",_bcd [0]);};}else {if _fbae .IsWhiteSpace (_bcd [0]){break ;}else if (_bcd [0]=='/')||(_bcd [0]=='[')||(_bcd [0]=='(')||(_bcd [0]==']')||(_bcd [0]=='<')||(_bcd [0]=='>'){break ;}else if _bcd [0]=='#'{_cae ,_gdff :=_cac ._ecg .Peek (3);if _gdff !=nil {return cmapName {_edfa },_gdff ;};_cac ._ecg .Discard (3);_gagb ,_gdff :=_g .DecodeString (string (_cae [1:3]));if _gdff !=nil {return cmapName {_edfa },_gdff ;};_edfa +=string (_gagb );}else {_gac ,_ :=_cac ._ecg .ReadByte ();_edfa +=string (_gac );};};};return cmapName {_edfa },nil ;};func (cmap *CMap )parseCodespaceRange ()error {for {_ccc ,_fab :=cmap .parseObject ();if _fab !=nil {if _fab ==_fba .EOF {break ;};return _fab ;};_acab ,_gagc :=_ccc .(cmapHexString );if !_gagc {if _dfgb ,_bef :=_ccc .(cmapOperand );_bef {if _dfgb .Operand ==_gced {return nil ;};return _b .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");};};_ccc ,_fab =cmap .parseObject ();if _fab !=nil {if _fab ==_fba .EOF {break ;};return _fab ;};_bgg ,_gagc :=_ccc .(cmapHexString );if !_gagc {return _b .New ("\u006e\u006f\u006e-\u0068\u0065\u0078\u0020\u0068\u0069\u0067\u0068");};if len (_acab ._gbbd )!=len (_bgg ._gbbd ){return _b .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");};_bdf :=_effc (_acab );_ebgf :=_effc (_bgg );if _ebgf < _bdf {_bb .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",_bdf ,_ebgf );return ErrBadCMap ;};_gfg :=_bgg ._egg ;_efa :=Codespace {NumBytes :_gfg ,Low :_bdf ,High :_ebgf };cmap ._ab =append (cmap ._ab ,_efa );_bb .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",_bdf ,_ebgf );};if len (cmap ._ab )==0{_bb .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 _ecdd (_fff cmapHexString )[]rune {if len (_fff ._gbbd )==1{return []rune {rune (_fff ._gbbd [0])};};_cfga :=_fff ._gbbd ;if len (_cfga )%2!=0{_cfga =append (_cfga ,0);_bb .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",_fff ,_cfga );};_dgcg :=len (_cfga )>>1;_fcbe :=make ([]uint16 ,_dgcg );for _eeg :=0;_eeg < _dgcg ;_eeg ++{_fcbe [_eeg ]=uint16 (_cfga [_eeg <<1])<<8+uint16 (_cfga [_eeg <<1+1]);};_deea :=_ce .Decode (_fcbe );return _deea ;};type CMap struct{*cMapParser ;_ee string ;_ag int ;_ea int ;_gdg string ;_gb string ;_ebg CIDSystemInfo ;_ab []Codespace ;_fe map[CharCode ]CharCode ;_gge map[CharCode ]CharCode ;_gfe map[CharCode ]string ;_daa map[string ]CharCode ;_cg []byte ;_agg *_fbae .PdfObjectStream ;};func (_gbf *cMapParser )parseOperand ()(cmapOperand ,error ){_ggdd :=cmapOperand {};_dec :=_d .Buffer {};for {_bea ,_bdaf :=_gbf ._ecg .Peek (1);if _bdaf !=nil {if _bdaf ==_fba .EOF {break ;};return _ggdd ,_bdaf ;};if _fbae .IsDelimiter (_bea [0]){break ;};if _fbae .IsWhiteSpace (_bea [0]){break ;};_gaed ,_ :=_gbf ._ecg .ReadByte ();_dec .WriteByte (_gaed );};if _dec .Len ()==0{return _ggdd ,_c .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u006f\u0070\u0065\u0072\u0061\u006e\u0064\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029");};_ggdd .Operand =_dec .String ();return _ggdd ,nil ;};func (_aea *cMapParser )parseArray ()(cmapArray ,error ){_dfcb :=cmapArray {};_dfcb .Array =[]cmapObject {};_aea ._ecg .ReadByte ();for {_aea .skipSpaces ();_gbbb ,_gedd :=_aea ._ecg .Peek (1);if _gedd !=nil {return _dfcb ,_gedd ;};if _gbbb [0]==']'{_aea ._ecg .ReadByte ();break ;};_fcb ,_gedd :=_aea .parseObject ();if _gedd !=nil {return _dfcb ,_gedd ;};_dfcb .Array =append (_dfcb .Array ,_fcb );};return _dfcb ,nil ;};type cmapArray struct{Array []cmapObject ;};func (cmap *CMap )CharcodeToCID (code CharCode )(CharCode ,bool ){_gbc ,_aca :=cmap ._fe [code ];return _gbc ,_aca ;};func (cmap *CMap )inCodespace (_egb CharCode ,_dfb int )bool {for _ ,_gcd :=range cmap ._ab {if _gcd .Low <=_egb &&_egb <=_gcd .High &&_dfb ==_gcd .NumBytes {return true ;};};return false ;};type cmapString struct{String string ;};func (cmap *CMap )parseType ()error {_dbc :=0;_ffbe :=false ;for _cfaf :=0;_cfaf < 3&&!_ffbe ;_cfaf ++{_aae ,_fgb :=cmap .parseObject ();if _fgb !=nil {return _fgb ;};switch _fdb :=_aae .(type ){case cmapOperand :switch _fdb .Operand {case "\u0064\u0065\u0066":_ffbe =true ;default:_bb .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",_aae );return ErrBadCMap ;};case cmapInt :_dbc =int (_fdb ._fga );};};cmap ._ea =_dbc ;return nil ;};func _fcdc ()cmapDict {return cmapDict {Dict :map[string ]cmapObject {}}};func (cmap *CMap )parse ()error {var _ccg cmapObject ;for {_gcb ,_aef :=cmap .parseObject ();if _aef !=nil {if _aef ==_fba .EOF {break ;};_bb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0043\u004d\u0061\u0070\u003a\u0020\u0025\u0076",_aef );return _aef ;};switch _bac :=_gcb .(type ){case cmapOperand :_fdcf :=_bac ;switch _fdcf .Operand {case _cbcb :_ccaa :=cmap .parseCodespaceRange ();if _ccaa !=nil {return _ccaa ;};case _gbd :_efd :=cmap .parseCIDRange ();if _efd !=nil {return _efd ;};case _dcdc :_caa :=cmap .parseBfchar ();if _caa !=nil {return _caa ;};case _agaeb :_gbe :=cmap .parseBfrange ();if _gbe !=nil {return _gbe ;};case _fbed :if _ccg ==nil {_bb .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 ;};_gab ,_efdc :=_ccg .(cmapName );if !_efdc {_bb .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",_ccg );return ErrBadCMap ;};cmap ._gb =_gab .Name ;case _cfg :_cff :=cmap .parseSystemInfo ();if _cff !=nil {return _cff ;};};case cmapName :_ccf :=_bac ;switch _ccf .Name {case _cfg :_ccac :=cmap .parseSystemInfo ();if _ccac !=nil {return _ccac ;};case _ffab :_gdfb :=cmap .parseName ();if _gdfb !=nil {return _gdfb ;};case _acd :_ged :=cmap .parseType ();if _ged !=nil {return _ged ;};case _dabd :_ceg :=cmap .parseVersion ();if _ceg !=nil {return _ceg ;};};};_ccg =_gcb ;};return nil ;};func (cmap *CMap )CIDToCharcode (cid CharCode )(CharCode ,bool ){_ga ,_ae :=cmap ._gge [cid ];return _ga ,_ae ;};func (cmap *CMap )computeInverseMappings (){for _cce ,_eg :=range cmap ._fe {if _bbg ,_af :=cmap ._gge [_eg ];!_af ||(_af &&_bbg > _cce ){cmap ._gge [_eg ]=_cce ;};};for _dg ,_eeb :=range cmap ._gfe {if _bbed ,_dab :=cmap ._daa [_eeb ];!_dab ||(_dab &&_bbed > _dg ){cmap ._daa [_eeb ]=_dg ;};};_gf .Slice (cmap ._ab ,func (_dfe ,_cgc int )bool {return cmap ._ab [_dfe ].Low < cmap ._ab [_cgc ].Low });};func (cmap *CMap )parseBfrange ()error {for {var _fbg CharCode ;_faaa ,_acg :=cmap .parseObject ();if _acg !=nil {if _acg ==_fba .EOF {break ;};return _acg ;};switch _beb :=_faaa .(type ){case cmapOperand :if _beb .Operand ==_gaa {return nil ;};return _b .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");case cmapHexString :_fbg =_effc (_beb );default:return _b .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};var _afb CharCode ;_faaa ,_acg =cmap .parseObject ();if _acg !=nil {if _acg ==_fba .EOF {break ;};return _acg ;};switch _ggd :=_faaa .(type ){case cmapOperand :_bb .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 :_afb =_effc (_ggd );default:_bb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_faaa );return ErrBadCMap ;};_faaa ,_acg =cmap .parseObject ();if _acg !=nil {if _acg ==_fba .EOF {break ;};return _acg ;};switch _fdd :=_faaa .(type ){case cmapArray :if len (_fdd .Array )!=int (_afb -_fbg )+1{_bb .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 _ccde :=_fbg ;_ccde <=_afb ;_ccde ++{_abgf :=_fdd .Array [_ccde -_fbg ];_dgd ,_dagb :=_abgf .(cmapHexString );if !_dagb {return _b .New ("\u006e\u006f\u006e-h\u0065\u0078\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0069\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};_ege :=_ecdd (_dgd );cmap ._gfe [_ccde ]=string (_ege );};case cmapHexString :_eac :=_ecdd (_fdd );_bba :=len (_eac );for _ggc :=_fbg ;_ggc <=_afb ;_ggc ++{cmap ._gfe [_ggc ]=string (_eac );_eac [_bba -1]++;};default:_bb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_faaa );return ErrBadCMap ;};};return nil ;};type cmapHexString struct{_egg int ;_gbbd []byte ;};func _bcdg (_ccfg cmapHexString )rune {_cfeg :=_ecdd (_ccfg );if _cec :=len (_cfeg );_cec ==0{_bb .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",_ccfg );return MissingCodeRune ;};if len (_cfeg )> 1{_bb .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",_ccfg ,_cfeg );};return _cfeg [0];};type cmapDict struct{Dict map[string ]cmapObject ;};func (cmap *CMap )parseCIDRange ()error {for {_gdac ,_abbc :=cmap .parseObject ();if _abbc !=nil {if _abbc ==_fba .EOF {break ;};return _abbc ;};_fea ,_gef :=_gdac .(cmapHexString );if !_gef {if _ec ,_cgac :=_gdac .(cmapOperand );_cgac {if _ec .Operand ==_abcf {return nil ;};return _b .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");};};_bed :=_effc (_fea );_gdac ,_abbc =cmap .parseObject ();if _abbc !=nil {if _abbc ==_fba .EOF {break ;};return _abbc ;};_geee ,_gef :=_gdac .(cmapHexString );if !_gef {return _b .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 (_fea ._gbbd )!=len (_geee ._gbbd ){return _b .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");};_dbe :=_effc (_geee );if _bed > _dbe {_bb .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",_bed ,_dbe );return ErrBadCMap ;};_gdac ,_abbc =cmap .parseObject ();if _abbc !=nil {if _abbc ==_fba .EOF {break ;};return _abbc ;};_cgff ,_gef :=_gdac .(cmapInt );if !_gef {return _b .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 _cgff ._fga < 0{return _b .New ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0063\u0069\u0064\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0076\u0061\u006c\u0075\u0065");};_cgfg :=_cgff ._fga ;for _agae :=_bed ;_agae <=_dbe ;_agae ++{cmap ._fe [_agae ]=CharCode (_cgfg );_cgfg ++;};_bb .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",_bed ,_dbe ,_cgff ._fga );};return nil ;};type Codespace struct{NumBytes int ;Low CharCode ;High CharCode ;};func _cdb (_ad bool )*CMap {_de :=16;if _ad {_de =8;};return &CMap {_ag :_de ,_fe :make (map[CharCode ]CharCode ),_gge :make (map[CharCode ]CharCode ),_gfe :make (map[CharCode ]string ),_daa :make (map[string ]CharCode )};};func (cmap *CMap )String ()string {_dgge :=cmap ._ebg ;_bcb :=[]string {_c .Sprintf ("\u006e\u0062\u0069\u0074\u0073\u003a\u0025\u0064",cmap ._ag ),_c .Sprintf ("\u0074y\u0070\u0065\u003a\u0025\u0064",cmap ._ea )};if cmap ._gdg !=""{_bcb =append (_bcb ,_c .Sprintf ("\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u003a\u0025\u0073",cmap ._gdg ));};if cmap ._gb !=""{_bcb =append (_bcb ,_c .Sprintf ("u\u0073\u0065\u0063\u006d\u0061\u0070\u003a\u0025\u0023\u0071",cmap ._gb ));};_bcb =append (_bcb ,_c .Sprintf ("\u0073\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f\u003a\u0025\u0073",_dgge .String ()));if len (cmap ._ab )> 0{_bcb =append (_bcb ,_c .Sprintf ("\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u003a\u0025\u0064",len (cmap ._ab )));};if len (cmap ._gfe )> 0{_bcb =append (_bcb ,_c .Sprintf ("\u0063\u006fd\u0065\u0054\u006fU\u006e\u0069\u0063\u006f\u0064\u0065\u003a\u0025\u0064",len (cmap ._gfe )));};return _c .Sprintf ("\u0043\u004d\u0041P\u007b\u0025\u0023\u0071\u0020\u0025\u0073\u007d",cmap ._ee ,_a .Join (_bcb ,"\u0020"));};type cmapName struct{Name string ;};type cmapOperand struct{Operand string ;};func LoadCmapFromData (data []byte ,isSimple bool )(*CMap ,error ){_bb .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 :=_cdb (isSimple );cmap .cMapParser =_aba (data );_aa :=cmap .parse ();if _aa !=nil {return nil ,_aa ;};if len (cmap ._ab )==0{if cmap ._gb !=""{return cmap ,nil ;};_bb .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 );return nil ,ErrBadCMap ;};cmap .computeInverseMappings ();return cmap ,nil ;};func (cmap *CMap )Name ()string {return cmap ._ee };func (cmap *CMap )Bytes ()[]byte {_bb .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 ._cg )> 0{return cmap ._cg ;};cmap ._cg =[]byte (_a .Join ([]string {_cda ,cmap .toBfData (),_bgc },"\u000a"));return cmap ._cg ;};type CharCode uint32 ;func (cmap *CMap )Type ()int {return cmap ._ea };type fbRange struct{_gg CharCode ;_ff CharCode ;_gc string ;};func (_eef *cMapParser )parseDict ()(cmapDict ,error ){_bb .Log .Trace ("\u0052\u0065\u0061\u0064\u0069\u006e\u0067\u0020\u0050\u0044\u0046\u0020D\u0069\u0063\u0074\u0021");_cgg :=_fcdc ();_dcbf ,_ :=_eef ._ecg .ReadByte ();if _dcbf !='<'{return _cgg ,ErrBadCMapDict ;};_dcbf ,_ =_eef ._ecg .ReadByte ();if _dcbf !='<'{return _cgg ,ErrBadCMapDict ;};for {_eef .skipSpaces ();_bdab ,_cfca :=_eef ._ecg .Peek (2);if _cfca !=nil {return _cgg ,_cfca ;};if (_bdab [0]=='>')&&(_bdab [1]=='>'){_eef ._ecg .ReadByte ();_eef ._ecg .ReadByte ();break ;};_efg ,_cfca :=_eef .parseName ();_bb .Log .Trace ("\u004be\u0079\u003a\u0020\u0025\u0073",_efg .Name );if _cfca !=nil {_bb .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",_cfca );return _cgg ,_cfca ;};_eef .skipSpaces ();_beff ,_cfca :=_eef .parseObject ();if _cfca !=nil {return _cgg ,_cfca ;};_cgg .Dict [_efg .Name ]=_beff ;_eef .skipSpaces ();_bdab ,_cfca =_eef ._ecg .Peek (3);if _cfca !=nil {return _cgg ,_cfca ;};if string (_bdab )=="\u0064\u0065\u0066"{_eef ._ecg .Discard (3);};};return _cgg ,nil ;};type cMapParser struct{_ecg *_fb .Reader };func (cmap *CMap )Stream ()(*_fbae .PdfObjectStream ,error ){if cmap ._agg !=nil {return cmap ._agg ,nil ;};_cdf ,_cca :=_fbae .MakeStream (cmap .Bytes (),_fbae .NewFlateEncoder ());if _cca !=nil {return nil ,_cca ;};cmap ._agg =_cdf ;return cmap ._agg ,nil ;};var (ErrBadCMap =_b .New ("\u0062\u0061\u0064\u0020\u0063\u006d\u0061\u0070");ErrBadCMapComment =_b .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 =_b .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0069\u0063\u0074"););func IsPredefinedCMap (name string )bool {return _fbb .AssetExists (name )};type cmapFloat struct{_gbbe float64 };