// // 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 (_gb "bufio";_gd "bytes";_d "encoding/hex";_ba "errors";_b "fmt";_cgb "github.com/unidoc/unipdf/v3/common";_cge "github.com/unidoc/unipdf/v3/core";_e "github.com/unidoc/unipdf/v3/internal/cmap/bcmaps";_cda "io";_a "sort";_g "strconv"; _cg "strings";_cd "unicode/utf16";);func (cmap *CMap )parseVersion ()error {_fcc :="";_ead :=false ;for _bbe :=0;_bbe < 3&&!_ead ;_bbe ++{_efc ,_ed :=cmap .parseObject ();if _ed !=nil {return _ed ;};switch _ecab :=_efc .(type ){case cmapOperand :switch _ecab .Operand {case "\u0064\u0065\u0066":_ead =true ; default:_cgb .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",_efc ); return ErrBadCMap ;};case cmapInt :_fcc =_b .Sprintf ("\u0025\u0064",_ecab ._fdfc );case cmapFloat :_fcc =_b .Sprintf ("\u0025\u0066",_ecab ._gacd );case cmapString :_fcc =_ecab .String ;default:_cgb .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",_efc ); };};cmap ._fa =_fcc ;return nil ;};func (cmap *CMap )NBits ()int {return cmap ._acg };type cmapObject interface{};type cmapInt struct{_fdfc int64 };func (_adf *cMapParser )parseDict ()(cmapDict ,error ){_cgb .Log .Trace ("\u0052\u0065\u0061\u0064\u0069\u006e\u0067\u0020\u0050\u0044\u0046\u0020D\u0069\u0063\u0074\u0021"); _ega :=_cbcd ();_bgf ,_ :=_adf ._ged .ReadByte ();if _bgf !='<'{return _ega ,ErrBadCMapDict ;};_bgf ,_ =_adf ._ged .ReadByte ();if _bgf !='<'{return _ega ,ErrBadCMapDict ;};for {_adf .skipSpaces ();_bgde ,_ceeb :=_adf ._ged .Peek (2);if _ceeb !=nil {return _ega ,_ceeb ; };if (_bgde [0]=='>')&&(_bgde [1]=='>'){_adf ._ged .ReadByte ();_adf ._ged .ReadByte ();break ;};_dgd ,_ceeb :=_adf .parseName ();_cgb .Log .Trace ("\u004be\u0079\u003a\u0020\u0025\u0073",_dgd .Name );if _ceeb !=nil {_cgb .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",_ceeb ); return _ega ,_ceeb ;};_adf .skipSpaces ();_edf ,_ceeb :=_adf .parseObject ();if _ceeb !=nil {return _ega ,_ceeb ;};_ega .Dict [_dgd .Name ]=_edf ;_adf .skipSpaces ();_bgde ,_ceeb =_adf ._ged .Peek (3);if _ceeb !=nil {return _ega ,_ceeb ;};if string (_bgde )=="\u0064\u0065\u0066"{_adf ._ged .Discard (3); };};return _ega ,nil ;};func _deb (_ebbb []byte )*cMapParser {_abcd :=cMapParser {};_fcdf :=_gd .NewBuffer (_ebbb );_abcd ._ged =_gb .NewReader (_fcdf );return &_abcd ;};type cmapString struct{String string ;};type integer struct{_dfg bool ;_gfg int ;}; func (_dcg *cMapParser )parseOperand ()(cmapOperand ,error ){_geg :=cmapOperand {};_cce :=_gd .Buffer {};for {_abca ,_ebcae :=_dcg ._ged .Peek (1);if _ebcae !=nil {if _ebcae ==_cda .EOF {break ;};return _geg ,_ebcae ;};if _cge .IsDelimiter (_abca [0]){break ; };if _cge .IsWhiteSpace (_abca [0]){break ;};_cbfe ,_ :=_dcg ._ged .ReadByte ();_cce .WriteByte (_cbfe );};if _cce .Len ()==0{return _geg ,_b .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u006f\u0070\u0065\u0072\u0061\u006e\u0064\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029"); };_geg .Operand =_cce .String ();return _geg ,nil ;};func (cmap *CMap )Bytes ()[]byte {_cgb .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 ._ag )> 0{return cmap ._ag ; };cmap ._ag =[]byte (_cg .Join ([]string {_gdb ,cmap .toBfData (),_bacd },"\u000a"));return cmap ._ag ;};func (cmap *CMap )WMode ()(int ,bool ){return cmap ._fe ._gfg ,cmap ._fe ._dfg };func LoadCmapFromDataCID (data []byte )(*CMap ,error ){return LoadCmapFromData (data ,false )}; const (_agc =100;_gdb ="\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"; _bacd ="\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"; );type CharCode uint32 ;func (cmap *CMap )Stream ()(*_cge .PdfObjectStream ,error ){if cmap ._gbe !=nil {return cmap ._gbe ,nil ;};_gfe ,_dad :=_cge .MakeStream (cmap .Bytes (),_cge .NewFlateEncoder ());if _dad !=nil {return nil ,_dad ;};cmap ._gbe =_gfe ; return cmap ._gbe ,nil ;};func NewCIDSystemInfo (obj _cge .PdfObject )(_cdg CIDSystemInfo ,_aba error ){_cag ,_bc :=_cge .GetDict (obj );if !_bc {return CIDSystemInfo {},_cge .ErrTypeError ;};_ea ,_bc :=_cge .GetStringVal (_cag .Get ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079")); if !_bc {return CIDSystemInfo {},_cge .ErrTypeError ;};_ac ,_bc :=_cge .GetStringVal (_cag .Get ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"));if !_bc {return CIDSystemInfo {},_cge .ErrTypeError ;};_ee ,_bc :=_cge .GetIntVal (_cag .Get ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074")); if !_bc {return CIDSystemInfo {},_cge .ErrTypeError ;};return CIDSystemInfo {Registry :_ea ,Ordering :_ac ,Supplement :_ee },nil ;};func (cmap *CMap )parseCodespaceRange ()error {for {_aga ,_eeg :=cmap .parseObject ();if _eeg !=nil {if _eeg ==_cda .EOF {break ; };return _eeg ;};_gac ,_fee :=_aga .(cmapHexString );if !_fee {if _ccb ,_bfb :=_aga .(cmapOperand );_bfb {if _ccb .Operand ==_gcag {return nil ;};return _ba .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064"); };};_aga ,_eeg =cmap .parseObject ();if _eeg !=nil {if _eeg ==_cda .EOF {break ;};return _eeg ;};_ddaf ,_fee :=_aga .(cmapHexString );if !_fee {return _ba .New ("\u006e\u006f\u006e-\u0068\u0065\u0078\u0020\u0068\u0069\u0067\u0068");};if len (_gac ._gcdd )!=len (_ddaf ._gcdd ){return _ba .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"); };_cgf :=_aaf (_gac );_cabb :=_aaf (_ddaf );if _cabb < _cgf {_cgb .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",_cgf ,_cabb ); return ErrBadCMap ;};_cfa :=_ddaf ._fddb ;_ccd :=Codespace {NumBytes :_cfa ,Low :_cgf ,High :_cabb };cmap ._fd =append (cmap ._fd ,_ccd );_cgb .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",_cgf ,_cabb ); };if len (cmap ._fd )==0{_cgb .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 ;};type fbRange struct{_ca CharCode ; _f CharCode ;_cc string ;};func (_gba *cMapParser )parseName ()(cmapName ,error ){_cbac :="";_gdea :=false ;for {_def ,_eed :=_gba ._ged .Peek (1);if _eed ==_cda .EOF {break ;};if _eed !=nil {return cmapName {_cbac },_eed ;};if !_gdea {if _def [0]=='/'{_gdea =true ; _gba ._ged .ReadByte ();}else {_cgb .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",_def ,_def );return cmapName {_cbac },_b .Errorf ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u006ea\u006d\u0065:\u0020\u0028\u0025\u0063\u0029",_def [0]); };}else {if _cge .IsWhiteSpace (_def [0]){break ;}else if (_def [0]=='/')||(_def [0]=='[')||(_def [0]=='(')||(_def [0]==']')||(_def [0]=='<')||(_def [0]=='>'){break ;}else if _def [0]=='#'{_abf ,_debf :=_gba ._ged .Peek (3);if _debf !=nil {return cmapName {_cbac },_debf ; };_gba ._ged .Discard (3);_cccc ,_debf :=_d .DecodeString (string (_abf [1:3]));if _debf !=nil {return cmapName {_cbac },_debf ;};_cbac +=string (_cccc );}else {_cfe ,_ :=_gba ._ged .ReadByte ();_cbac +=string (_cfe );};};};return cmapName {_cbac },nil ; };func (_gbcf *cMapParser )parseComment ()(string ,error ){var _fcgf _gd .Buffer ;_ ,_bag :=_gbcf .skipSpaces ();if _bag !=nil {return _fcgf .String (),_bag ;};_ede :=true ;for {_ccf ,_cbc :=_gbcf ._ged .Peek (1);if _cbc !=nil {_cgb .Log .Debug ("p\u0061r\u0073\u0065\u0043\u006f\u006d\u006d\u0065\u006et\u003a\u0020\u0065\u0072r=\u0025\u0076",_cbc ); return _fcgf .String (),_cbc ;};if _ede &&_ccf [0]!='%'{return _fcgf .String (),ErrBadCMapComment ;};_ede =false ;if (_ccf [0]!='\r')&&(_ccf [0]!='\n'){_bdfc ,_ :=_gbcf ._ged .ReadByte ();_fcgf .WriteByte (_bdfc );}else {break ;};};return _fcgf .String (),nil ; };func (cmap *CMap )parseWMode ()error {var _acdb int ;_bcbe :=false ;for _bbd :=0;_bbd < 3&&!_bcbe ;_bbd ++{_fgc ,_bdc :=cmap .parseObject ();if _bdc !=nil {return _bdc ;};switch _dg :=_fgc .(type ){case cmapOperand :switch _dg .Operand {case "\u0064\u0065\u0066":_bcbe =true ; default:_cgb .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",_fgc );return ErrBadCMap ;};case cmapInt :_acdb =int (_dg ._fdfc ); };};cmap ._fe =integer {_dfg :true ,_gfg :_acdb };return nil ;};type cmapFloat struct{_gacd float64 };const (_beg ="\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f";_gfbc ="\u0062e\u0067\u0069\u006e\u0063\u006d\u0061p";_dga ="\u0065n\u0064\u0063\u006d\u0061\u0070"; _de ="\u0062\u0065\u0067\u0069nc\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0072\u0061\u006e\u0067\u0065";_gcag ="\u0065\u006e\u0064\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065r\u0061\u006e\u0067\u0065";_gbg ="b\u0065\u0067\u0069\u006e\u0062\u0066\u0063\u0068\u0061\u0072"; _efd ="\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r";_cdcd ="\u0062\u0065\u0067i\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_aaga ="\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_eaf ="\u0062\u0065\u0067\u0069\u006e\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065"; _fde ="e\u006e\u0064\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_cad ="\u0075s\u0065\u0063\u006d\u0061\u0070";_ddbg ="\u0057\u004d\u006fd\u0065";_aab ="\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065";_cdff ="\u0043\u004d\u0061\u0070\u0054\u0079\u0070\u0065"; _cca ="C\u004d\u0061\u0070\u0056\u0065\u0072\u0073\u0069\u006f\u006e";);func (cmap *CMap )parseSystemInfo ()error {_dff :=false ;_ddaa :=false ;_bde :="";_dbgf :=false ;_eeb :=CIDSystemInfo {};for _cde :=0;_cde < 50&&!_dbgf ;_cde ++{_aca ,_eea :=cmap .parseObject (); if _eea !=nil {return _eea ;};switch _ffa :=_aca .(type ){case cmapDict :_aef :=_ffa .Dict ;_ecg ,_aefd :=_aef ["\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"];if !_aefd {_cgb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f"); return ErrBadCMap ;};_fgcd ,_aefd :=_ecg .(cmapString );if !_aefd {_cgb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_eeb .Registry =_fgcd .String ; _ecg ,_aefd =_aef ["\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"];if !_aefd {_cgb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_fgcd ,_aefd =_ecg .(cmapString ); if !_aefd {_cgb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_eeb .Ordering =_fgcd .String ;_aefc ,_aefd :=_aef ["\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"]; if !_aefd {_cgb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_dceg ,_aefd :=_aefc .(cmapInt );if !_aefd {_cgb .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f"); return ErrBadCMap ;};_eeb .Supplement =int (_dceg ._fdfc );_dbgf =true ;case cmapOperand :switch _ffa .Operand {case "\u0062\u0065\u0067i\u006e":_dff =true ;case "\u0065\u006e\u0064":_dbgf =true ;case "\u0064\u0065\u0066":_ddaa =false ;};case cmapName :if _dff {_bde =_ffa .Name ; _ddaa =true ;};case cmapString :if _ddaa {switch _bde {case "\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079":_eeb .Registry =_ffa .String ;case "\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067":_eeb .Ordering =_ffa .String ;};};case cmapInt :if _ddaa {switch _bde {case "\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074":_eeb .Supplement =int (_ffa ._fdfc ); };};};};if !_dbgf {_cgb .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 ._db =_eeb ;return nil ;};func (cmap *CMap )BytesToCharcodes (data []byte )([]CharCode ,bool ){var _ad []CharCode ;if cmap ._acg ==8{for _ ,_geeb :=range data {_ad =append (_ad ,CharCode (_geeb ));};return _ad ,true ;};for _gdd :=0; _gdd < len (data );{_cdc ,_gbb ,_bdg :=cmap .matchCode (data [_gdd :]);if !_bdg {_cgb .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",_gdd ,data ,string (data )); return _ad ,false ;};_ad =append (_ad ,_cdc );_gdd +=_gbb ;};return _ad ,true ;};func (cmap *CMap )matchCode (_ecd []byte )(_fce CharCode ,_cba int ,_eag bool ){for _agg :=0;_agg < _ab ;_agg ++{if _agg < len (_ecd ){_fce =_fce <<8|CharCode (_ecd [_agg ]); _cba ++;};_eag =cmap .inCodespace (_fce ,_agg +1);if _eag {return _fce ,_cba ,true ;};};_cgb .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",_ecd ,string (_ecd ),cmap ); return 0,0,false ;};func (cmap *CMap )StringToCID (s string )(CharCode ,bool ){_cgbe ,_fcd :=cmap ._af [s ];return _cgbe ,_fcd ;};const (_ab =4;MissingCodeRune ='\ufffd';MissingCodeString =string (MissingCodeRune ););func _aaf (_fbc cmapHexString )CharCode {_bagb :=CharCode (0); for _ ,_fed :=range _fbc ._gcdd {_bagb <<=8;_bagb |=CharCode (_fed );};return _bagb ;};func (cmap *CMap )computeInverseMappings (){for _aaa ,_eg :=range cmap ._gg {if _cea ,_dd :=cmap ._gf [_eg ];!_dd ||(_dd &&_cea > _aaa ){cmap ._gf [_eg ]=_aaa ;};};for _bac ,_gdg :=range cmap ._fad {if _dcf ,_ecf :=cmap ._af [_gdg ]; !_ecf ||(_ecf &&_dcf > _bac ){cmap ._af [_gdg ]=_bac ;};};_a .Slice (cmap ._fd ,func (_gbc ,_ddf int )bool {return cmap ._fd [_gbc ].Low < cmap ._fd [_ddf ].Low });};func (cmap *CMap )Type ()int {return cmap ._ec };func (cmap *CMap )parseName ()error {_gccg :=""; _bfa :=false ;for _bfdd :=0;_bfdd < 20&&!_bfa ;_bfdd ++{_fdc ,_fag :=cmap .parseObject ();if _fag !=nil {return _fag ;};switch _fdf :=_fdc .(type ){case cmapOperand :switch _fdf .Operand {case "\u0064\u0065\u0066":_bfa =true ;default:_cgb .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",_fdc ,_gccg ); if _gccg !=""{_gccg =_b .Sprintf ("\u0025\u0073\u0020%\u0073",_gccg ,_fdf .Operand );};_cgb .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",_gccg ); };case cmapName :_gccg =_fdf .Name ;};};if !_bfa {_cgb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0070\u0061\u0072\u0073\u0065N\u0061m\u0065:\u0020\u004e\u006f\u0020\u0064\u0065\u0066 ");return ErrBadCMap ;};cmap ._bae =_gccg ;return nil ;};func (cmap *CMap )parseBfrange ()error {for {var _aed CharCode ; _ffd ,_cbdg :=cmap .parseObject ();if _cbdg !=nil {if _cbdg ==_cda .EOF {break ;};return _cbdg ;};switch _gab :=_ffd .(type ){case cmapOperand :if _gab .Operand ==_aaga {return nil ;};return _ba .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064"); case cmapHexString :_aed =_aaf (_gab );default:return _ba .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};var _eab CharCode ;_ffd ,_cbdg =cmap .parseObject ();if _cbdg !=nil {if _cbdg ==_cda .EOF {break ;};return _cbdg ; };switch _ecgb :=_ffd .(type ){case cmapOperand :_cgb .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 :_eab =_aaf (_ecgb );default:_cgb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_ffd );return ErrBadCMap ;};_ffd ,_cbdg =cmap .parseObject (); if _cbdg !=nil {if _cbdg ==_cda .EOF {break ;};return _cbdg ;};switch _dbge :=_ffd .(type ){case cmapArray :if len (_dbge .Array )!=int (_eab -_aed )+1{_cgb .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 _dbga :=_aed ;_dbga <=_eab ;_dbga ++{_ceg :=_dbge .Array [_dbga -_aed ];_ecae ,_bdgf :=_ceg .(cmapHexString );if !_bdgf {return _ba .New ("\u006e\u006f\u006e-h\u0065\u0078\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0069\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };_gaf :=_gcb (_ecae );cmap ._fad [_dbga ]=string (_gaf );};case cmapHexString :_bcf :=_gcb (_dbge );_dbgef :=len (_bcf );for _bbda :=_aed ;_bbda <=_eab ;_bbda ++{cmap ._fad [_bbda ]=string (_bcf );if _dbgef > 0{_bcf [_dbgef -1]++;}else {_cgb .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",_bbda ); };};default:_cgb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_ffd );return ErrBadCMap ;};};return nil ;};func (cmap *CMap )CharcodeToCID (code CharCode )(CharCode ,bool ){_gcd ,_gca :=cmap ._gg [code ]; return _gcd ,_gca ;};func (cmap *CMap )parse ()error {var _gfc cmapObject ;for {_ga ,_ggg :=cmap .parseObject ();if _ggg !=nil {if _ggg ==_cda .EOF {break ;};_cgb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0043\u004d\u0061\u0070\u003a\u0020\u0025\u0076",_ggg ); return _ggg ;};switch _fae :=_ga .(type ){case cmapOperand :_bea :=_fae ;switch _bea .Operand {case _de :_fbe :=cmap .parseCodespaceRange ();if _fbe !=nil {return _fbe ;};case _eaf :_gec :=cmap .parseCIDRange ();if _gec !=nil {return _gec ;};case _gbg :_bfec :=cmap .parseBfchar (); if _bfec !=nil {return _bfec ;};case _cdcd :_efa :=cmap .parseBfrange ();if _efa !=nil {return _efa ;};case _cad :if _gfc ==nil {_cgb .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 ;};_gdda ,_ced :=_gfc .(cmapName );if !_ced {_cgb .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",_gfc ); return ErrBadCMap ;};cmap ._faf =_gdda .Name ;case _beg :_befe :=cmap .parseSystemInfo ();if _befe !=nil {return _befe ;};};case cmapName :_abe :=_fae ;switch _abe .Name {case _beg :_gded :=cmap .parseSystemInfo ();if _gded !=nil {return _gded ;};case _aab :_aee :=cmap .parseName (); if _aee !=nil {return _aee ;};case _cdff :_fgda :=cmap .parseType ();if _fgda !=nil {return _fgda ;};case _cca :_bbgd :=cmap .parseVersion ();if _bbgd !=nil {return _bbgd ;};case _ddbg :if _ggg =cmap .parseWMode ();_ggg !=nil {return _ggg ;};};};_gfc =_ga ; };return nil ;};type cmapHexString struct{_fddb int ;_gcdd []byte ;};func _bga (_fgcf ,_cdb int )int {if _fgcf < _cdb {return _fgcf ;};return _cdb ;};func (cmap *CMap )CIDToCharcode (cid CharCode )(CharCode ,bool ){_bfe ,_eb :=cmap ._gf [cid ];return _bfe ,_eb ; };func _fc (_dbg bool )*CMap {_cgc :=16;if _dbg {_cgc =8;};return &CMap {_acg :_cgc ,_gg :make (map[CharCode ]CharCode ),_gf :make (map[CharCode ]CharCode ),_fad :make (map[CharCode ]string ),_af :make (map[string ]CharCode )};};type cmapArray struct{Array []cmapObject ; };func (cmap *CMap )String ()string {_bfd :=cmap ._db ;_ae :=[]string {_b .Sprintf ("\u006e\u0062\u0069\u0074\u0073\u003a\u0025\u0064",cmap ._acg ),_b .Sprintf ("\u0074y\u0070\u0065\u003a\u0025\u0064",cmap ._ec )};if cmap ._fa !=""{_ae =append (_ae ,_b .Sprintf ("\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u003a\u0025\u0073",cmap ._fa )); };if cmap ._faf !=""{_ae =append (_ae ,_b .Sprintf ("u\u0073\u0065\u0063\u006d\u0061\u0070\u003a\u0025\u0023\u0071",cmap ._faf ));};_ae =append (_ae ,_b .Sprintf ("\u0073\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f\u003a\u0025\u0073",_bfd .String ())); if len (cmap ._fd )> 0{_ae =append (_ae ,_b .Sprintf ("\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u003a\u0025\u0064",len (cmap ._fd )));};if len (cmap ._fad )> 0{_ae =append (_ae ,_b .Sprintf ("\u0063\u006fd\u0065\u0054\u006fU\u006e\u0069\u0063\u006f\u0064\u0065\u003a\u0025\u0064",len (cmap ._fad ))); };return _b .Sprintf ("\u0043\u004d\u0041P\u007b\u0025\u0023\u0071\u0020\u0025\u0073\u007d",cmap ._bae ,_cg .Join (_ae ,"\u0020"));};type cmapName struct{Name string ;};type CMap struct{*cMapParser ;_bae string ;_acg int ;_ec int ;_fa string ;_faf string ; _db CIDSystemInfo ;_fd []Codespace ;_gg map[CharCode ]CharCode ;_gf map[CharCode ]CharCode ;_fad map[CharCode ]string ;_af map[string ]CharCode ;_ag []byte ;_gbe *_cge .PdfObjectStream ;_fe integer ;};type charRange struct{_gc CharCode ;_cdd CharCode ; };func (cmap *CMap )parseType ()error {_agf :=0;_agd :=false ;for _aeec :=0;_aeec < 3&&!_agd ;_aeec ++{_cfgc ,_bgd :=cmap .parseObject ();if _bgd !=nil {return _bgd ;};switch _aeb :=_cfgc .(type ){case cmapOperand :switch _aeb .Operand {case "\u0064\u0065\u0066":_agd =true ; default:_cgb .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",_cfgc );return ErrBadCMap ;};case cmapInt :_agf =int (_aeb ._fdfc ); };};cmap ._ec =_agf ;return nil ;};func IsPredefinedCMap (name string )bool {return _e .AssetExists (name )};func (cmap *CMap )parseBfchar ()error {for {_dag ,_gga :=cmap .parseObject ();if _gga !=nil {if _gga ==_cda .EOF {break ;};return _gga ;};var _fafd CharCode ; switch _afg :=_dag .(type ){case cmapOperand :if _afg .Operand ==_efd {return nil ;};return _ba .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");case cmapHexString :_fafd =_aaf (_afg );default:return _ba .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065"); };_dag ,_gga =cmap .parseObject ();if _gga !=nil {if _gga ==_cda .EOF {break ;};return _gga ;};var _fbf []rune ;switch _gbf :=_dag .(type ){case cmapOperand :if _gbf .Operand ==_efd {return nil ;};_cgb .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",_gbf ); return ErrBadCMap ;case cmapHexString :_fbf =_gcb (_gbf );case cmapName :_cgb .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",_gbf );_fbf =[]rune {MissingCodeRune }; default:_cgb .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",_dag );return ErrBadCMap ;};cmap ._fad [_fafd ]=string (_fbf );};return nil ;};var (ErrBadCMap =_ba .New ("\u0062\u0061\u0064\u0020\u0063\u006d\u0061\u0070"); ErrBadCMapComment =_ba .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 =_ba .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0069\u0063\u0074"); );func (cmap *CMap )Name ()string {return cmap ._bae };func (_dcd *cMapParser )parseHexString ()(cmapHexString ,error ){_dcd ._ged .ReadByte ();_gge :=[]byte ("\u0030\u0031\u0032\u003345\u0036\u0037\u0038\u0039\u0061\u0062\u0063\u0064\u0065\u0066\u0041\u0042\u0043\u0044E\u0046"); _cdcc :=_gd .Buffer {};for {_dcd .skipSpaces ();_bcd ,_bgb :=_dcd ._ged .Peek (1);if _bgb !=nil {return cmapHexString {},_bgb ;};if _bcd [0]=='>'{_dcd ._ged .ReadByte ();break ;};_ggaa ,_ :=_dcd ._ged .ReadByte ();if _gd .IndexByte (_gge ,_ggaa )>=0{_cdcc .WriteByte (_ggaa ); };};if _cdcc .Len ()%2==1{_cgb .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",_cdcc .String ());_cdcc .WriteByte ('0');};_ggga :=_cdcc .Len ()/2; _dbd ,_ :=_d .DecodeString (_cdcc .String ());return cmapHexString {_fddb :_ggga ,_gcdd :_dbd },nil ;};func (_dbc *cMapParser )parseObject ()(cmapObject ,error ){_dbc .skipSpaces ();for {_cedb ,_age :=_dbc ._ged .Peek (2);if _age !=nil {return nil ,_age ; };if _cedb [0]=='%'{_dbc .parseComment ();_dbc .skipSpaces ();continue ;}else if _cedb [0]=='/'{_adce ,_agae :=_dbc .parseName ();return _adce ,_agae ;}else if _cedb [0]=='('{_gfae ,_ddg :=_dbc .parseString ();return _gfae ,_ddg ;}else if _cedb [0]=='['{_ceea ,_cbg :=_dbc .parseArray (); return _ceea ,_cbg ;}else if (_cedb [0]=='<')&&(_cedb [1]=='<'){_add ,_dadc :=_dbc .parseDict ();return _add ,_dadc ;}else if _cedb [0]=='<'{_cabd ,_fcg :=_dbc .parseHexString ();return _cabd ,_fcg ;}else if _cge .IsDecimalDigit (_cedb [0])||(_cedb [0]=='-'&&_cge .IsDecimalDigit (_cedb [1])){_cec ,_efee :=_dbc .parseNumber (); if _efee !=nil {return nil ,_efee ;};return _cec ,nil ;}else {_bbf ,_cgbac :=_dbc .parseOperand ();if _cgbac !=nil {return nil ,_cgbac ;};return _bbf ,nil ;};};};func _cef (_bge string )string {_cead :=[]rune (_bge );_gfa :=make ([]string ,len (_cead )); for _efe ,_bdb :=range _cead {_gfa [_efe ]=_b .Sprintf ("\u0025\u0030\u0034\u0078",_bdb );};return _b .Sprintf ("\u003c\u0025\u0073\u003e",_cg .Join (_gfa ,""));};type CIDSystemInfo struct{Registry string ;Ordering string ;Supplement int ;};func LoadCmapFromData (data []byte ,isSimple bool )(*CMap ,error ){_cgb .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 :=_fc (isSimple );cmap .cMapParser =_deb (data );_bd :=cmap .parse ();if _bd !=nil {return nil ,_bd ;};if len (cmap ._fd )==0{if cmap ._faf !=""{return cmap ,nil ;};_cgb .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 (_dadg *cMapParser )parseNumber ()(cmapObject ,error ){_agac ,_cgbf :=_cge .ParseNumber (_dadg ._ged );if _cgbf !=nil {return nil ,_cgbf ;};switch _aff :=_agac .(type ){case *_cge .PdfObjectFloat :return cmapFloat {float64 (*_aff )},nil ; case *_cge .PdfObjectInteger :return cmapInt {int64 (*_aff )},nil ;};return nil ,_b .Errorf ("\u0075n\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u006e\u0075\u006db\u0065\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0054",_agac );};func _cbcd ()cmapDict {return cmapDict {Dict :map[string ]cmapObject {}}}; func (_cgg *cMapParser )skipSpaces ()(int ,error ){_fdd :=0;for {_ecb ,_gcca :=_cgg ._ged .Peek (1);if _gcca !=nil {return 0,_gcca ;};if _cge .IsWhiteSpace (_ecb [0]){_cgg ._ged .ReadByte ();_fdd ++;}else {break ;};};return _fdd ,nil ;};func (_gad *cMapParser )parseArray ()(cmapArray ,error ){_dffb :=cmapArray {}; _dffb .Array =[]cmapObject {};_gad ._ged .ReadByte ();for {_gad .skipSpaces ();_gdfe ,_dbb :=_gad ._ged .Peek (1);if _dbb !=nil {return _dffb ,_dbb ;};if _gdfe [0]==']'{_gad ._ged .ReadByte ();break ;};_dee ,_dbb :=_gad .parseObject ();if _dbb !=nil {return _dffb ,_dbb ; };_dffb .Array =append (_dffb .Array ,_dee );};return _dffb ,nil ;};func (cmap *CMap )toBfData ()string {if len (cmap ._fad )==0{return "";};_dcc :=make ([]CharCode ,0,len (cmap ._fad ));for _ebc :=range cmap ._fad {_dcc =append (_dcc ,_ebc );};_a .Slice (_dcc ,func (_cabf ,_fcf int )bool {return _dcc [_cabf ]< _dcc [_fcf ]}); var _bb []charRange ;_df :=charRange {_dcc [0],_dcc [0]};_ebd :=cmap ._fad [_dcc [0]];for _ ,_bcg :=range _dcc [1:]{_ece :=cmap ._fad [_bcg ];if _bcg ==_df ._cdd +1&&_acd (_ece )==_acd (_ebd )+1{_df ._cdd =_bcg ;}else {_bb =append (_bb ,_df );_df ._gc ,_df ._cdd =_bcg ,_bcg ; };_ebd =_ece ;};_bb =append (_bb ,_df );var _fge []CharCode ;var _gcc []fbRange ;for _ ,_bbg :=range _bb {if _bbg ._gc ==_bbg ._cdd {_fge =append (_fge ,_bbg ._gc );}else {_gcc =append (_gcc ,fbRange {_ca :_bbg ._gc ,_f :_bbg ._cdd ,_cc :cmap ._fad [_bbg ._gc ]}); };};_cgb .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 (_bb ),len (_fge ),len (_gcc ));var _ebb []string ;if len (_fge )> 0{_cdf :=(len (_fge )+_agc -1)/_agc ; for _fgd :=0;_fgd < _cdf ;_fgd ++{_dab :=_bga (len (_fge )-_fgd *_agc ,_agc );_ebb =append (_ebb ,_b .Sprintf ("\u0025\u0064\u0020\u0062\u0065\u0067\u0069\u006e\u0062f\u0063\u0068\u0061\u0072",_dab ));for _fgdb :=0;_fgdb < _dab ;_fgdb ++{_egf :=_fge [_fgd *_agc +_fgdb ]; _fgef :=cmap ._fad [_egf ];_ebb =append (_ebb ,_b .Sprintf ("\u003c%\u0030\u0034\u0078\u003e\u0020\u0025s",_egf ,_cef (_fgef )));};_ebb =append (_ebb ,"\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r");};};if len (_gcc )> 0{_bad :=(len (_gcc )+_agc -1)/_agc ; for _bce :=0;_bce < _bad ;_bce ++{_dba :=_bga (len (_gcc )-_bce *_agc ,_agc );_ebb =append (_ebb ,_b .Sprintf ("\u0025d\u0020b\u0065\u0067\u0069\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065",_dba ));for _cdgd :=0;_cdgd < _dba ;_cdgd ++{_geb :=_gcc [_bce *_agc +_cdgd ]; _ebb =append (_ebb ,_b .Sprintf ("\u003c%\u00304\u0078\u003e\u003c\u0025\u0030\u0034\u0078\u003e\u0020\u0025\u0073",_geb ._ca ,_geb ._f ,_cef (_geb ._cc )));};_ebb =append (_ebb ,"\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065");};};return _cg .Join (_ebb ,"\u000a"); };func (cmap *CMap )parseCIDRange ()error {for {_bacdb ,_gcde :=cmap .parseObject ();if _gcde !=nil {if _gcde ==_cda .EOF {break ;};return _gcde ;};_aggb ,_fdg :=_bacdb .(cmapHexString );if !_fdg {if _dffd ,_eba :=_bacdb .(cmapOperand );_eba {if _dffd .Operand ==_fde {return nil ; };return _ba .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");};};_cbd :=_aaf (_aggb ); _bacdb ,_gcde =cmap .parseObject ();if _gcde !=nil {if _gcde ==_cda .EOF {break ;};return _gcde ;};_abc ,_fdg :=_bacdb .(cmapHexString );if !_fdg {return _ba .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 (_aggb ._gcdd )!=len (_abc ._gcdd ){return _ba .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");};_ecec :=_aaf (_abc ); if _cbd > _ecec {_cgb .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",_cbd ,_ecec ); return ErrBadCMap ;};_bacdb ,_gcde =cmap .parseObject ();if _gcde !=nil {if _gcde ==_cda .EOF {break ;};return _gcde ;};_cdfc ,_fdg :=_bacdb .(cmapInt );if !_fdg {return _ba .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 _cdfc ._fdfc < 0{return _ba .New ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0063\u0069\u0064\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0076\u0061\u006c\u0075\u0065");};_afd :=_cdfc ._fdfc ;for _cdcg :=_cbd ;_cdcg <=_ecec ;_cdcg ++{cmap ._gg [_cdcg ]=CharCode (_afd ); _afd ++;};_cgb .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",_cbd ,_ecec ,_cdfc ._fdfc );};return nil ;};func (_eebc *cMapParser )parseString ()(cmapString ,error ){_eebc ._ged .ReadByte (); _gbbg :=_gd .Buffer {};_cfd :=1;for {_bcgc ,_efb :=_eebc ._ged .Peek (1);if _efb !=nil {return cmapString {_gbbg .String ()},_efb ;};if _bcgc [0]=='\\'{_eebc ._ged .ReadByte ();_eef ,_cbgg :=_eebc ._ged .ReadByte ();if _cbgg !=nil {return cmapString {_gbbg .String ()},_cbgg ; };if _cge .IsOctalDigit (_eef ){_fdab ,_ded :=_eebc ._ged .Peek (2);if _ded !=nil {return cmapString {_gbbg .String ()},_ded ;};var _cfeb []byte ;_cfeb =append (_cfeb ,_eef );for _ ,_defe :=range _fdab {if _cge .IsOctalDigit (_defe ){_cfeb =append (_cfeb ,_defe ); }else {break ;};};_eebc ._ged .Discard (len (_cfeb )-1);_cgb .Log .Trace ("\u004e\u0075\u006d\u0065ri\u0063\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0022\u0025\u0073\u0022",_cfeb );_dedb ,_ded :=_g .ParseUint (string (_cfeb ),8,32);if _ded !=nil {return cmapString {_gbbg .String ()},_ded ; };_gbbg .WriteByte (byte (_dedb ));continue ;};switch _eef {case 'n':_gbbg .WriteByte ('\n');case 'r':_gbbg .WriteByte ('\r');case 't':_gbbg .WriteByte ('\t');case 'b':_gbbg .WriteByte ('\b');case 'f':_gbbg .WriteByte ('\f');case '(':_gbbg .WriteByte ('('); case ')':_gbbg .WriteByte (')');case '\\':_gbbg .WriteByte ('\\');};continue ;}else if _bcgc [0]=='('{_cfd ++;}else if _bcgc [0]==')'{_cfd --;if _cfd ==0{_eebc ._ged .ReadByte ();break ;};};_ffg ,_ :=_eebc ._ged .ReadByte ();_gbbg .WriteByte (_ffg );}; return cmapString {_gbbg .String ()},nil ;};type cMapParser struct{_ged *_gb .Reader };func (cmap *CMap )CIDSystemInfo ()CIDSystemInfo {return cmap ._db };type cmapDict struct{Dict map[string ]cmapObject ;};func (cmap *CMap )inCodespace (_gdgg CharCode ,_ecfge int )bool {for _ ,_gbd :=range cmap ._fd {if _gbd .Low <=_gdgg &&_gdgg <=_gbd .High &&_ecfge ==_gbd .NumBytes {return true ; };};return false ;};func _acd (_gde string )rune {_ef :=[]rune (_gde );return _ef [len (_ef )-1]};func (cmap *CMap )CharcodeBytesToUnicode (data []byte )(string ,int ){_ceab ,_fb :=cmap .BytesToCharcodes (data );if !_fb {_cgb .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;};_gfb :=make ([]string ,len (_ceab ));var _eca []CharCode ;for _bg ,_fadg :=range _ceab {_daa ,_bda :=cmap ._fad [_fadg ];if !_bda {_eca =append (_eca ,_fadg );_daa =MissingCodeString ;};_gfb [_bg ]=_daa ;};_bf :=_cg .Join (_gfb ,"");if len (_eca )> 0{_cgb .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 ),_ceab ,len (_eca ),_eca ,_bf ,cmap ); };return _bf ,len (_eca );};func _fda (_fdb string )(*CMap ,error ){_cgba ,_bec :=_e .Asset (_fdb );if _bec !=nil {return nil ,_bec ;};return LoadCmapFromDataCID (_cgba );};func (_ce *CIDSystemInfo )String ()string {return _b .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0025\u0030\u0033\u0064",_ce .Registry ,_ce .Ordering ,_ce .Supplement ); };func NewToUnicodeCMap (codeToRune map[CharCode ]rune )*CMap {_fg :=make (map[CharCode ]string ,len (codeToRune ));for _abg ,_ge :=range codeToRune {_fg [_abg ]=string (_ge );};cmap :=&CMap {_bae :"\u0041d\u006fb\u0065\u002d\u0049\u0064\u0065n\u0074\u0069t\u0079\u002d\u0055\u0043\u0053",_ec :2,_acg :16,_db :CIDSystemInfo {Registry :"\u0041\u0064\u006fb\u0065",Ordering :"\u0055\u0043\u0053",Supplement :0},_fd :[]Codespace {{Low :0,High :0xffff}},_fad :_fg ,_af :make (map[string ]CharCode ,len (codeToRune )),_gg :make (map[CharCode ]CharCode ,len (codeToRune )),_gf :make (map[CharCode ]CharCode ,len (codeToRune ))}; cmap .computeInverseMappings ();return cmap ;};type cmapOperand struct{Operand string ;};func _dacd (_gcf cmapHexString )rune {_bcde :=_gcb (_gcf );if _eaa :=len (_bcde );_eaa ==0{_cgb .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",_gcf ); return MissingCodeRune ;};if len (_bcde )> 1{_cgb .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",_gcf ,_bcde ); };return _bcde [0];};type Codespace struct{NumBytes int ;Low CharCode ;High CharCode ;};func LoadPredefinedCMap (name string )(*CMap ,error ){cmap ,_fca :=_fda (name );if _fca !=nil {return nil ,_fca ;};if cmap ._faf ==""{cmap .computeInverseMappings (); return cmap ,nil ;};_ff ,_fca :=_fda (cmap ._faf );if _fca !=nil {return nil ,_fca ;};for _aa ,_be :=range _ff ._gg {if _ ,_cab :=cmap ._gg [_aa ];!_cab {cmap ._gg [_aa ]=_be ;};};cmap ._fd =append (cmap ._fd ,_ff ._fd ...);cmap .computeInverseMappings (); return cmap ,nil ;};func _gcb (_ggd cmapHexString )[]rune {if len (_ggd ._gcdd )==1{return []rune {rune (_ggd ._gcdd [0])};};_acc :=_ggd ._gcdd ;if len (_acc )%2!=0{_acc =append (_acc ,0);_cgb .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",_ggd ,_acc ); };_efcf :=len (_acc )>>1;_befef :=make ([]uint16 ,_efcf );for _egd :=0;_egd < _efcf ;_egd ++{_befef [_egd ]=uint16 (_acc [_egd <<1])<<8+uint16 (_acc [_egd <<1+1]);};_bfc :=_cd .Decode (_befef );return _bfc ;};func (cmap *CMap )CharcodeToUnicode (code CharCode )(string ,bool ){if _gee ,_eac :=cmap ._fad [code ]; _eac {return _gee ,true ;};return MissingCodeString ,false ;};