mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-30 13:48:51 +08:00
12 lines
40 KiB
Go
12 lines
40 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 cmap ;import (_aa "bufio";_b "bytes";_c "encoding/hex";_ag "errors";_e "fmt";_ca "github.com/unidoc/unipdf/v3/common";_cb "github.com/unidoc/unipdf/v3/core";_agc "github.com/unidoc/unipdf/v3/internal/cmap/bcmaps";_ab "io";_ff "sort";_f "strconv";_af "strings";_a "unicode/utf16";);func _fdca (_dcgc cmapHexString )CharCode {_afafee :=CharCode (0);for _ ,_egge :=range _dcgc ._afcf {_afafee <<=8;_afafee |=CharCode (_egge );};return _afafee ;};func IsPredefinedCMap (name string )bool {return _agc .AssetExists (name )};func (_cffb *cMapParser )parseDict ()(cmapDict ,error ){_ca .Log .Trace ("\u0052\u0065\u0061\u0064\u0069\u006e\u0067\u0020\u0050\u0044\u0046\u0020D\u0069\u0063\u0074\u0021");_egcd :=_bge ();_facg ,_ :=_cffb ._cea .ReadByte ();if _facg !='<'{return _egcd ,ErrBadCMapDict ;};_facg ,_ =_cffb ._cea .ReadByte ();if _facg !='<'{return _egcd ,ErrBadCMapDict ;};for {_cffb .skipSpaces ();_bfc ,_gdb :=_cffb ._cea .Peek (2);if _gdb !=nil {return _egcd ,_gdb ;};if (_bfc [0]=='>')&&(_bfc [1]=='>'){_cffb ._cea .ReadByte ();_cffb ._cea .ReadByte ();break ;};_dbdd ,_gdb :=_cffb .parseName ();_ca .Log .Trace ("\u004be\u0079\u003a\u0020\u0025\u0073",_dbdd .Name );if _gdb !=nil {_ca .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",_gdb );return _egcd ,_gdb ;};_cffb .skipSpaces ();_eecg ,_gdb :=_cffb .parseObject ();if _gdb !=nil {return _egcd ,_gdb ;};_egcd .Dict [_dbdd .Name ]=_eecg ;_cffb .skipSpaces ();_bfc ,_gdb =_cffb ._cea .Peek (3);if _gdb !=nil {return _egcd ,_gdb ;};if string (_bfc )=="\u0064\u0065\u0066"{_cffb ._cea .Discard (3);};};return _egcd ,nil ;};func _defb (_egcf ,_decc int )int {if _egcf < _decc {return _egcf ;};return _decc ;};func (cmap *CMap )Bytes ()[]byte {_ca .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 ._ad )> 0{return cmap ._ad ;};cmap ._ad =[]byte (_af .Join ([]string {_bdbb ,cmap .toBfData (),_beg },"\u000a"));return cmap ._ad ;};type cmapOperand struct{Operand string ;};func (cmap *CMap )parseType ()error {_cde :=0;_gf :=false ;for _gff :=0;_gff < 3&&!_gf ;_gff ++{_abbf ,_cge :=cmap .parseObject ();if _cge !=nil {return _cge ;};switch _gfa :=_abbf .(type ){case cmapOperand :switch _gfa .Operand {case "\u0064\u0065\u0066":_gf =true ;default:_ca .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",_abbf );return ErrBadCMap ;};case cmapInt :_cde =int (_gfa ._bcg );};};cmap ._dd =_cde ;return nil ;};func _fce (_gbb []byte )*cMapParser {_ffea :=cMapParser {};_ceag :=_b .NewBuffer (_gbb );_ffea ._cea =_aa .NewReader (_ceag );return &_ffea ;};const (_ffce ="\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f";_egc ="\u0062e\u0067\u0069\u006e\u0063\u006d\u0061p";_gagf ="\u0065n\u0064\u0063\u006d\u0061\u0070";_fdec ="\u0062\u0065\u0067\u0069nc\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0072\u0061\u006e\u0067\u0065";_ggd ="\u0065\u006e\u0064\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065r\u0061\u006e\u0067\u0065";_fcdc ="b\u0065\u0067\u0069\u006e\u0062\u0066\u0063\u0068\u0061\u0072";_ddfc ="\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r";_bdg ="\u0062\u0065\u0067i\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_faef ="\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_geb ="\u0062\u0065\u0067\u0069\u006e\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_fgfd ="e\u006e\u0064\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_gcfg ="\u0075s\u0065\u0063\u006d\u0061\u0070";_gccb ="\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065";_ccca ="\u0043\u004d\u0061\u0070\u0054\u0079\u0070\u0065";_ggf ="C\u004d\u0061\u0070\u0056\u0065\u0072\u0073\u0069\u006f\u006e";);func (cmap *CMap )toBfData ()string {if len (cmap ._de )==0{return "";};_cfa :=make ([]CharCode ,0,len (cmap ._de ));for _agb :=range cmap ._de {_cfa =append (_cfa ,_agb );};_ff .Slice (_cfa ,func (_fdb ,_eb int )bool {return _cfa [_fdb ]< _cfa [_eb ]});var _fcg []charRange ;_cecd :=charRange {_cfa [0],_cfa [0]};_gcd :=cmap ._de [_cfa [0]];for _ ,_aaec :=range _cfa [1:]{_bfb :=cmap ._de [_aaec ];if _aaec ==_cecd ._afa +1&&_ebff (_bfb )==_ebff (_gcd )+1{_cecd ._afa =_aaec ;}else {_fcg =append (_fcg ,_cecd );_cecd ._eg ,_cecd ._afa =_aaec ,_aaec ;};_gcd =_bfb ;};_fcg =append (_fcg ,_cecd );var _fbe []CharCode ;var _cac []fbRange ;for _ ,_efd :=range _fcg {if _efd ._eg ==_efd ._afa {_fbe =append (_fbe ,_efd ._eg );}else {_cac =append (_cac ,fbRange {_ba :_efd ._eg ,_ed :_efd ._afa ,_agcg :cmap ._de [_efd ._eg ]});};};_ca .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 (_fcg ),len (_fbe ),len (_cac ));var _gcb []string ;if len (_fbe )> 0{_adga :=(len (_fbe )+_gg -1)/_gg ;for _ebd :=0;_ebd < _adga ;_ebd ++{_badb :=_defb (len (_fbe )-_ebd *_gg ,_gg );_gcb =append (_gcb ,_e .Sprintf ("\u0025\u0064\u0020\u0062\u0065\u0067\u0069\u006e\u0062f\u0063\u0068\u0061\u0072",_badb ));for _ffaf :=0;_ffaf < _badb ;_ffaf ++{_cdad :=_fbe [_ebd *_gg +_ffaf ];_adf :=cmap ._de [_cdad ];_gcb =append (_gcb ,_e .Sprintf ("\u003c%\u0030\u0034\u0078\u003e\u0020\u0025s",_cdad ,_gee (_adf )));};_gcb =append (_gcb ,"\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r");};};if len (_cac )> 0{_ffc :=(len (_cac )+_gg -1)/_gg ;for _gb :=0;_gb < _ffc ;_gb ++{_ege :=_defb (len (_cac )-_gb *_gg ,_gg );_gcb =append (_gcb ,_e .Sprintf ("\u0025d\u0020b\u0065\u0067\u0069\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065",_ege ));for _ebf :=0;_ebf < _ege ;_ebf ++{_ega :=_cac [_gb *_gg +_ebf ];_gcb =append (_gcb ,_e .Sprintf ("\u003c%\u00304\u0078\u003e\u003c\u0025\u0030\u0034\u0078\u003e\u0020\u0025\u0073",_ega ._ba ,_ega ._ed ,_gee (_ega ._agcg )));};_gcb =append (_gcb ,"\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065");};};return _af .Join (_gcb ,"\u000a");};func LoadCmapFromDataCID (data []byte )(*CMap ,error ){return LoadCmapFromData (data ,false )};type fbRange struct{_ba CharCode ;_ed CharCode ;_agcg string ;};func _cc (_bb string )(*CMap ,error ){_aef ,_dfd :=_agc .Asset (_bb );if _dfd !=nil {return nil ,_dfd ;};return LoadCmapFromDataCID (_aef );};func (_fdbge *cMapParser )parseNumber ()(cmapObject ,error ){_gbe ,_ffceg :=_cb .ParseNumber (_fdbge ._cea );if _ffceg !=nil {return nil ,_ffceg ;};switch _efa :=_gbe .(type ){case *_cb .PdfObjectFloat :return cmapFloat {float64 (*_efa )},nil ;case *_cb .PdfObjectInteger :return cmapInt {int64 (*_efa )},nil ;};return nil ,_e .Errorf ("\u0075n\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u006e\u0075\u006db\u0065\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0054",_gbe );};type cMapParser struct{_cea *_aa .Reader };func (cmap *CMap )CharcodeToCID (code CharCode )(CharCode ,bool ){_cbe ,_fc :=cmap ._ac [code ];return _cbe ,_fc ;};func (cmap *CMap )parseSystemInfo ()error {_fcf :=false ;_bfg :=false ;_cfd :="";_acf :=false ;_fae :=CIDSystemInfo {};for _adef :=0;_adef < 50&&!_acf ;_adef ++{_efe ,_bfa :=cmap .parseObject ();if _bfa !=nil {return _bfa ;};switch _ffb :=_efe .(type ){case cmapDict :_egf :=_ffb .Dict ;_dagg ,_gbd :=_egf ["\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"];if !_gbd {_ca .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_cccb ,_gbd :=_dagg .(cmapString );if !_gbd {_ca .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_fae .Registry =_cccb .String ;_dagg ,_gbd =_egf ["\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"];if !_gbd {_ca .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_cccb ,_gbd =_dagg .(cmapString );if !_gbd {_ca .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_fae .Ordering =_cccb .String ;_abbd ,_gbd :=_egf ["\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"];if !_gbd {_ca .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_bfbg ,_gbd :=_abbd .(cmapInt );if !_gbd {_ca .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_fae .Supplement =int (_bfbg ._bcg );_acf =true ;case cmapOperand :switch _ffb .Operand {case "\u0062\u0065\u0067i\u006e":_fcf =true ;case "\u0065\u006e\u0064":_acf =true ;case "\u0064\u0065\u0066":_bfg =false ;};case cmapName :if _fcf {_cfd =_ffb .Name ;_bfg =true ;};case cmapString :if _bfg {switch _cfd {case "\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079":_fae .Registry =_ffb .String ;case "\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067":_fae .Ordering =_ffb .String ;};};case cmapInt :if _bfg {switch _cfd {case "\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074":_fae .Supplement =int (_ffb ._bcg );};};};};if !_acf {_ca .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 ._g =_fae ;return nil ;};func (cmap *CMap )matchCode (_eag []byte )(_eda CharCode ,_cec int ,_caa bool ){for _gag :=0;_gag < _df ;_gag ++{if _gag < len (_eag ){_eda =_eda <<8|CharCode (_eag [_gag ]);_cec ++;};_caa =cmap .inCodespace (_eda ,_gag +1);if _caa {return _eda ,_cec ,true ;};};_ca .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",_eag ,string (_eag ),cmap );return 0,0,false ;};type CMap struct{*cMapParser ;_bdb string ;_dc int ;_dd int ;_cd string ;_bec string ;_g CIDSystemInfo ;_egd []Codespace ;_ac map[CharCode ]CharCode ;_fge map[CharCode ]CharCode ;_de map[CharCode ]string ;_ec map[string ]CharCode ;_ad []byte ;_fgf *_cb .PdfObjectStream ;};func (_dabc *cMapParser )parseHexString ()(cmapHexString ,error ){_dabc ._cea .ReadByte ();_gfe :=[]byte ("\u0030\u0031\u0032\u003345\u0036\u0037\u0038\u0039\u0061\u0062\u0063\u0064\u0065\u0066\u0041\u0042\u0043\u0044E\u0046");_ged :=_b .Buffer {};for {_dabc .skipSpaces ();_ced ,_eaf :=_dabc ._cea .Peek (1);if _eaf !=nil {return cmapHexString {},_eaf ;};if _ced [0]=='>'{_dabc ._cea .ReadByte ();break ;};_ece ,_ :=_dabc ._cea .ReadByte ();if _b .IndexByte (_gfe ,_ece )>=0{_ged .WriteByte (_ece );};};if _ged .Len ()%2==1{_ca .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",_ged .String ());_ged .WriteByte ('0');};_gedd :=_ged .Len ()/2;_cgc ,_ :=_c .DecodeString (_ged .String ());return cmapHexString {_gfc :_gedd ,_afcf :_cgc },nil ;};func _bge ()cmapDict {return cmapDict {Dict :map[string ]cmapObject {}}};type cmapName struct{Name string ;};func _bfe (_dcb cmapHexString )[]rune {if len (_dcb ._afcf )==1{return []rune {rune (_dcb ._afcf [0])};};_bab :=_dcb ._afcf ;if len (_bab )%2!=0{_bab =append (_bab ,0);_ca .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",_dcb ,_bab );};_cgbf :=len (_bab )>>1;_deea :=make ([]uint16 ,_cgbf );for _cbdc :=0;_cbdc < _cgbf ;_cbdc ++{_deea [_cbdc ]=uint16 (_bab [_cbdc <<1])<<8+uint16 (_bab [_cbdc <<1+1]);};_adfd :=_a .Decode (_deea );return _adfd ;};func (cmap *CMap )CharcodeBytesToUnicode (data []byte )(string ,int ){_cba ,_dda :=cmap .BytesToCharcodes (data );if !_dda {_ca .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;};_fb :=make ([]string ,len (_cba ));var _fbg []CharCode ;for _aaf ,_ecb :=range _cba {_cdg ,_acb :=cmap ._de [_ecb ];if !_acb {_fbg =append (_fbg ,_ecb );_cdg =MissingCodeString ;};_fb [_aaf ]=_cdg ;};_dg :=_af .Join (_fb ,"");if len (_fbg )> 0{_ca .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 ),_cba ,len (_fbg ),_fbg ,_dg ,cmap );};return _dg ,len (_fbg );};type cmapHexString struct{_gfc int ;_afcf []byte ;};func (cmap *CMap )Stream ()(*_cb .PdfObjectStream ,error ){if cmap ._fgf !=nil {return cmap ._fgf ,nil ;};_agg ,_dgd :=_cb .MakeStream (cmap .Bytes (),_cb .NewFlateEncoder ());if _dgd !=nil {return nil ,_dgd ;};cmap ._fgf =_agg ;return cmap ._fgf ,nil ;};func (cmap *CMap )NBits ()int {return cmap ._dc };func (cmap *CMap )Type ()int {return cmap ._dd };type cmapArray struct{Array []cmapObject ;};func (_aec *cMapParser )parseArray ()(cmapArray ,error ){_fed :=cmapArray {};_fed .Array =[]cmapObject {};_aec ._cea .ReadByte ();for {_aec .skipSpaces ();_aeg ,_ebaa :=_aec ._cea .Peek (1);if _ebaa !=nil {return _fed ,_ebaa ;};if _aeg [0]==']'{_aec ._cea .ReadByte ();break ;};_fcdd ,_ebaa :=_aec .parseObject ();if _ebaa !=nil {return _fed ,_ebaa ;};_fed .Array =append (_fed .Array ,_fcdd );};return _fed ,nil ;};func NewCIDSystemInfo (obj _cb .PdfObject )(_ae CIDSystemInfo ,_cf error ){_egb ,_be :=_cb .GetDict (obj );if !_be {return CIDSystemInfo {},_cb .ErrTypeError ;};_fg ,_be :=_cb .GetStringVal (_egb .Get ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"));if !_be {return CIDSystemInfo {},_cb .ErrTypeError ;};_bee ,_be :=_cb .GetStringVal (_egb .Get ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"));if !_be {return CIDSystemInfo {},_cb .ErrTypeError ;};_bd ,_be :=_cb .GetIntVal (_egb .Get ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"));if !_be {return CIDSystemInfo {},_cb .ErrTypeError ;};return CIDSystemInfo {Registry :_fg ,Ordering :_bee ,Supplement :_bd },nil ;};type CIDSystemInfo struct{Registry string ;Ordering string ;Supplement int ;};func (cmap *CMap )parseCodespaceRange ()error {for {_faa ,_acba :=cmap .parseObject ();if _acba !=nil {if _acba ==_ab .EOF {break ;};return _acba ;};_fcd ,_faf :=_faa .(cmapHexString );if !_faf {if _fab ,_cce :=_faa .(cmapOperand );_cce {if _fab .Operand ==_ggd {return nil ;};return _ag .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");};};_faa ,_acba =cmap .parseObject ();if _acba !=nil {if _acba ==_ab .EOF {break ;};return _acba ;};_fffc ,_faf :=_faa .(cmapHexString );if !_faf {return _ag .New ("\u006e\u006f\u006e-\u0068\u0065\u0078\u0020\u0068\u0069\u0067\u0068");};if len (_fcd ._afcf )!=len (_fffc ._afcf ){return _ag .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");};_bege :=_fdca (_fcd );_ddb :=_fdca (_fffc );if _ddb < _bege {_ca .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",_bege ,_ddb );return ErrBadCMap ;};_aca :=_fffc ._gfc ;_ccfe :=Codespace {NumBytes :_aca ,Low :_bege ,High :_ddb };cmap ._egd =append (cmap ._egd ,_ccfe );_ca .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",_bege ,_ddb );};if len (cmap ._egd )==0{_ca .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 )String ()string {_fda :=cmap ._g ;_badg :=[]string {_e .Sprintf ("\u006e\u0062\u0069\u0074\u0073\u003a\u0025\u0064",cmap ._dc ),_e .Sprintf ("\u0074y\u0070\u0065\u003a\u0025\u0064",cmap ._dd )};if cmap ._cd !=""{_badg =append (_badg ,_e .Sprintf ("\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u003a\u0025\u0073",cmap ._cd ));};if cmap ._bec !=""{_badg =append (_badg ,_e .Sprintf ("u\u0073\u0065\u0063\u006d\u0061\u0070\u003a\u0025\u0023\u0071",cmap ._bec ));};_badg =append (_badg ,_e .Sprintf ("\u0073\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f\u003a\u0025\u0073",_fda .String ()));if len (cmap ._egd )> 0{_badg =append (_badg ,_e .Sprintf ("\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u003a\u0025\u0064",len (cmap ._egd )));};if len (cmap ._de )> 0{_badg =append (_badg ,_e .Sprintf ("\u0063\u006fd\u0065\u0054\u006fU\u006e\u0069\u0063\u006f\u0064\u0065\u003a\u0025\u0064",len (cmap ._de )));};return _e .Sprintf ("\u0043\u004d\u0041P\u007b\u0025\u0023\u0071\u0020\u0025\u0073\u007d",cmap ._bdb ,_af .Join (_badg ,"\u0020"));};type cmapString struct{String string ;};func (cmap *CMap )StringToCID (s string )(CharCode ,bool ){_dfa ,_adg :=cmap ._ec [s ];return _dfa ,_adg ;};var (ErrBadCMap =_ag .New ("\u0062\u0061\u0064\u0020\u0063\u006d\u0061\u0070");ErrBadCMapComment =_ag .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 =_ag .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0069\u0063\u0074"););func _gfad (_edbc cmapHexString )rune {_bga :=_bfe (_edbc );if _cca :=len (_bga );_cca ==0{_ca .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",_edbc );return MissingCodeRune ;};if len (_bga )> 1{_ca .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",_edbc ,_bga );};return _bga [0];};func (_ccb *cMapParser )skipSpaces ()(int ,error ){_fgeb :=0;for {_aad ,_fac :=_ccb ._cea .Peek (1);if _fac !=nil {return 0,_fac ;};if _cb .IsWhiteSpace (_aad [0]){_ccb ._cea .ReadByte ();_fgeb ++;}else {break ;};};return _fgeb ,nil ;};func (_ggfc *cMapParser )parseComment ()(string ,error ){var _fba _b .Buffer ;_ ,_bbd :=_ggfc .skipSpaces ();if _bbd !=nil {return _fba .String (),_bbd ;};_dcc :=true ;for {_bff ,_afe :=_ggfc ._cea .Peek (1);if _afe !=nil {_ca .Log .Debug ("p\u0061r\u0073\u0065\u0043\u006f\u006d\u006d\u0065\u006et\u003a\u0020\u0065\u0072r=\u0025\u0076",_afe );return _fba .String (),_afe ;};if _dcc &&_bff [0]!='%'{return _fba .String (),ErrBadCMapComment ;};_dcc =false ;if (_bff [0]!='\r')&&(_bff [0]!='\n'){_gcg ,_ :=_ggfc ._cea .ReadByte ();_fba .WriteByte (_gcg );}else {break ;};};return _fba .String (),nil ;};type cmapInt struct{_bcg int64 };func (_aae *CIDSystemInfo )String ()string {return _e .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0025\u0030\u0033\u0064",_aae .Registry ,_aae .Ordering ,_aae .Supplement );};func _gee (_cef string )string {_ccc :=[]rune (_cef );_aab :=make ([]string ,len (_ccc ));for _dbef ,_ebg :=range _ccc {_aab [_dbef ]=_e .Sprintf ("\u0025\u0030\u0034\u0078",_ebg );};return _e .Sprintf ("\u003c\u0025\u0073\u003e",_af .Join (_aab ,""));};type CharCode uint32 ;func (cmap *CMap )CIDToCharcode (cid CharCode )(CharCode ,bool ){_bad ,_fgc :=cmap ._fge [cid ];return _bad ,_fgc ;};func (_bfge *cMapParser )parseString ()(cmapString ,error ){_bfge ._cea .ReadByte ();_afafe :=_b .Buffer {};_bce :=1;for {_fbcc ,_ecfd :=_bfge ._cea .Peek (1);if _ecfd !=nil {return cmapString {_afafe .String ()},_ecfd ;};if _fbcc [0]=='\\'{_bfge ._cea .ReadByte ();_gda ,_efc :=_bfge ._cea .ReadByte ();if _efc !=nil {return cmapString {_afafe .String ()},_efc ;};if _cb .IsOctalDigit (_gda ){_dbc ,_gac :=_bfge ._cea .Peek (2);if _gac !=nil {return cmapString {_afafe .String ()},_gac ;};var _fdbg []byte ;_fdbg =append (_fdbg ,_gda );for _ ,_eggf :=range _dbc {if _cb .IsOctalDigit (_eggf ){_fdbg =append (_fdbg ,_eggf );}else {break ;};};_bfge ._cea .Discard (len (_fdbg )-1);_ca .Log .Trace ("\u004e\u0075\u006d\u0065ri\u0063\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0022\u0025\u0073\u0022",_fdbg );_fdaa ,_gac :=_f .ParseUint (string (_fdbg ),8,32);if _gac !=nil {return cmapString {_afafe .String ()},_gac ;};_afafe .WriteByte (byte (_fdaa ));continue ;};switch _gda {case 'n':_afafe .WriteByte ('\n');case 'r':_afafe .WriteByte ('\r');case 't':_afafe .WriteByte ('\t');case 'b':_afafe .WriteByte ('\b');case 'f':_afafe .WriteByte ('\f');case '(':_afafe .WriteByte ('(');case ')':_afafe .WriteByte (')');case '\\':_afafe .WriteByte ('\\');};continue ;}else if _fbcc [0]=='('{_bce ++;}else if _fbcc [0]==')'{_bce --;if _bce ==0{_bfge ._cea .ReadByte ();break ;};};_fabg ,_ :=_bfge ._cea .ReadByte ();_afafe .WriteByte (_fabg );};return cmapString {_afafe .String ()},nil ;};func (_bba *cMapParser )parseName ()(cmapName ,error ){_fcae :="";_cee :=false ;for {_bddg ,_fbc :=_bba ._cea .Peek (1);if _fbc ==_ab .EOF {break ;};if _fbc !=nil {return cmapName {_fcae },_fbc ;};if !_cee {if _bddg [0]=='/'{_cee =true ;_bba ._cea .ReadByte ();}else {_ca .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",_bddg ,_bddg );return cmapName {_fcae },_e .Errorf ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u006ea\u006d\u0065:\u0020\u0028\u0025\u0063\u0029",_bddg [0]);};}else {if _cb .IsWhiteSpace (_bddg [0]){break ;}else if (_bddg [0]=='/')||(_bddg [0]=='[')||(_bddg [0]=='(')||(_bddg [0]==']')||(_bddg [0]=='<')||(_bddg [0]=='>'){break ;}else if _bddg [0]=='#'{_geee ,_egca :=_bba ._cea .Peek (3);if _egca !=nil {return cmapName {_fcae },_egca ;};_bba ._cea .Discard (3);_gccd ,_egca :=_c .DecodeString (string (_geee [1:3]));if _egca !=nil {return cmapName {_fcae },_egca ;};_fcae +=string (_gccd );}else {_efea ,_ :=_bba ._cea .ReadByte ();_fcae +=string (_efea );};};};return cmapName {_fcae },nil ;};func (cmap *CMap )BytesToCharcodes (data []byte )([]CharCode ,bool ){var _ge []CharCode ;if cmap ._dc ==8{for _ ,_abe :=range data {_ge =append (_ge ,CharCode (_abe ));};return _ge ,true ;};for _dbe :=0;_dbe < len (data );{_agd ,_bgf ,_gd :=cmap .matchCode (data [_dbe :]);if !_gd {_ca .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",_dbe ,data ,string (data ));return _ge ,false ;};_ge =append (_ge ,_agd );_dbe +=_bgf ;};return _ge ,true ;};func _ebff (_daa string )rune {_ecfa :=[]rune (_daa );return _ecfa [len (_ecfa )-1]};func (cmap *CMap )CharcodeToUnicode (code CharCode )(string ,bool ){if _eef ,_aag :=cmap ._de [code ];_aag {return _eef ,true ;};return MissingCodeString ,false ;};func (cmap *CMap )parse ()error {var _ddf cmapObject ;for {_bfd ,_bdd :=cmap .parseObject ();if _bdd !=nil {if _bdd ==_ab .EOF {break ;};_ca .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0043\u004d\u0061\u0070\u003a\u0020\u0025\u0076",_bdd );return _bdd ;};switch _fdc :=_bfd .(type ){case cmapOperand :_ead :=_fdc ;switch _ead .Operand {case _fdec :_bde :=cmap .parseCodespaceRange ();if _bde !=nil {return _bde ;};case _geb :_cbb :=cmap .parseCIDRange ();if _cbb !=nil {return _cbb ;};case _fcdc :_dff :=cmap .parseBfchar ();if _dff !=nil {return _dff ;};case _bdg :_dfb :=cmap .parseBfrange ();if _dfb !=nil {return _dfb ;};case _gcfg :if _ddf ==nil {_ca .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 ;};_dee ,_ade :=_ddf .(cmapName );if !_ade {_ca .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",_ddf );return ErrBadCMap ;};cmap ._bec =_dee .Name ;case _ffce :_dec :=cmap .parseSystemInfo ();if _dec !=nil {return _dec ;};};case cmapName :_dba :=_fdc ;switch _dba .Name {case _ffce :_eec :=cmap .parseSystemInfo ();if _eec !=nil {return _eec ;};case _gccb :_abb :=cmap .parseName ();if _abb !=nil {return _abb ;};case _ccca :_afb :=cmap .parseType ();if _afb !=nil {return _afb ;};case _ggf :_cfaf :=cmap .parseVersion ();if _cfaf !=nil {return _cfaf ;};};};_ddf =_bfd ;};return nil ;};func (cmap *CMap )parseCIDRange ()error {for {_bcf ,_bed :=cmap .parseObject ();if _bed !=nil {if _bed ==_ab .EOF {break ;};return _bed ;};_bfbe ,_dae :=_bcf .(cmapHexString );if !_dae {if _aagc ,_afd :=_bcf .(cmapOperand );_afd {if _aagc .Operand ==_fgfd {return nil ;};return _ag .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");};};_dedd :=_fdca (_bfbe );_bcf ,_bed =cmap .parseObject ();if _bed !=nil {if _bed ==_ab .EOF {break ;};return _bed ;};_ecbd ,_dae :=_bcf .(cmapHexString );if !_dae {return _ag .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 (_bfbe ._afcf )!=len (_ecbd ._afcf ){return _ag .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");};_becc :=_fdca (_ecbd );if _dedd > _becc {_ca .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",_dedd ,_becc );return ErrBadCMap ;};_bcf ,_bed =cmap .parseObject ();if _bed !=nil {if _bed ==_ab .EOF {break ;};return _bed ;};_gcf ,_dae :=_bcf .(cmapInt );if !_dae {return _ag .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 _gcf ._bcg < 0{return _ag .New ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0063\u0069\u0064\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0076\u0061\u006c\u0075\u0065");};_dfde :=_gcf ._bcg ;for _bfab :=_dedd ;_bfab <=_becc ;_bfab ++{cmap ._ac [_bfab ]=CharCode (_dfde );_dfde ++;};_ca .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",_dedd ,_becc ,_gcf ._bcg );};return nil ;};func NewToUnicodeCMap (codeToRune map[CharCode ]rune )*CMap {_egbb :=make (map[CharCode ]string ,len (codeToRune ));for _ea ,_db :=range codeToRune {_egbb [_ea ]=string (_db );};cmap :=&CMap {_bdb :"\u0041d\u006fb\u0065\u002d\u0049\u0064\u0065n\u0074\u0069t\u0079\u002d\u0055\u0043\u0053",_dd :2,_dc :16,_g :CIDSystemInfo {Registry :"\u0041\u0064\u006fb\u0065",Ordering :"\u0055\u0043\u0053",Supplement :0},_egd :[]Codespace {{Low :0,High :0xffff}},_de :_egbb ,_ec :make (map[string ]CharCode ,len (codeToRune )),_ac :make (map[CharCode ]CharCode ,len (codeToRune )),_fge :make (map[CharCode ]CharCode ,len (codeToRune ))};cmap .computeInverseMappings ();return cmap ;};func LoadCmapFromData (data []byte ,isSimple bool )(*CMap ,error ){_ca .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 :=_fa (isSimple );cmap .cMapParser =_fce (data );_ef :=cmap .parse ();if _ef !=nil {return nil ,_ef ;};if len (cmap ._egd )==0{if cmap ._bec !=""{return cmap ,nil ;};_ca .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 LoadPredefinedCMap (name string )(*CMap ,error ){cmap ,_bf :=_cc (name );if _bf !=nil {return nil ,_bf ;};if cmap ._bec ==""{cmap .computeInverseMappings ();return cmap ,nil ;};_ce ,_bf :=_cc (cmap ._bec );if _bf !=nil {return nil ,_bf ;};for _cab ,_ee :=range _ce ._ac {if _ ,_cae :=cmap ._ac [_cab ];!_cae {cmap ._ac [_cab ]=_ee ;};};cmap ._egd =append (cmap ._egd ,_ce ._egd ...);cmap .computeInverseMappings ();return cmap ,nil ;};type cmapDict struct{Dict map[string ]cmapObject ;};type cmapObject interface{};func (cmap *CMap )parseName ()error {_bgfb :="";_aga :=false ;for _bgb :=0;_bgb < 20&&!_aga ;_bgb ++{_cefg ,_dbaf :=cmap .parseObject ();if _dbaf !=nil {return _dbaf ;};switch _fdf :=_cefg .(type ){case cmapOperand :switch _fdf .Operand {case "\u0064\u0065\u0066":_aga =true ;default:_ca .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",_cefg ,_bgfb );if _bgfb !=""{_bgfb =_e .Sprintf ("\u0025\u0073\u0020%\u0073",_bgfb ,_fdf .Operand );};_ca .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",_bgfb );};case cmapName :_bgfb =_fdf .Name ;};};if !_aga {_ca .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0070\u0061\u0072\u0073\u0065N\u0061m\u0065:\u0020\u004e\u006f\u0020\u0064\u0065\u0066 ");return ErrBadCMap ;};cmap ._bdb =_bgfb ;return nil ;};func (cmap *CMap )computeInverseMappings (){for _ccf ,_bc :=range cmap ._ac {if _ga ,_fgec :=cmap ._fge [_bc ];!_fgec ||(_fgec &&_ga > _ccf ){cmap ._fge [_bc ]=_ccf ;};};for _beb ,_dcg :=range cmap ._de {if _ffa ,_da :=cmap ._ec [_dcg ];!_da ||(_da &&_ffa > _beb ){cmap ._ec [_dcg ]=_beb ;};};_ff .Slice (cmap ._egd ,func (_fde ,_fff int )bool {return cmap ._egd [_fde ].Low < cmap ._egd [_fff ].Low });};type charRange struct{_eg CharCode ;_afa CharCode ;};const (_df =4;MissingCodeRune ='\ufffd';MissingCodeString =string (MissingCodeRune ););func (_afca *cMapParser )parseOperand ()(cmapOperand ,error ){_abeb :=cmapOperand {};_gcbd :=_b .Buffer {};for {_agcc ,_gfda :=_afca ._cea .Peek (1);if _gfda !=nil {if _gfda ==_ab .EOF {break ;};return _abeb ,_gfda ;};if _cb .IsDelimiter (_agcc [0]){break ;};if _cb .IsWhiteSpace (_agcc [0]){break ;};_aba ,_ :=_afca ._cea .ReadByte ();_gcbd .WriteByte (_aba );};if _gcbd .Len ()==0{return _abeb ,_e .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u006f\u0070\u0065\u0072\u0061\u006e\u0064\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029");};_abeb .Operand =_gcbd .String ();return _abeb ,nil ;};func (cmap *CMap )parseBfrange ()error {for {var _cbab CharCode ;_dfc ,_cfc :=cmap .parseObject ();if _cfc !=nil {if _cfc ==_ab .EOF {break ;};return _cfc ;};switch _cbda :=_dfc .(type ){case cmapOperand :if _cbda .Operand ==_faef {return nil ;};return _ag .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");case cmapHexString :_cbab =_fdca (_cbda );default:return _ag .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};var _deg CharCode ;_dfc ,_cfc =cmap .parseObject ();if _cfc !=nil {if _cfc ==_ab .EOF {break ;};return _cfc ;};switch _ecd :=_dfc .(type ){case cmapOperand :_ca .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 :_deg =_fdca (_ecd );default:_ca .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_dfc );return ErrBadCMap ;};_dfc ,_cfc =cmap .parseObject ();if _cfc !=nil {if _cfc ==_ab .EOF {break ;};return _cfc ;};switch _gdc :=_dfc .(type ){case cmapArray :if len (_gdc .Array )!=int (_deg -_cbab )+1{_ca .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 _fga :=_cbab ;_fga <=_deg ;_fga ++{_ebe :=_gdc .Array [_fga -_cbab ];_fbbg ,_gfd :=_ebe .(cmapHexString );if !_gfd {return _ag .New ("\u006e\u006f\u006e-h\u0065\u0078\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0069\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};_fe :=_bfe (_fbbg );cmap ._de [_fga ]=string (_fe );};case cmapHexString :_gad :=_bfe (_gdc );_faea :=len (_gad );for _daga :=_cbab ;_daga <=_deg ;_daga ++{cmap ._de [_daga ]=string (_gad );_gad [_faea -1]++;};default:_ca .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_dfc );return ErrBadCMap ;};};return nil ;};func (_ceb *cMapParser )parseObject ()(cmapObject ,error ){_ceb .skipSpaces ();for {_cafc ,_cff :=_ceb ._cea .Peek (2);if _cff !=nil {return nil ,_cff ;};if _cafc [0]=='%'{_ceb .parseComment ();_ceb .skipSpaces ();continue ;}else if _cafc [0]=='/'{_gdg ,_agf :=_ceb .parseName ();return _gdg ,_agf ;}else if _cafc [0]=='('{_gab ,_fcb :=_ceb .parseString ();return _gab ,_fcb ;}else if _cafc [0]=='['{_cfad ,_aee :=_ceb .parseArray ();return _cfad ,_aee ;}else if (_cafc [0]=='<')&&(_cafc [1]=='<'){_gfg ,_bgg :=_ceb .parseDict ();return _gfg ,_bgg ;}else if _cafc [0]=='<'{_aabe ,_gaa :=_ceb .parseHexString ();return _aabe ,_gaa ;}else if _cb .IsDecimalDigit (_cafc [0])||(_cafc [0]=='-'&&_cb .IsDecimalDigit (_cafc [1])){_defa ,_ecbf :=_ceb .parseNumber ();if _ecbf !=nil {return nil ,_ecbf ;};return _defa ,nil ;}else {_cbg ,_gdgb :=_ceb .parseOperand ();if _gdgb !=nil {return nil ,_gdgb ;};return _cbg ,nil ;};};};func _fa (_cda bool )*CMap {_eca :=16;if _cda {_eca =8;};return &CMap {_dc :_eca ,_ac :make (map[CharCode ]CharCode ),_fge :make (map[CharCode ]CharCode ),_de :make (map[CharCode ]string ),_ec :make (map[string ]CharCode )};};type cmapFloat struct{_ecg float64 };const (_gg =100;_bdbb ="\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";_beg ="\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 (cmap *CMap )parseBfchar ()error {for {_dfe ,_bbb :=cmap .parseObject ();if _bbb !=nil {if _bbb ==_ab .EOF {break ;};return _bbb ;};var _aefe CharCode ;switch _edgg :=_dfe .(type ){case cmapOperand :if _edgg .Operand ==_ddfc {return nil ;};return _ag .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");case cmapHexString :_aefe =_fdca (_edgg );default:return _ag .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};_dfe ,_bbb =cmap .parseObject ();if _bbb !=nil {if _bbb ==_ab .EOF {break ;};return _bbb ;};var _afc []rune ;switch _cgeg :=_dfe .(type ){case cmapOperand :if _cgeg .Operand ==_ddfc {return nil ;};_ca .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",_cgeg );return ErrBadCMap ;case cmapHexString :_afc =_bfe (_cgeg );case cmapName :_ca .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",_cgeg );_afc =[]rune {MissingCodeRune };default:_ca .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",_dfe );return ErrBadCMap ;};cmap ._de [_aefe ]=string (_afc );};return nil ;};func (cmap *CMap )Name ()string {return cmap ._bdb };func (cmap *CMap )inCodespace (_dag CharCode ,_aaa int )bool {for _ ,_aafg :=range cmap ._egd {if _aafg .Low <=_dag &&_dag <=_aafg .High &&_aaa ==_aafg .NumBytes {return true ;};};return false ;};type Codespace struct{NumBytes int ;Low CharCode ;High CharCode ;};func (cmap *CMap )parseVersion ()error {_dedf :="";_egg :=false ;for _ecbb :=0;_ecbb < 3&&!_egg ;_ecbb ++{_gde ,_ebda :=cmap .parseObject ();if _ebda !=nil {return _ebda ;};switch _eae :=_gde .(type ){case cmapOperand :switch _eae .Operand {case "\u0064\u0065\u0066":_egg =true ;default:_ca .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",_gde );return ErrBadCMap ;};case cmapInt :_dedf =_e .Sprintf ("\u0025\u0064",_eae ._bcg );case cmapFloat :_dedf =_e .Sprintf ("\u0025\u0066",_eae ._ecg );case cmapString :_dedf =_eae .String ;default:_ca .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",_gde );};};cmap ._cd =_dedf ;return nil ;}; |