aboutsummaryrefslogtreecommitdiff
path: root/unipdf/model/model.go
diff options
context:
space:
mode:
Diffstat (limited to 'unipdf/model/model.go')
-rw-r--r--unipdf/model/model.go5805
1 files changed, 5805 insertions, 0 deletions
diff --git a/unipdf/model/model.go b/unipdf/model/model.go
new file mode 100644
index 0000000..cbfba0d
--- /dev/null
+++ b/unipdf/model/model.go
@@ -0,0 +1,5805 @@
+//
+// 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 model provides an interface for working with high-level objects (models) in PDF files, including
+// reading and writing documents.
+//
+// The document structure of a PDF is constructed of a hierarchy of data models, representing a tree
+// of information starting from the Document catalog (Figure 5 p. 80).
+// It is based on the core package which handles core functionality such as file i/o, parsing and
+// handling of primitive PDF objects (core.PdfObject).
+//
+// As an example of the interface, the following snippet can read the PDF and output the number of pages:
+//
+// f, err := os.Open(inputPath)
+// if err != nil {
+// return nil, err
+// }
+// defer f.Close()
+// pdfReader, err := unipdf.NewPdfReader(f)
+// if err != nil {
+// fmt.Printf("Failed to read PDF file: %v\n", err)
+// os.Exit(1)
+// }
+// numPages, err := pdfReader.GetNumPages()
+// if err != nil {
+// fmt.Printf("Failed to get number of pages: %v\n", err)
+// os.Exit(1)
+// }
+// fmt.Printf("The PDF file has %d pages\n", numPages)
+//
+// For more examples, see the unidoc-examples repository on GitHub: https://github.com/unidoc/unidoc-examples
+package model ;import (_c "bufio";_cca "bytes";_cd "crypto/md5";_da "crypto/rand";_cc "crypto/sha1";_de "crypto/x509";_bg "encoding/binary";_bc "encoding/hex";_bd "errors";_d "fmt";_ccaf "github.com/h2non/filetype";_gec "github.com/unidoc/freetype";_afc "github.com/unidoc/freetype/truetype";
+_ec "github.com/unidoc/pkcs7";_egb "github.com/unidoc/unipdf/v4/common";_dfg "github.com/unidoc/unipdf/v4/core";_fc "github.com/unidoc/unipdf/v4/core/security";_edb "github.com/unidoc/unipdf/v4/core/security/crypt";_efg "github.com/unidoc/unipdf/v4/internal/cmap";
+_ef "github.com/unidoc/unipdf/v4/internal/imageutil";_gb "github.com/unidoc/unipdf/v4/internal/license";_efe "github.com/unidoc/unipdf/v4/internal/sampling";_ff "github.com/unidoc/unipdf/v4/internal/textencoding";_ea "github.com/unidoc/unipdf/v4/internal/timeutils";
+_eea "github.com/unidoc/unipdf/v4/internal/transform";_gdb "github.com/unidoc/unipdf/v4/internal/uuid";_beg "github.com/unidoc/unipdf/v4/model/internal/docutil";_bf "github.com/unidoc/unipdf/v4/model/internal/fonts";_bba "github.com/unidoc/unipdf/v4/model/mdp";
+_dfd "github.com/unidoc/unipdf/v4/model/sigutil";_cb "github.com/unidoc/unipdf/v4/ps";_be "github.com/unidoc/unitype";_fce "golang.org/x/image/font";_gff "golang.org/x/xerrors";_g "hash";_gf "image";_dc "image/color";_f "image/draw";_ "image/gif";_e "image/png";
+_edg "io";_df "math";_eg "math/rand";_ga "os";_ac "path/filepath";_gd "regexp";_ed "sort";_gg "strconv";_af "strings";_b "sync";_ge "time";_cf "unicode";_ee "unicode/utf8";);
+
+// RemovePage removes a page by number.
+func (_adbdb *PdfAppender )RemovePage (pageNum int ){_bdfd :=pageNum -1;_adbdb ._egfc =append (_adbdb ._egfc [0:_bdfd ],_adbdb ._egfc [pageNum :]...);};
+
+// String returns a string describing the font descriptor.
+func (_edfaf *PdfFontDescriptor )String ()string {var _abcb []string ;if _edfaf .FontName !=nil {_abcb =append (_abcb ,_edfaf .FontName .String ());};if _edfaf .FontFamily !=nil {_abcb =append (_abcb ,_edfaf .FontFamily .String ());};if _edfaf .fontFile !=nil {_abcb =append (_abcb ,_edfaf .fontFile .String ());
+};if _edfaf ._gcge !=nil {_abcb =append (_abcb ,_edfaf ._gcge .String ());};_abcb =append (_abcb ,_d .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_edfaf .FontFile3 !=nil ));return _d .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_af .Join (_abcb ,"\u002c\u0020"));
+};
+
+// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
+// error is returned.
+func NewPdfFontFromPdfObject (fontObj _dfg .PdfObject )(*PdfFont ,error ){return _gfaec (fontObj ,true )};
+
+// GetSamples converts the raw byte slice into samples which are stored in a uint32 bit array.
+// Each sample is represented by BitsPerComponent consecutive bits in the raw data.
+// NOTE: The method resamples the image byte data before returning the result and
+// this could lead to high memory usage, especially on large images. It should
+// be avoided, when possible. It is recommended to access the Data field of the
+// image directly or use the ColorAt method to extract individual pixels.
+func (_cedd *Image )GetSamples ()[]uint32 {_edffc :=_efe .ResampleBytes (_cedd .Data ,int (_cedd .BitsPerComponent ));if _cedd .BitsPerComponent < 8{_edffc =_cedd .samplesTrimPadding (_edffc );};_ceac :=int (_cedd .Width )*int (_cedd .Height )*_cedd .ColorComponents ;
+if len (_edffc )< _ceac {_egb .Log .Debug ("\u0045r\u0072\u006fr\u003a\u0020\u0054o\u006f\u0020\u0066\u0065\u0077\u0020\u0073a\u006d\u0070\u006c\u0065\u0073\u0020(\u0067\u006f\u0074\u0020\u0025\u0064\u002c\u0020\u0065\u0078\u0070e\u0063\u0074\u0069\u006e\u0067\u0020\u0025\u0064\u0029",len (_edffc ),_ceac );
+return _edffc ;}else if len (_edffc )> _ceac {_egb .Log .Debug ("\u0045r\u0072\u006fr\u003a\u0020\u0054o\u006f\u0020\u006d\u0061\u006e\u0079\u0020s\u0061\u006d\u0070\u006c\u0065\u0073 \u0028\u0067\u006f\u0074\u0020\u0025\u0064\u002c\u0020\u0065\u0078p\u0065\u0063\u0074\u0069\u006e\u0067\u0020\u0025\u0064",len (_edffc ),_ceac );
+_edffc =_edffc [:_ceac ];};return _edffc ;};
+
+// PdfInfoTrapped specifies pdf trapped information.
+type PdfInfoTrapped string ;
+
+// PdfActionTrans represents a trans action.
+type PdfActionTrans struct{*PdfAction ;Trans _dfg .PdfObject ;};
+
+// PdfOutputIntent provides a means for matching the color characteristics of a PDF document with
+// those of a target output device.
+// Multiple PdfOutputIntents allows the production process to be customized to the expected workflow and the specific
+// tools available.
+type PdfOutputIntent struct{
+
+// Type is an optional PDF object that this dictionary describes.
+// If present, must be OutputIntent for an output intent dictionary.
+Type string ;
+
+// S defines the OutputIntent subtype which should match the standard used in given document i.e:
+// for PDF/X use PdfOutputIntentTypeX.
+S PdfOutputIntentType ;
+
+// OutputCondition is an optional field that is identifying the intended output device or production condition in
+// human-readable form. This is preferred method of defining such a string for presentation to the user.
+OutputCondition string ;
+
+// OutputConditionIdentifier is a required field identifying the intended output device or production condition in
+// human or machine-readable form. If human-readable, this string may be used
+// in lieu of an OutputCondition for presentation to the user.
+// A typical value for this entry would be the name of a production condition maintained
+// in an industry-standard registry such as the ICC Characterization Data Registry
+// If the intended production condition is not a recognized standard, the value Custom is recommended for this entry.
+// the DestOutputProfile entry defines the ICC profile, and the Info entry is used for further
+// human-readable identification.
+OutputConditionIdentifier string ;
+
+// RegistryName is an optional string field (conventionally URI) identifying the registry in which the condition
+// designated by OutputConditionIdentifier is defined.
+RegistryName string ;
+
+// Info is a required field if OutputConditionIdentifier does not specify a standard production condition.
+// A human-readable text string containing additional information or comments about intended
+// target device or production condition.
+Info string ;
+
+// DestOutputProfile is required if OutputConditionIdentifier does not specify a standard production condition.
+// It is an ICC profile stream defining the transformation from the PDF document's source colors to output device colorants.
+DestOutputProfile []byte ;
+
+// ColorComponents is the number of color components supported by given output profile.
+ColorComponents int ;_gacff *_dfg .PdfObjectDictionary ;};func (_ddfa *PdfReader )newPdfAnnotationPolygonFromDict (_fdf *_dfg .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_feba :=PdfAnnotationPolygon {};_gedb ,_feg :=_ddfa .newPdfAnnotationMarkupFromDict (_fdf );
+if _feg !=nil {return nil ,_feg ;};_feba .PdfAnnotationMarkup =_gedb ;_feba .Vertices =_fdf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_feba .LE =_fdf .Get ("\u004c\u0045");_feba .BS =_fdf .Get ("\u0042\u0053");_feba .IC =_fdf .Get ("\u0049\u0043");
+_feba .BE =_fdf .Get ("\u0042\u0045");_feba .IT =_fdf .Get ("\u0049\u0054");_feba .Measure =_fdf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_feba ,nil ;};
+
+// GetContainingPdfObject returns the container of the outline (indirect object).
+func (_cgfed *PdfOutline )GetContainingPdfObject ()_dfg .PdfObject {return _cgfed ._gcdeg };
+
+// PdfFieldText represents a text field where user can enter text.
+type PdfFieldText struct{*PdfField ;DA *_dfg .PdfObjectString ;Q *_dfg .PdfObjectInteger ;DS *_dfg .PdfObjectString ;RV _dfg .PdfObject ;MaxLen *_dfg .PdfObjectInteger ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_cadb *PdfAnnotationPolygon )ToPdfObject ()_dfg .PdfObject {_cadb .PdfAnnotation .ToPdfObject ();_acc :=_cadb ._afae ;_cgg :=_acc .PdfObject .(*_dfg .PdfObjectDictionary );_cadb .appendToPdfDictionary (_cgg );_cgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
+_cgg .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_cadb .Vertices );_cgg .SetIfNotNil ("\u004c\u0045",_cadb .LE );_cgg .SetIfNotNil ("\u0042\u0053",_cadb .BS );_cgg .SetIfNotNil ("\u0049\u0043",_cadb .IC );_cgg .SetIfNotNil ("\u0042\u0045",_cadb .BE );
+_cgg .SetIfNotNil ("\u0049\u0054",_cadb .IT );_cgg .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_cadb .Measure );return _acc ;};const (RelationshipSource FileRelationship =iota ;RelationshipData ;RelationshipAlternative ;RelationshipSupplement ;
+RelationshipUnspecified ;);
+
+// EmbeddedFile represents an embedded file.
+type EmbeddedFile struct{Name string ;Content []byte ;FileType string ;Description string ;Relationship FileRelationship ;Hash string ;CreationTime _ge .Time ;ModTime _ge .Time ;};
+
+// PdfAnnotationPopup represents Popup annotations.
+// (Section 12.5.6.14).
+type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _dfg .PdfObject ;Open _dfg .PdfObject ;};func _befee (_bacdf _dfg .PdfObject )(*PdfFunctionType3 ,error ){_bbdd :=&PdfFunctionType3 {};var _dbgg *_dfg .PdfObjectDictionary ;if _aeff ,_ffgce :=_bacdf .(*_dfg .PdfIndirectObject );
+_ffgce {_fbffa ,_gbeca :=_aeff .PdfObject .(*_dfg .PdfObjectDictionary );if !_gbeca {return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bbdd ._begcf =_aeff ;_dbgg =_fbffa ;}else if _gabc ,_gabbc :=_bacdf .(*_dfg .PdfObjectDictionary );
+_gabbc {_dbgg =_gabc ;}else {return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_feece ,_eadec :=_dfg .TraceToDirectObject (_dbgg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_dfg .PdfObjectArray );
+if !_eadec {_egb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
+};if _feece .Len ()!=2{_egb .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_fbfae ,_feebg :=_feece .ToFloat64Array ();
+if _feebg !=nil {return nil ,_feebg ;};_bbdd .Domain =_fbfae ;_feece ,_eadec =_dfg .TraceToDirectObject (_dbgg .Get ("\u0052\u0061\u006eg\u0065")).(*_dfg .PdfObjectArray );if _eadec {if _feece .Len ()< 0||_feece .Len ()%2!=0{return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
+};_dbbbe ,_aeeceg :=_feece .ToFloat64Array ();if _aeeceg !=nil {return nil ,_aeeceg ;};_bbdd .Range =_dbbbe ;};_feece ,_eadec =_dfg .TraceToDirectObject (_dbgg .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_dfg .PdfObjectArray );if !_eadec {_egb .Log .Error ("\u0046\u0075\u006ect\u0069\u006f\u006e\u0073\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
+return nil ,_bd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_bbdd .Functions =[]PdfFunction {};
+for _ ,_cdga :=range _feece .Elements (){_cggb ,_gcefe :=_gbada (_cdga );if _gcefe !=nil {return nil ,_gcefe ;};_bbdd .Functions =append (_bbdd .Functions ,_cggb );};_feece ,_eadec =_dfg .TraceToDirectObject (_dbgg .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_dfg .PdfObjectArray );
+if !_eadec {_egb .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
+};_gfcd ,_feebg :=_feece .ToFloat64Array ();if _feebg !=nil {return nil ,_feebg ;};_bbdd .Bounds =_gfcd ;if len (_bbdd .Bounds )!=len (_bbdd .Functions )-1{_egb .Log .Error ("B\u006f\u0075\u006e\u0064\u0073\u0020\u0028\u0025\u0064)\u0020\u0061\u006e\u0064\u0020\u006e\u0075m \u0066\u0075\u006e\u0063t\u0069\u006f\u006e\u0073\u0020\u0028\u0025\u0064\u0029 n\u006f\u0074 \u006d\u0061\u0074\u0063\u0068\u0069\u006e\u0067",len (_bbdd .Bounds ),len (_bbdd .Functions ));
+return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_feece ,_eadec =_dfg .TraceToDirectObject (_dbgg .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_dfg .PdfObjectArray );if !_eadec {_egb .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
+return nil ,_bd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_gfaab ,_feebg :=_feece .ToFloat64Array ();
+if _feebg !=nil {return nil ,_feebg ;};_bbdd .Encode =_gfaab ;if len (_bbdd .Encode )!=2*len (_bbdd .Functions ){_egb .Log .Error ("\u004c\u0065\u006e\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0020\u0028\u0025\u0064\u0029 \u0061\u006e\u0064\u0020\u006e\u0075\u006d\u0020\u0066\u0075\u006e\u0063\u0074i\u006f\u006e\u0073\u0020\u0028\u0025\u0064\u0029\u0020\u006e\u006f\u0074 m\u0061\u0074\u0063\u0068\u0069\u006e\u0067\u0020\u0075\u0070",len (_bbdd .Encode ),len (_bbdd .Functions ));
+return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _bbdd ,nil ;};func _fgagc (_fgbc *PdfField ,_fcedfb _dfg .PdfObject ){for _ ,_becec :=range _fgbc .Annotations {_becec .AS =_fcedfb ;_becec .ToPdfObject ();
+};};
+
+// SetVersion sets the PDF version of the output file.
+func (_adecd *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_adecd ._cfbcb .Major =majorVersion ;_adecd ._cfbcb .Minor =minorVersion ;};
+
+// DecodeArray returns the range of color component values in the Lab colorspace.
+func (_fbgab *PdfColorspaceLab )DecodeArray ()[]float64 {_dfae :=[]float64 {0,100};if _fbgab !=nil &&_fbgab .Range !=nil &&len (_fbgab .Range )==4{_dfae =append (_dfae ,_fbgab .Range ...);}else {_dfae =append (_dfae ,-100,100,-100,100);};return _dfae ;
+};
+
+// StandardValidator is the interface that is used for the PDF StandardImplementer validation for the PDF document.
+// It is using a CompliancePdfReader which is expected to give more Metadata during reading process.
+// NOTE: This implementation is in experimental development state.
+//
+// Keep in mind that it might change in the subsequent minor versions.
+type StandardValidator interface{
+
+// ValidateStandard checks if the input reader
+ValidateStandard (_dcfga *CompliancePdfReader )error ;};
+
+// SetHideMenubar sets the value of the hideMenubar flag.
+func (_bbbcea *ViewerPreferences )SetHideMenubar (hideMenubar bool ){_bbbcea ._eaded =&hideMenubar };
+
+// ToPdfObject returns the PDF representation of the DSS dictionary.
+func (_gaddd *DSS )ToPdfObject ()_dfg .PdfObject {_fffe :=_gaddd ._beab .PdfObject .(*_dfg .PdfObjectDictionary );_fffe .Clear ();_adee :=_dfg .MakeDict ();for _ggagf ,_aeda :=range _gaddd .VRI {_adee .Set (*_dfg .MakeName (_ggagf ),_aeda .ToPdfObject ());
+};_fffe .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_aedcf (_gaddd .Certs ));_fffe .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_aedcf (_gaddd .OCSPs ));_fffe .SetIfNotNil ("\u0043\u0052\u004c\u0073",_aedcf (_gaddd .CRLs ));_fffe .Set ("\u0056\u0052\u0049",_adee );
+return _gaddd ._beab ;};
+
+// Permissions specify a permissions dictionary (PDF 1.5).
+// (Section 12.8.4, Table 258 - Entries in a permissions dictionary p. 477 in PDF32000_2008).
+type Permissions struct{DocMDP *PdfSignature ;_gbdee *_dfg .PdfObjectDictionary ;};
+
+// PdfColorspaceDeviceNAttributes contains additional information about the components of colour space that
+// conforming readers may use. Conforming readers need not use the alternateSpace and tintTransform parameters,
+// and may instead use a custom blending algorithms, along with other information provided in the attributes
+// dictionary if present.
+type PdfColorspaceDeviceNAttributes struct{Subtype *_dfg .PdfObjectName ;Colorants _dfg .PdfObject ;Process _dfg .PdfObject ;MixingHints _dfg .PdfObject ;_bfddg *_dfg .PdfIndirectObject ;};func (_fbbc *PdfReader )newPdfAnnotationFromIndirectObject (_bbcg *_dfg .PdfIndirectObject )(*PdfAnnotation ,error ){_ccd ,_adc :=_bbcg .PdfObject .(*_dfg .PdfObjectDictionary );
+if !_adc {return nil ,_d .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+};if model :=_fbbc ._acaed .GetModelFromPrimitive (_ccd );model !=nil {_fcace ,_acag :=model .(*PdfAnnotation );if !_acag {return nil ,_d .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");
+};return _fcace ,nil ;};_bbca :=&PdfAnnotation {};_bbca ._afae =_bbcg ;_fbbc ._acaed .Register (_ccd ,_bbca );if _aeeg :=_ccd .Get ("\u0054\u0079\u0070\u0065");_aeeg !=nil {_adfd ,_aff :=_aeeg .(*_dfg .PdfObjectName );if !_aff {_egb .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_aeeg );
+}else {if *_adfd !="\u0041\u006e\u006eo\u0074"{_egb .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070\u0065\u0063\u0074\u0065d\u0020\u0054\u0079\u0070\u0065\u0020\u0021=\u0020\u0041\u006e\u006e\u006f\u0074\u0020\u0028\u0025\u0073\u0029",*_adfd );};};};
+if _cddf :=_ccd .Get ("\u0052\u0065\u0063\u0074");_cddf !=nil {_bbca .Rect =_cddf ;};if _eaf :=_ccd .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_eaf !=nil {_bbca .Contents =_eaf ;};if _bde :=_ccd .Get ("\u0050");_bde !=nil {_bbca .P =_bde ;
+};if _ddb :=_ccd .Get ("\u004e\u004d");_ddb !=nil {_bbca .NM =_ddb ;};if _fac :=_ccd .Get ("\u004d");_fac !=nil {_bbca .M =_fac ;};if _cgb :=_ccd .Get ("\u0046");_cgb !=nil {_bbca .F =_cgb ;};if _cbc :=_ccd .Get ("\u0041\u0050");_cbc !=nil {_bbca .AP =_cbc ;
+};if _cdda :=_ccd .Get ("\u0041\u0053");_cdda !=nil {_bbca .AS =_cdda ;};if _eeae :=_ccd .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_eeae !=nil {_bbca .Border =_eeae ;};if _efee :=_ccd .Get ("\u0043");_efee !=nil {_bbca .C =_efee ;};if _eee :=_ccd .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
+_eee !=nil {_bbca .StructParent =_eee ;};if _ccc :=_ccd .Get ("\u004f\u0043");_ccc !=nil {_bbca .OC =_ccc ;};_eeee :=_ccd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _eeee ==nil {_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u0049\u004e\u0047:\u0020\u0043\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079 \u0069s\u0073\u0075\u0065\u0020\u002d\u0020a\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u002d\u0020\u0061\u0073\u0073u\u006d\u0069\u006e\u0067\u0020\u006e\u006f\u0020\u0073\u0075\u0062\u0074\u0079p\u0065");
+_bbca ._dga =nil ;return _bbca ,nil ;};_dfe ,_fdc :=_eeee .(*_dfg .PdfObjectName );if !_fdc {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0053\u0075\u0062ty\u0070\u0065\u0020\u006fb\u006a\u0065\u0063\u0074\u0020\u0074\u0079\u0070\u0065 !\u003d\u0020n\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_eeee );
+return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_eeee );};switch *_dfe {case "\u0054\u0065\u0078\u0074":_ecc ,_cecg :=_fbbc .newPdfAnnotationTextFromDict (_ccd );
+if _cecg !=nil {return nil ,_cecg ;};_ecc .PdfAnnotation =_bbca ;_bbca ._dga =_ecc ;return _bbca ,nil ;case "\u004c\u0069\u006e\u006b":_agba ,_cfb :=_fbbc .newPdfAnnotationLinkFromDict (_ccd );if _cfb !=nil {return nil ,_cfb ;};_agba .PdfAnnotation =_bbca ;
+_bbca ._dga =_agba ;return _bbca ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_bdd ,_caae :=_fbbc .newPdfAnnotationFreeTextFromDict (_ccd );if _caae !=nil {return nil ,_caae ;};_bdd .PdfAnnotation =_bbca ;_bbca ._dga =_bdd ;return _bbca ,nil ;
+case "\u004c\u0069\u006e\u0065":_edgd ,_bfgb :=_fbbc .newPdfAnnotationLineFromDict (_ccd );if _bfgb !=nil {return nil ,_bfgb ;};_edgd .PdfAnnotation =_bbca ;_bbca ._dga =_edgd ;_egb .Log .Trace ("\u004c\u0049\u004e\u0045\u0020\u0041N\u004e\u004f\u0054\u0041\u0054\u0049\u004f\u004e\u003a\u0020\u0061\u006e\u006eo\u0074\u0020\u0028\u0025\u0054\u0029\u003a \u0025\u002b\u0076\u000a",_bbca ,_bbca );
+_egb .Log .Trace ("\u004c\u0049\u004eE\u0020\u0041\u004e\u004eO\u0054\u0041\u0054\u0049\u004f\u004e\u003a \u0063\u0074\u0078\u0020\u0028\u0025\u0054\u0029\u003a\u0020\u0025\u002b\u0076\u000a",_edgd ,_edgd );_egb .Log .Trace ("\u004c\u0049\u004e\u0045\u0020\u0041\u004e\u004e\u004f\u0054\u0041\u0054\u0049\u004f\u004e\u0020\u004d\u0061\u0072\u006b\u0075\u0070\u003a\u0020c\u0074\u0078\u0020\u0028\u0025T\u0029\u003a \u0025\u002b\u0076\u000a",_edgd .PdfAnnotationMarkup ,_edgd .PdfAnnotationMarkup );
+return _bbca ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_afd ,_babe :=_fbbc .newPdfAnnotationSquareFromDict (_ccd );if _babe !=nil {return nil ,_babe ;};_afd .PdfAnnotation =_bbca ;_bbca ._dga =_afd ;return _bbca ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_bbb ,_aga :=_fbbc .newPdfAnnotationCircleFromDict (_ccd );
+if _aga !=nil {return nil ,_aga ;};_bbb .PdfAnnotation =_bbca ;_bbca ._dga =_bbb ;return _bbca ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_daca ,_dcd :=_fbbc .newPdfAnnotationPolygonFromDict (_ccd );if _dcd !=nil {return nil ,_dcd ;};_daca .PdfAnnotation =_bbca ;
+_bbca ._dga =_daca ;return _bbca ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_eff ,_cffa :=_fbbc .newPdfAnnotationPolyLineFromDict (_ccd );if _cffa !=nil {return nil ,_cffa ;};_eff .PdfAnnotation =_bbca ;_bbca ._dga =_eff ;return _bbca ,nil ;
+case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_gcd ,_gbag :=_fbbc .newPdfAnnotationHighlightFromDict (_ccd );if _gbag !=nil {return nil ,_gbag ;};_gcd .PdfAnnotation =_bbca ;_bbca ._dga =_gcd ;return _bbca ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_gfee ,_fdde :=_fbbc .newPdfAnnotationUnderlineFromDict (_ccd );
+if _fdde !=nil {return nil ,_fdde ;};_gfee .PdfAnnotation =_bbca ;_bbca ._dga =_gfee ;return _bbca ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_dff ,_cfeec :=_fbbc .newPdfAnnotationSquigglyFromDict (_ccd );if _cfeec !=nil {return nil ,_cfeec ;
+};_dff .PdfAnnotation =_bbca ;_bbca ._dga =_dff ;return _bbca ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_edbg ,_bbaf :=_fbbc .newPdfAnnotationStrikeOut (_ccd );if _bbaf !=nil {return nil ,_bbaf ;};_edbg .PdfAnnotation =_bbca ;_bbca ._dga =_edbg ;
+return _bbca ,nil ;case "\u0043\u0061\u0072e\u0074":_cgc ,_dbc :=_fbbc .newPdfAnnotationCaretFromDict (_ccd );if _dbc !=nil {return nil ,_dbc ;};_cgc .PdfAnnotation =_bbca ;_bbca ._dga =_cgc ;return _bbca ,nil ;case "\u0053\u0074\u0061m\u0070":_becd ,_afg :=_fbbc .newPdfAnnotationStampFromDict (_ccd );
+if _afg !=nil {return nil ,_afg ;};_becd .PdfAnnotation =_bbca ;_bbca ._dga =_becd ;return _bbca ,nil ;case "\u0049\u006e\u006b":_efd ,_eabg :=_fbbc .newPdfAnnotationInkFromDict (_ccd );if _eabg !=nil {return nil ,_eabg ;};_efd .PdfAnnotation =_bbca ;_bbca ._dga =_efd ;
+return _bbca ,nil ;case "\u0050\u006f\u0070u\u0070":_cbe ,_gbb :=_fbbc .newPdfAnnotationPopupFromDict (_ccd );if _gbb !=nil {return nil ,_gbb ;};_cbe .PdfAnnotation =_bbca ;_bbca ._dga =_cbe ;return _bbca ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_eabe ,_adfg :=_fbbc .newPdfAnnotationFileAttachmentFromDict (_ccd );
+if _adfg !=nil {return nil ,_adfg ;};_eabe .PdfAnnotation =_bbca ;_bbca ._dga =_eabe ;return _bbca ,nil ;case "\u0053\u006f\u0075n\u0064":_gce ,_efa :=_fbbc .newPdfAnnotationSoundFromDict (_ccd );if _efa !=nil {return nil ,_efa ;};_gce .PdfAnnotation =_bbca ;
+_bbca ._dga =_gce ;return _bbca ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_gbe ,_bgcd :=_fbbc .newPdfAnnotationRichMediaFromDict (_ccd );if _bgcd !=nil {return nil ,_bgcd ;};_gbe .PdfAnnotation =_bbca ;_bbca ._dga =_gbe ;return _bbca ,nil ;
+case "\u004d\u006f\u0076i\u0065":_edad ,_fcg :=_fbbc .newPdfAnnotationMovieFromDict (_ccd );if _fcg !=nil {return nil ,_fcg ;};_edad .PdfAnnotation =_bbca ;_bbca ._dga =_edad ;return _bbca ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_begf ,_faaa :=_fbbc .newPdfAnnotationScreenFromDict (_ccd );
+if _faaa !=nil {return nil ,_faaa ;};_begf .PdfAnnotation =_bbca ;_bbca ._dga =_begf ;return _bbca ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_feef ,_cddc :=_fbbc .newPdfAnnotationWidgetFromDict (_ccd );if _cddc !=nil {return nil ,_cddc ;};_feef .PdfAnnotation =_bbca ;
+_bbca ._dga =_feef ;return _bbca ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_dbbb ,_fed :=_fbbc .newPdfAnnotationPrinterMarkFromDict (_ccd );if _fed !=nil {return nil ,_fed ;};_dbbb .PdfAnnotation =_bbca ;_bbca ._dga =_dbbb ;
+return _bbca ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_fec ,_bedb :=_fbbc .newPdfAnnotationTrapNetFromDict (_ccd );if _bedb !=nil {return nil ,_bedb ;};_fec .PdfAnnotation =_bbca ;_bbca ._dga =_fec ;return _bbca ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_ccbg ,_cfc :=_fbbc .newPdfAnnotationWatermarkFromDict (_ccd );
+if _cfc !=nil {return nil ,_cfc ;};_ccbg .PdfAnnotation =_bbca ;_bbca ._dga =_ccbg ;return _bbca ,nil ;case "\u0033\u0044":_eaa ,_efcg :=_fbbc .newPdfAnnotation3DFromDict (_ccd );if _efcg !=nil {return nil ,_efcg ;};_eaa .PdfAnnotation =_bbca ;_bbca ._dga =_eaa ;
+return _bbca ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_bfca ,_fdbf :=_fbbc .newPdfAnnotationProjectionFromDict (_ccd );if _fdbf !=nil {return nil ,_fdbf ;};_bfca .PdfAnnotation =_bbca ;_bbca ._dga =_bfca ;return _bbca ,nil ;
+case "\u0052\u0065\u0064\u0061\u0063\u0074":_cgea ,_cbf :=_fbbc .newPdfAnnotationRedactFromDict (_ccd );if _cbf !=nil {return nil ,_cbf ;};_cgea .PdfAnnotation =_bbca ;_bbca ._dga =_cgea ;return _bbca ,nil ;};_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u0067\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0075\u006e\u006b\u006e\u006f\u0077\u006e\u0020a\u006e\u006e\u006f\u0074\u0061t\u0069\u006fn\u003a\u0020\u0025\u0073",*_dfe );
+return nil ,nil ;};
+
+// NewPdfActionNamed returns a new "named" action.
+func NewPdfActionNamed ()*PdfActionNamed {_dece :=NewPdfAction ();_ggab :=&PdfActionNamed {};_ggab .PdfAction =_dece ;_dece .SetContext (_ggab );return _ggab ;};
+
+// ToPdfObject returns the PDF representation of the shading pattern.
+func (_aefcc *PdfShadingPattern )ToPdfObject ()_dfg .PdfObject {_aefcc .PdfPattern .ToPdfObject ();_dggcd :=_aefcc .getDict ();if _aefcc .Shading !=nil {_dggcd .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_aefcc .Shading .ToPdfObject ());};if _aefcc .Matrix !=nil {_dggcd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_aefcc .Matrix );
+};if _aefcc .ExtGState !=nil {_dggcd .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_aefcc .ExtGState );};return _aefcc ._adcec ;};
+
+// ToPdfObject returns the text field dictionary within an indirect object (container).
+func (_bbgac *PdfFieldText )ToPdfObject ()_dfg .PdfObject {_bbgac .PdfField .ToPdfObject ();_bdebf :=_bbgac ._caaa ;_eadbda :=_bdebf .PdfObject .(*_dfg .PdfObjectDictionary );_eadbda .Set ("\u0046\u0054",_dfg .MakeName ("\u0054\u0078"));if _bbgac .DA !=nil {_eadbda .Set ("\u0044\u0041",_bbgac .DA );
+};if _bbgac .Q !=nil {_eadbda .Set ("\u0051",_bbgac .Q );};if _bbgac .DS !=nil {_eadbda .Set ("\u0044\u0053",_bbgac .DS );};if _bbgac .RV !=nil {_eadbda .Set ("\u0052\u0056",_bbgac .RV );};if _bbgac .MaxLen !=nil {_eadbda .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_bbgac .MaxLen );
+};return _bdebf ;};
+
+// NewPdfActionURI returns a new "Uri" action.
+func NewPdfActionURI ()*PdfActionURI {_gga :=NewPdfAction ();_cdf :=&PdfActionURI {};_cdf .PdfAction =_gga ;_gga .SetContext (_cdf );return _cdf ;};
+
+// GetContainingPdfObject gets the primitive used to parse the color space.
+func (_adgbg *PdfColorspaceICCBased )GetContainingPdfObject ()_dfg .PdfObject {return _adgbg ._edadb };
+
+// NewPdfAnnotationScreen returns a new screen annotation.
+func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_ddf :=NewPdfAnnotation ();_bag :=&PdfAnnotationScreen {};_bag .PdfAnnotation =_ddf ;_ddf .SetContext (_bag );return _bag ;};func (_eabbb *pdfFontType0 )baseFields ()*fontCommon {return &_eabbb .fontCommon };
+
+
+// NewPdfShadingType2 creates an empty shading type 2 dictionary.
+func NewPdfShadingType2 ()*PdfShadingType2 {_ebdcc :=&PdfShadingType2 {};_ebdcc .PdfShading =&PdfShading {};_ebdcc .PdfShading ._gdfdg =_dfg .MakeIndirectObject (_dfg .MakeDict ());_ebdcc .PdfShading ._fdbfb =_ebdcc ;return _ebdcc ;};
+
+// NewPdfAnnotationProjection returns a new projection annotation.
+func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_aece :=NewPdfAnnotation ();_bfea :=&PdfAnnotationProjection {};_bfea .PdfAnnotation =_aece ;_bfea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aece .SetContext (_bfea );return _bfea ;};
+
+// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
+func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_gcbc :=&PdfColorspaceDeviceN {};return _gcbc };
+
+// PartialName returns the partial name of the field.
+func (_ecag *PdfField )PartialName ()string {_gfef :="";if _ecag .T !=nil {_gfef =_ecag .T .Decoded ();}else {_egb .Log .Debug ("\u0046\u0069el\u0064\u0020\u006di\u0073\u0073\u0069\u006eg T\u0020fi\u0065\u006c\u0064\u0020\u0028\u0069\u006eco\u006d\u0070\u0061\u0074\u0069\u0062\u006ce\u0029");
+};return _gfef ;};
+
+// ToPdfObject returns the PDF representation of the colorspace.
+func (_fdfab *PdfPageResourcesColorspaces )ToPdfObject ()_dfg .PdfObject {_deage :=_dfg .MakeDict ();for _ ,_fdace :=range _fdfab .Names {_deage .Set (_dfg .PdfObjectName (_fdace ),_fdfab .Colorspaces [_fdace ].ToPdfObject ());};if _fdfab ._acbeg !=nil {_fdfab ._acbeg .PdfObject =_deage ;
+return _fdfab ._acbeg ;};return _deage ;};
+
+// PdfColorPattern represents a pattern color.
+type PdfColorPattern struct{Color PdfColor ;PatternName _dfg .PdfObjectName ;};const (_dbacd =0x00001;_fgba =0x00002;_dfefc =0x00004;_gbcad =0x00008;_cacg =0x00020;_dfdb =0x00040;_beeeg =0x10000;_ddgeb =0x20000;_gfba =0x40000;);
+
+// String returns a string that describes `font`.
+func (_afcga *PdfFont )String ()string {_bffb :="";if _afcga ._fab .Encoder ()!=nil {_bffb =_afcga ._fab .Encoder ().String ();};return _d .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_afcga ._fab ,_afcga .baseFields ().coreString (),_bffb );
+};func (_bddeg *PdfWriter )writeBytes (_cedgf []byte ){if _bddeg ._afgfcg !=nil {return ;};_gedbf ,_eedee :=_bddeg ._bfdbg .Write (_cedgf );_bddeg ._cffge +=int64 (_gedbf );_bddeg ._afgfcg =_eedee ;};
+
+// PdfField contains the common attributes of a form field. The context object contains the specific field data
+// which can represent a button, text, choice or signature.
+// The PdfField is typically not used directly, but is encapsulated by the more specific field types such as
+// PdfFieldButton etc (i.e. the context attribute).
+type PdfField struct{_agcfe PdfModel ;_caaa *_dfg .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_dfg .PdfObjectName ;T *_dfg .PdfObjectString ;TU *_dfg .PdfObjectString ;TM *_dfg .PdfObjectString ;Ff *_dfg .PdfObjectInteger ;
+V _dfg .PdfObject ;DV _dfg .PdfObject ;AA _dfg .PdfObject ;VariableText *VariableText ;};
+
+// DefaultFont returns the default font, which is currently the built in Helvetica.
+func DefaultFont ()*PdfFont {_gcfee ,_afcc :=_bf .NewStdFontByName (HelveticaName );if !_afcc {panic ("\u0048\u0065lv\u0065\u0074\u0069c\u0061\u0020\u0073\u0068oul\u0064 a\u006c\u0077\u0061\u0079\u0073\u0020\u0062e \u0061\u0076\u0061\u0069\u006c\u0061\u0062l\u0065");
+};_bdcc :=_agafd (_gcfee );return &PdfFont {_fab :&_bdcc };};func (_daac *PdfReader )flattenFieldsWithOpts (_cbbd bool ,_eegc FieldAppearanceGenerator ,_edfc *FieldFlattenOpts )error {if _edfc ==nil {_edfc =&FieldFlattenOpts {};};var _eaeg bool ;_fbba :=map[*PdfAnnotation ]bool {};
+{var _cbfca []*PdfField ;_fdee :=_daac .AcroForm ;if _fdee !=nil {if _edfc .FilterFunc !=nil {_cbfca =_fdee .filteredFields (_edfc .FilterFunc ,true );_eaeg =_fdee .Fields !=nil &&len (*_fdee .Fields )> 0;}else {_cbfca =_fdee .AllFields ();};};for _ ,_beaee :=range _cbfca {if len (_beaee .Annotations )< 1{_egb .Log .Debug ("\u004e\u006f\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006ed\u0020\u0066\u006f\u0072\u003a\u0020\u0025v\u002c\u0020\u006c\u006f\u006f\u006b\u0020\u0069\u006e\u0074\u006f \u004b\u0069\u0064\u0073\u0020\u004f\u0062\u006a\u0065\u0063\u0074",_beaee .PartialName ());
+for _fcga ,_fagbd :=range _beaee .Kids {for _ ,_gecb :=range _fagbd .Annotations {_fbba [_gecb .PdfAnnotation ]=_beaee .V !=nil ;if _fagbd .V ==nil {_fagbd .V =_beaee .V ;};if _fagbd .T ==nil {_fagbd .T =_dfg .MakeString (_d .Sprintf ("\u0025\u0073\u0023%\u0064",_beaee .PartialName (),_fcga ));
+};if _eegc !=nil {_cegca ,_aeece :=_eegc .GenerateAppearanceDict (_fdee ,_fagbd ,_gecb );if _aeece !=nil {return _aeece ;};_gecb .AP =_cegca ;};};};};for _ ,_ffba :=range _beaee .Annotations {_fbba [_ffba .PdfAnnotation ]=_beaee .V !=nil ;if _eegc !=nil {_adeb ,_gdafe :=_eegc .GenerateAppearanceDict (_fdee ,_beaee ,_ffba );
+if _gdafe !=nil {return _gdafe ;};_ffba .AP =_adeb ;};};};};if _cbbd {for _ ,_begfb :=range _daac .PageList {_gaegf ,_dgbee :=_begfb .GetAnnotations ();if _dgbee !=nil {return _dgbee ;};for _ ,_bfgea :=range _gaegf {_fbba [_bfgea ]=true ;};};};for _ ,_fefgf :=range _daac .PageList {_fcedf :=_fefgf .flattenFieldsWithOpts (_eegc ,_edfc ,_fbba );
+if _fcedf !=nil {return _fcedf ;};};if !_eaeg {_daac .AcroForm =nil ;};return nil ;};
+
+// PdfAnnotationUnderline represents Underline annotations.
+// (Section 12.5.6.10).
+type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _dfg .PdfObject ;};
+
+// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
+// replaces the original AcroForm.
+func (_egdc *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_egdc .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_egdc ._ebfe =acroForm ;};
+
+// SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder.
+//
+// NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug
+// message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0).
+//
+// NOTE: Make sure to call this soon before writing (once all needed runes have been registered).
+// If using package creator, use its EnableFontSubsetting method instead.
+func (_gbdcf *PdfFont )SubsetRegistered ()error {switch _agece :=_gbdcf ._fab .(type ){case *pdfFontType0 :_ccgce :=_agece .subsetRegistered ();if _ccgce !=nil {_egb .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ccgce );
+return _ccgce ;};if _agece ._gfcf !=nil {if _agece ._gbaf !=nil {_agece ._gbaf .ToPdfObject ();};_agece .ToPdfObject ();};default:_egb .Log .Debug ("F\u006f\u006e\u0074\u0020\u0025\u0054 \u0064\u006f\u0065\u0073\u0020\u006eo\u0074\u0020\u0073\u0075\u0070\u0070\u006fr\u0074\u0020\u0073\u0075\u0062\u0073\u0065\u0074\u0074\u0069n\u0067",_agece );
+};return nil ;};
+
+// AddExtGState add External Graphics State (GState). The gsDict can be specified
+// either directly as a dictionary or an indirect object containing a dictionary.
+func (_gfgfc *PdfPageResources )AddExtGState (gsName _dfg .PdfObjectName ,gsDict _dfg .PdfObject )error {if _gfgfc .ExtGState ==nil {_gfgfc .ExtGState =_dfg .MakeDict ();};_cfebc :=_gfgfc .ExtGState ;_bfddd ,_ggeeg :=_dfg .TraceToDirectObject (_cfebc ).(*_dfg .PdfObjectDictionary );
+if !_ggeeg {_egb .Log .Debug ("\u0045\u0078\u0074\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020e\u0072r\u006f\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u002f\u0025\u0054\u0029",_cfebc ,_dfg .TraceToDirectObject (_cfebc ));
+return _dfg .ErrTypeError ;};_bfddd .Set (gsName ,gsDict );return nil ;};func (_ecdg *PdfReader )newPdfActionImportDataFromDict (_afcg *_dfg .PdfObjectDictionary )(*PdfActionImportData ,error ){_fag ,_acfe :=_dbga (_afcg .Get ("\u0046"));if _acfe !=nil {return nil ,_acfe ;
+};return &PdfActionImportData {F :_fag },nil ;};
+
+// B returns the value of the B component of the color.
+func (_fdcc *PdfColorCalRGB )B ()float64 {return _fdcc [1]};func (_gdcef *pdfCIDFontType0 )baseFields ()*fontCommon {return &_gdcef .fontCommon };
+
+// PdfActionGoToE represents a GoToE action.
+type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _dfg .PdfObject ;NewWindow _dfg .PdfObject ;T _dfg .PdfObject ;};var (_dfbaa _b .Mutex ;_eebage ="";_cedee _ge .Time ;_gecfb ="";_bdbaed ="";_agfff _ge .Time ;_fgfff ="";_gabfe ="";_geccfa ="";);
+func (_efec *pdfFontSimple )updateStandard14Font (){_eade ,_fgae :=_efec .Encoder ().(_ff .SimpleEncoder );if !_fgae {_egb .Log .Error ("\u0057\u0072\u006f\u006e\u0067\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0074y\u0070e\u003a\u0020\u0025\u0054\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u002e",_efec .Encoder (),_efec );
+return ;};_gdfa :=_eade .Charcodes ();_efec ._aefba =make (map[_ff .CharCode ]float64 ,len (_gdfa ));for _ ,_abdbe :=range _gdfa {_gggda ,_ :=_eade .CharcodeToRune (_abdbe );_deagd ,_ :=_efec ._eecea .Read (_gggda );_efec ._aefba [_abdbe ]=_deagd .Wx ;
+};};
+
+// PdfAnnotationStrikeOut represents StrikeOut annotations.
+// (Section 12.5.6.10).
+type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _dfg .PdfObject ;};
+
+// NewXObjectImageFromStream builds the image xobject from a stream object.
+// An image dictionary is the dictionary portion of a stream object representing an image XObject.
+func NewXObjectImageFromStream (stream *_dfg .PdfObjectStream )(*XObjectImage ,error ){_beabc :=&XObjectImage {};_beabc ._gfgedd =stream ;_agbed :=*(stream .PdfObjectDictionary );_dfbfd ,_beffc :=_dfg .NewEncoderFromStream (stream );if _beffc !=nil {return nil ,_beffc ;
+};_beabc .Filter =_dfbfd ;if _abaeac :=_dfg .TraceToDirectObject (_agbed .Get ("\u0057\u0069\u0064t\u0068"));_abaeac !=nil {_fgbda ,_gedef :=_abaeac .(*_dfg .PdfObjectInteger );if !_gedef {return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0069\u006d\u0061g\u0065\u0020\u0077\u0069\u0064\u0074\u0068\u0020\u006f\u0062j\u0065\u0063\u0074");
+};_eafdeg :=int64 (*_fgbda );_beabc .Width =&_eafdeg ;}else {return nil ,_bd .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _eeaa :=_dfg .TraceToDirectObject (_agbed .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
+_eeaa !=nil {_gddgb ,_ebgeg :=_eeaa .(*_dfg .PdfObjectInteger );if !_ebgeg {return nil ,_bd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cecfb :=int64 (*_gddgb );
+_beabc .Height =&_cecfb ;}else {return nil ,_bd .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _eegaf :=_dfg .TraceToDirectObject (_agbed .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
+_eegaf !=nil {_fgaf ,_dcdegb :=NewPdfColorspaceFromPdfObject (_eegaf );if _dcdegb !=nil {return nil ,_dcdegb ;};_beabc .ColorSpace =_fgaf ;}else {_egb .Log .Debug ("\u0058O\u0062\u006a\u0065c\u0074\u0020\u0049m\u0061ge\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u002d\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067 1\u0020c\u006f\u006c\u006f\u0072\u0020\u0063o\u006d\u0070\u006f\u006e\u0065n\u0074\u0020\u002d\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047r\u0061\u0079");
+_beabc .ColorSpace =NewPdfColorspaceDeviceGray ();};if _dcege :=_dfg .TraceToDirectObject (_agbed .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dcege !=nil {_faeaff ,_gbebb :=_dcege .(*_dfg .PdfObjectInteger );
+if !_gbebb {return nil ,_bd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_ccbef :=int64 (*_faeaff );_beabc .BitsPerComponent =&_ccbef ;};_beabc .Intent =_agbed .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
+_beabc .ImageMask =_agbed .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_beabc .Mask =_agbed .Get ("\u004d\u0061\u0073\u006b");_beabc .Decode =_agbed .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_beabc .Interpolate =_agbed .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
+_beabc .Alternatives =_agbed .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_beabc .SMask =_agbed .Get ("\u0053\u004d\u0061s\u006b");_beabc .SMaskInData =_agbed .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
+_beabc .Matte =_agbed .Get ("\u004d\u0061\u0074t\u0065");_beabc .Name =_agbed .Get ("\u004e\u0061\u006d\u0065");_beabc .StructParent =_agbed .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_beabc .ID =_agbed .Get ("\u0049\u0044");
+_beabc .OPI =_agbed .Get ("\u004f\u0050\u0049");_beabc .Metadata =_agbed .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_beabc .OC =_agbed .Get ("\u004f\u0043");_beabc .Stream =stream .Stream ;return _beabc ,nil ;};func (_fad *PdfReader )newPdfActionGotoFromDict (_ebd *_dfg .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_ebd .Get ("\u0044")},nil ;
+};func _fafd (_abegg _dfg .PdfObject )(map[_ff .CharCode ]float64 ,error ){if _abegg ==nil {return nil ,nil ;};_ffgef ,_bgeeb :=_dfg .GetArray (_abegg );if !_bgeeb {return nil ,nil ;};_agecd :=map[_ff .CharCode ]float64 {};_dfgbg :=_ffgef .Len ();for _ecedb :=0;
+_ecedb < _dfgbg -1;_ecedb ++{_eddab :=_dfg .TraceToDirectObject (_ffgef .Get (_ecedb ));_gbabf ,_fadff :=_dfg .GetIntVal (_eddab );if !_fadff {return nil ,_d .Errorf ("\u0062a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_ecedb ,_eddab );
+};_ecedb ++;if _ecedb > _dfgbg -1{return nil ,_d .Errorf ("\u0062\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_ffgef );};_agecdc :=_dfg .TraceToDirectObject (_ffgef .Get (_ecedb ));
+switch _agecdc .(type ){case *_dfg .PdfObjectArray :_gfdcf ,_ :=_dfg .GetArray (_agecdc );if _dgeg ,_fggd :=_gfdcf .ToFloat64Array ();_fggd ==nil {for _geacf :=0;_geacf < len (_dgeg );_geacf ++{_agecd [_ff .CharCode (_gbabf +_geacf )]=_dgeg [_geacf ];};
+}else {return nil ,_d .Errorf ("\u0062\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_ecedb ,_agecdc );};case *_dfg .PdfObjectInteger :_dggce ,_dgbaa :=_dfg .GetIntVal (_agecdc );
+if !_dgbaa {return nil ,_d .Errorf ("\u0062\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_ecedb ,_agecdc );};_ecedb ++;if _ecedb > _dfgbg -1{return nil ,_d .Errorf ("\u0062\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_ffgef );
+};_aecb :=_ffgef .Get (_ecedb );_ddbec ,_gagfg :=_dfg .GetNumberAsFloat (_aecb );if _gagfg !=nil {return nil ,_d .Errorf ("\u0062\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_ecedb ,_aecb );
+};for _agaee :=_gbabf ;_agaee <=_dggce ;_agaee ++{_agecd [_ff .CharCode (_agaee )]=_ddbec ;};default:return nil ,_d .Errorf ("\u0062\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_ecedb ,_agecdc );
+};};return _agecd ,nil ;};
+
+// PdfFontDescriptor specifies metrics and other attributes of a font and can refer to a FontFile
+// for embedded fonts.
+// 9.8 Font Descriptors (page 281)
+type PdfFontDescriptor struct{FontName _dfg .PdfObject ;FontFamily _dfg .PdfObject ;FontStretch _dfg .PdfObject ;FontWeight _dfg .PdfObject ;Flags _dfg .PdfObject ;FontBBox _dfg .PdfObject ;ItalicAngle _dfg .PdfObject ;Ascent _dfg .PdfObject ;Descent _dfg .PdfObject ;
+Leading _dfg .PdfObject ;CapHeight _dfg .PdfObject ;XHeight _dfg .PdfObject ;StemV _dfg .PdfObject ;StemH _dfg .PdfObject ;AvgWidth _dfg .PdfObject ;MaxWidth _dfg .PdfObject ;MissingWidth _dfg .PdfObject ;FontFile _dfg .PdfObject ;FontFile2 _dfg .PdfObject ;
+FontFile3 _dfg .PdfObject ;CharSet _dfg .PdfObject ;_dffgf int ;_decbb float64 ;*fontFile ;_gcge *_bf .TtfType ;
+
+// Additional entries for CIDFonts
+Style _dfg .PdfObject ;Lang _dfg .PdfObject ;FD _dfg .PdfObject ;CIDSet _dfg .PdfObject ;_cdab *_dfg .PdfIndirectObject ;};
+
+// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
+func (_aage *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _aage .Alternate ==nil {_egb .Log .Debug ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
+if _aage .N ==1{_egb .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061y\u0020\u0028\u004e\u003d\u0031\u0029");
+_gdce :=NewPdfColorspaceDeviceGray ();return _gdce .ImageToRGB (img );}else if _aage .N ==3{_egb .Log .Debug ("\u0049\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067 \u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006eg\u0020\u0044\u0065\u0076\u0069\u0063e\u0052\u0047B\u0020\u0028N\u003d3\u0029");
+return img ,nil ;}else if _aage .N ==4{_egb .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059K\u0020\u0028\u004e\u003d\u0034\u0029");
+_cfea :=NewPdfColorspaceDeviceCMYK ();return _cfea .ImageToRGB (img );}else {return img ,_bd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
+};};_egb .Log .Trace ("\u0049\u0043\u0043 \u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0077\u0069\u0074\u0068\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0069\u0076\u0065\u003a\u0020\u0025\u0023\u0076",_aage );
+_ggaae ,_ebada :=_aage .Alternate .ImageToRGB (img );_egb .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_egb .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_ggaae );
+return _ggaae ,_ebada ;};
+
+// ToPdfObject returns the PDF representation of the colorspace.
+func (_fdfdg *PdfColorspaceDeviceRGB )ToPdfObject ()_dfg .PdfObject {return _dfg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
+
+// GetDescent returns the Descent of the font `descriptor`.
+func (_bgad *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _dfg .GetNumberAsFloat (_bgad .Descent );};func (_dadf *PdfPage )generateImage (_ffdd string ,_cacga float64 ,_egfcd string ,_dcafa _dc .Color )([]byte ,error ){_gaddg ,_agda ,_abbgf ,_ :=_dcafa .RGBA ();
+_adecg :=_dc .RGBA {uint8 (_gaddg >>8),uint8 (_agda >>8),uint8 (_abbgf >>8),255};_gadbdg :=_dc .RGBA {0xff,0xff,0xff,0x00};_fdcea ,_dcdde :=_dadf .loadFont (_egfcd );if _dcdde !=nil {return nil ,_dcdde ;};_gdfag :=_af .ReplaceAll (_ffdd ,"\u0009","\u0020\u0020\u0020\u0020");
+_fbad :=_af .Split (_gdfag ,"\u000a");_dged :=1.0;for _ ,_abada :=range _fbad {if float64 (len (_abada ))*_cacga > _dged {_dged =float64 (len (_abada ))*_cacga ;};};if _dged > _dadf .MediaBox .Width (){_dged =_dadf .MediaBox .Width ();};_geacc :=_gf .NewUniform (_adecg );
+_gcgee :=_gf .NewUniform (_gadbdg );_ebaa :=_gf .NewRGBA (_gf .Rect (0,0,int (_dged ),int (_cacga *1.5*float64 (len (_fbad )))));_f .Draw (_ebaa ,_ebaa .Bounds (),_gcgee ,_gf .Pt (0,0),_f .Src );_bfece :=_gec .NewContext ();_bfece .SetDPI (72);_bfece .SetFont (_fdcea );
+_bfece .SetFontSize (_cacga );_bfece .SetHinting (_fce .HintingNone );_bfece .SetClip (_ebaa .Bounds ());_bfece .SetDst (_ebaa );_bfece .SetSrc (_geacc );_gadca :=50;_ffee :=10+int (_bfece .PointToFixed (_cacga )>>6);_afga :=_gec .Pt (_gadca ,_ffee );for _ ,_gfaea :=range _fbad {_ ,_dcdde =_bfece .DrawString (_af .ReplaceAll (_gfaea ,"\u000d",""),_afga );
+if _dcdde !=nil {return nil ,_dcdde ;};_afga .Y +=_bfece .PointToFixed (_cacga *1.5);};_ddaff :=new (_cca .Buffer );if _fbebga :=_e .Encode (_ddaff ,_ebaa );_fbebga !=nil {return nil ,_fbebga ;};return _ddaff .Bytes (),nil ;};
+
+// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
+func (_affc *PdfFont )ToUnicode ()string {if _affc .baseFields ()._bgdcbc ==nil {return "";};return _affc .baseFields ()._bgdcbc .Name ();};
+
+// GetPageLabels returns the PageLabels entry in the PDF catalog.
+// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
+func (_dgea *PdfReader )GetPageLabels ()(_dfg .PdfObject ,error ){_geefa :=_dfg .ResolveReference (_dgea ._fbfgb .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _geefa ==nil {return nil ,nil ;};if !_dgea ._bafba {_gbabe :=_dgea .traverseObjectData (_geefa );
+if _gbabe !=nil {return nil ,_gbabe ;};};return _geefa ,nil ;};
+
+// HasExtGState checks if ExtGState name is available.
+func (_aafc *PdfPage )HasExtGState (name _dfg .PdfObjectName )bool {if _aafc .Resources ==nil {return false ;};if _aafc .Resources .ExtGState ==nil {return false ;};_efeg ,_adeag :=_dfg .TraceToDirectObject (_aafc .Resources .ExtGState ).(*_dfg .PdfObjectDictionary );
+if !_adeag {_egb .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0045\u0078t\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0064i\u0063t\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a\u0020\u0025\u0076",_dfg .TraceToDirectObject (_aafc .Resources .ExtGState ));
+return false ;};_bfcadg :=_efeg .Get (name );_dbgag :=_bfcadg !=nil ;return _dbgag ;};
+
+// ButtonType represents the subtype of a button field, can be one of:
+// - Checkbox (ButtonTypeCheckbox)
+// - PushButton (ButtonTypePushButton)
+// - RadioButton (ButtonTypeRadioButton)
+type ButtonType int ;
+
+// PdfAnnotationCaret represents Caret annotations.
+// (Section 12.5.6.11).
+type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _dfg .PdfObject ;Sy _dfg .PdfObject ;};
+
+// IsCenterWindow returns the value of the centerWindow flag.
+func (_acffb *ViewerPreferences )IsCenterWindow ()bool {if _acffb ._ebdgb ==nil {return false ;};return *_acffb ._ebdgb ;};
+
+// PdfActionSetOCGState represents a SetOCGState action.
+type PdfActionSetOCGState struct{*PdfAction ;State _dfg .PdfObject ;PreserveRB _dfg .PdfObject ;};func (_aaadc *PdfWriter )writeDocumentVersion (){if _aaadc ._cddgg {_aaadc .writeString ("\u000a");}else {_aaadc .writeString (_d .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_aaadc ._cfbcb .Major ,_aaadc ._cfbcb .Minor ));
+_aaadc .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};
+
+// DecodeArray returns the component range values for the Separation colorspace.
+func (_agdc *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};func _agfe (_face *_dfg .PdfObjectStream )(*PdfFunctionType0 ,error ){_ecdf :=&PdfFunctionType0 {};_ecdf ._deefg =_face ;_dagd :=_face .PdfObjectDictionary ;
+_ebdb ,_ccfef :=_dfg .TraceToDirectObject (_dagd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_dfg .PdfObjectArray );if !_ccfef {_egb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
+};if _ebdb .Len ()< 0||_ebdb .Len ()%2!=0{_egb .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
+};_ecdf .NumInputs =_ebdb .Len ()/2;_dbaca ,_acaaa :=_ebdb .ToFloat64Array ();if _acaaa !=nil {return nil ,_acaaa ;};_ecdf .Domain =_dbaca ;_ebdb ,_ccfef =_dfg .TraceToDirectObject (_dagd .Get ("\u0052\u0061\u006eg\u0065")).(*_dfg .PdfObjectArray );if !_ccfef {_egb .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
+return nil ,_bd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _ebdb .Len ()< 0||_ebdb .Len ()%2!=0{return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
+};_ecdf .NumOutputs =_ebdb .Len ()/2;_cddcd ,_acaaa :=_ebdb .ToFloat64Array ();if _acaaa !=nil {return nil ,_acaaa ;};_ecdf .Range =_cddcd ;_ebdb ,_ccfef =_dfg .TraceToDirectObject (_dagd .Get ("\u0053\u0069\u007a\u0065")).(*_dfg .PdfObjectArray );if !_ccfef {_egb .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
+return nil ,_bd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_ebcfg ,_acaaa :=_ebdb .ToIntegerArray ();
+if _acaaa !=nil {return nil ,_acaaa ;};if len (_ebcfg )!=_ecdf .NumInputs {_egb .Log .Error ("T\u0061\u0062\u006c\u0065\u0020\u0073\u0069\u007a\u0065\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063h\u0069\u006e\u0067\u0020\u006e\u0075\u006d\u0062\u0065\u0072 o\u0066\u0020\u0069n\u0070u\u0074\u0073");
+return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecdf .Size =_ebcfg ;_daef ,_ccfef :=_dfg .TraceToDirectObject (_dagd .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_dfg .PdfObjectInteger );
+if !_ccfef {_egb .Log .Error ("B\u0069\u0074\u0073\u0050\u0065\u0072S\u0061\u006d\u0070\u006c\u0065\u0020\u006e\u006f\u0074 \u0073\u0070\u0065c\u0069f\u0069\u0065\u0064");return nil ,_bd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
+};if *_daef !=1&&*_daef !=2&&*_daef !=4&&*_daef !=8&&*_daef !=12&&*_daef !=16&&*_daef !=24&&*_daef !=32{_egb .Log .Error ("\u0042\u0069\u0074s \u0070\u0065\u0072\u0020\u0073\u0061\u006d\u0070\u006ce\u0020o\u0075t\u0073i\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0028\u0025\u0064\u0029",*_daef );
+return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecdf .BitsPerSample =int (*_daef );_ecdf .Order =1;_dccf ,_ccfef :=_dfg .TraceToDirectObject (_dagd .Get ("\u004f\u0072\u0064e\u0072")).(*_dfg .PdfObjectInteger );
+if _ccfef {if *_dccf !=1&&*_dccf !=3{_egb .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_dccf );return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecdf .Order =int (*_dccf );
+};_ebdb ,_ccfef =_dfg .TraceToDirectObject (_dagd .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_dfg .PdfObjectArray );if _ccfef {_ddaa ,_abaea :=_ebdb .ToFloat64Array ();if _abaea !=nil {return nil ,_abaea ;};_ecdf .Encode =_ddaa ;};_ebdb ,_ccfef =_dfg .TraceToDirectObject (_dagd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_dfg .PdfObjectArray );
+if _ccfef {_cgggd ,_cgfd :=_ebdb .ToFloat64Array ();if _cgfd !=nil {return nil ,_cgfd ;};_ecdf .Decode =_cgggd ;};_aagaa ,_acaaa :=_dfg .DecodeStream (_face );if _acaaa !=nil {return nil ,_acaaa ;};_ecdf ._ffdce =_aagaa ;return _ecdf ,nil ;};
+
+// Val returns the value of the color.
+func (_aeggf *PdfColorCalGray )Val ()float64 {return float64 (*_aeggf )};
+
+// GetNumComponents returns the number of color components (1 for CalGray).
+func (_adgaf *PdfColorCalGray )GetNumComponents ()int {return 1};func _ddcab (_bdbfb *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_bdbfb }};
+
+// String returns a string that describes `base`.
+func (_ceedbb fontCommon )String ()string {return _d .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_ceedbb .coreString ());};
+
+// AddCRLs adds CRLs to DSS.
+func (_bgcb *DSS )AddCRLs (crls [][]byte )([]*_dfg .PdfObjectStream ,error ){return _bgcb .add (&_bgcb .CRLs ,_bgcb ._cccc ,crls );};
+
+// PdfAnnotationSound represents Sound annotations.
+// (Section 12.5.6.16).
+type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _dfg .PdfObject ;Name _dfg .PdfObject ;};
+
+// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
+func SetPdfCreationDate (creationDate _ge .Time ){_dfbaa .Lock ();defer _dfbaa .Unlock ();_cedee =creationDate ;};
+
+// NewPdfActionHide returns a new "hide" action.
+func NewPdfActionHide ()*PdfActionHide {_ded :=NewPdfAction ();_ecg :=&PdfActionHide {};_ecg .PdfAction =_ded ;_ded .SetContext (_ecg );return _ecg ;};
+
+// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
+func (_caggbe *PdfPattern )GetContext ()PdfModel {return _caggbe ._bfaedb };
+
+// ToPdfObject returns the PDF representation of the function.
+func (_eceddf *PdfFunctionType2 )ToPdfObject ()_dfg .PdfObject {_dgbbe :=_dfg .MakeDict ();_dgbbe .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_dfg .MakeInteger (2));_facee :=&_dfg .PdfObjectArray {};for _ ,_fddga :=range _eceddf .Domain {_facee .Append (_dfg .MakeFloat (_fddga ));
+};_dgbbe .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_facee );if _eceddf .Range !=nil {_dggfe :=&_dfg .PdfObjectArray {};for _ ,_cbbf :=range _eceddf .Range {_dggfe .Append (_dfg .MakeFloat (_cbbf ));};_dgbbe .Set ("\u0052\u0061\u006eg\u0065",_dggfe );
+};if _eceddf .C0 !=nil {_fbedd :=&_dfg .PdfObjectArray {};for _ ,_eabac :=range _eceddf .C0 {_fbedd .Append (_dfg .MakeFloat (_eabac ));};_dgbbe .Set ("\u0043\u0030",_fbedd );};if _eceddf .C1 !=nil {_beacb :=&_dfg .PdfObjectArray {};for _ ,_aeea :=range _eceddf .C1 {_beacb .Append (_dfg .MakeFloat (_aeea ));
+};_dgbbe .Set ("\u0043\u0031",_beacb );};_dgbbe .Set ("\u004e",_dfg .MakeFloat (_eceddf .N ));if _eceddf ._gggdd !=nil {_eceddf ._gggdd .PdfObject =_dgbbe ;return _eceddf ._gggdd ;};return _dgbbe ;};
+
+// SetPrintScaling sets the value of the printScaling.
+func (_ggebb *ViewerPreferences )SetPrintScaling (printScaling PrintScaling ){_ggebb ._bcdgc =printScaling ;};func (_fadf *PdfReader )newPdfAnnotationUnderlineFromDict (_ggd *_dfg .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_ebcd :=PdfAnnotationUnderline {};
+_baca ,_ccdc :=_fadf .newPdfAnnotationMarkupFromDict (_ggd );if _ccdc !=nil {return nil ,_ccdc ;};_ebcd .PdfAnnotationMarkup =_baca ;_ebcd .QuadPoints =_ggd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ebcd ,nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_ccdb *PdfAnnotationSquare )ToPdfObject ()_dfg .PdfObject {_ccdb .PdfAnnotation .ToPdfObject ();_bcgf :=_ccdb ._afae ;_dcgc :=_bcgf .PdfObject .(*_dfg .PdfObjectDictionary );if _ccdb .PdfAnnotationMarkup !=nil {_ccdb .appendToPdfDictionary (_dcgc );
+};_dcgc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_dcgc .SetIfNotNil ("\u0042\u0053",_ccdb .BS );_dcgc .SetIfNotNil ("\u0049\u0043",_ccdb .IC );_dcgc .SetIfNotNil ("\u0042\u0045",_ccdb .BE );
+_dcgc .SetIfNotNil ("\u0052\u0044",_ccdb .RD );return _bcgf ;};func (_egga *PdfReader )newPdfAnnotationMovieFromDict (_fbdf *_dfg .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_bfac :=PdfAnnotationMovie {};_bfac .T =_fbdf .Get ("\u0054");_bfac .Movie =_fbdf .Get ("\u004d\u006f\u0076i\u0065");
+_bfac .A =_fbdf .Get ("\u0041");return &_bfac ,nil ;};
+
+// SignatureHandler interface defines the common functionality for PDF signature handlers, which
+// need to be capable of validating digital signatures and signing PDF documents.
+type SignatureHandler interface{
+
+// IsApplicable checks if a given signature dictionary `sig` is applicable for the signature handler.
+// For example a signature of type `adbe.pkcs7.detached` might not fit for a rsa.sha1 handler.
+IsApplicable (_facdc *PdfSignature )bool ;
+
+// Validate validates a PDF signature against a given digest (hash) such as that determined
+// for an input file. Returns validation results.
+Validate (_dffgc *PdfSignature ,_ffag Hasher )(SignatureValidationResult ,error );
+
+// InitSignature prepares the signature dictionary for signing. This involves setting all
+// necessary fields, and also allocating sufficient space to the Contents so that the
+// finalized signature can be inserted once the hash is calculated.
+InitSignature (_fbbgd *PdfSignature )error ;
+
+// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
+NewDigest (_bcfcg *PdfSignature )(Hasher ,error );
+
+// Sign receives the hash `digest` (for example hash of an input file), and signs based
+// on the signature dictionary `sig` and applies the signature data to the signature
+// dictionary Contents field.
+Sign (_cdcac *PdfSignature ,_aebga Hasher )error ;};func (_aedae *Image )samplesAddPadding (_gfbe []uint32 )[]uint32 {_acaea :=_ef .BytesPerLine (int (_aedae .Width ),int (_aedae .BitsPerComponent ),_aedae .ColorComponents )*(8/int (_aedae .BitsPerComponent ));
+_bccg :=_acaea *int (_aedae .Height );if len (_gfbe )==_bccg {return _gfbe ;};_bbgf :=make ([]uint32 ,_bccg );_ddgfe :=int (_aedae .Width )*_aedae .ColorComponents ;for _cgagc :=0;_cgagc < int (_aedae .Height );_cgagc ++{_aaadb :=_cgagc *int (_aedae .Width );
+_cggab :=_cgagc *_acaea ;for _cfcf :=0;_cfcf < _ddgfe ;_cfcf ++{_bbgf [_cggab +_cfcf ]=_gfbe [_aaadb +_cfcf ];};};return _bbgf ;};var (CourierName =_bf .CourierName ;CourierBoldName =_bf .CourierBoldName ;CourierObliqueName =_bf .CourierObliqueName ;CourierBoldObliqueName =_bf .CourierBoldObliqueName ;
+HelveticaName =_bf .HelveticaName ;HelveticaBoldName =_bf .HelveticaBoldName ;HelveticaObliqueName =_bf .HelveticaObliqueName ;HelveticaBoldObliqueName =_bf .HelveticaBoldObliqueName ;SymbolName =_bf .SymbolName ;ZapfDingbatsName =_bf .ZapfDingbatsName ;
+TimesRomanName =_bf .TimesRomanName ;TimesBoldName =_bf .TimesBoldName ;TimesItalicName =_bf .TimesItalicName ;TimesBoldItalicName =_bf .TimesBoldItalicName ;);
+
+// Subtype returns the font's "Subtype" field.
+func (_cedc *PdfFont )Subtype ()string {_afdf :=_cedc .baseFields ()._gdab ;if _babd ,_bfdcf :=_cedc ._fab .(*pdfFontType0 );_bfdcf {_afdf =_afdf +"\u003a"+_babd .DescendantFont .Subtype ();};return _afdf ;};func (_efbd *PdfReader )newPdfAnnotationCaretFromDict (_caf *_dfg .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_eadb :=PdfAnnotationCaret {};
+_gefa ,_dadc :=_efbd .newPdfAnnotationMarkupFromDict (_caf );if _dadc !=nil {return nil ,_dadc ;};_eadb .PdfAnnotationMarkup =_gefa ;_eadb .RD =_caf .Get ("\u0052\u0044");_eadb .Sy =_caf .Get ("\u0053\u0079");return &_eadb ,nil ;};func (_dfeee *PdfReader )buildOutlineTree (_dcece _dfg .PdfObject ,_gagfe *PdfOutlineTreeNode ,_edffa *PdfOutlineTreeNode ,_fccda map[_dfg .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _fccda ==nil {_fccda =map[_dfg .PdfObject ]struct{}{};
+};_fccda [_dcece ]=struct{}{};_eacgd ,_cfedg :=_dcece .(*_dfg .PdfIndirectObject );if !_cfedg {return nil ,nil ,_d .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_dcece );
+};_ggfae ,_aeae :=_eacgd .PdfObject .(*_dfg .PdfObjectDictionary );if !_aeae {return nil ,nil ,_bd .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_egb .Log .Trace ("\u0062\u0075\u0069\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0074\u0072\u0065\u0065\u003a\u0020d\u0069\u0063\u0074\u003a\u0020\u0025\u0076\u0020\u0028\u0025\u0076\u0029\u0020p\u003a\u0020\u0025\u0070",_ggfae ,_eacgd ,_eacgd );
+if _ggfgb :=_ggfae .Get ("\u0054\u0069\u0074l\u0065");_ggfgb !=nil {_ceab ,_cgdgd :=_dfeee .newPdfOutlineItemFromIndirectObject (_eacgd );if _cgdgd !=nil {return nil ,nil ,_cgdgd ;};_ceab .Parent =_gagfe ;_ceab .Prev =_edffa ;_dadcc :=_dfg .ResolveReference (_ggfae .Get ("\u0046\u0069\u0072s\u0074"));
+if _ ,_gaged :=_fccda [_dadcc ];_dadcc !=nil &&_dadcc !=_eacgd &&!_gaged {if !_dfg .IsNullObject (_dadcc ){_agecf ,_fdbdc ,_fddbc :=_dfeee .buildOutlineTree (_dadcc ,&_ceab .PdfOutlineTreeNode ,nil ,_fccda );if _fddbc !=nil {_egb .Log .Debug ("D\u0045\u0042U\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0069\u0074\u0065\u006d\u0020\u0074\u0072\u0065\u0065\u003a \u0025\u0076\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020n\u006f\u0064\u0065\u0020\u0063\u0068\u0069\u006c\u0064\u0072\u0065n\u002e",_fddbc );
+}else {_ceab .First =_agecf ;_ceab .Last =_fdbdc ;};};};_fdbefc :=_dfg .ResolveReference (_ggfae .Get ("\u004e\u0065\u0078\u0074"));if _ ,_cbff :=_fccda [_fdbefc ];_fdbefc !=nil &&_fdbefc !=_eacgd &&!_cbff {if !_dfg .IsNullObject (_fdbefc ){_abefb ,_fdec ,_caacf :=_dfeee .buildOutlineTree (_fdbefc ,_gagfe ,&_ceab .PdfOutlineTreeNode ,_fccda );
+if _caacf !=nil {_egb .Log .Debug ("D\u0045\u0042U\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065\u0020\u0066\u006f\u0072\u0020\u004ee\u0078\u0074\u0020\u006e\u006f\u0064\u0065\u003a\u0020\u0025\u0076\u002e\u0020S\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u006e\u006f\u0064e\u002e",_caacf );
+}else {_ceab .Next =_abefb ;return &_ceab .PdfOutlineTreeNode ,_fdec ,nil ;};};};return &_ceab .PdfOutlineTreeNode ,&_ceab .PdfOutlineTreeNode ,nil ;};_dggcg ,_caacd :=_cccge (_eacgd );if _caacd !=nil {return nil ,nil ,_caacd ;};_dggcg .Parent =_gagfe ;
+if _gebc :=_ggfae .Get ("\u0046\u0069\u0072s\u0074");_gebc !=nil {_gebc =_dfg .ResolveReference (_gebc );if _ ,_gafa :=_fccda [_gebc ];_gebc !=nil &&_gebc !=_eacgd &&!_gafa {_cafag :=_dfg .TraceToDirectObject (_gebc );if _ ,_cgde :=_cafag .(*_dfg .PdfObjectNull );
+!_cgde &&_cafag !=nil {_dgcgf ,_agfba ,_fbbge :=_dfeee .buildOutlineTree (_gebc ,&_dggcg .PdfOutlineTreeNode ,nil ,_fccda );if _fbbge !=nil {_egb .Log .Debug ("\u0044\u0045\u0042\u0055\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020b\u0075\u0069\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0074\u0072\u0065\u0065\u003a\u0020\u0025\u0076\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069n\u0067\u0020\u006e\u006f\u0064\u0065 \u0063\u0068i\u006c\u0064r\u0065n\u002e",_fbbge );
+}else {_dggcg .First =_dgcgf ;_dggcg .Last =_agfba ;};};};};return &_dggcg .PdfOutlineTreeNode ,&_dggcg .PdfOutlineTreeNode ,nil ;};
+
+// SetSamples convert samples to byte-data and sets for the image.
+// NOTE: The method resamples the data and this could lead to high memory usage,
+// especially on large images. It should be used only when it is not possible
+// to work with the image byte data directly.
+func (_cbada *Image )SetSamples (samples []uint32 ){if _cbada .BitsPerComponent < 8{samples =_cbada .samplesAddPadding (samples );};_ccec :=_efe .ResampleUint32 (samples ,int (_cbada .BitsPerComponent ),8);_cfbg :=make ([]byte ,len (_ccec ));for _fbaec ,_cgcge :=range _ccec {_cfbg [_fbaec ]=byte (_cgcge );
+};_cbada .Data =_cfbg ;};
+
+// PdfActionMovie represents a movie action.
+type PdfActionMovie struct{*PdfAction ;Annotation _dfg .PdfObject ;T _dfg .PdfObject ;Operation _dfg .PdfObject ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_aaea *EmbeddedFile )ToPdfObject ()_dfg .PdfObject {_fgce :=_dfg .NewFlateEncoder ();_edge ,_gagfb :=_dfg .MakeStream (_aaea .Content ,_fgce );if _gagfb !=nil {_egb .Log .Debug ("\u0046\u0061\u0069\u006c\u0065d\u0020\u0074\u006f\u0020\u0063\u0072\u0065\u0061\u0074\u0065\u0020\u0065\u006db\u0065\u0064\u0064\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_gagfb );
+return nil ;};_abdb :=_edge .PdfObjectDictionary ;_abdb .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0045\u006d\u0062e\u0064\u0064\u0065\u0064\u0046\u0069\u006c\u0065"));_abdb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeEncodedString ("\u0074\u0065\u0078\u0074\u002f\u0070\u006c\u0061\u0069\u006e",true ));
+_defg :=_dfg .MakeDict ();_defg .Set ("\u0043\u0068\u0065\u0063\u006b\u0053\u0075\u006d",_dfg .MakeString (_aaea .Hash [:]));_defg .Set ("\u0053\u0069\u007a\u0065",_dfg .MakeInteger (int64 (len (_aaea .Content ))));_efbca :=_aaea .CreationTime ;if _efbca .IsZero (){_efbca =_ge .Now ();
+};_eedac :=_aaea .ModTime ;if _eedac .IsZero (){_eedac =_efbca ;};_fafg ,_gagfb :=NewPdfDateFromTime (_efbca );if _gagfb !=nil {_egb .Log .Debug ("\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074o\u0020\u0063\u0072ea\u0074\u0065\u0020\u0065\u006d\u0062e\u0064\u0064\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u0063\u0072\u0065\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0065\u003a \u0025\u0076",_gagfb );
+return nil ;};_bdffa ,_gagfb :=NewPdfDateFromTime (_eedac );if _gagfb !=nil {_egb .Log .Debug ("\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074o\u0020\u0063\u0072ea\u0074\u0065\u0020\u0065\u006d\u0062e\u0064\u0064\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u0063\u0072\u0065\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0065\u003a \u0025\u0076",_gagfb );
+return nil ;};_defg .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_fafg .ToPdfObject ());_defg .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_bdffa .ToPdfObject ());_abdb .Set ("\u0050\u0061\u0072\u0061\u006d\u0073",_defg );
+_aeged :=_dfg .MakeDict ();_aeged .Set (*_dfg .MakeName ("\u0046"),_edge );return _aeged ;};
+
+// WatermarkImageOptions contains options for configuring the image watermark process.
+type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;Angle float64 ;};
+
+// PdfAnnotationCircle represents Circle annotations.
+// (Section 12.5.6.8).
+type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _dfg .PdfObject ;IC _dfg .PdfObject ;BE _dfg .PdfObject ;RD _dfg .PdfObject ;};
+
+// NewPdfAppender creates a new Pdf appender from a Pdf reader.
+func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_ebdcg :=&PdfAppender {_ggag :reader ._cggac ,Reader :reader ,_cggd :reader ._agbcd ,_bbf :reader ._fcecf };_cgge ,_fcfb :=_ebdcg ._ggag .Seek (0,_edg .SeekEnd );if _fcfb !=nil {return nil ,_fcfb ;
+};_ebdcg ._bgdc =_cgge ;if _ ,_fcfb =_ebdcg ._ggag .Seek (0,_edg .SeekStart );_fcfb !=nil {return nil ,_fcfb ;};_ebdcg ._eege ,_fcfb =NewPdfReader (_ebdcg ._ggag );if _fcfb !=nil {return nil ,_fcfb ;};for _ ,_bgdg :=range _ebdcg .Reader .GetObjectNums (){if _ebdcg ._edab < _bgdg {_ebdcg ._edab =_bgdg ;
+};};_ebdcg ._bbcb =_ebdcg ._cggd .GetXrefTable ();_ebdcg ._gcf =_ebdcg ._cggd .GetXrefOffset ();_ebdcg ._egfc =append (_ebdcg ._egfc ,_ebdcg ._eege .PageList ...);_ebdcg ._dadd =make (map[_dfg .PdfObject ]struct{});_ebdcg ._effe =make (map[_dfg .PdfObject ]int64 );
+_ebdcg ._gadd =make (map[_dfg .PdfObject ]struct{});_ebdcg ._ebfe =_ebdcg ._eege .AcroForm ;_ebdcg ._caagc =_ebdcg ._eege .DSS ;return _ebdcg ,nil ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";
+TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);func _fcabf (_bceaac []byte )([]byte ,error ){_beagf :=_cc .New ();if _ ,_gfcfb :=_edg .Copy (_beagf ,_cca .NewReader (_bceaac ));_gfcfb !=nil {return nil ,_gfcfb ;};return _beagf .Sum (nil ),nil ;
+};
+
+// GetContext returns the context of the outline tree node, which is either a
+// *PdfOutline or a *PdfOutlineItem. The method returns nil for uninitialized
+// tree nodes.
+func (_feac *PdfOutlineTreeNode )GetContext ()PdfModel {if _dcfggc ,_badbc :=_feac ._cface .(*PdfOutline );_badbc {return _dcfggc ;};if _bgbc ,_fbec :=_feac ._cface .(*PdfOutlineItem );_fbec {return _bgbc ;};_egb .Log .Debug ("\u0045\u0052RO\u0052\u0020\u0049n\u0076\u0061\u006c\u0069d o\u0075tl\u0069\u006e\u0065\u0020\u0074\u0072\u0065e \u006e\u006f\u0064\u0065\u0020\u0069\u0074e\u006d");
+return nil ;};
+
+// SetDisplayDocTitle sets the value of the displayDocTitle flag.
+func (_cegf *ViewerPreferences )SetDisplayDocTitle (displayDocTitle bool ){_cegf ._dagge =&displayDocTitle ;};
+
+// DecodeArray returns the range of color component values in the ICCBased colorspace.
+func (_aabe *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _aabe .Range };
+
+// GetDSS gets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
+// document revision.
+func (_dee *PdfAppender )GetDSS ()(_ggee *DSS ){return _dee ._caagc };
+
+// NewPdfAnnotationSound returns a new sound annotation.
+func NewPdfAnnotationSound ()*PdfAnnotationSound {_ccafd :=NewPdfAnnotation ();_cef :=&PdfAnnotationSound {};_cef .PdfAnnotation =_ccafd ;_cef .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccafd .SetContext (_cef );return _cef ;};
+
+// ColorToRGB converts a ICCBased color to an RGB color.
+func (_eedcg *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _eedcg .Alternate ==nil {_egb .Log .Debug ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
+if _eedcg .N ==1{_egb .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061y\u0020\u0028\u004e\u003d\u0031\u0029");
+_ffab :=NewPdfColorspaceDeviceGray ();return _ffab .ColorToRGB (color );}else if _eedcg .N ==3{_egb .Log .Debug ("\u0049\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067 \u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006eg\u0020\u0044\u0065\u0076\u0069\u0063e\u0052\u0047B\u0020\u0028N\u003d3\u0029");
+return color ,nil ;}else if _eedcg .N ==4{_egb .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059K\u0020\u0028\u004e\u003d\u0034\u0029");
+_acce :=NewPdfColorspaceDeviceCMYK ();return _acce .ColorToRGB (color );}else {return nil ,_bd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
+};};_egb .Log .Trace ("\u0049\u0043\u0043 \u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0077\u0069\u0074\u0068\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0069\u0076\u0065\u003a\u0020\u0025\u0023\u0076",_eedcg );
+return _eedcg .Alternate .ColorToRGB (color );};
+
+// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
+func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_dfg .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_dfg .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
+};
+
+// GetType returns the button field type which returns one of the following
+// - PdfFieldButtonPush for push button fields
+// - PdfFieldButtonCheckbox for checkbox fields
+// - PdfFieldButtonRadio for radio button fields
+func (_gedg *PdfFieldButton )GetType ()ButtonType {_ccde :=ButtonTypeCheckbox ;if _gedg .Ff !=nil {if (uint32 (*_gedg .Ff )&FieldFlagPushbutton .Mask ())> 0{_ccde =ButtonTypePush ;}else if (uint32 (*_gedg .Ff )&FieldFlagRadio .Mask ())> 0{_ccde =ButtonTypeRadio ;
+};};return _ccde ;};
+
+// AddContentStreamByString adds content stream by string. Puts the content
+// string into a stream object and points the content stream towards it.
+func (_cegea *PdfPage )AddContentStreamByString (contentStr string )error {_cgad ,_fcgd :=_dfg .MakeStream ([]byte (contentStr ),_dfg .NewFlateEncoder ());if _fcgd !=nil {return _fcgd ;};if _cegea .Contents ==nil {_cegea .Contents =_cgad ;}else {_bdcg :=_dfg .TraceToDirectObject (_cegea .Contents );
+_gdefgg ,_agbec :=_bdcg .(*_dfg .PdfObjectArray );if !_agbec {_gdefgg =_dfg .MakeArray (_bdcg );};_gdefgg .Append (_cgad );_cegea .Contents =_gdefgg ;};return nil ;};
+
+// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
+type PdfColorPatternType3 struct{Color PdfColor ;PatternName _dfg .PdfObjectName ;};
+
+// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
+/*
+ Format: [/DeviceN names alternateSpace tintTransform]
+ or: [/DeviceN names alternateSpace tintTransform attributes]
+*/
+func (_defd *PdfColorspaceDeviceN )ToPdfObject ()_dfg .PdfObject {_gacgf :=_dfg .MakeArray (_dfg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_gacgf .Append (_defd .ColorantNames );_gacgf .Append (_defd .AlternateSpace .ToPdfObject ());_gacgf .Append (_defd .TintTransform .ToPdfObject ());
+if _defd .Attributes !=nil {_gacgf .Append (_defd .Attributes .ToPdfObject ());};if _defd ._fbae !=nil {_defd ._fbae .PdfObject =_gacgf ;return _defd ._fbae ;};return _gacgf ;};
+
+// AddOCSPs adds OCSPs to DSS.
+func (_efdb *DSS )AddOCSPs (ocsps [][]byte )([]*_dfg .PdfObjectStream ,error ){return _efdb .add (&_efdb .OCSPs ,_efdb ._fecgg ,ocsps );};func (_bagad *PdfFunctionType0 )processSamples ()error {_gaca :=_efe .ResampleBytes (_bagad ._ffdce ,_bagad .BitsPerSample );
+_bagad ._aabea =_gaca ;return nil ;};
+
+// Insert adds a top level outline item in the outline,
+// at the specified index.
+func (_abded *Outline )Insert (index uint ,item *OutlineItem ){_cfead :=uint (len (_abded .Entries ));if index > _cfead {index =_cfead ;};_abded .Entries =append (_abded .Entries [:index ],append ([]*OutlineItem {item },_abded .Entries [index :]...)...);
+};
+
+// FileRelationship represents a attachment file relationship type.
+type FileRelationship int ;
+
+// ToPdfObject returns a PDF object representation of the outline.
+func (_aaebd *Outline )ToPdfObject ()_dfg .PdfObject {return _aaebd .ToPdfOutline ().ToPdfObject ()};
+
+// Encoder returns the font's text encoder.
+func (_cgeg *pdfFontSimple )Encoder ()_ff .TextEncoder {if _cgeg ._febca !=nil {return _cgeg ._febca ;};if _cgeg ._eabff !=nil {return _cgeg ._eabff ;};_bbad ,_ :=_ff .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
+return _bbad ;};
+
+// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
+func (_efdf *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdgd ,_ccee :=_dfg .GetNumbersAsFloat (objects );
+if _ccee !=nil {return nil ,_ccee ;};return _efdf .ColorFromFloats (_cdgd );};
+
+// Names represents a PDF name tree.
+//
+// Ref: PDF32000_2008 chapter 7.7.4.
+type Names struct{_ggeed *_dfg .PdfIndirectObject ;
+
+// Dests is a name tree mapping name string to destinations.
+Dests *_dfg .PdfObjectDictionary ;
+
+// AP is a name tree mapping name strings to annotation appearance streams.
+AP *_dfg .PdfObjectDictionary ;
+
+// JavaScript is a name tree mapping name strings to JavaScript actions.
+JavaScript *_dfg .PdfObjectDictionary ;
+
+// Pages is a name tree mapping name strings to visible pages for use in interactive forms.
+Pages *_dfg .PdfObjectDictionary ;
+
+// Templates is a name tree mapping name strings to invisible (template) pages for use in interactive forms.
+Templates *_dfg .PdfObjectDictionary ;
+
+// IDS is a name tree mapping digital identifies to Web Capture content sets.
+IDS *_dfg .PdfObjectDictionary ;
+
+// URLS is a name tree mapping URLs to Web Capture content sets.
+URLS *_dfg .PdfObjectDictionary ;
+
+// EmbeddedFiles is a name tree mapping name strings to file specifications for embedded file streams.
+EmbeddedFiles *_dfg .PdfObjectDictionary ;
+
+// AlternatePresentations is a name tree mapping name strings to alternate presentations.
+AlternatePresentations *_dfg .PdfObjectDictionary ;
+
+// Renditions is a name tree mapping name strings (which shall have Unicode encoding) to rendition objects.
+Renditions *_dfg .PdfObjectDictionary ;};
+
+// Tab order types.
+type TabOrderType string ;
+
+// Outline represents a PDF outline dictionary (Table 152 - p. 376).
+// Currently, the Outline object can only be used to construct PDF outlines.
+type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};
+
+// AddCerts adds certificates to DSS.
+func (_afeac *DSS )AddCerts (certs [][]byte )([]*_dfg .PdfObjectStream ,error ){return _afeac .add (&_afeac .Certs ,_afeac ._fbgf ,certs );};func (_gfebe *PdfPage )loadFont (_bbaca string )(*_afc .Font ,error ){_gaea ,_bfecc :=_ga .ReadFile (_bbaca );if _bfecc !=nil {return nil ,_bfecc ;
+};_ecae ,_bfecc :=_gec .ParseFont (_gaea );if _bfecc !=nil {return nil ,_bfecc ;};return _ecae ,nil ;};
+
+// SetContentStream sets the pattern cell's content stream.
+func (_aebg *PdfTilingPattern )SetContentStream (content []byte ,encoder _dfg .StreamEncoder )error {_dccb ,_fdcda :=_aebg ._adcec .(*_dfg .PdfObjectStream );if !_fdcda {_egb .Log .Debug ("\u0054\u0069l\u0069\u006e\u0067\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_aebg ._adcec );
+return _dfg .ErrTypeError ;};if encoder ==nil {encoder =_dfg .NewRawEncoder ();};_cgfa :=_dccb .PdfObjectDictionary ;_edfea :=encoder .MakeStreamDict ();_cgfa .Merge (_edfea );_cdef ,_bggfd :=encoder .EncodeBytes (content );if _bggfd !=nil {return _bggfd ;
+};_cgfa .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_dfg .MakeInteger (int64 (len (_cdef ))));_dccb .Stream =_cdef ;return nil ;};
+
+// GetCharMetrics returns the char metrics for character code `code`.
+func (_baga pdfCIDFontType2 )GetCharMetrics (code _ff .CharCode )(_bf .CharMetrics ,bool ){if _gggb ,_begce :=_baga ._gdebe [code ];_begce {return _bf .CharMetrics {Wx :_gggb },true ;};_fbcd :=rune (code );_caeaf ,_febg :=_baga ._cede [_fbcd ];if !_febg {_caeaf =int (_baga ._cfcga );
+};return _bf .CharMetrics {Wx :float64 (_caeaf )},true ;};func (_bdcgc *PdfWriter )writeObject (_gfbd int ,_faabg _dfg .PdfObject ){_egb .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_gfbd );if _bded ,_dffba :=_faabg .(*_dfg .PdfIndirectObject );
+_dffba {_bdcgc ._effg [_gfbd ]=crossReference {Type :1,Offset :_bdcgc ._cffge ,Generation :_bded .GenerationNumber };_eeafb :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_gfbd );if _dceee ,_dcfaa :=_bded .PdfObject .(*pdfSignDictionary );
+_dcfaa {_dceee ._dgead =_bdcgc ._cffge +int64 (len (_eeafb ));};if _bded .PdfObject ==nil {_egb .Log .Debug ("E\u0072\u0072\u006fr\u003a\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0027\u0073\u0020\u0050\u0064\u0066\u004f\u0062j\u0065\u0063\u0074 \u0073\u0068\u006f\u0075\u006c\u0064\u0020\u006e\u0065\u0076\u0065\u0072\u0020b\u0065\u0020\u006e\u0069l\u0020\u002d\u0020\u0073e\u0074\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063t\u004e\u0075\u006c\u006c");
+_bded .PdfObject =_dfg .MakeNull ();};_eeafb +=string (_bded .PdfObject .Write ());_eeafb +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_bdcgc .writeString (_eeafb );return ;};if _adabd ,_egadbe :=_faabg .(*_dfg .PdfObjectStream );_egadbe {_bdcgc ._effg [_gfbd ]=crossReference {Type :1,Offset :_bdcgc ._cffge ,Generation :_adabd .GenerationNumber };
+_bdcgc .writeString (_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_gfbd ));_bdcgc .writeBytes (_adabd .PdfObjectDictionary .Write ());_bdcgc .writeString ("\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a");if _adabd .Lazy {_aeaec ,_ccgae :=_ga .Open (_adabd .TempFile );
+if _ccgae !=nil {_egb .Log .Info ("\u0045\u0072\u0072\u006f\u0072\u0020\u0066\u0069\u006e\u0064\u0069\u006e\u0067\u0020\u006ca\u007ay\u0020\u0074\u0065\u006d\u0070\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_adabd .TempFile );return ;};defer _aeaec .Close ();
+_dace :=make ([]byte ,64*1024);for {_afeff ,_aedeg :=_aeaec .Read (_dace );if _afeff > 0{_bdcgc .writeBytes (_dace [:_afeff ]);};if _aedeg ==_edg .EOF {break ;};if _aedeg !=nil {_egb .Log .Info ("\u0045\u0072\u0072\u006f\u0072\u0020\u0072\u0065\u0061\u0064\u0069\u006e\u0067\u0020\u006ca\u007ay\u0020\u0074\u0065\u006d\u0070\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_adabd .TempFile );
+return ;};};_ga .Remove (_adabd .TempFile );}else {_bdcgc .writeBytes (_adabd .Stream );};_bdcgc .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _efceac ,_cdgaab :=_faabg .(*_dfg .PdfObjectStreams );
+_cdgaab {_bdcgc ._effg [_gfbd ]=crossReference {Type :1,Offset :_bdcgc ._cffge ,Generation :_efceac .GenerationNumber };_gbgde :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_gfbd );var _dgda []string ;var _dafde string ;var _afeg int64 ;
+for _aabgcc ,_bagbc :=range _efceac .Elements (){_fcaeg ,_fbbdbe :=_bagbc .(*_dfg .PdfIndirectObject );if !_fbbdbe {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0074\u0072\u0065am\u0073 \u004e\u0020\u0025\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006es\u0020\u006e\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u0070\u0064\u0066 \u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0076",_gfbd ,_bagbc );
+continue ;};_efcdae :=string (_fcaeg .PdfObject .Write ())+"\u0020";_dafde =_dafde +_efcdae ;_dgda =append (_dgda ,_d .Sprintf ("\u0025\u0064\u0020%\u0064",_fcaeg .ObjectNumber ,_afeg ));_bdcgc ._effg [int (_fcaeg .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_gfbd ,Index :_aabgcc };
+_afeg =_afeg +int64 (len ([]byte (_efcdae )));};_aefbd :=_af .Join (_dgda ,"\u0020")+"\u0020";_edcee :=_dfg .NewFlateEncoder ();_fcddf :=_edcee .MakeStreamDict ();_fcddf .Set (_dfg .PdfObjectName ("\u0054\u0079\u0070\u0065"),_dfg .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
+_bceee :=int64 (_efceac .Len ());_fcddf .Set (_dfg .PdfObjectName ("\u004e"),_dfg .MakeInteger (_bceee ));_ggdfg :=int64 (len (_aefbd ));_fcddf .Set (_dfg .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_dfg .MakeInteger (_ggdfg ));_bddbb ,_ :=_edcee .EncodeBytes ([]byte (_aefbd +_dafde ));
+_gdegb :=int64 (len (_bddbb ));_fcddf .Set (_dfg .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_dfg .MakeInteger (_gdegb ));_gbgde +=string (_fcddf .Write ());_gbgde +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_bdcgc .writeString (_gbgde );
+_bdcgc .writeBytes (_bddbb );_bdcgc .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_bdcgc .writeBytes (_faabg .Write ());};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;
+FieldFlagRequired FieldFlag =(1<<1);FieldFlagNoExport FieldFlag =(2<<1);FieldFlagNoToggleToOff FieldFlag =(1<<14);FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16);FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);
+FieldFlagPassword FieldFlag =(1<<13);FieldFlagFileSelect FieldFlag =(1<<20);FieldFlagDoNotScroll FieldFlag =(1<<23);FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<26);FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);
+FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<27););var ErrColorOutOfRange =_bd .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
+
+
+// NewPdfColorspaceSpecialPattern returns a new pattern color.
+func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
+
+// NewBorderStyle returns an initialized PdfBorderStyle.
+func NewBorderStyle ()*PdfBorderStyle {_acbd :=&PdfBorderStyle {};return _acbd };
+
+// ToPdfObject returns the PDF representation of the function.
+func (_ggff *PdfFunctionType0 )ToPdfObject ()_dfg .PdfObject {if _ggff ._deefg ==nil {_ggff ._deefg =&_dfg .PdfObjectStream {};};_ggec :=_dfg .MakeDict ();_ggec .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_dfg .MakeInteger (0));
+_cagage :=&_dfg .PdfObjectArray {};for _ ,_egdbg :=range _ggff .Domain {_cagage .Append (_dfg .MakeFloat (_egdbg ));};_ggec .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cagage );_beef :=&_dfg .PdfObjectArray {};for _ ,_ebbd :=range _ggff .Range {_beef .Append (_dfg .MakeFloat (_ebbd ));
+};_ggec .Set ("\u0052\u0061\u006eg\u0065",_beef );_fcacf :=&_dfg .PdfObjectArray {};for _ ,_bgeb :=range _ggff .Size {_fcacf .Append (_dfg .MakeInteger (int64 (_bgeb )));};_ggec .Set ("\u0053\u0069\u007a\u0065",_fcacf );_ggec .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_dfg .MakeInteger (int64 (_ggff .BitsPerSample )));
+if _ggff .Order !=1{_ggec .Set ("\u004f\u0072\u0064e\u0072",_dfg .MakeInteger (int64 (_ggff .Order )));};_ggec .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_dfg .MakeInteger (int64 (len (_ggff ._ffdce ))));_ggff ._deefg .Stream =_ggff ._ffdce ;_ggff ._deefg .PdfObjectDictionary =_ggec ;
+return _ggff ._deefg ;};
+
+// FillWithAppearance populates `form` with values provided by `provider`.
+// If not nil, `appGen` is used to generate appearance dictionaries for the
+// field annotations, based on the specified settings. Otherwise, appearance
+// generation is skipped.
+// e.g.: appGen := annotator.FieldAppearance{OnlyIfMissing: true, RegenerateTextFields: true}
+// NOTE: In next major version this functionality will be part of Fill. (v4)
+func (_agcgd *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_dabcd :=_agcgd .fill (provider ,appGen );if _dabcd !=nil {return _dabcd ;};if _ ,_bcbcc :=provider .(FieldImageProvider );_bcbcc {_dabcd =_agcgd .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
+};return _dabcd ;};
+
+// ToPdfObject returns the PDF representation of the colorspace.
+func (_gbbg *PdfColorspaceSpecialSeparation )ToPdfObject ()_dfg .PdfObject {_ccac :=_dfg .MakeArray (_dfg .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_ccac .Append (_gbbg .ColorantName );_ccac .Append (_gbbg .AlternateSpace .ToPdfObject ());
+_ccac .Append (_gbbg .TintTransform .ToPdfObject ());if _gbbg ._fdcef !=nil {_gbbg ._fdcef .PdfObject =_ccac ;return _gbbg ._fdcef ;};return _ccac ;};func (_fbaab *XObjectImage )getParamsDict ()*_dfg .PdfObjectDictionary {_gccdf :=_dfg .MakeDict ();_gccdf .Set ("\u0057\u0069\u0064t\u0068",_dfg .MakeInteger (*_fbaab .Width ));
+_gccdf .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_dfg .MakeInteger (*_fbaab .Height ));_gccdf .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_dfg .MakeInteger (int64 (_fbaab .ColorSpace .GetNumComponents ())));
+_gccdf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dfg .MakeInteger (*_fbaab .BitsPerComponent ));return _gccdf ;};
+
+// GetNumComponents returns the number of color components of the colorspace device.
+// Returns 4 for a CMYK32 device.
+func (_bbec *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
+
+// NewPdfColorLab returns a new Lab color.
+func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_eeda :=PdfColorLab {l ,a ,b };return &_eeda };
+
+// StructTreeRoot represents the structure tree root dictionary.
+// Reference: PDF documentation chapter 14.7 Logical Structure, table 322.
+type StructTreeRoot struct{K []*KDict ;IDTree *IDTree ;ParentTree *_dfg .PdfObjectDictionary ;ParentTreeNextKey int64 ;RoleMap _dfg .PdfObject ;ClassMap *_dfg .PdfObjectDictionary ;_badddb *_dfg .PdfIndirectObject ;_afeaa []_gdb .UUID ;};func (_ebdc *PdfReader )newPdfAnnotationScreenFromDict (_cag *_dfg .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_gbba :=PdfAnnotationScreen {};
+_gbba .T =_cag .Get ("\u0054");_gbba .MK =_cag .Get ("\u004d\u004b");_gbba .A =_cag .Get ("\u0041");_gbba .AA =_cag .Get ("\u0041\u0041");return &_gbba ,nil ;};func _eaagaf (_dcga *_dfg .PdfObjectStream )(*PdfFunctionType4 ,error ){_fgbe :=&PdfFunctionType4 {};
+_fgbe ._gbaed =_dcga ;_dbbc :=_dcga .PdfObjectDictionary ;_ggagfe ,_dgcg :=_dfg .TraceToDirectObject (_dbbc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_dfg .PdfObjectArray );if !_dgcg {_egb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
+return nil ,_bd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _ggagfe .Len ()%2!=0{_egb .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
+return nil ,_bd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_cgead ,_addae :=_ggagfe .ToFloat64Array ();if _addae !=nil {return nil ,_addae ;};_fgbe .Domain =_cgead ;_ggagfe ,_dgcg =_dfg .TraceToDirectObject (_dbbc .Get ("\u0052\u0061\u006eg\u0065")).(*_dfg .PdfObjectArray );
+if _dgcg {if _ggagfe .Len ()< 0||_ggagfe .Len ()%2!=0{return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_cgcb ,_ecef :=_ggagfe .ToFloat64Array ();if _ecef !=nil {return nil ,_ecef ;};_fgbe .Range =_cgcb ;
+};_fbbd ,_addae :=_dfg .DecodeStream (_dcga );if _addae !=nil {return nil ,_addae ;};_fgbe ._gbgcb =_fbbd ;_dgfgd :=_cb .NewPSParser (_fbbd );_ecdgd ,_addae :=_dgfgd .Parse ();if _addae !=nil {return nil ,_addae ;};_fgbe .Program =_ecdgd ;return _fgbe ,nil ;
+};
+
+// GetVersion gets the document version.
+func (_ddded *PdfWriter )GetVersion ()_dfg .Version {return _ddded ._cfbcb };
+
+// SetCatalogLanguage sets the catalog language.
+func (_gdedd *PdfWriter )SetCatalogLanguage (lang _dfg .PdfObject )error {if lang ==nil {_gdedd ._acgcc .Remove ("\u004c\u0061\u006e\u0067");return nil ;};if _ ,_egffa :=lang .(*_dfg .PdfIndirectObject );_egffa {_gdedd .addObject (lang );};_gdedd ._acgcc .Set ("\u004c\u0061\u006e\u0067",lang );
+return nil ;};func (_defcef *PdfWriter )checkLicense ()error {_gbega :=_gb .GetLicenseKey ();if (_gbega ==nil ||!_gbega .IsLicensed ())&&!_ecdba {_d .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");
+_d .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
+return _bd .New ("\u0075\u006e\u0069\u0070d\u0066\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020c\u006fd\u0065\u0020\u0072\u0065\u0071\u0075\u0069r\u0065\u0064");};return nil ;};
+
+// SetOptimizer sets the optimizer to optimize PDF before writing.
+func (_aebc *PdfWriter )SetOptimizer (optimizer Optimizer ){_aebc ._gface =optimizer };
+
+// B returns the value of the blue component of the color.
+func (_fgb *PdfColorDeviceRGB )B ()float64 {return _fgb [2]};
+
+// PdfAnnotationRedact represents Redact annotations.
+// (Section 12.5.6.23).
+type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _dfg .PdfObject ;IC _dfg .PdfObject ;RO _dfg .PdfObject ;OverlayText _dfg .PdfObject ;Repeat _dfg .PdfObject ;DA _dfg .PdfObject ;Q _dfg .PdfObject ;};func _gggbc (_gbeg string )map[string ]string {_dcfbb :=_dbcab .Split (_gbeg ,-1);
+_fgab :=map[string ]string {};for _ ,_ggdbgf :=range _dcfbb {_ffbfb :=_cbcb .FindStringSubmatch (_ggdbgf );if _ffbfb ==nil {continue ;};_dgbbb ,_abga :=_ffbfb [1],_ffbfb [2];_fgab [_dgbbb ]=_abga ;};return _fgab ;};
+
+// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
+func (_bdge *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_gegfa :=_efe .NewReader (img .getBase ());_cgdb :=_ef .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cddfa :=_efe .NewWriter (_cgdb );
+_agae :=_df .Pow (2,float64 (img .BitsPerComponent ))-1;_gfbc :=make ([]uint32 ,3);var (_decd uint32 ;ANorm ,X ,Y ,Z ,_ccafe ,_ebfa ,_caaed float64 ;_aaa error ;);for {_decd ,_aaa =_gegfa .ReadSample ();if _aaa ==_edg .EOF {break ;}else if _aaa !=nil {return img ,_aaa ;
+};ANorm =float64 (_decd )/_agae ;X =_bdge .WhitePoint [0]*_df .Pow (ANorm ,_bdge .Gamma );Y =_bdge .WhitePoint [1]*_df .Pow (ANorm ,_bdge .Gamma );Z =_bdge .WhitePoint [2]*_df .Pow (ANorm ,_bdge .Gamma );_ccafe =3.240479*X +-1.537150*Y +-0.498535*Z ;_ebfa =-0.969256*X +1.875992*Y +0.041556*Z ;
+_caaed =0.055648*X +-0.204043*Y +1.057311*Z ;_ccafe =_df .Min (_df .Max (_ccafe ,0),1.0);_ebfa =_df .Min (_df .Max (_ebfa ,0),1.0);_caaed =_df .Min (_df .Max (_caaed ,0),1.0);_gfbc [0]=uint32 (_ccafe *_agae );_gfbc [1]=uint32 (_ebfa *_agae );_gfbc [2]=uint32 (_caaed *_agae );
+if _aaa =_cddfa .WriteSamples (_gfbc );_aaa !=nil {return img ,_aaa ;};};return _deba (&_cgdb ),nil ;};
+
+// GetNumComponents returns the number of color components of the colorspace device.
+// Returns 1 for a grayscale device.
+func (_cbfeb *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
+
+// HasExtGState checks whether a font is defined by the specified keyName.
+func (_fgcff *PdfPageResources )HasExtGState (keyName _dfg .PdfObjectName )bool {_ ,_aabab :=_fgcff .GetFontByName (keyName );return _aabab ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_gafb *PdfAnnotationUnderline )ToPdfObject ()_dfg .PdfObject {_gafb .PdfAnnotation .ToPdfObject ();_fge :=_gafb ._afae ;_bfgbg :=_fge .PdfObject .(*_dfg .PdfObjectDictionary );_gafb .appendToPdfDictionary (_bfgbg );_bfgbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
+_bfgbg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gafb .QuadPoints );return _fge ;};
+
+// ArtifactType represents the type of an artifact in a PDF document.
+type ArtifactType string ;func (_abccf *Image )resampleLowBits (_bfgcf []uint32 ){_dfbg :=_ef .BytesPerLine (int (_abccf .Width ),int (_abccf .BitsPerComponent ),_abccf .ColorComponents );_fecea :=make ([]byte ,_abccf .ColorComponents *_dfbg *int (_abccf .Height ));
+_bddgd :=int (_abccf .BitsPerComponent )*_abccf .ColorComponents *int (_abccf .Width );_eaaaf :=uint8 (8);var (_ggfab ,_ffbc int ;_ebgdd uint32 ;);for _dfdg :=0;_dfdg < int (_abccf .Height );_dfdg ++{_ffbc =_dfdg *_dfbg ;for _gccg :=0;_gccg < _bddgd ;_gccg ++{_ebgdd =_bfgcf [_ggfab ];
+_eaaaf -=uint8 (_abccf .BitsPerComponent );_fecea [_ffbc ]|=byte (_ebgdd )<<_eaaaf ;if _eaaaf ==0{_eaaaf =8;_ffbc ++;};_ggfab ++;};};_abccf .Data =_fecea ;};
+
+// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
+type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_gcac _dfg .PdfObject ;};
+
+// NewPdfColorPattern returns an empty color pattern.
+func NewPdfColorPattern ()*PdfColorPattern {_gea :=&PdfColorPattern {};return _gea };
+
+// SetFileName sets the pdf writer file name for metered usage tracker.
+func (_fcfbe *PdfWriter )SetFileName (name string ){_fcfbe ._bdadb =name };
+
+// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
+// DeviceRGB CS.
+func (_fbeb *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_gfgb :=_efe .NewReader (img .getBase ());_fdcg :=_ef .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_fbeb .AlternateSpace .GetNumComponents (),nil ,img ._baeef ,nil );
+_fbeg :=_efe .NewWriter (_fdcg );_dedg :=_df .Pow (2,float64 (img .BitsPerComponent ))-1;_egb .Log .Trace ("\u0053\u0065\u0070a\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0073\u0070\u0061\u0063\u0065\u0020\u002d\u003e\u0020\u0054\u006f\u0052\u0047\u0042\u0020\u0063o\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e");
+_egb .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_fbeb .TintTransform );_gead :=_fbeb .AlternateSpace .DecodeArray ();var (_ddee uint32 ;_fdafc error ;);for {_ddee ,_fdafc =_gfgb .ReadSample ();
+if _fdafc ==_edg .EOF {break ;};if _fdafc !=nil {return img ,_fdafc ;};_cedg :=float64 (_ddee )/_dedg ;_bccd ,_ccef :=_fbeb .TintTransform .Evaluate ([]float64 {_cedg });if _ccef !=nil {return img ,_ccef ;};for _agce ,_gbc :=range _bccd {_eadc :=_ef .LinearInterpolate (_gbc ,_gead [_agce *2],_gead [_agce *2+1],0,1);
+if _ccef =_fbeg .WriteSample (uint32 (_eadc *_dedg ));_ccef !=nil {return img ,_ccef ;};};};return _fbeb .AlternateSpace .ImageToRGB (_deba (&_fdcg ));};
+
+// PdfShadingType7 is a Tensor-product patch mesh.
+type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_dfg .PdfObjectInteger ;BitsPerComponent *_dfg .PdfObjectInteger ;BitsPerFlag *_dfg .PdfObjectInteger ;Decode *_dfg .PdfObjectArray ;Function []PdfFunction ;};func NewViewerPreferencesFromPdfObject (obj _dfg .PdfObject )(*ViewerPreferences ,error ){_bcbga :=_dfg .ResolveReference (obj );
+_bbeab ,_fafffg :=_dfg .GetDict (_bcbga );if !_fafffg {return nil ,_d .Errorf ("e\u0078\u0069\u0073\u0074\u0069\u006e\u0067\u0020\u0076i\u0065\u0077\u0065\u0072\u0020\u0070\u0072ef\u0065\u0072\u0065\u006ec\u0065\u0073\u0020\u0069\u0073\u0020\u006e\u006f\u0074 a\u0020\u0064i\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+};_cdcdb :=NewViewerPreferences ();if _ggabdc :=_bbeab .Get ("H\u0069\u0064\u0065\u0054\u006f\u006f\u006c\u0062\u0061\u0072");_ggabdc !=nil {if _bcadgc ,_dgdb :=_dfg .GetBool (_ggabdc );_dgdb {_cdcdb ._dcdcg =(*bool )(_bcadgc );};};if _bdeef :=_bbeab .Get ("H\u0069\u0064\u0065\u004d\u0065\u006e\u0075\u0062\u0061\u0072");
+_bdeef !=nil {if _ebbff ,_abbddd :=_dfg .GetBool (_bdeef );_abbddd {_cdcdb ._eaded =(*bool )(_ebbff );};};if _ccefg :=_bbeab .Get ("\u0048\u0069\u0064e\u0057\u0069\u006e\u0064\u006f\u0077\u0055\u0049");_ccefg !=nil {if _edcf ,_gdgea :=_dfg .GetBool (_ccefg );
+_gdgea {_cdcdb ._dgbgf =(*bool )(_edcf );};};if _egcfc :=_bbeab .Get ("\u0046i\u0074\u0057\u0069\u006e\u0064\u006fw");_egcfc !=nil {if _fefag ,_cbeg :=_dfg .GetBool (_egcfc );_cbeg {_cdcdb ._abea =(*bool )(_fefag );};};if _eeefg :=_bbeab .Get ("\u0043\u0065\u006et\u0065\u0072\u0057\u0069\u006e\u0064\u006f\u0077");
+_eeefg !=nil {if _bcded ,_cfdef :=_dfg .GetBool (_eeefg );_cfdef {_cdcdb ._ebdgb =(*bool )(_bcded );};};if _dbcc :=_bbeab .Get ("\u0044i\u0073p\u006c\u0061\u0079\u0044\u006f\u0063\u0054\u0069\u0074\u006c\u0065");_dbcc !=nil {if _bfegfg ,_egbag :=_dfg .GetBool (_dbcc );
+_egbag {_cdcdb ._dagge =(*bool )(_bfegfg );};};if _fdecd :=_bbeab .Get ("N\u006f\u006e\u0046\u0075ll\u0053c\u0072\u0065\u0065\u006e\u0050a\u0067\u0065\u004d\u006f\u0064\u0065");_fdecd !=nil {if _cabb ,_gdbca :=_dfg .GetName (_fdecd );_gdbca {_cdcdb ._gbbce =NonFullScreenPageMode (*_cabb );
+};};if _eadda :=_bbeab .Get ("\u0044i\u0072\u0065\u0063\u0074\u0069\u006fn");_eadda !=nil {if _bggec ,_bdbdcf :=_dfg .GetName (_eadda );_bdbdcf {_cdcdb ._afddc =Direction (*_bggec );};};if _efege :=_bbeab .Get ("\u0056\u0069\u0065\u0077\u0041\u0072\u0065\u0061");
+_efege !=nil {if _fafdc ,_bbbba :=_dfg .GetName (_efege );_bbbba {_cdcdb ._gaeae =PageBoundary (*_fafdc );};};if _gcgeg :=_bbeab .Get ("\u0056\u0069\u0065\u0077\u0043\u006c\u0069\u0070");_gcgeg !=nil {if _bggda ,_gaae :=_dfg .GetName (_gcgeg );_gaae {_cdcdb ._cfbeg =PageBoundary (*_bggda );
+};};if _gadag :=_bbeab .Get ("\u0050r\u0069\u006e\u0074\u0041\u0072\u0065a");_gadag !=nil {if _adbac ,_gfgfcg :=_dfg .GetName (_gadag );_gfgfcg {_cdcdb ._ggbeb =PageBoundary (*_adbac );};};if _efgf :=_bbeab .Get ("\u0050r\u0069\u006e\u0074\u0043\u006c\u0069p");
+_efgf !=nil {if _edcdd ,_acdgc :=_dfg .GetName (_efgf );_acdgc {_cdcdb ._cdbee =PageBoundary (*_edcdd );};};if _ffeegc :=_bbeab .Get ("\u0050\u0072\u0069n\u0074\u0053\u0063\u0061\u006c\u0069\u006e\u0067");_ffeegc !=nil {if _cdaae ,_gdfe :=_dfg .GetName (_ffeegc );
+_gdfe {_cdcdb ._bcdgc =PrintScaling (*_cdaae );};};if _baafa :=_bbeab .Get ("\u0044\u0075\u0070\u006c\u0065\u0078");_baafa !=nil {if _efecf ,_dbdbb :=_dfg .GetName (_baafa );_dbdbb {_cdcdb ._adeg =Duplex (*_efecf );};};if _gfbb :=_bbeab .Get ("\u0050\u0069\u0063\u006b\u0054\u0072\u0061\u0079\u0042\u0079\u0050\u0044F\u0053\u0069\u007a\u0065");
+_gfbb !=nil {if _eefad ,_ccbcg :=_dfg .GetBool (_gfbb );_ccbcg {_cdcdb ._cdgcd =(*bool )(_eefad );};};if _dagfd :=_bbeab .Get ("\u0050\u0072\u0069\u006e\u0074\u0050\u0061\u0067\u0065R\u0061\u006e\u0067\u0065");_dagfd !=nil {if _cefecg ,_badfa :=_dfg .GetArray (_dagfd );
+_badfa {_cdcdb ._gbdfbf =make ([]int ,_cefecg .Len ());for _aeeed :=range _cdcdb ._gbdfbf {if _bfdcbg :=_cefecg .Get (_aeeed );_bfdcbg !=nil {if _cffce ,_bgace :=_dfg .GetInt (_bfdcbg );_bgace {_cdcdb ._gbdfbf [_aeeed ]=int (*_cffce );};};};};};if _fcfe :=_bbeab .Get ("\u004eu\u006d\u0043\u006f\u0070\u0069\u0065s");
+_fcfe !=nil {if _fgfdf ,_dgdea :=_dfg .GetInt (_fcfe );_dgdea {_cdcdb ._gefff =int (*_fgfdf );};};return _cdcdb ,nil ;};
+
+// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
+func (_gbaedb *PdfPage )ToPdfObject ()_dfg .PdfObject {_deee :=_gbaedb ._bdeee ;_gbaedb .GetPageDict ();return _deee ;};
+
+// SignatureHandlerDocMDPParams describe the specific parameters for the SignatureHandlerEx
+// These parameters describe how to check the difference between revisions.
+// Revisions of the document get from the PdfParser.
+type SignatureHandlerDocMDPParams struct{Parser *_dfg .PdfParser ;DiffPolicy _bba .DiffPolicy ;};
+
+// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
+func (_gacd *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afdb ,_eedc :=_dfg .GetNumbersAsFloat (objects );
+if _eedc !=nil {return nil ,_eedc ;};return _gacd .ColorFromFloats (_afdb );};
+
+// NewXObjectImageFromImageLazy creates a new XObject Image from an image object
+// with default options. If encoder is nil, uses raw encoding (none).
+// If lazy is true, then lazy mode is enabled for XObject.
+// Lazy mode allows to reduce memory usage with the help of temporary files.
+func NewXObjectImageFromImageLazy (img *Image ,cs PdfColorspace ,encoder _dfg .StreamEncoder ,lazy bool )(*XObjectImage ,error ){_bbff :=NewXObjectImage ();if lazy {_bdbdb ,_daadgd :=UpdateXObjectImageFromImage (_bbff ,img ,cs ,encoder );if _daadgd !=nil {return nil ,_daadgd ;
+};_bdbdb .ToPdfObject ();_daadgd =_bdbdb ._gfgedd .MakeLazy ();if _daadgd !=nil {return nil ,_daadgd ;};_bdbdb .Stream =nil ;return _bdbdb ,nil ;};return UpdateXObjectImageFromImage (_bbff ,img ,cs ,encoder );};
+
+// NewPdfAnnotationPolygon returns a new polygon annotation.
+func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_aded :=NewPdfAnnotation ();_eced :=&PdfAnnotationPolygon {};_eced .PdfAnnotation =_aded ;_eced .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aded .SetContext (_eced );return _eced ;};
+
+// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
+// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
+func (_caegg DefaultImageHandler )NewImageFromGoImage (goimg _gf .Image )(*Image ,error ){_ecdbg ,_baeed :=_ef .FromGoImage (goimg );if _baeed !=nil {return nil ,_baeed ;};_febgf :=_deba (_ecdbg .Base ());return &_febgf ,nil ;};
+
+// NewPdfFilespec returns an initialized generic PDF filespec model.
+func NewPdfFilespec ()*PdfFilespec {_faabf :=&PdfFilespec {};_faabf ._bcadf =_dfg .MakeIndirectObject (_dfg .MakeDict ());return _faabf ;};
+
+// GetContainingPdfObject returns the container of the pattern object (indirect object).
+func (_bccgd *PdfPattern )GetContainingPdfObject ()_dfg .PdfObject {return _bccgd ._adcec };
+
+// ToPdfObject converts the structure tree root to a PDF object.
+func (_gagcf *StructTreeRoot )ToPdfObject ()_dfg .PdfObject {_ggefe :=_gagcf ._badddb ;if _ggefe ==nil {_ggefe =&_dfg .PdfIndirectObject {};_ggefe .PdfObject =_dfg .MakeDict ();};_bbea :=_ggefe .PdfObject .(*_dfg .PdfObjectDictionary );var _ecbbf _dfg .PdfObject ;
+if len (_gagcf .K )==1{_ecbbf =_dfg .MakeIndirectObject (_gagcf .K [0].ToPdfObject ());}else {_defcd :=_dfg .MakeArray ();for _ ,K :=range _gagcf .K {_defcd .Append (_dfg .MakeIndirectObject (K .ToPdfObject ()));};_ecbbf =_defcd ;};var (_eccfd =[]_dfg .PdfObject {};
+_febdg =map[_dfg .PdfObject ][]_dfg .PdfObject {};_fcag =map[string ]_dfg .PdfObject {};);_eacc (_ecbbf ,_ggefe ,_febdg ,_fcag ,&_eccfd );_bbea .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074"));
+_bbea .Set ("\u004b",_ecbbf );if _gagcf .IDTree !=nil {_bbea .Set ("\u0049\u0044\u0054\u0072\u0065\u0065",_dfg .MakeIndirectObject (_gagcf .IDTree .ToPdfObject ()));}else if len (_fcag )> 0{_fgdf :=_dfg .MakeArray ();_dgeda :=make ([]string ,0,len (_fcag ));
+for _dfddgc :=range _fcag {_dgeda =append (_dgeda ,_dfddgc );};_ed .Strings (_dgeda );for _ ,_cebce :=range _dgeda {_fgdf .Append (_dfg .MakeString (_cebce ));_fgdf .Append (_fcag [_cebce ]);};_gagcf .IDTree =&IDTree {Names :_fgdf ,Limits :_dfg .MakeArray (_dfg .MakeString (_dgeda [0]),_dfg .MakeString (_dgeda [len (_dgeda )-1]))};
+_bbea .Set ("\u0049\u0044\u0054\u0072\u0065\u0065",_dfg .MakeIndirectObject (_gagcf .IDTree .ToPdfObject ()));};if _gagcf .ParentTree !=nil {_bbea .Set ("\u0050\u0061\u0072\u0065\u006e\u0074\u0054\u0072\u0065\u0065",_dfg .MakeIndirectObject (_gagcf .ParentTree ));
+}else if len (_febdg )> 0||len (_eccfd )> 0{_cabcb :=_dfg .MakeArray ();_fcfab :=0;for _edfef ,_fecef :=range _febdg {_bagge :=_dfg .MakeArray ();for _ ,_febgd :=range _fecef {_bagge .Append (_febgd );};_gbbda :=_dfg .MakeInteger (int64 (_fcfab ));_cabcb .Append (_gbbda );
+_cabcb .Append (_dfg .MakeIndirectObject (_bagge ));if _aafgd ,_dccfe :=_dfg .GetIndirect (_edfef );_dccfe {if _geeff ,_ddfaa :=_dfg .GetDict (_aafgd .PdfObject );_ddfaa {_abbefb :=_geeff .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
+if _abbefb !=nil {if _dgad ,_ggecc :=_dfg .GetIntVal (_abbefb );_ggecc {if _fcfab < _dgad {_geeff .Set ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_gbbda );};};}else {_geeff .Set ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_gbbda );
+};};};_fcfab ++;};_cefcc :=func (_gbefa _dfg .PdfObject ,_effcc *_dfg .PdfObjectDictionary )bool {_fbbee :=_effcc ;if _faagd :=_effcc .Get ("\u0054\u0079\u0070\u0065");_faagd .String ()=="\u004f\u0042\u004a\u0052"{if _gbcgf :=_effcc .Get ("\u004f\u0062\u006a");
+_gbcgf !=nil {if _eacffb ,_ffcgc :=_dfg .GetDict (_gbcgf );_ffcgc {_fbbee =_eacffb ;};};};_dbgaca :=_fbbee .Get ("\u0054\u0079\u0070\u0065");if _dbgaca !=nil &&_dbgaca .String ()=="\u0041\u006e\u006eo\u0074"{_ddfgd :=_dfg .MakeInteger (int64 (_fcfab ));
+_fbbee .Set ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_ddfgd );_cabcb .Append (_ddfgd );_cabcb .Append (_gbefa );_fcfab ++;return true ;};return false ;};for _ ,_daec :=range _eccfd {if _fbede ,_baacg :=_dfg .GetDict (_daec );
+_baacg {if _caaga :=_fbede .Get ("\u0053");_caaga !=nil {if _addg ,_cdcef :=_dfg .GetNameVal (_caaga );_cdcef &&(_addg ==string (StructureTypeLink )||_addg ==string (StructureTypeAnnot )){if _ggfe :=_fbede .Get ("\u004b");_ggfe !=nil {if _bbbff ,_aaac :=_dfg .GetArray (_ggfe );
+_aaac {for _ ,_eead :=range _bbbff .Elements (){if _cabggc ,_cecac :=_dfg .GetDict (_eead );_cecac {_cefcc (_daec ,_cabggc );};};}else if _efeee ,_bdadd :=_dfg .GetDict (_ggfe );_bdadd {_cefcc (_daec ,_efeee );};};};};};};_gagcf .ParentTree =_dfg .MakeDict ();
+_gagcf .ParentTree .Set ("\u004e\u0075\u006d\u0073",_cabcb );_gagcf .ParentTreeNextKey =int64 (_fcfab );_bbea .Set ("\u0050\u0061\u0072\u0065\u006e\u0074\u0054\u0072\u0065\u0065",_dfg .MakeIndirectObject (_gagcf .ParentTree ));};_bbea .Set ("\u0050\u0061\u0072\u0065\u006e\u0074\u0054\u0072\u0065\u0065\u004e\u0065x\u0074\u004b\u0065\u0079",_dfg .MakeInteger (_gagcf .ParentTreeNextKey ));
+if _gagcf .RoleMap !=nil {_bbea .Set ("\u0052o\u006c\u0065\u004d\u0061\u0070",_gagcf .RoleMap );};if _gagcf .ClassMap !=nil {_bbea .Set ("\u0043\u006c\u0061\u0073\u0073\u004d\u0061\u0070",_gagcf .ClassMap );};return _ggefe ;};
+
+// GetRuneMetrics returns the character metrics for the rune.
+// A bool flag is returned to indicate whether or not the entry was found.
+func (_defb pdfFontSimple )GetRuneMetrics (r rune )(_bf .CharMetrics ,bool ){if _defb ._eecea !=nil {_cdaac ,_cfgc :=_defb ._eecea .Read (r );if _cfgc {return _cdaac ,true ;};};_dgbac :=_defb .Encoder ();if _dgbac ==nil {_egb .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_defb );
+return _bf .CharMetrics {},false ;};_agag ,_gcgfg :=_dgbac .RuneToCharcode (r );if !_gcgfg {if r !=' '{_egb .Log .Trace ("\u004e\u006f\u0020c\u0068\u0061\u0072\u0063o\u0064\u0065\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u003d\u0025\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",r ,_defb );
+};return _bf .CharMetrics {},false ;};_abaec ,_efda :=_defb .GetCharMetrics (_agag );return _abaec ,_efda ;};
+
+// Encoder returns the font's text encoder.
+func (_cbcca pdfFontType0 )Encoder ()_ff .TextEncoder {return _cbcca ._gbaf };func (_gaa *PdfReader )newPdfActionResetFormFromDict (_ddd *_dfg .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_ddd .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_ddd .Get ("\u0046\u006c\u0061g\u0073")},nil ;
+};
+
+// R returns the value of the red component of the color.
+func (_dfgb *PdfColorDeviceRGB )R ()float64 {return _dfgb [0]};func (_becg *PdfReader )newPdfActionSetOCGStateFromDict (_agb *_dfg .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_agb .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_agb .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
+};func (_cfbee *PdfReader )newPdfFieldFromIndirectObject (_gadg *_dfg .PdfIndirectObject ,_abde *PdfField )(*PdfField ,error ){if _egaad ,_baacf :=_cfbee ._acaed .GetModelFromPrimitive (_gadg ).(*PdfField );_baacf {return _egaad ,nil ;};_baag ,_ggdbg :=_dfg .GetDict (_gadg );
+if !_ggdbg {return nil ,_d .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+};_aaef :=NewPdfField ();_aaef ._caaa =_gadg ;_aaef ._caaa .PdfObject =_baag ;if _gggd ,_bgee :=_dfg .GetName (_baag .Get ("\u0046\u0054"));_bgee {_aaef .FT =_gggd ;};if _abde !=nil {_aaef .Parent =_abde ;};_aaef .T ,_ =_baag .Get ("\u0054").(*_dfg .PdfObjectString );
+_aaef .TU ,_ =_baag .Get ("\u0054\u0055").(*_dfg .PdfObjectString );_aaef .TM ,_ =_baag .Get ("\u0054\u004d").(*_dfg .PdfObjectString );_aaef .Ff ,_ =_baag .Get ("\u0046\u0066").(*_dfg .PdfObjectInteger );_aaef .V =_baag .Get ("\u0056");_aaef .DV =_baag .Get ("\u0044\u0056");
+_aaef .AA =_baag .Get ("\u0041\u0041");if DA :=_baag .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_dfg .GetString (DA );_aaef .VariableText =&VariableText {DA :DA };Q ,_ :=_baag .Get ("\u0051").(*_dfg .PdfObjectInteger );DS ,_ :=_baag .Get ("\u0044\u0053").(*_dfg .PdfObjectString );
+RV :=_baag .Get ("\u0052\u0056");_aaef .VariableText .Q =Q ;_aaef .VariableText .DS =DS ;_aaef .VariableText .RV =RV ;};_fdeab :=_aaef .FT ;if _fdeab ==nil &&_abde !=nil {_fdeab =_abde .FT ;};if _fdeab !=nil {switch *_fdeab {case "\u0054\u0078":_fbdd ,_bdfgb :=_aafa (_baag );
+if _bdfgb !=nil {return nil ,_bdfgb ;};_fbdd .PdfField =_aaef ;_aaef ._agcfe =_fbdd ;case "\u0043\u0068":_gdbg ,_egfg :=_ggadd (_baag );if _egfg !=nil {return nil ,_egfg ;};_gdbg .PdfField =_aaef ;_aaef ._agcfe =_gdbg ;case "\u0042\u0074\u006e":_bgcg ,_ffbb :=_cbbce (_baag );
+if _ffbb !=nil {return nil ,_ffbb ;};_bgcg .PdfField =_aaef ;_aaef ._agcfe =_bgcg ;case "\u0053\u0069\u0067":_efef ,_gegca :=_cfbee .newPdfFieldSignatureFromDict (_baag );if _gegca !=nil {return nil ,_gegca ;};_efef .PdfField =_aaef ;_aaef ._agcfe =_efef ;
+default:_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0073\u0075\u0070\u0070\u006f\u0072t\u0065d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0073",*_aaef .FT );return nil ,_bd .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
+};};if _fadg ,_bafa :=_dfg .GetName (_baag .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_bafa {if *_fadg =="\u0057\u0069\u0064\u0067\u0065\u0074"{_dgbc ,_gbdfg :=_cfbee .newPdfAnnotationFromIndirectObject (_gadg );if _gbdfg !=nil {return nil ,_gbdfg ;
+};_gbbe ,_cgcaa :=_dgbc .GetContext ().(*PdfAnnotationWidget );if !_cgcaa {return nil ,_bd .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_gbbe ._bcad =_aaef ;_gbbe .Parent =_aaef ._caaa ;
+_aaef .Annotations =append (_aaef .Annotations ,_gbbe );return _aaef ,nil ;};};_cfdg :=true ;if _caef ,_edaa :=_dfg .GetArray (_baag .Get ("\u004b\u0069\u0064\u0073"));_edaa {_bbcfd :=make ([]*_dfg .PdfIndirectObject ,0,_caef .Len ());for _ ,_gdcdfe :=range _caef .Elements (){_cfdf ,_bfce :=_dfg .GetIndirect (_gdcdfe );
+if !_bfce {_ceedb ,_cdgg :=_dfg .GetStream (_gdcdfe );if _cdgg &&_ceedb .PdfObjectDictionary !=nil {_cfcee ,_geac :=_dfg .GetNameVal (_ceedb .Get ("\u0054\u0079\u0070\u0065"));if _geac &&_cfcee =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_egb .Log .Debug ("E\u0052RO\u0052:\u0020f\u006f\u0072\u006d\u0020\u0066i\u0065\u006c\u0064 \u004b\u0069\u0064\u0073\u0020a\u0072\u0072\u0061y\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0073\u0020\u0069n\u0076\u0061\u006cid \u004d\u0065\u0074\u0061\u0064\u0061t\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u002e\u0020\u0053\u006bi\u0070p\u0069\u006e\u0067\u002e");
+continue ;};};return nil ,_bd .New ("n\u006f\u0074\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063t\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0028\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065\u006cd\u0029");};_cabgg ,_ccbdf :=_dfg .GetDict (_cfdf );
+if !_ccbdf {return nil ,ErrTypeCheck ;};if _cfdg {_cfdg =!_aeegd (_cabgg );};_bbcfd =append (_bbcfd ,_cfdf );};for _ ,_feed :=range _bbcfd {if _cfdg {_fefd ,_eeagc :=_cfbee .newPdfAnnotationFromIndirectObject (_feed );if _eeagc !=nil {_egb .Log .Debug ("\u0045r\u0072\u006fr\u0020\u006c\u006fa\u0064\u0069\u006e\u0067\u0020\u0077\u0069d\u0067\u0065\u0074\u0020\u0061\u006en\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0066\u006f\u0072 \u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0076",_eeagc );
+return nil ,_eeagc ;};_agdd ,_afge :=_fefd ._dga .(*PdfAnnotationWidget );if !_afge {return nil ,ErrTypeCheck ;};_agdd ._bcad =_aaef ;_aaef .Annotations =append (_aaef .Annotations ,_agdd );}else {_ddccf ,_fbgbe :=_cfbee .newPdfFieldFromIndirectObject (_feed ,_aaef );
+if _fbgbe !=nil {_egb .Log .Debug ("\u0045\u0072r\u006f\u0072\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0068\u0069\u006c\u0064\u0020\u0066\u0069\u0065\u006c\u0064: \u0025\u0076",_fbgbe );return nil ,_fbgbe ;};_aaef .Kids =append (_aaef .Kids ,_ddccf );
+};};};return _aaef ,nil ;};func (_bcdeaa *PdfReader )resolveReference (_ebafb *_dfg .PdfObjectReference )(_dfg .PdfObject ,bool ,error ){_gegeb ,_cafdc :=_bcdeaa ._agbcd .ObjCache [int (_ebafb .ObjectNumber )];if !_cafdc {_egb .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_ebafb );
+_bcaea ,_edfg :=_bcdeaa ._agbcd .LookupByReference (*_ebafb );if _edfg !=nil {return nil ,false ,_edfg ;};_bcdeaa ._agbcd .ObjCache [int (_ebafb .ObjectNumber )]=_bcaea ;return _bcaea ,false ,nil ;};return _gegeb ,true ,nil ;};
+
+// GetStandardApplier gets currently used StandardApplier..
+func (_faeded *PdfWriter )GetStandardApplier ()StandardApplier {return _faeded ._fbafb };
+
+// ToPdfObject returns colorspace in a PDF object format [name dictionary]
+func (_ccfg *PdfColorspaceCalRGB )ToPdfObject ()_dfg .PdfObject {_cabe :=&_dfg .PdfObjectArray {};_cabe .Append (_dfg .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_ccfb :=_dfg .MakeDict ();if _ccfg .WhitePoint !=nil {_debc :=_dfg .MakeArray (_dfg .MakeFloat (_ccfg .WhitePoint [0]),_dfg .MakeFloat (_ccfg .WhitePoint [1]),_dfg .MakeFloat (_ccfg .WhitePoint [2]));
+_ccfb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_debc );}else {_egb .Log .Error ("\u0043\u0061l\u0052\u0047\u0042\u003a \u004d\u0069s\u0073\u0069\u006e\u0067\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075i\u0072\u0065\u0064\u0029");
+};if _ccfg .BlackPoint !=nil {_ccaa :=_dfg .MakeArray (_dfg .MakeFloat (_ccfg .BlackPoint [0]),_dfg .MakeFloat (_ccfg .BlackPoint [1]),_dfg .MakeFloat (_ccfg .BlackPoint [2]));_ccfb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ccaa );
+};if _ccfg .Gamma !=nil {_ddca :=_dfg .MakeArray (_dfg .MakeFloat (_ccfg .Gamma [0]),_dfg .MakeFloat (_ccfg .Gamma [1]),_dfg .MakeFloat (_ccfg .Gamma [2]));_ccfb .Set ("\u0047\u0061\u006dm\u0061",_ddca );};if _ccfg .Matrix !=nil {_cfaf :=_dfg .MakeArray (_dfg .MakeFloat (_ccfg .Matrix [0]),_dfg .MakeFloat (_ccfg .Matrix [1]),_dfg .MakeFloat (_ccfg .Matrix [2]),_dfg .MakeFloat (_ccfg .Matrix [3]),_dfg .MakeFloat (_ccfg .Matrix [4]),_dfg .MakeFloat (_ccfg .Matrix [5]),_dfg .MakeFloat (_ccfg .Matrix [6]),_dfg .MakeFloat (_ccfg .Matrix [7]),_dfg .MakeFloat (_ccfg .Matrix [8]));
+_ccfb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cfaf );};_cabe .Append (_ccfb );if _ccfg ._fbag !=nil {_ccfg ._fbag .PdfObject =_cabe ;return _ccfg ._fbag ;};return _cabe ;};
+
+// GenerateXObjectName generates an unused XObject name that can be used for
+// adding new XObjects. Uses format XObj1, XObj2, ...
+func (_gbbf *PdfPageResources )GenerateXObjectName ()_dfg .PdfObjectName {_fgbgg :=1;for {_dgcbc :=_dfg .MakeName (_d .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_fgbgg ));if !_gbbf .HasXObjectByName (*_dgcbc ){return *_dgcbc ;};_fgbgg ++;};};
+
+// Resample resamples the image data converting from current BitsPerComponent to a target BitsPerComponent
+// value. Sets the image's BitsPerComponent to the target value following resampling.
+//
+// For example, converting an 8-bit RGB image to 1-bit grayscale (common for scanned images):
+//
+// // Convert RGB image to grayscale.
+// rgbColorSpace := pdf.NewPdfColorspaceDeviceRGB()
+// grayImage, err := rgbColorSpace.ImageToGray(rgbImage)
+// if err != nil {
+// return err
+// }
+// // Resample as 1 bit.
+// grayImage.Resample(1)
+func (_ffbff *Image )Resample (targetBitsPerComponent int64 ){if _ffbff .BitsPerComponent ==targetBitsPerComponent {return ;};_ddfgf :=_ffbff .GetSamples ();if targetBitsPerComponent < _ffbff .BitsPerComponent {_gggcd :=_ffbff .BitsPerComponent -targetBitsPerComponent ;
+for _gabbg :=range _ddfgf {_ddfgf [_gabbg ]>>=uint (_gggcd );};}else if targetBitsPerComponent > _ffbff .BitsPerComponent {_gfabb :=targetBitsPerComponent -_ffbff .BitsPerComponent ;for _acfeg :=range _ddfgf {_ddfgf [_acfeg ]<<=uint (_gfabb );};};_ffbff .BitsPerComponent =targetBitsPerComponent ;
+if _ffbff .BitsPerComponent < 8{_ffbff .resampleLowBits (_ddfgf );return ;};_dbgb :=_ef .BytesPerLine (int (_ffbff .Width ),int (_ffbff .BitsPerComponent ),_ffbff .ColorComponents );_baeab :=make ([]byte ,_dbgb *int (_ffbff .Height ));var (_bdaf ,_fedee ,_cafaa ,_bbfe int ;
+_ddffg uint32 ;);for _cafaa =0;_cafaa < int (_ffbff .Height );_cafaa ++{_bdaf =_cafaa *_dbgb ;_fedee =(_cafaa +1)*_dbgb -1;_cdbfa :=_efe .ResampleUint32 (_ddfgf [_bdaf :_fedee ],int (targetBitsPerComponent ),8);for _bbfe ,_ddffg =range _cdbfa {_baeab [_bbfe +_bdaf ]=byte (_ddffg );
+};};_ffbff .Data =_baeab ;};
+
+// NewPdfActionTrans returns a new "trans" action.
+func NewPdfActionTrans ()*PdfActionTrans {_gc :=NewPdfAction ();_gfb :=&PdfActionTrans {};_gfb .PdfAction =_gc ;_gc .SetContext (_gfb );return _gfb ;};
+
+// Read reads an image and loads into a new Image object with an RGB
+// colormap and 8 bits per component.
+func (_caed DefaultImageHandler )Read (reader _edg .Reader )(*Image ,error ){_cggbf ,_ ,_feaeg :=_gf .Decode (reader );if _feaeg !=nil {_egb .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_feaeg );
+return nil ,_feaeg ;};return _caed .NewImageFromGoImage (_cggbf );};
+
+// ToPdfObject returns the PDF representation of the shading dictionary.
+func (_aegae *PdfShadingType7 )ToPdfObject ()_dfg .PdfObject {_aegae .PdfShading .ToPdfObject ();_bgfg ,_gbbcf :=_aegae .getShadingDict ();if _gbbcf !=nil {_egb .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
+return nil ;};if _aegae .BitsPerCoordinate !=nil {_bgfg .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aegae .BitsPerCoordinate );};if _aegae .BitsPerComponent !=nil {_bgfg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aegae .BitsPerComponent );
+};if _aegae .BitsPerFlag !=nil {_bgfg .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aegae .BitsPerFlag );};if _aegae .Decode !=nil {_bgfg .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aegae .Decode );};if _aegae .Function !=nil {if len (_aegae .Function )==1{_bgfg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aegae .Function [0].ToPdfObject ());
+}else {_dddgbb :=_dfg .MakeArray ();for _ ,_cadad :=range _aegae .Function {_dddgbb .Append (_cadad .ToPdfObject ());};_bgfg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dddgbb );};};return _aegae ._gdfdg ;};
+
+// ToPdfObject returns a PDF object representation of the ViewerPreferences.
+func (_fcabaf *ViewerPreferences )ToPdfObject ()_dfg .PdfObject {_dfdce :=_dfg .MakeDict ();if _fcabaf ._dcdcg !=nil {_dfdce .Set ("H\u0069\u0064\u0065\u0054\u006f\u006f\u006c\u0062\u0061\u0072",_dfg .MakeBool (*_fcabaf ._dcdcg ));};if _fcabaf ._eaded !=nil {_dfdce .Set ("H\u0069\u0064\u0065\u004d\u0065\u006e\u0075\u0062\u0061\u0072",_dfg .MakeBool (*_fcabaf ._eaded ));
+};if _fcabaf ._dgbgf !=nil {_dfdce .Set ("\u0048\u0069\u0064e\u0057\u0069\u006e\u0064\u006f\u0077\u0055\u0049",_dfg .MakeBool (*_fcabaf ._dgbgf ));};if _fcabaf ._abea !=nil {_dfdce .Set ("\u0046i\u0074\u0057\u0069\u006e\u0064\u006fw",_dfg .MakeBool (*_fcabaf ._abea ));
+};if _fcabaf ._ebdgb !=nil {_dfdce .Set ("\u0043\u0065\u006et\u0065\u0072\u0057\u0069\u006e\u0064\u006f\u0077",_dfg .MakeBool (*_fcabaf ._ebdgb ));};if _fcabaf ._dagge !=nil {_dfdce .Set ("\u0044i\u0073p\u006c\u0061\u0079\u0044\u006f\u0063\u0054\u0069\u0074\u006c\u0065",_dfg .MakeBool (*_fcabaf ._dagge ));
+};if _fcabaf ._gbbce !=""{_dfdce .Set ("N\u006f\u006e\u0046\u0075ll\u0053c\u0072\u0065\u0065\u006e\u0050a\u0067\u0065\u004d\u006f\u0064\u0065",_dfg .MakeName (string (_fcabaf ._gbbce )));};if _fcabaf ._afddc !=""{_dfdce .Set ("\u0044i\u0072\u0065\u0063\u0074\u0069\u006fn",_dfg .MakeName (string (_fcabaf ._afddc )));
+};if _fcabaf ._gaeae !=""{_dfdce .Set ("\u0056\u0069\u0065\u0077\u0041\u0072\u0065\u0061",_dfg .MakeName (string (_fcabaf ._gaeae )));};if _fcabaf ._cfbeg !=""{_dfdce .Set ("\u0056\u0069\u0065\u0077\u0043\u006c\u0069\u0070",_dfg .MakeName (string (_fcabaf ._cfbeg )));
+};if _fcabaf ._ggbeb !=""{_dfdce .Set ("\u0050r\u0069\u006e\u0074\u0041\u0072\u0065a",_dfg .MakeName (string (_fcabaf ._ggbeb )));};if _fcabaf ._cdbee !=""{_dfdce .Set ("\u0050r\u0069\u006e\u0074\u0043\u006c\u0069p",_dfg .MakeName (string (_fcabaf ._cdbee )));
+};if _fcabaf ._bcdgc !=""{_dfdce .Set ("\u0050\u0072\u0069n\u0074\u0053\u0063\u0061\u006c\u0069\u006e\u0067",_dfg .MakeName (string (_fcabaf ._bcdgc )));};if _fcabaf ._adeg !=""{_dfdce .Set ("\u0044\u0075\u0070\u006c\u0065\u0078",_dfg .MakeName (string (_fcabaf ._adeg )));
+};if _fcabaf ._cdgcd !=nil {_dfdce .Set ("\u0050\u0069\u0063\u006b\u0054\u0072\u0061\u0079\u0042\u0079\u0050\u0044F\u0053\u0069\u007a\u0065",_dfg .MakeBool (*_fcabaf ._cdgcd ));};if _fcabaf ._gbdfbf !=nil {_dfdce .Set ("\u0050\u0072\u0069\u006e\u0074\u0050\u0061\u0067\u0065R\u0061\u006e\u0067\u0065",_dfg .MakeArrayFromIntegers (_fcabaf ._gbdfbf ));
+};if _fcabaf ._gefff !=0{_dfdce .Set ("\u004eu\u006d\u0043\u006f\u0070\u0069\u0065s",_dfg .MakeInteger (int64 (_fcabaf ._gefff )));};return _dfdce ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_dgbb *PdfAnnotationRichMedia )ToPdfObject ()_dfg .PdfObject {_dgbb .PdfAnnotation .ToPdfObject ();_cdb :=_dgbb ._afae ;_begbe :=_cdb .PdfObject .(*_dfg .PdfObjectDictionary );_begbe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
+_begbe .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_dgbb .RichMediaSettings );_begbe .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_dgbb .RichMediaContent );
+return _cdb ;};
+
+// AddWatermarkText adds a text watermark to the page.
+func (_bgfbd *PdfPage )AddWatermarkText (text string ,opt WatermarkTextOptions )error {if text ==""{return _bd .New ("n\u006f\u0020\u0074\u0065\u0078\u0074\u0020\u0073\u0065\u0074");};if opt .FontPath ==""{return _bd .New ("\u006e\u006f \u0066\u006f\u006et\u0020\u0070\u0061\u0074\u0068\u0020\u0073\u0065\u0074");
+};if opt .Alpha ==0{opt .Alpha =0.5;};if opt .FontSize ==0{opt .FontSize =20.0;};if opt .FontColor ==nil {opt .FontColor =_dc .Black ;};_ccdde ,_ddcce :=_bgfbd .generateImage (text ,opt .FontSize ,opt .FontPath ,opt .FontColor );if _ddcce !=nil {return _ddcce ;
+};_egfdc ,_ ,_ddcce :=_gf .Decode (_cca .NewReader (_ccdde ));if _ddcce !=nil {return _ddcce ;};_gebge ,_ddcce :=ImageHandling .NewImageFromGoImage (_egfdc );if _ddcce !=nil {return _ddcce ;};_efbcf ,_ddcce :=NewXObjectImageFromImage (_gebge ,nil ,_dfg .NewFlateEncoder ());
+if _ddcce !=nil {return _ddcce ;};_dced :=WatermarkImageOptions {Alpha :opt .Alpha ,FitToWidth :false ,PreserveAspectRatio :true ,Angle :opt .Angle };return _bgfbd .AddWatermarkImage (_efbcf ,_dced );};func (_aecab *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _aecab ._cebfd };
+
+
+// BytesToCharcodes converts the bytes in a PDF string to character codes.
+func (_cecgg *PdfFont )BytesToCharcodes (data []byte )[]_ff .CharCode {_egb .Log .Trace ("\u0042\u0079\u0074es\u0054\u006f\u0043\u0068\u0061\u0072\u0063\u006f\u0064e\u0073:\u0020d\u0061t\u0061\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d\u003d\u0025\u0023\u0071",data ,data );
+if _ccgcc ,_bfcfd :=_cecgg ._fab .(*pdfFontType0 );_bfcfd &&_ccgcc ._dfec !=nil {if _dffa ,_cdgc :=_ccgcc .bytesToCharcodes (data );_cdgc {return _dffa ;};};var (_edgdf =make ([]_ff .CharCode ,0,len (data )+len (data )%2);_bedd =_cecgg .baseFields (););
+if _bedd ._bgdcbc !=nil {if _geda ,_abgfc :=_bedd ._bgdcbc .BytesToCharcodes (data );_abgfc {for _ ,_fdeg :=range _geda {_edgdf =append (_edgdf ,_ff .CharCode (_fdeg ));};return _edgdf ;};};if _bedd .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
+};if len (data )%2!=0{_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0064\u0064\u0069\u006e\u0067\u0020\u0064\u0061\u0074\u0061\u003d\u0025\u002b\u0076\u0020t\u006f\u0020\u0065\u0076\u0065n\u0020\u006ce\u006e\u0067\u0074\u0068",data );
+data =append (data ,0);};for _gdeg :=0;_gdeg < len (data );_gdeg +=2{_fbdc :=uint16 (data [_gdeg ])<<8|uint16 (data [_gdeg +1]);_edgdf =append (_edgdf ,_ff .CharCode (_fbdc ));};}else {for _ ,_faeaf :=range data {_edgdf =append (_edgdf ,_ff .CharCode (_faeaf ));
+};};return _edgdf ;};
+
+// HasFontByName checks if has font resource by name.
+func (_dacb *PdfPage )HasFontByName (name _dfg .PdfObjectName )bool {_bcffd ,_facda :=_dacb .Resources .Font .(*_dfg .PdfObjectDictionary );if !_facda {return false ;};if _fcgg :=_bcffd .Get (name );_fcgg !=nil {return true ;};return false ;};
+
+// SetContext sets the sub annotation (context).
+func (_dbb *PdfAnnotation )SetContext (ctx PdfModel ){_dbb ._dga =ctx };
+
+// DecodeArray returns the component range values for the Indexed colorspace.
+func (_cbcc *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_cbcc .HiVal )};};
+
+// PdfActionResetForm represents a resetForm action.
+type PdfActionResetForm struct{*PdfAction ;Fields _dfg .PdfObject ;Flags _dfg .PdfObject ;};
+
+// UpdatePage updates the `page` in the new revision if it has changed.
+func (_dfgab *PdfAppender )UpdatePage (page *PdfPage ){_dfgab .updateObjectsDeep (page .ToPdfObject (),nil );};
+
+// PdfShadingType3 is a Radial shading.
+type PdfShadingType3 struct{*PdfShading ;Coords *_dfg .PdfObjectArray ;Domain *_dfg .PdfObjectArray ;Function []PdfFunction ;Extend *_dfg .PdfObjectArray ;};
+
+// ToPdfObject returns the PDF representation of the function.
+func (_cgafb *PdfFunctionType3 )ToPdfObject ()_dfg .PdfObject {_gebb :=_dfg .MakeDict ();_gebb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_dfg .MakeInteger (3));_fgfeb :=&_dfg .PdfObjectArray {};for _ ,_gfged :=range _cgafb .Domain {_fgfeb .Append (_dfg .MakeFloat (_gfged ));
+};_gebb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fgfeb );if _cgafb .Range !=nil {_bddaef :=&_dfg .PdfObjectArray {};for _ ,_feggd :=range _cgafb .Range {_bddaef .Append (_dfg .MakeFloat (_feggd ));};_gebb .Set ("\u0052\u0061\u006eg\u0065",_bddaef );
+};if _cgafb .Functions !=nil {_cfffe :=&_dfg .PdfObjectArray {};for _ ,_ddac :=range _cgafb .Functions {_cfffe .Append (_ddac .ToPdfObject ());};_gebb .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_cfffe );};if _cgafb .Bounds !=nil {_eeffc :=&_dfg .PdfObjectArray {};
+for _ ,_fdbgc :=range _cgafb .Bounds {_eeffc .Append (_dfg .MakeFloat (_fdbgc ));};_gebb .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_eeffc );};if _cgafb .Encode !=nil {_debdd :=&_dfg .PdfObjectArray {};for _ ,_dbcbg :=range _cgafb .Encode {_debdd .Append (_dfg .MakeFloat (_dbcbg ));
+};_gebb .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_debdd );};if _cgafb ._begcf !=nil {_cgafb ._begcf .PdfObject =_gebb ;return _cgafb ._begcf ;};return _gebb ;};
+
+// AcroFormRepairOptions contains options for rebuilding the AcroForm.
+type AcroFormRepairOptions struct{};
+
+// NewPdfOutlineItem returns an initialized PdfOutlineItem.
+func NewPdfOutlineItem ()*PdfOutlineItem {_edbcf :=&PdfOutlineItem {_fcecb :_dfg .MakeIndirectObject (_dfg .MakeDict ())};_edbcf ._cface =_edbcf ;return _edbcf ;};func (_ddbag *pdfFontSimple )addEncoding ()error {var (_dedf string ;_bggga map[_ff .CharCode ]_ff .GlyphName ;
+_ggbe _ff .SimpleEncoder ;);if _ddbag .Encoder ()!=nil {_ddbb ,_aedd :=_ddbag .Encoder ().(_ff .SimpleEncoder );if _aedd &&_ddbb !=nil {_dedf =_ddbb .BaseName ();};};if _ddbag .Encoding !=nil {_bgged ,_ggcea ,_ebgae :=_ddbag .getFontEncoding ();if _ebgae !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0073\u0065F\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0053u\u0062t\u0079\u0070\u0065\u003d\u0025\u0071\u0020\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003d\u0025\u0073 \u0028\u0025\u0054\u0029\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_ddbag ._dbcbc ,_ddbag ._gdab ,_ddbag .Encoding ,_ddbag .Encoding ,_ebgae );
+return _ebgae ;};if _bgged !=""{_dedf =_bgged ;};_bggga =_ggcea ;_ggbe ,_ebgae =_ff .NewSimpleTextEncoder (_dedf ,_bggga );if _ebgae !=nil {return _ebgae ;};};if _ggbe ==nil {_efgaa :=_ddbag ._cebfd ;if _efgaa !=nil {switch _ddbag ._gdab {case "\u0054\u0079\u0070e\u0031":if _efgaa .fontFile !=nil &&_efgaa ._adbgd !=nil {_egb .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
+_ggbe =_efgaa ._adbgd ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _efgaa ._gcge !=nil {_egb .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_ddbgb ,_fcdc :=_efgaa ._gcge .MakeEncoder ();
+if _fcdc ==nil {_ggbe =_ddbgb ;};if _ddbag ._bgdcbc ==nil {_ddbag ._bgdcbc =_efgaa ._gcge .MakeToUnicode ();};};};};};if _ggbe !=nil {if _bggga !=nil {_egb .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_bggga ,_ddbag .baseFields ());
+_ggbe =_ff .ApplyDifferences (_ggbe ,_bggga );};_ddbag .SetEncoder (_ggbe );};return nil ;};
+
+// GetRuneMetrics iterates through each font in the list of fonts the returns the fonts.CharMetrics from working font.
+func (_cbbdc *MultipleFontEncoder )GetRuneMetrics (r rune )(_bf .CharMetrics ,bool ){_acfg :=_cbbdc .CurrentFont ;_gafg ,_ccefb :=_acfg .GetRuneMetrics (r );for _egccgd :=1;_egccgd < len (_cbbdc ._ceede )&&_gafg .Wx ==0;_egccgd ++{_acfg =_cbbdc ._ceede [_egccgd ];
+_gafg ,_ccefb =_acfg .GetRuneMetrics (r );};return _gafg ,_ccefb ;};
+
+// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
+func (_bfbef *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_adae :=_efe .NewReader (img .getBase ());_affg :=_ef .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._baeef ,img ._begcc );
+_abbe :=_efe .NewWriter (_affg );_acgcd :=_df .Pow (2,float64 (img .BitsPerComponent ))-1;_bggg :=_bfbef .GetNumComponents ();_fgeb :=make ([]uint32 ,_bggg );_bcaed :=make ([]float64 ,_bggg );for {_faaf :=_adae .ReadSamples (_fgeb );if _faaf ==_edg .EOF {break ;
+}else if _faaf !=nil {return img ,_faaf ;};for _bdbgbe :=0;_bdbgbe < _bggg ;_bdbgbe ++{_daadg :=float64 (_fgeb [_bdbgbe ])/_acgcd ;_bcaed [_bdbgbe ]=_daadg ;};_eaea ,_faaf :=_bfbef .TintTransform .Evaluate (_bcaed );if _faaf !=nil {return img ,_faaf ;};
+for _ ,_cbdeg :=range _eaea {_cbdeg =_df .Min (_df .Max (0,_cbdeg ),1.0);if _faaf =_abbe .WriteSample (uint32 (_cbdeg *_acgcd ));_faaf !=nil {return img ,_faaf ;};};};return _bfbef .AlternateSpace .ImageToRGB (_deba (&_affg ));};
+
+// IsRadio returns true if the button field represents a radio button, false otherwise.
+func (_agbcf *PdfFieldButton )IsRadio ()bool {return _agbcf .GetType ()==ButtonTypeRadio };
+
+// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
+func NewReaderForText (txt string )*PdfReader {return &PdfReader {_fcecf :map[_dfg .PdfObject ]struct{}{},_acaed :_cebfb (),_agbcd :_dfg .NewParserFromString (txt )};};
+
+// NewPdfColorCalGray returns a new CalGray color.
+func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_aced :=PdfColorCalGray (grayVal );return &_aced ;};
+
+// GetContentStream returns the pattern cell's content stream
+func (_fcdg *PdfTilingPattern )GetContentStream ()([]byte ,error ){_ecdgg ,_ ,_eeggb :=_fcdg .GetContentStreamWithEncoder ();return _ecdgg ,_eeggb ;};
+
+// SetNumCopies sets the value of the numCopies.
+func (_cdddd *ViewerPreferences )SetNumCopies (numCopies int ){_cdddd ._gefff =numCopies };func _abfgc (_fafe *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_fafe }};func (_ccdga *PdfWriter )flushWriter ()error {if _ccdga ._afgfcg ==nil {_ccdga ._afgfcg =_ccdga ._bfdbg .Flush ();
+};return _ccdga ._afgfcg ;};
+
+// NewPdfFileSpecFromEmbeddedFile construct a new PdfFileSpec that contains an embedded file.
+func NewPdfFileSpecFromEmbeddedFile (file *EmbeddedFile )*PdfFilespec {_babec :=&PdfFilespec {};_babec ._bcadf =_dfg .MakeIndirectObject (_dfg .MakeDict ());_babec .Desc =_dfg .MakeString (file .Description );_babec .EF =file .ToPdfObject ();_babec .F =_dfg .MakeString (file .Name );
+_babec .UF =_dfg .MakeEncodedString (file .Name ,true );_fcbaf :="U\u006e\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064";switch file .Relationship {case RelationshipSource :_fcbaf ="\u0053\u006f\u0075\u0072\u0063\u0065";case RelationshipData :_fcbaf ="\u0044\u0061\u0074\u0061";
+case RelationshipAlternative :_fcbaf ="A\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065";case RelationshipSupplement :_fcbaf ="\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074";};_babec .AFRelationship =_dfg .MakeName (_fcbaf );
+return _babec ;};
+
+// PdfTilingPattern is a Tiling pattern that consists of repetitions of a pattern cell with defined intervals.
+// It is a type 1 pattern. (PatternType = 1).
+// A tiling pattern is represented by a stream object, where the stream content is
+// a content stream that describes the pattern cell.
+type PdfTilingPattern struct{*PdfPattern ;PaintType *_dfg .PdfObjectInteger ;TilingType *_dfg .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_dfg .PdfObjectFloat ;YStep *_dfg .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_dfg .PdfObjectArray ;};
+
+
+// NewPdfAnnotation returns an initialized generic PDF annotation model.
+func NewPdfAnnotation ()*PdfAnnotation {_cgd :=&PdfAnnotation {};_cgd ._afae =_dfg .MakeIndirectObject (_dfg .MakeDict ());return _cgd ;};func (_gcace *LTV )getCerts (_bcdea []*_de .Certificate )([][]byte ,error ){_fgcdc :=make ([][]byte ,0,len (_bcdea ));
+for _ ,_gedc :=range _bcdea {_fgcdc =append (_fgcdc ,_gedc .Raw );};return _fgcdc ,nil ;};
+
+// GetCatalogLanguage gets catalog Language object.
+func (_faeef *PdfReader )GetCatalogLanguage ()(_dfg .PdfObject ,bool ){if _faeef ._fbfgb ==nil {return nil ,false ;};_cadea :=_faeef ._fbfgb .Get ("\u004c\u0061\u006e\u0067");return _cadea ,_cadea !=nil ;};
+
+// GetRotate gets the inheritable rotate value, either from the page
+// or a higher up page/pages struct.
+func (_gbfa *PdfPage )GetRotate ()(int64 ,error ){if _gbfa .Rotate !=nil {return *_gbfa .Rotate ,nil ;};_addfg :=_gbfa .Parent ;for _addfg !=nil {_gebeb ,_fdccf :=_dfg .GetDict (_addfg );if !_fdccf {return 0,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063t\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079");
+};if _bcbaf :=_gebeb .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_bcbaf !=nil {_baefc ,_afdbc :=_dfg .GetInt (_bcbaf );if !_afdbc {return 0,_bd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};
+if _baefc !=nil {return int64 (*_baefc ),nil ;};return 0,_bd .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_addfg =_gebeb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_bd .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
+};
+
+// GetNumComponents returns the number of color components of the colorspace device.
+// Returns 1 for a CalGray device.
+func (_bbga *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
+
+// PrintScaling represents the page scaling option that shall be selected
+// when a print dialog is displayed for this document.
+type PrintScaling string ;
+
+// PdfActionGoTo represents a GoTo action.
+type PdfActionGoTo struct{*PdfAction ;D _dfg .PdfObject ;};func (_gagbd *PdfSignature )extractChainFromCert ()([]*_de .Certificate ,error ){var _cefeb *_dfg .PdfObjectArray ;switch _ebffb :=_gagbd .Cert .(type ){case *_dfg .PdfObjectString :_cefeb =_dfg .MakeArray (_ebffb );
+case *_dfg .PdfObjectArray :_cefeb =_ebffb ;default:return nil ,_d .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_ebffb );
+};var _agadf _cca .Buffer ;for _ ,_eedge :=range _cefeb .Elements (){_cbgbf ,_cfdgc :=_dfg .GetString (_eedge );if !_cfdgc {return nil ,_d .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_eedge );
+};if _ ,_gfbcde :=_agadf .Write (_cbgbf .Bytes ());_gfbcde !=nil {return nil ,_gfbcde ;};};return _de .ParseCertificates (_agadf .Bytes ());};
+
+// NewPdfColorspaceSpecialSeparation returns a new separation color.
+func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_fcddb :=&PdfColorspaceSpecialSeparation {};return _fcddb ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_effd *PdfAnnotationStrikeOut )ToPdfObject ()_dfg .PdfObject {_effd .PdfAnnotation .ToPdfObject ();_agfa :=_effd ._afae ;_dfcf :=_agfa .PdfObject .(*_dfg .PdfObjectDictionary );_effd .appendToPdfDictionary (_dfcf );_dfcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
+_dfcf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_effd .QuadPoints );return _agfa ;};
+
+// SetCatalogMarkInfo sets the catalog MarkInfo dictionary.
+func (_cggag *PdfWriter )SetCatalogMarkInfo (info _dfg .PdfObject )error {if info ==nil {_cggag ._acgcc .Remove ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return nil ;};if _bbbg ,_ccadd :=info .(*_dfg .PdfObjectReference );_ccadd {info =_bbbg .Resolve ();
+if info ==nil {_cggag ._acgcc .Remove ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return nil ;};};if _ ,_bfadge :=info .(*_dfg .PdfIndirectObject );_bfadge {_cggag .addObject (info );};_cggag ._acgcc .Set ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f",info );
+return nil ;};
+
+// String returns a human readable description of `fontfile`.
+func (_cadbe *fontFile )String ()string {_bfcfa :="\u005b\u004e\u006f\u006e\u0065\u005d";if _cadbe ._adbgd !=nil {_bfcfa =_cadbe ._adbgd .String ();};return _d .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_cadbe ._agcb ,_bfcfa );
+};var ImageHandling ImageHandler =DefaultImageHandler {};
+
+// NewPdfAnnotationCaret returns a new caret annotation.
+func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_bcag :=NewPdfAnnotation ();_eab :=&PdfAnnotationCaret {};_eab .PdfAnnotation =_bcag ;_eab .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcag .SetContext (_eab );return _eab ;};
+
+// ToPdfObject returns colorspace in a PDF object format [name stream]
+func (_febec *PdfColorspaceICCBased )ToPdfObject ()_dfg .PdfObject {_bagee :=&_dfg .PdfObjectArray {};_bagee .Append (_dfg .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _gdfb *_dfg .PdfObjectStream ;if _febec ._edadb !=nil {_gdfb =_febec ._edadb ;
+}else {_gdfb =&_dfg .PdfObjectStream {};};_ddbfg :=_dfg .MakeDict ();_ddbfg .Set ("\u004e",_dfg .MakeInteger (int64 (_febec .N )));if _febec .Alternate !=nil {_ddbfg .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_febec .Alternate .ToPdfObject ());
+};if _febec .Metadata !=nil {_ddbfg .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_febec .Metadata );};if _febec .Range !=nil {var _bcfd []_dfg .PdfObject ;for _ ,_dbgc :=range _febec .Range {_bcfd =append (_bcfd ,_dfg .MakeFloat (_dbgc ));};
+_ddbfg .Set ("\u0052\u0061\u006eg\u0065",_dfg .MakeArray (_bcfd ...));};_ddbfg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_dfg .MakeInteger (int64 (len (_febec .Data ))));_gdfb .Stream =_febec .Data ;_gdfb .PdfObjectDictionary =_ddbfg ;_bagee .Append (_gdfb );
+if _febec ._ggdb !=nil {_febec ._ggdb .PdfObject =_bagee ;return _febec ._ggdb ;};return _bagee ;};
+
+// PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides
+// a higher level access to work with PDF structure and information, such as the page structure etc.
+type PdfReader struct{_agbcd *_dfg .PdfParser ;_ceff _dfg .PdfObject ;_ffdb *_dfg .PdfIndirectObject ;_gfbee *_dfg .PdfObjectDictionary ;_ggbf []*_dfg .PdfIndirectObject ;PageList []*PdfPage ;_dfgg int ;_fbfgb *_dfg .PdfObjectDictionary ;_dagg *PdfOutlineTreeNode ;
+AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_efgca *Permissions ;_cceg map[*PdfReader ]*PdfReader ;_eaff []*PdfReader ;_acaed *modelManager ;_bafba bool ;_fcecf map[_dfg .PdfObject ]struct{};_cggac _edg .ReadSeeker ;_befaf string ;_ggda bool ;_aefda string ;
+_abef *ReaderOpts ;_faage bool ;};
+
+// ToPdfObject returns the PDF representation of the VRI dictionary.
+func (_eafef *VRI )ToPdfObject ()*_dfg .PdfObjectDictionary {_agaf :=_dfg .MakeDict ();_agaf .SetIfNotNil (_dfg .PdfObjectName ("\u0043\u0065\u0072\u0074"),_aedcf (_eafef .Cert ));_agaf .SetIfNotNil (_dfg .PdfObjectName ("\u004f\u0043\u0053\u0050"),_aedcf (_eafef .OCSP ));
+_agaf .SetIfNotNil (_dfg .PdfObjectName ("\u0043\u0052\u004c"),_aedcf (_eafef .CRL ));_agaf .SetIfNotNil ("\u0054\u0055",_eafef .TU );_agaf .SetIfNotNil ("\u0054\u0053",_eafef .TS );return _agaf ;};
+
+// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
+type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_dfg .PdfObjectBool ;SigFlags *_dfg .PdfObjectInteger ;CO *_dfg .PdfObjectArray ;DR *PdfPageResources ;DA *_dfg .PdfObjectString ;Q *_dfg .PdfObjectInteger ;XFA _dfg .PdfObject ;
+
+// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
+ADBEEchoSign _dfg .PdfObject ;_gddd *_dfg .PdfIndirectObject ;_ecfa bool ;};
+
+// PdfFieldSignature signature field represents digital signatures and optional data for authenticating
+// the name of the signer and verifying document contents.
+type PdfFieldSignature struct{*PdfField ;*PdfAnnotationWidget ;V *PdfSignature ;Lock *_dfg .PdfIndirectObject ;SV *_dfg .PdfIndirectObject ;};func (_dfdgg *LTV )getOCSPs (_abdge []*_de .Certificate ,_bfbag map[string ]*_de .Certificate )([][]byte ,error ){_bfgaf :=make ([][]byte ,0,len (_abdge ));
+for _ ,_bfeg :=range _abdge {for _ ,_ceedbf :=range _bfeg .OCSPServer {if _dfdgg .CertClient .IsCA (_bfeg ){continue ;};_cefc ,_afeaf :=_bfbag [_bfeg .Issuer .CommonName ];if !_afeaf {_egb .Log .Debug ("\u0057\u0041\u0052\u004e:\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067 \u004f\u0043\u0053\u0050\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074\u003a\u0020\u0069\u0073\u0073\u0075e\u0072\u0020\u0063\u0065\u0072t\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");
+continue ;};_ ,_caecf ,_agead :=_dfdgg .OCSPClient .MakeRequest (_ceedbf ,_bfeg ,_cefc );if _agead !=nil {_egb .Log .Debug ("\u0057\u0041\u0052\u004e:\u0020\u004f\u0043\u0053\u0050\u0020\u0072\u0065\u0071\u0075e\u0073t\u0020\u0065\u0072\u0072\u006f\u0072\u003a \u0025\u0076",_agead );
+continue ;};_bfgaf =append (_bfgaf ,_caecf );};};return _bfgaf ,nil ;};
+
+// ToPdfObject returns colorspace in a PDF object format [name dictionary]
+func (_bggcb *PdfColorspaceLab )ToPdfObject ()_dfg .PdfObject {_gcdb :=_dfg .MakeArray ();_gcdb .Append (_dfg .MakeName ("\u004c\u0061\u0062"));_cfdd :=_dfg .MakeDict ();if _bggcb .WhitePoint !=nil {_fecg :=_dfg .MakeArray (_dfg .MakeFloat (_bggcb .WhitePoint [0]),_dfg .MakeFloat (_bggcb .WhitePoint [1]),_dfg .MakeFloat (_bggcb .WhitePoint [2]));
+_cfdd .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_fecg );}else {_egb .Log .Error ("\u004c\u0061\u0062: \u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0057h\u0069t\u0065P\u006fi\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
+};if _bggcb .BlackPoint !=nil {_fffc :=_dfg .MakeArray (_dfg .MakeFloat (_bggcb .BlackPoint [0]),_dfg .MakeFloat (_bggcb .BlackPoint [1]),_dfg .MakeFloat (_bggcb .BlackPoint [2]));_cfdd .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_fffc );
+};if _bggcb .Range !=nil {_aeggb :=_dfg .MakeArray (_dfg .MakeFloat (_bggcb .Range [0]),_dfg .MakeFloat (_bggcb .Range [1]),_dfg .MakeFloat (_bggcb .Range [2]),_dfg .MakeFloat (_bggcb .Range [3]));_cfdd .Set ("\u0052\u0061\u006eg\u0065",_aeggb );};_gcdb .Append (_cfdd );
+if _bggcb ._abbf !=nil {_bggcb ._abbf .PdfObject =_gcdb ;return _bggcb ._abbf ;};return _gcdb ;};
+
+// CharMetrics represents width and height metrics of a glyph.
+type CharMetrics =_bf .CharMetrics ;func (_caee SignatureValidationResult )String ()string {var _cbge _cca .Buffer ;_cbge .WriteString (_d .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_caee .Name ));if _caee .Date ._accga > 0{_cbge .WriteString (_d .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_caee .Date .ToGoTime ().String ()));
+}else {_cbge .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_caee .Reason )> 0{_cbge .WriteString (_d .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_caee .Reason ));
+}else {_cbge .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_caee .Location )> 0{_cbge .WriteString (_d .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_caee .Location ));
+}else {_cbge .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_caee .ContactInfo )> 0{_cbge .WriteString (_d .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_caee .ContactInfo ));
+}else {_cbge .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_cbge .WriteString (_d .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_caee .Fields )));
+if _caee .IsSigned {_cbge .WriteString ("S\u0069\u0067\u006e\u0065\u0064\u003a \u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u0020i\u0073\u0020\u0073i\u0067n\u0065\u0064\u000a");}else {_cbge .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");
+};if _caee .IsVerified {_cbge .WriteString ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072e\u0020\u0076\u0061\u006c\u0069\u0064\u0061t\u0069\u006f\u006e\u003a\u0020\u0049\u0073\u0020\u0076\u0061\u006c\u0069\u0064\u000a");}else {_cbge .WriteString ("\u0053\u0069\u0067\u006e\u0061\u0074u\u0072\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074\u0069\u006f\u006e:\u0020\u0049\u0073\u0020\u0069\u006e\u0076a\u006c\u0069\u0064\u000a");
+};if _caee .IsTrusted {_cbge .WriteString ("\u0054\u0072\u0075\u0073\u0074\u0065\u0064\u003a\u0020\u0043\u0065\u0072\u0074\u0069\u0066i\u0063a\u0074\u0065\u0020\u0069\u0073\u0020\u0074\u0072\u0075\u0073\u0074\u0065\u0064\u000a");}else {_cbge .WriteString ("\u0054\u0072\u0075s\u0074\u0065\u0064\u003a \u0055\u006e\u0074\u0072\u0075\u0073\u0074e\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u000a");
+};if !_caee .GeneralizedTime .IsZero (){_cbge .WriteString (_d .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_caee .GeneralizedTime .String ()));};if _caee .DiffResults !=nil {_cbge .WriteString (_d .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_caee .DiffResults .IsPermitted ()));
+if len (_caee .DiffResults .Warnings )> 0{_cbge .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");for _ ,_bbee :=range _caee .DiffResults .Warnings {_cbge .WriteString (_d .Sprintf ("\u0009\u0025\u0073\u000a",_bbee ));
+};};if len (_caee .DiffResults .Errors )> 0{_cbge .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");for _ ,_ebca :=range _caee .DiffResults .Errors {_cbge .WriteString (_d .Sprintf ("\u0009\u0025\u0073\u000a",_ebca ));
+};};};if _caee .IsCrlFound {_cbge .WriteString ("R\u0065\u0076\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0061\u003a\u0020C\u0052\u004c\u0020f\u006fu\u006e\u0064\u000a");}else {_cbge .WriteString ("\u0052\u0065\u0076o\u0063\u0061\u0074\u0069o\u006e\u0020\u0064\u0061\u0074\u0061\u003a \u0043\u0052\u004c\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");
+};if _caee .IsOcspFound {_cbge .WriteString ("\u0052\u0065\u0076\u006fc\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u0066\u006f\u0075n\u0064\u000a");}else {_cbge .WriteString ("\u0052\u0065\u0076\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");
+};return _cbge .String ();};func (_afdg *PdfFilespec )getDict ()*_dfg .PdfObjectDictionary {if _fdgb ,_effc :=_afdg ._bcadf .(*_dfg .PdfIndirectObject );_effc {_dfba ,_eebc :=_fdgb .PdfObject .(*_dfg .PdfObjectDictionary );if !_eebc {return nil ;};return _dfba ;
+}else if _dabb ,_aecce :=_afdg ._bcadf .(*_dfg .PdfObjectDictionary );_aecce {return _dabb ;}else {_egb .Log .Debug ("\u0054\u0072\u0079\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020F\u0069\u006c\u0065\u0073\u0070\u0065\u0063\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u006f\u0062\u006a\u0065\u0063\u0074 \u0074\u0079p\u0065\u0020(\u0025T\u0029",_afdg ._bcadf );
+return nil ;};};
+
+// KValue is a wrapper object to hold various type of K's children objects.
+type KValue struct{_badbf *KDict ;_gbedc _dfg .PdfObject ;_dddge *int ;};func (_gbbed *pdfFontSimple )baseFields ()*fontCommon {return &_gbbed .fontCommon };
+
+// GetContext returns the action context which contains the specific type-dependent context.
+// The context represents the subaction.
+func (_eef *PdfAction )GetContext ()PdfModel {if _eef ==nil {return nil ;};return _eef ._bdb ;};
+
+// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
+func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_efc :=NewPdfAction ();_eeg :=&PdfActionGoTo3DView {};_eeg .PdfAction =_efc ;_efc .SetContext (_eeg );return _eeg ;};
+
+// PdfShading represents a shading dictionary. There are 7 types of shading,
+// indicatedby the shading type variable:
+// 1: Function-based shading.
+// 2: Axial shading.
+// 3: Radial shading.
+// 4: Free-form Gouraud-shaded triangle mesh.
+// 5: Lattice-form Gouraud-shaded triangle mesh.
+// 6: Coons patch mesh.
+// 7: Tensor-product patch mesh.
+// types 4-7 are contained in a stream object, where the dictionary is given by the stream dictionary.
+type PdfShading struct{ShadingType *_dfg .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_dfg .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_dfg .PdfObjectBool ;_fdbfb PdfModel ;_gdfdg _dfg .PdfObject ;};func _bbcge (_gecda *_dfg .PdfObjectDictionary )(*PdfShadingType2 ,error ){_bcgdb :=PdfShadingType2 {};
+_gddbd :=_gecda .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _gddbd ==nil {_egb .Log .Debug ("R\u0065\u0071\u0075\u0069\u0072\u0065d\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u006d\u0069\u0073s\u0069\u006e\u0067\u003a\u0020\u0020\u0043\u006f\u006f\u0072d\u0073");
+return nil ,ErrRequiredAttributeMissing ;};_aeag ,_fddaf :=_gddbd .(*_dfg .PdfObjectArray );if !_fddaf {_egb .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_gddbd );
+return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _aeag .Len ()!=4{_egb .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0034\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_aeag .Len ());
+return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_bcgdb .Coords =_aeag ;if _gcgc :=_gecda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_gcgc !=nil {_gcgc =_dfg .TraceToDirectObject (_gcgc );
+_afada ,_afef :=_gcgc .(*_dfg .PdfObjectArray );if !_afef {_egb .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_gcgc );return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
+};_bcgdb .Domain =_afada ;};_gddbd =_gecda .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _gddbd ==nil {_egb .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
+return nil ,ErrRequiredAttributeMissing ;};_bcgdb .Function =[]PdfFunction {};if _dcfd ,_dbfff :=_gddbd .(*_dfg .PdfObjectArray );_dbfff {for _ ,_afeb :=range _dcfd .Elements (){_ggecb ,_bccbc :=_gbada (_afeb );if _bccbc !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_bccbc );
+return nil ,_bccbc ;};_bcgdb .Function =append (_bcgdb .Function ,_ggecb );};}else {_cddgb ,_gagba :=_gbada (_gddbd );if _gagba !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_gagba );
+return nil ,_gagba ;};_bcgdb .Function =append (_bcgdb .Function ,_cddgb );};if _edaga :=_gecda .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_edaga !=nil {_edaga =_dfg .TraceToDirectObject (_edaga );_bcedbb ,_dccef :=_edaga .(*_dfg .PdfObjectArray );if !_dccef {_egb .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_edaga );
+return nil ,_dfg .ErrTypeError ;};if _bcedbb .Len ()!=2{_egb .Log .Debug ("\u0045\u0078\u0074\u0065n\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_bcedbb .Len ());return nil ,ErrInvalidAttribute ;
+};_bcgdb .Extend =_bcedbb ;};return &_bcgdb ,nil ;};func _ecedbf (_dbdg []byte )(_ccad ,_fcefg string ,_abgff error ){_egb .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_dbdg ));
+_bdfed :=_cccdc .FindIndex (_dbdg );if _bdfed ==nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0067\u0065\u0074\u0041\u0053\u0043\u0049\u0049\u0053\u0065\u0063\u0074\u0069o\u006e\u0073\u002e\u0020\u004e\u006f\u0020d\u0069\u0063\u0074\u002e");
+return "","",_dfg .ErrTypeError ;};_adefe :=_bdfed [1];_abbdd :=_af .Index (string (_dbdg [_adefe :]),_cfbdf );if _abbdd < 0{_ccad =string (_dbdg [_adefe :]);return _ccad ,"",nil ;};_dedfd :=_adefe +_abbdd ;_ccad =string (_dbdg [_adefe :_dedfd ]);_gdcbf :=_dedfd ;
+_abbdd =_af .Index (string (_dbdg [_gdcbf :]),_efdd );if _abbdd < 0{_egb .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0067e\u0074\u0041\u0053\u0043\u0049\u0049\u0053e\u0063\u0074\u0069\u006f\u006e\u0073\u002e\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_abgff );
+return "","",_dfg .ErrTypeError ;};_ggagda :=_gdcbf +_abbdd ;_fcefg =string (_dbdg [_gdcbf :_ggagda ]);return _ccad ,_fcefg ,nil ;};func (_ggg *PdfReader )newPdfAnnotationRichMediaFromDict (_ffgf *_dfg .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_cffg :=&PdfAnnotationRichMedia {};
+_cffg .RichMediaSettings =_ffgf .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_cffg .RichMediaContent =_ffgf .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
+return _cffg ,nil ;};
+
+// NewPdfAnnotationWidget returns an initialized annotation widget.
+func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_gadc :=NewPdfAnnotation ();_egfb :=&PdfAnnotationWidget {};_egfb .PdfAnnotation =_gadc ;_gadc .SetContext (_egfb );return _egfb ;};
+
+// NewPdfFontFromTTF loads a TTF font and returns a PdfFont type that can be
+// used in text styling functions.
+// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
+// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTF.
+func NewPdfFontFromTTF (r _edg .ReadSeeker )(*PdfFont ,error ){const _febdc =_ff .CharCode (32);const _dgbec =_ff .CharCode (255);_fdcf ,_bfgbc :=_edg .ReadAll (r );if _bfgbc !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020\u0072\u0065\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074s\u003a\u0020\u0025\u0076",_bfgbc );
+return nil ,_bfgbc ;};_agebb ,_bfgbc :=_bf .TtfParse (_cca .NewReader (_fdcf ));if _bfgbc !=nil {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020l\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0054\u0054F\u0020\u0066\u006fn\u0074:\u0020\u0025\u0076",_bfgbc );
+return nil ,_bfgbc ;};_abbd :=&pdfFontSimple {_aefba :make (map[_ff .CharCode ]float64 ),fontCommon :fontCommon {_gdab :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_abbd ._febca =_ff .NewWinAnsiEncoder ();_abbd ._dbcbc =_agebb .PostScriptName ;
+_abbd .FirstChar =_dfg .MakeInteger (int64 (_febdc ));_abbd .LastChar =_dfg .MakeInteger (int64 (_dgbec ));_gecbd :=1000.0/float64 (_agebb .UnitsPerEm );if len (_agebb .Widths )<=0{return nil ,_bd .New ("\u0045\u0052\u0052O\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065 \u0028\u0057\u0069\u0064\u0074\u0068\u0073\u0029");
+};_feded :=_gecbd *float64 (_agebb .Widths [0]);_ggba :=make ([]float64 ,0,_dgbec -_febdc +1);for _dfbae :=_febdc ;_dfbae <=_dgbec ;_dfbae ++{_cefec ,_ggfcd :=_abbd .Encoder ().CharcodeToRune (_dfbae );if !_ggfcd {_egb .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_dfbae );
+_ggba =append (_ggba ,_feded );continue ;};_gcag ,_ccgd :=_agebb .Chars [_cefec ];if !_ccgd {_egb .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_ggba =append (_ggba ,_feded );continue ;
+};_eeegg :=_gecbd *float64 (_agebb .Widths [_gcag ]);_ggba =append (_ggba ,_eeegg );};_abbd .Widths =_dfg .MakeIndirectObject (_dfg .MakeArrayFromFloats (_ggba ));if len (_ggba )< int (_dgbec -_febdc +1){_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0065\u006e\u0067t\u0068\u0020\u006f\u0066\u0020\u0077\u0069\u0064\u0074\u0068s,\u0020\u0025\u0064 \u003c \u0025\u0064",len (_ggba ),255-32+1);
+return nil ,_dfg .ErrRangeError ;};for _beaeb :=_febdc ;_beaeb <=_dgbec ;_beaeb ++{_abbd ._aefba [_beaeb ]=_ggba [_beaeb -_febdc ];};_abbd .Encoding =_dfg .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_gbfe :=&PdfFontDescriptor {};
+_gbfe .FontName =_dfg .MakeName (_agebb .PostScriptName );_gbfe .Ascent =_dfg .MakeFloat (_gecbd *float64 (_agebb .TypoAscender ));_gbfe .Descent =_dfg .MakeFloat (_gecbd *float64 (_agebb .TypoDescender ));_gbfe .CapHeight =_dfg .MakeFloat (_gecbd *float64 (_agebb .CapHeight ));
+_gbfe .FontBBox =_dfg .MakeArrayFromFloats ([]float64 {_gecbd *float64 (_agebb .Xmin ),_gecbd *float64 (_agebb .Ymin ),_gecbd *float64 (_agebb .Xmax ),_gecbd *float64 (_agebb .Ymax )});_gbfe .ItalicAngle =_dfg .MakeFloat (_agebb .ItalicAngle );_gbfe .MissingWidth =_dfg .MakeFloat (_gecbd *float64 (_agebb .Widths [0]));
+_acda ,_bfgbc :=_dfg .MakeStream (_fdcf ,_dfg .NewFlateEncoder ());if _bfgbc !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074o\u0020m\u0061\u006b\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_bfgbc );
+return nil ,_bfgbc ;};_acda .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_dfg .MakeInteger (int64 (len (_fdcf ))));_gbfe .FontFile2 =_acda ;if _agebb .Bold {_gbfe .StemV =_dfg .MakeInteger (120);}else {_gbfe .StemV =_dfg .MakeInteger (70);
+};_baef :=_cacg ;if _agebb .IsFixedPitch {_baef |=_dbacd ;};if _agebb .ItalicAngle !=0{_baef |=_dfdb ;};_gbfe .Flags =_dfg .MakeInteger (int64 (_baef ));_abbd ._cebfd =_gbfe ;_bbbec :=&PdfFont {_fab :_abbd };return _bbbec ,nil ;};
+
+// PdfColorspaceSpecialIndexed is an indexed color space is a lookup table, where the input element
+// is an index to the lookup table and the output is a color defined in the lookup table in the Base
+// colorspace.
+// [/Indexed base hival lookup]
+type PdfColorspaceSpecialIndexed struct{Base PdfColorspace ;HiVal int ;Lookup _dfg .PdfObject ;_gcee []byte ;_dda *_dfg .PdfIndirectObject ;};
+
+// AddPages adds pages to be appended to the end of the source PDF.
+func (_ecce *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_efeb :=range pages {_efeb =_efeb .Duplicate ();_gccaa (_efeb );_ecce ._egfc =append (_ecce ._egfc ,_efeb );};};func (_feedf *PdfReader )loadPerms ()(*Permissions ,error ){if _eebff :=_feedf ._fbfgb .Get ("\u0050\u0065\u0072m\u0073");
+_eebff !=nil {if _egdf ,_eadd :=_dfg .GetDict (_eebff );_eadd {_aeega :=_egdf .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _aeega ==nil {return nil ,nil ;};if _becea ,_dfbcac :=_dfg .GetIndirect (_aeega );_dfbcac {_cbfcb ,_gccbg :=_feedf .newPdfSignatureFromIndirect (_becea );
+if _gccbg !=nil {return nil ,_gccbg ;};return NewPermissions (_cbfcb ),nil ;};return nil ,_d .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");
+};return nil ,nil ;};func _eedcc (_ebbae _dfg .PdfObject ){_egb .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_ebbae ,_ebbae .String ());if _bdbbge ,_babde :=_ebbae .(*_dfg .PdfObjectStream );_babde {_geaef ,_efbdde :=_dfg .DecodeStream (_bdbbge );
+if _efbdde !=nil {_egb .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_efbdde );return ;};_egb .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_geaef );}else if _geagg ,_ddeae :=_ebbae .(*_dfg .PdfIndirectObject );
+_ddeae {_egb .Log .Debug ("\u0025\u0054\u0020%\u0076",_geagg .PdfObject ,_geagg .PdfObject );_egb .Log .Debug ("\u0025\u0073",_geagg .PdfObject .String ());};};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;
+BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;);
+
+// Reset sets the multi font encoder to its initial state.
+func (_fbgaf *MultipleFontEncoder )Reset (){_fbgaf .CurrentFont =_fbgaf ._ceede [0]};
+
+// SetXObjectFormByName adds the provided XObjectForm to the page resources.
+// The added XObjectForm is identified by the specified name.
+func (_geddd *PdfPageResources )SetXObjectFormByName (keyName _dfg .PdfObjectName ,xform *XObjectForm )error {_gcbd :=xform .ToPdfObject ().(*_dfg .PdfObjectStream );_gbcce :=_geddd .SetXObjectByName (keyName ,_gcbd );return _gbcce ;};
+
+// SetForms sets the Acroform for a PDF file.
+func (_ffegf *PdfWriter )SetForms (form *PdfAcroForm )error {_ffegf ._abcfe =form ;return nil };
+
+// NewPdfAnnotationText returns a new text annotation.
+func NewPdfAnnotationText ()*PdfAnnotationText {_aca :=NewPdfAnnotation ();_fbg :=&PdfAnnotationText {};_fbg .PdfAnnotation =_aca ;_fbg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aca .SetContext (_fbg );return _fbg ;};func (_fcbd *PdfReader )newPdfActionSoundFromDict (_bdba *_dfg .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_bdba .Get ("\u0053\u006f\u0075n\u0064"),Volume :_bdba .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_bdba .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_bdba .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_bdba .Get ("\u004d\u0069\u0078")},nil ;
+};
+
+// PdfAnnotationMarkup represents additional fields for mark-up annotations.
+// (Section 12.5.6.2 p. 399).
+type PdfAnnotationMarkup struct{T _dfg .PdfObject ;Popup *PdfAnnotationPopup ;CA _dfg .PdfObject ;RC _dfg .PdfObject ;CreationDate _dfg .PdfObject ;IRT _dfg .PdfObject ;Subj _dfg .PdfObject ;RT _dfg .PdfObject ;IT _dfg .PdfObject ;ExData _dfg .PdfObject ;
+};
+
+// IsDisplayDocTitle returns the value of the displayDocTitle flag.
+func (_beefa *ViewerPreferences )IsDisplayDocTitle ()bool {if _beefa ._dagge ==nil {return false ;};return *_beefa ._dagge ;};
+
+// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
+func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_deg :=&PdfAppender {_ggag :reader ._cggac ,Reader :reader ,_cggd :reader ._agbcd ,_bbf :reader ._fcecf };_afdc ,_eebae :=_deg ._ggag .Seek (0,_edg .SeekEnd );
+if _eebae !=nil {return nil ,_eebae ;};_deg ._bgdc =_afdc ;if _ ,_eebae =_deg ._ggag .Seek (0,_edg .SeekStart );_eebae !=nil {return nil ,_eebae ;};_deg ._eege ,_eebae =NewPdfReaderWithOpts (_deg ._ggag ,opts );if _eebae !=nil {return nil ,_eebae ;};for _ ,_eabc :=range _deg .Reader .GetObjectNums (){if _deg ._edab < _eabc {_deg ._edab =_eabc ;
+};};_deg ._bbcb =_deg ._cggd .GetXrefTable ();_deg ._gcf =_deg ._cggd .GetXrefOffset ();_deg ._egfc =append (_deg ._egfc ,_deg ._eege .PageList ...);_deg ._dadd =make (map[_dfg .PdfObject ]struct{});_deg ._effe =make (map[_dfg .PdfObject ]int64 );_deg ._gadd =make (map[_dfg .PdfObject ]struct{});
+_deg ._ebfe =_deg ._eege .AcroForm ;_deg ._caagc =_deg ._eege .DSS ;if opts !=nil {_deg ._bfb =opts .Password ;};if encryptOptions !=nil {_deg ._gefb =encryptOptions ;};return _deg ,nil ;};
+
+// GetRevision returns the specific version of the PdfReader for the current Pdf document
+func (_ebce *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_fbadg :=_ebce ._agbcd .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _fbadg {return nil ,_bd .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
+};if revisionNumber ==_fbadg {return _ebce ,nil ;};if _ebce ._eaff [revisionNumber ]!=nil {return _ebce ._eaff [revisionNumber ],nil ;};_agcdc :=_ebce ;for _caefaf :=_fbadg -1;_caefaf >=revisionNumber ;_caefaf --{_eefdd ,_fagce :=_agcdc .GetPreviousRevision ();
+if _fagce !=nil {return nil ,_fagce ;};_ebce ._eaff [_caefaf ]=_eefdd ;_agcdc =_eefdd ;};return _agcdc ,nil ;};func _bdfaa (_gdgcb _dfg .PdfObject )(*PdfColorspaceCalRGB ,error ){_dabdf :=NewPdfColorspaceCalRGB ();if _gdae ,_edbbd :=_gdgcb .(*_dfg .PdfIndirectObject );
+_edbbd {_dabdf ._fbag =_gdae ;};_gdgcb =_dfg .TraceToDirectObject (_gdgcb );_fbab ,_cfad :=_gdgcb .(*_dfg .PdfObjectArray );if !_cfad {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fbab .Len ()!=2{return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
+};_gdgcb =_dfg .TraceToDirectObject (_fbab .Get (0));_addf ,_cfad :=_gdgcb .(*_dfg .PdfObjectName );if !_cfad {return nil ,_d .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
+};if *_addf !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_d .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_gdgcb =_dfg .TraceToDirectObject (_fbab .Get (1));
+_ebece ,_cfad :=_gdgcb .(*_dfg .PdfObjectDictionary );if !_cfad {return nil ,_d .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
+};_gdgcb =_ebece .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gdgcb =_dfg .TraceToDirectObject (_gdgcb );_gcda ,_cfad :=_gdgcb .(*_dfg .PdfObjectArray );if !_cfad {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");
+};if _gcda .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_dbgae ,_gadb :=_gcda .GetAsFloat64Slice ();
+if _gadb !=nil {return nil ,_gadb ;};_dabdf .WhitePoint =_dbgae ;_gdgcb =_ebece .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gdgcb !=nil {_gdgcb =_dfg .TraceToDirectObject (_gdgcb );_bfdc ,_bagbg :=_gdgcb .(*_dfg .PdfObjectArray );
+if !_bagbg {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");};if _bfdc .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");
+};_cdbg ,_dae :=_bfdc .GetAsFloat64Slice ();if _dae !=nil {return nil ,_dae ;};_dabdf .BlackPoint =_cdbg ;};_gdgcb =_ebece .Get ("\u0047\u0061\u006dm\u0061");if _gdgcb !=nil {_gdgcb =_dfg .TraceToDirectObject (_gdgcb );_aaff ,_abae :=_gdgcb .(*_dfg .PdfObjectArray );
+if !_abae {return nil ,_d .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _aaff .Len ()!=3{return nil ,_d .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
+};_bbfb ,_fadee :=_aaff .GetAsFloat64Slice ();if _fadee !=nil {return nil ,_fadee ;};_dabdf .Gamma =_bbfb ;};_gdgcb =_ebece .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _gdgcb !=nil {_gdgcb =_dfg .TraceToDirectObject (_gdgcb );_gdaae ,_afac :=_gdgcb .(*_dfg .PdfObjectArray );
+if !_afac {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _gdaae .Len ()!=9{_egb .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_gdaae .String ());
+return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");};_aeba ,_abaee :=_gdaae .GetAsFloat64Slice ();if _abaee !=nil {return nil ,_abaee ;
+};_dabdf .Matrix =_aeba ;};return _dabdf ,nil ;};
+
+// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
+// The bool flag indicated whether it was found or not.
+func (_bacda *PdfPageResources )GetShadingByName (keyName _dfg .PdfObjectName )(*PdfShading ,bool ){if _bacda .Shading ==nil {return nil ,false ;};_efgaf ,_dabfg :=_dfg .TraceToDirectObject (_bacda .Shading ).(*_dfg .PdfObjectDictionary );if !_dabfg {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0068\u0061d\u0069\u006e\u0067\u0020\u0065\u006e\u0074r\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064i\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_bacda .Shading );
+return nil ,false ;};if _acbb :=_efgaf .Get (keyName );_acbb !=nil {_ggeag ,_bgadg :=_debbd (_acbb );if _bgadg !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020f\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u006c\u006fa\u0064\u0020\u0070\u0064\u0066\u0020\u0073\u0068\u0061\u0064\u0069\u006eg\u003a\u0020\u0025\u0076",_bgadg );
+return nil ,false ;};return _ggeag ,true ;};return nil ,false ;};func _afbab (_aeccf *_dfg .PdfObjectDictionary ,_gfab *fontCommon )(*pdfFontType0 ,error ){_ccbgd ,_dfbcd :=_dfg .GetArray (_aeccf .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
+if !_dfbcd {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049n\u0076\u0061\u006cid\u0020\u0044\u0065\u0073\u0063\u0065n\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073\u0020\u002d\u0020\u006e\u006f\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079 \u0025\u0073",_gfab );
+return nil ,_dfg .ErrRangeError ;};if _ccbgd .Len ()!=1{_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0041\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0031\u0020(%\u0064\u0029",_ccbgd .Len ());
+return nil ,_dfg .ErrRangeError ;};_gacf ,_afbgcg :=_gfaec (_ccbgd .Get (0),false );if _afbgcg !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046a\u0069\u006c\u0065d \u006c\u006f\u0061\u0064\u0069\u006eg\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u0020\u0066\u006f\u006et\u003a\u0020\u0065\u0072\u0072\u003d\u0025\u0076 \u0025\u0073",_afbgcg ,_gfab );
+return nil ,_afbgcg ;};_fbdff :=_aeccf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_gafe :="";_babc :=_dbdc (_gfab );_babc .DescendantFont =_gacf ;switch _aaage :=_fbdff .(type ){case *_dfg .PdfObjectName :_gafe ,_dfbcd =_dfg .GetNameVal (_fbdff );
+if _dfbcd {if _gafe =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_gafe =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_babc ._gbaf =_ff .NewIdentityTextEncoder (_gafe );}else if _efg .IsPredefinedCMap (_gafe ){_babc ._dfec ,_afbgcg =_efg .LoadPredefinedCMap (_gafe );
+if _afbgcg !=nil {_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020l\u006f\u0061\u0064\u0020\u0070\u0072\u0065\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0043\u004d\u0061\u0070\u0020\u0025\u0073\u003a\u0020\u0025\u0076",_gafe ,_afbgcg );
+};}else {_egb .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_gafe );};};case *_dfg .PdfObjectStream :if _babc ._eaaga ==nil {_bcbc ,_ffec :=_efg .NewCIDSystemInfo (_aaage .PdfObjectDictionary .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
+if _ffec !=nil {_egb .Log .Debug ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u0067\u0065\u0074\u0020\u0043\u0049D\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f\u003a\u0020\u0025\u0076",_ffec );};_ggedd :=_d .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_bcbc .Registry ,_bcbc .Ordering );
+if _efg .IsPredefinedCMap (_ggedd ){_babc ._dfec ,_ffec =_efg .LoadPredefinedCMap (_ggedd );if _ffec !=nil {_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020l\u006f\u0061\u0064\u0020\u0070\u0072\u0065\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0043\u004d\u0061\u0070\u0020\u0025\u0073\u003a\u0020\u0025\u0076",_ggedd ,_ffec );
+};}else {_ggedd =_aaage .PdfObjectDictionary .Get ("\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065").String ();_defdf ,_gdeee :=_dfg .DecodeStream (_aaage );if _gdeee !=nil {_egb .Log .Debug ("U\u006e\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0064\u0065\u0063\u006f\u0064\u0065\u0020s\u0074\u0072\u0065a\u006d:\u0020\u0025\u0076",_gdeee );
+return _babc ,_gdeee ;};if _daace :=_ggedd =="\u004f\u006ee\u0042\u0079\u0074e\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u0048"||_ggedd =="\u004f\u006ee\u0042\u0079\u0074e\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u0056";_daace {_babc ._dfec ,_gdeee =_efg .LoadCmapFromData (_defdf ,_daace );
+if _gdeee !=nil {_egb .Log .Debug ("\u0055\u006e\u0061\u0062\u006ce\u0020\u0074\u006f\u0020\u006c\u006f\u0061\u0064\u0020\u0043\u004d\u0061\u0070 \u0066\u0072\u006f\u006d\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076\u0020\u002d\u002d\u0020\u0025\u0076",_gdeee ,string (_defdf ));
+return _babc ,_gdeee ;};_eaeb :=make (map[_efg .CharCode ]rune ,256);for _ebga :=0x00;_ebga <=0xFF;_ebga ++{_eaeb [_efg .CharCode (_ebga )]=rune (_ebga );};_babc ._bgdcbc =_efg .NewToUnicodeCMap (_eaeb );};};};};if _abfg :=_gacf .baseFields ()._bgdcbc ;
+_abfg !=nil {if _eaeee :=_abfg .Name ();_eaeee =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_eaeee =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_eaeee =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_eaeee =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_babc ._gbaf =_ff .NewCMapEncoder (_gafe ,_babc ._dfec ,_abfg );
+};};return _babc ,nil ;};
+
+// ImageToRGB converts Lab colorspace image to RGB and returns the result.
+func (_dbfc *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_dbeb :=func (_cefdb float64 )float64 {if _cefdb >=6.0/29{return _cefdb *_cefdb *_cefdb ;};return 108.0/841*(_cefdb -4.0/29.0);};_eabd :=img ._begcc ;if len (_eabd )!=6{_egb .Log .Trace ("\u0049\u006d\u0061\u0067\u0065\u0020\u002d\u0020\u004c\u0061\u0062\u0020\u0044e\u0063\u006f\u0064\u0065\u0020\u0072\u0061\u006e\u0067e\u0020\u0021\u003d\u0020\u0036\u002e\u002e\u002e\u0020\u0075\u0073\u0065\u0020\u005b0\u0020\u0031\u0030\u0030\u0020\u0061\u006d\u0069\u006e\u0020\u0061\u006d\u0061\u0078\u0020\u0062\u006d\u0069\u006e\u0020\u0062\u006d\u0061\u0078\u005d\u0020\u0064\u0065\u0066\u0061u\u006c\u0074\u0020\u0064\u0065\u0063\u006f\u0064\u0065 \u0061\u0072r\u0061\u0079");
+_eabd =_dbfc .DecodeArray ();};_ddbe :=_efe .NewReader (img .getBase ());_edgbg :=_ef .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._baeef ,img ._begcc );_faab :=_efe .NewWriter (_edgbg );_cddgc :=_df .Pow (2,float64 (img .BitsPerComponent ))-1;
+_gdbf :=make ([]uint32 ,3);var (_bged error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_eebg ,_eadbd ,_dbdbe float64 ;);for {_bged =_ddbe .ReadSamples (_gdbf );if _bged ==_edg .EOF {break ;}else if _bged !=nil {return img ,_bged ;};Ls =float64 (_gdbf [0])/_cddgc ;
+As =float64 (_gdbf [1])/_cddgc ;Bs =float64 (_gdbf [2])/_cddgc ;Ls =_ef .LinearInterpolate (Ls ,0.0,1.0,_eabd [0],_eabd [1]);As =_ef .LinearInterpolate (As ,0.0,1.0,_eabd [2],_eabd [3]);Bs =_ef .LinearInterpolate (Bs ,0.0,1.0,_eabd [4],_eabd [5]);L =(Ls +16)/116+As /500;
+M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_dbfc .WhitePoint [0]*_dbeb (L );Y =_dbfc .WhitePoint [1]*_dbeb (M );Z =_dbfc .WhitePoint [2]*_dbeb (N );_eebg =3.240479*X +-1.537150*Y +-0.498535*Z ;_eadbd =-0.969256*X +1.875992*Y +0.041556*Z ;_dbdbe =0.055648*X +-0.204043*Y +1.057311*Z ;
+_eebg =_df .Min (_df .Max (_eebg ,0),1.0);_eadbd =_df .Min (_df .Max (_eadbd ,0),1.0);_dbdbe =_df .Min (_df .Max (_dbdbe ,0),1.0);_gdbf [0]=uint32 (_eebg *_cddgc );_gdbf [1]=uint32 (_eadbd *_cddgc );_gdbf [2]=uint32 (_dbdbe *_cddgc );if _bged =_faab .WriteSamples (_gdbf );
+_bged !=nil {return img ,_bged ;};};return _deba (&_edgbg ),nil ;};
+
+// DecodeArray returns the range of color component values in DeviceGray colorspace.
+func (_bddg *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
+
+// PdfAnnotationText represents Text annotations.
+// (Section 12.5.6.4 p. 402).
+type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _dfg .PdfObject ;Name _dfg .PdfObject ;State _dfg .PdfObject ;StateModel _dfg .PdfObject ;};
+
+// NewPdfOutline returns an initialized PdfOutline.
+func NewPdfOutline ()*PdfOutline {_ecebf :=&PdfOutline {_gcdeg :_dfg .MakeIndirectObject (_dfg .MakeDict ())};_ecebf ._cface =_ecebf ;return _ecebf ;};
+
+// GetContainingPdfObject implements interface PdfModel.
+func (_baddd *PdfSignature )GetContainingPdfObject ()_dfg .PdfObject {return _baddd ._fdeb };
+
+// NewOutline returns a new outline instance.
+func NewOutline ()*Outline {return &Outline {}};func (_bbba *PdfWriter )seekByName (_cfgab _dfg .PdfObject ,_cdccbc []string ,_dcbfa string )([]_dfg .PdfObject ,error ){_egb .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_cfgab );
+var _begcg []_dfg .PdfObject ;if _cfgdg ,_cdbdcg :=_cfgab .(*_dfg .PdfIndirectObject );_cdbdcg {return _bbba .seekByName (_cfgdg .PdfObject ,_cdccbc ,_dcbfa );};if _bcffb ,_dggg :=_cfgab .(*_dfg .PdfObjectStream );_dggg {return _bbba .seekByName (_bcffb .PdfObjectDictionary ,_cdccbc ,_dcbfa );
+};if _eebge ,_fdfeg :=_cfgab .(*_dfg .PdfObjectDictionary );_fdfeg {_egb .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_cgccgd :=range _eebge .Keys (){_aegfe :=_eebge .Get (_cgccgd );if string (_cgccgd )==_dcbfa {_begcg =append (_begcg ,_aegfe );};for _ ,_cfgec :=range _cdccbc {if string (_cgccgd )==_cfgec {_egb .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_cfgec );
+_afbaf ,_bcfgb :=_bbba .seekByName (_aegfe ,_cdccbc ,_dcbfa );if _bcfgb !=nil {return _begcg ,_bcfgb ;};_begcg =append (_begcg ,_afbaf ...);break ;};};};return _begcg ,nil ;};return _begcg ,nil ;};
+
+// NewPdfActionThread returns a new "thread" action.
+func NewPdfActionThread ()*PdfActionThread {_ad :=NewPdfAction ();_ce :=&PdfActionThread {};_ce .PdfAction =_ad ;_ad .SetContext (_ce );return _ce ;};func (_cggg *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _cggg ._cebfd };func _fagb (_cde _dfg .PdfObject )(*PdfBorderStyle ,error ){_aaec :=&PdfBorderStyle {};
+_aaec ._gcac =_cde ;var _bbd *_dfg .PdfObjectDictionary ;_cde =_dfg .TraceToDirectObject (_cde );_bbd ,_efde :=_cde .(*_dfg .PdfObjectDictionary );if !_efde {return nil ,_bd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _ggdg :=_bbd .Get ("\u0054\u0079\u0070\u0065");
+_ggdg !=nil {_febcg ,_bdbgb :=_ggdg .(*_dfg .PdfObjectName );if !_bdbgb {_egb .Log .Debug ("I\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062i\u006c\u0069\u0074\u0079\u0020\u0077\u0069th\u0020\u0054\u0079\u0070e\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u006e\u0061me\u0020\u006fb\u006a\u0065\u0063\u0074\u003a\u0020\u0025\u0054",_ggdg );
+}else {if *_febcg !="\u0042\u006f\u0072\u0064\u0065\u0072"{_egb .Log .Debug ("W\u0061\u0072\u006e\u0069\u006e\u0067,\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020B\u006f\u0072\u0064e\u0072:\u0020\u0025\u0073",*_febcg );};};};if _dabe :=_bbd .Get ("\u0057");
+_dabe !=nil {_gagg ,_daa :=_dfg .GetNumberAsFloat (_dabe );if _daa !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_daa );return nil ,_daa ;};_aaec .W =&_gagg ;
+};if _agde :=_bbd .Get ("\u0053");_agde !=nil {_aebf ,_adg :=_agde .(*_dfg .PdfObjectName );if !_adg {return nil ,_bd .New ("\u0062\u006f\u0072\u0064\u0065\u0072\u0020\u0053\u0020\u006e\u006ft\u0020\u0061\u0020\u006e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
+};var _edbbe BorderStyle ;switch *_aebf {case "\u0053":_edbbe =BorderStyleSolid ;case "\u0044":_edbbe =BorderStyleDashed ;case "\u0042":_edbbe =BorderStyleBeveled ;case "\u0049":_edbbe =BorderStyleInset ;case "\u0055":_edbbe =BorderStyleUnderline ;default:_egb .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_aebf );
+return nil ,_bd .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_aaec .S =&_edbbe ;};if _adea :=_bbd .Get ("\u0044");_adea !=nil {_gbaad ,_cfefe :=_adea .(*_dfg .PdfObjectArray );
+if !_cfefe {_egb .Log .Debug ("\u0042\u006f\u0072\u0064\u0065\u0072\u0020\u0044\u0020\u0064a\u0073\u0068\u0020\u006e\u006f\u0074\u0020a\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0054",_adea );return nil ,_bd .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
+};_bcgb ,_cegdc :=_gbaad .ToIntegerArray ();if _cegdc !=nil {_egb .Log .Debug ("\u0042\u006f\u0072\u0064\u0065\u0072\u0020\u0044 \u0050\u0072\u006fbl\u0065\u006d\u0020\u0063\u006f\u006ev\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0069\u006e\u0074\u0065\u0067e\u0072\u0020\u0061\u0072\u0072\u0061\u0079\u003a \u0025\u0076",_cegdc );
+return nil ,_cegdc ;};_aaec .D =&_bcgb ;};return _aaec ,nil ;};
+
+// GetCustomInfo returns a custom info value for the specified name.
+func (_cabc *PdfInfo )GetCustomInfo (name string )*_dfg .PdfObjectString {var _dffbf *_dfg .PdfObjectString ;if _cabc ._gdaaeb ==nil {return _dffbf ;};if _bacad ,_edfa :=_cabc ._gdaaeb .Get (*_dfg .MakeName (name )).(*_dfg .PdfObjectString );_edfa {_dffbf =_bacad ;
+};return _dffbf ;};
+
+// PdfColorspace interface defines the common methods of a PDF colorspace.
+// The colorspace defines the data storage format for each color and color representation.
+//
+// Device based colorspace, specified by name
+// - /DeviceGray
+// - /DeviceRGB
+// - /DeviceCMYK
+//
+// CIE based colorspace specified by [name, dictionary]
+// - [/CalGray dict]
+// - [/CalRGB dict]
+// - [/Lab dict]
+// - [/ICCBased dict]
+//
+// Special colorspaces
+// - /Pattern
+// - /Indexed
+// - /Separation
+// - /DeviceN
+//
+// Work is in progress to support all colorspaces. At the moment ICCBased color spaces fall back to the alternate
+// colorspace which works OK in most cases. For full color support, will need fully featured ICC support.
+type PdfColorspace interface{
+
+// String returns the PdfColorspace's name.
+String ()string ;
+
+// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
+ImageToRGB (Image )(Image ,error );
+
+// ColorToRGB converts a single color in a given PdfColorspace to an RGB color.
+ColorToRGB (_ddga PdfColor )(PdfColor ,error );
+
+// GetNumComponents returns the number of components in the PdfColorspace.
+GetNumComponents ()int ;
+
+// ToPdfObject returns a PdfObject representation of the PdfColorspace.
+ToPdfObject ()_dfg .PdfObject ;
+
+// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
+// PdfObject represents a numeric value.
+ColorFromPdfObjects (_bbge []_dfg .PdfObject )(PdfColor ,error );
+
+// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
+ColorFromFloats (_eecd []float64 )(PdfColor ,error );
+
+// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
+DecodeArray ()[]float64 ;};
+
+// SetColorspaceByName adds the provided colorspace to the page resources.
+func (_abbea *PdfPageResources )SetColorspaceByName (keyName _dfg .PdfObjectName ,cs PdfColorspace )error {_deadga ,_dbfca :=_abbea .GetColorspaces ();if _dbfca !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_dbfca );
+return _dbfca ;};if _deadga ==nil {_deadga =NewPdfPageResourcesColorspaces ();_abbea .SetColorSpace (_deadga );};_deadga .Set (keyName ,cs );return nil ;};
+
+// Height returns the height of `rect`.
+func (_gcbag *PdfRectangle )Height ()float64 {return _df .Abs (_gcbag .Ury -_gcbag .Lly )};
+
+// PdfActionSubmitForm represents a submitForm action.
+type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _dfg .PdfObject ;Flags _dfg .PdfObject ;};var _ pdfFont =(*pdfFontType3 )(nil );func (_dfgbf *pdfFontSimple )getFontEncoding ()(_cega string ,_cacf map[_ff .CharCode ]_ff .GlyphName ,_baaga error ){_cega ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
+if _bcbda ,_cgab :=_acaaf [_dfgbf ._dbcbc ];_cgab {_cega =_bcbda ;}else if _dfgbf .fontFlags ()&_dfefc !=0{for _edfaad ,_acffe :=range _acaaf {if _af .Contains (_dfgbf ._dbcbc ,_edfaad ){_cega =_acffe ;break ;};};};if _dfgbf .Encoding ==nil {return _cega ,nil ,nil ;
+};switch _faee :=_dfgbf .Encoding .(type ){case *_dfg .PdfObjectName :return string (*_faee ),nil ,nil ;case *_dfg .PdfObjectDictionary :_fgcag ,_cefee :=_dfg .GetName (_faee .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
+if _cefee {_cega =_fgcag .String ();};if _egggb :=_faee .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_egggb !=nil {_egcf ,_gbdd :=_dfg .GetArray (_egggb );if !_gbdd {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042a\u0064\u0020\u0066on\u0074\u0020\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u0020\u0064\u0069\u0063\u0074\u003d\u0025\u002b\u0076\u0020\u0044\u0069f\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073=\u0025\u0054",_faee ,_faee .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
+return "",nil ,_dfg .ErrTypeError ;};_cacf ,_baaga =_ff .FromFontDifferences (_egcf );};return _cega ,_cacf ,_baaga ;default:_egb .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u006e\u0061\u006d\u0065\u0020\u006f\u0072\u0020\u0064\u0069\u0063t\u0020\u0028\u0025\u0054\u0029\u0020\u0025\u0073",_dfgbf .Encoding ,_dfgbf .Encoding );
+return "",nil ,_dfg .ErrTypeError ;};};
+
+// HasPatternByName checks whether a pattern object is defined by the specified keyName.
+func (_gbcd *PdfPageResources )HasPatternByName (keyName _dfg .PdfObjectName )bool {_ ,_aafgg :=_gbcd .GetPatternByName (keyName );return _aafgg ;};
+
+// GetOutlines returns a high-level Outline object, based on the outline tree
+// of the reader.
+func (_dbcaf *PdfReader )GetOutlines ()(*Outline ,error ){if _dbcaf ==nil {return nil ,_bd .New ("\u0063\u0061n\u006e\u006f\u0074\u0020c\u0072\u0065a\u0074\u0065\u0020\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u006e\u0069\u006c\u0020\u0072e\u0061\u0064\u0065\u0072");
+};_dabdff :=_dbcaf .GetOutlineTree ();if _dabdff ==nil {return nil ,_bd .New ("\u0074\u0068\u0065\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0072\u0065\u0061\u0064e\u0072\u0020\u0064\u006f\u0065\u0073\u0020n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u006e\u0020o\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065");
+};var _eadbdf func (_fdgcb *PdfOutlineTreeNode ,_gdcga *[]*OutlineItem );_eadbdf =func (_efdbb *PdfOutlineTreeNode ,_ggfbb *[]*OutlineItem ){if _efdbb ==nil {return ;};if _efdbb ._cface ==nil {_egb .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020m\u0069\u0073\u0073\u0069ng \u006fut\u006c\u0069\u006e\u0065\u0020\u0065\u006etr\u0079\u0020\u0063\u006f\u006e\u0074\u0065x\u0074");
+return ;};var _ffadb *OutlineItem ;if _acaee ,_gcgfb :=_efdbb ._cface .(*PdfOutlineItem );_gcgfb {_gded :=_acaee .Dest ;if (_gded ==nil ||_dfg .IsNullObject (_gded ))&&_acaee .A !=nil {if _aegb ,_fgffe :=_dfg .GetDict (_acaee .A );_fgffe {if _fafga ,_aebacg :=_dfg .GetArray (_aegb .Get ("\u0044"));
+_aebacg {_gded =_fafga ;}else {_eaeec ,_gcffd :=_dfg .GetString (_aegb .Get ("\u0044"));if !_gcffd {return ;};_gbdeg ,_gcffd :=_dbcaf ._fbfgb .Get ("\u004e\u0061\u006de\u0073").(*_dfg .PdfObjectReference );if !_gcffd {return ;};_dcbbe ,_aebbg :=_dbcaf ._agbcd .LookupByReference (*_gbdeg );
+if _aebbg !=nil {_egb .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0020\u0028\u0025\u0073\u0029",_aebbg .Error ());
+return ;};_cffga ,_gcffd :=_dcbbe .(*_dfg .PdfIndirectObject );if !_gcffd {return ;};_aadgg :=map[_dfg .PdfObject ]struct{}{};_aebbg =_dbcaf .buildNameNodes (_cffga ,_aadgg );if _aebbg !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006ea\u006d\u0065\u0020\u006e\u006fd\u0065\u0073 \u0028\u0025\u0073\u0029",_aebbg .Error ());
+return ;};for _acfda :=range _aadgg {_degg ,_bddaa :=_dfg .GetDict (_acfda );if !_bddaa {continue ;};_cccdb ,_bddaa :=_dfg .GetArray (_degg .Get ("\u004e\u0061\u006de\u0073"));if !_bddaa {continue ;};for _adgdgfc ,_bdef :=range _cccdb .Elements (){switch _bdef .(type ){case *_dfg .PdfObjectString :if _bdef .String ()==_eaeec .String (){if _cfba :=_cccdb .Get (_adgdgfc +1);
+_cfba !=nil {if _dcad ,_adefa :=_dfg .GetDict (_cfba );_adefa {_gded =_dcad .Get ("\u0044");break ;};};};};};};};};};var _agbbe OutlineDest ;if _gded !=nil &&!_dfg .IsNullObject (_gded ){if _efffb ,_gbgbg :=_cgbf (_gded ,_dbcaf );_gbgbg ==nil {_agbbe =*_efffb ;
+}else {_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020p\u0061\u0072\u0073\u0065\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0064\u0065\u0073\u0074\u0020\u0028\u0025\u0076\u0029\u003a\u0020\u0025\u0076",_gded ,_gbgbg );
+};};_ffadb =NewOutlineItem (_acaee .Title .Decoded (),_agbbe );*_ggfbb =append (*_ggfbb ,_ffadb );if _acaee .Next !=nil {_eadbdf (_acaee .Next ,_ggfbb );};};if _efdbb .First !=nil {if _ffadb !=nil {_ggfbb =&_ffadb .Entries ;};_eadbdf (_efdbb .First ,_ggfbb );
+};};_bffa :=NewOutline ();_eadbdf (_dabdff ,&_bffa .Entries );return _bffa ,nil ;};func _adgdg (_aedbg _dfg .PdfObject )*Names {_agbb :=_ffad ();_fcda :=_dfg .TraceToDirectObject (_aedbg ).(*_dfg .PdfObjectDictionary );if _aeffg :=_fcda .Get ("\u0044\u0065\u0073t\u0073");
+_aeffg !=nil {_agbb .Dests =_dfg .TraceToDirectObject (_aeffg ).(*_dfg .PdfObjectDictionary );};if _bfcgg :=_fcda .Get ("\u0041\u0050");_bfcgg !=nil {_agbb .AP =_dfg .TraceToDirectObject (_bfcgg ).(*_dfg .PdfObjectDictionary );};if _bcef :=_fcda .Get ("\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074");
+_bcef !=nil {_agbb .JavaScript =_dfg .TraceToDirectObject (_bcef ).(*_dfg .PdfObjectDictionary );};if _efcd :=_fcda .Get ("\u0050\u0061\u0067e\u0073");_efcd !=nil {_agbb .Pages =_dfg .TraceToDirectObject (_efcd ).(*_dfg .PdfObjectDictionary );};if _acbg :=_fcda .Get ("\u0054e\u006d\u0070\u006c\u0061\u0074\u0065s");
+_acbg !=nil {_agbb .Templates =_dfg .TraceToDirectObject (_acbg ).(*_dfg .PdfObjectDictionary );};if _cbab :=_fcda .Get ("\u0049\u0044\u0053");_cbab !=nil {_agbb .IDS =_dfg .TraceToDirectObject (_cbab ).(*_dfg .PdfObjectDictionary );};if _cdac :=_fcda .Get ("\u0055\u0052\u004c\u0053");
+_cdac !=nil {_agbb .URLS =_dfg .TraceToDirectObject (_cdac ).(*_dfg .PdfObjectDictionary );};if _acba :=_fcda .Get ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0046\u0069\u006c\u0065\u0073");_acba !=nil {_agbb .EmbeddedFiles =_dfg .TraceToDirectObject (_acba ).(*_dfg .PdfObjectDictionary );
+};if _ggcab :=_fcda .Get ("\u0041\u006c\u0074\u0065rn\u0061\u0074\u0065\u0050\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006fn\u0073");_ggcab !=nil {_agbb .AlternatePresentations =_dfg .TraceToDirectObject (_ggcab ).(*_dfg .PdfObjectDictionary );
+};if _caede :=_fcda .Get ("\u0052\u0065\u006e\u0064\u0069\u0074\u0069\u006f\u006e\u0073");_caede !=nil {_agbb .Renditions =_dfg .TraceToDirectObject (_caede ).(*_dfg .PdfObjectDictionary );};return _agbb ;};
+
+// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
+// be numeric.
+func (_acgb *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if len (objects )!=_acgb .GetNumComponents (){return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdbc ,_gbcg :=_dfg .GetNumbersAsFloat (objects );
+if _gbcg !=nil {return nil ,_gbcg ;};return _acgb .ColorFromFloats (_bdbc );};func (_gacc PdfFont )actualFont ()pdfFont {if _gacc ._fab ==nil {_egb .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0061\u0063\u0074\u0075\u0061\u006c\u0046\u006f\u006e\u0074\u002e\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c.\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gacc );
+};return _gacc ._fab ;};func _dffdg (_cceee map[_bf .GID ]int ,_dbaeg uint16 )*_dfg .PdfObjectArray {_adbc :=&_dfg .PdfObjectArray {};_bgdd :=_bf .GID (_dbaeg );for _efbb :=_bf .GID (0);_efbb < _bgdd ;{_dedba ,_fdbab :=_cceee [_efbb ];if !_fdbab {_efbb ++;
+continue ;};_dgbcc :=_efbb ;for _cfcb :=_dgbcc +1;_cfcb < _bgdd ;_cfcb ++{if _cbeb ,_fecf :=_cceee [_cfcb ];!_fecf ||_dedba !=_cbeb {break ;};_dgbcc =_cfcb ;};_adbc .Append (_dfg .MakeInteger (int64 (_efbb )));_adbc .Append (_dfg .MakeInteger (int64 (_dgbcc )));
+_adbc .Append (_dfg .MakeInteger (int64 (_dedba )));_efbb =_dgbcc +1;};return _adbc ;};
+
+// PdfColor interface represents a generic color in PDF.
+type PdfColor interface{};
+
+// NewPdfActionLaunch returns a new "launch" action.
+func NewPdfActionLaunch ()*PdfActionLaunch {_dac :=NewPdfAction ();_afa :=&PdfActionLaunch {};_afa .PdfAction =_dac ;_dac .SetContext (_afa );return _afa ;};func (_abbef *PdfAcroForm )filteredFields (_fddef FieldFilterFunc ,_bfefd bool )[]*PdfField {if _abbef ==nil {return nil ;
+};return _bfdb (_abbef .Fields ,_fddef ,_bfefd );};
+
+// NewPdfColorspaceLab returns a new Lab colorspace object.
+func NewPdfColorspaceLab ()*PdfColorspaceLab {_dddb :=&PdfColorspaceLab {};_dddb .BlackPoint =[]float64 {0.0,0.0,0.0};_dddb .Range =[]float64 {-100,100,-100,100};return _dddb ;};
+
+// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
+// component PDF objects.
+func (_bgcdg *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if _bgcdg .Alternate ==nil {if _bgcdg .N ==1{_eddf :=NewPdfColorspaceDeviceGray ();return _eddf .ColorFromPdfObjects (objects );}else if _bgcdg .N ==3{_cfbb :=NewPdfColorspaceDeviceRGB ();
+return _cfbb .ColorFromPdfObjects (objects );}else if _bgcdg .N ==4{_adeae :=NewPdfColorspaceDeviceCMYK ();return _adeae .ColorFromPdfObjects (objects );}else {return nil ,_bd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
+};};return _bgcdg .Alternate .ColorFromPdfObjects (objects );};
+
+// Clear clears the KValue.
+func (_fgfg *KValue )Clear (){_fgfg ._badbf =nil ;_fgfg ._gbedc =nil ;_fgfg ._dddge =nil };
+
+// ToPdfObject returns the PDF representation of the function.
+func (_ffcfe *PdfFunctionType4 )ToPdfObject ()_dfg .PdfObject {_cfddc :=_ffcfe ._gbaed ;if _cfddc ==nil {_ffcfe ._gbaed =&_dfg .PdfObjectStream {};_cfddc =_ffcfe ._gbaed ;};_ffbfba :=_dfg .MakeDict ();_ffbfba .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_dfg .MakeInteger (4));
+_ccdcg :=&_dfg .PdfObjectArray {};for _ ,_gbged :=range _ffcfe .Domain {_ccdcg .Append (_dfg .MakeFloat (_gbged ));};_ffbfba .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ccdcg );_ceafc :=&_dfg .PdfObjectArray {};for _ ,_fcedg :=range _ffcfe .Range {_ceafc .Append (_dfg .MakeFloat (_fcedg ));
+};_ffbfba .Set ("\u0052\u0061\u006eg\u0065",_ceafc );if _ffcfe ._gbgcb ==nil &&_ffcfe .Program !=nil {_ffcfe ._gbgcb =[]byte (_ffcfe .Program .String ());};_ffbfba .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_dfg .MakeInteger (int64 (len (_ffcfe ._gbgcb ))));
+_cfddc .Stream =_ffcfe ._gbgcb ;_cfddc .PdfObjectDictionary =_ffbfba ;return _cfddc ;};
+
+// FieldAppearanceGenerator generates appearance stream for a given field.
+type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_befe *PdfAcroForm ,_egdg *PdfField ,_fgage *PdfAnnotationWidget )(*_dfg .PdfObjectDictionary ,error );};
+
+// PdfShadingType6 is a Coons patch mesh.
+type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_dfg .PdfObjectInteger ;BitsPerComponent *_dfg .PdfObjectInteger ;BitsPerFlag *_dfg .PdfObjectInteger ;Decode *_dfg .PdfObjectArray ;Function []PdfFunction ;};
+
+// Decrypt decrypts the PDF file with a specified password. Also tries to
+// decrypt with an empty password. Returns true if successful,
+// false otherwise.
+func (_dabcc *PdfReader )Decrypt (password []byte )(bool ,error ){_gebbd ,_acbgf :=_dabcc ._agbcd .Decrypt (password );if _acbgf !=nil {return false ,_acbgf ;};if !_gebbd {return false ,nil ;};_acbgf =_dabcc .loadStructure ();if _acbgf !=nil {_egb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0046\u0061\u0069\u006c\u0020\u0074\u006f \u006co\u0061d\u0020s\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065\u0020\u0028\u0025\u0073\u0029",_acbgf );
+return false ,_acbgf ;};return true ,nil ;};
+
+// GetAllContentStreams gets all the content streams for a page as one string.
+func (_ggfg *PdfPage )GetAllContentStreams ()(string ,error ){_aebe ,_ggceb :=_ggfg .GetContentStreams ();if _ggceb !=nil {return "",_ggceb ;};return _af .Join (_aebe ,"\u0020"),nil ;};
+
+// ToPdfObject returns the PDF representation of the page resources.
+func (_ggeab *PdfPageResources )ToPdfObject ()_dfg .PdfObject {_fgcee :=_ggeab ._gffaff ;_fgcee .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ggeab .ExtGState );if _ggeab ._fgfec !=nil {_ggeab .ColorSpace =_ggeab ._fgfec .ToPdfObject ();
+};_fgcee .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_ggeab .ColorSpace );_fgcee .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_ggeab .Pattern );_fgcee .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ggeab .Shading );
+_fgcee .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_ggeab .XObject );_fgcee .SetIfNotNil ("\u0046\u006f\u006e\u0074",_ggeab .Font );_fgcee .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_ggeab .ProcSet );_fgcee .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_ggeab .Properties );
+return _fgcee ;};
+
+// GetCharMetrics returns the char metrics for character code `code`.
+func (_bgbb pdfCIDFontType0 )GetCharMetrics (code _ff .CharCode )(_bf .CharMetrics ,bool ){_affae :=_bgbb ._ebfc ;if _afda ,_feea :=_bgbb ._ceda [code ];_feea {_affae =_afda ;};return _bf .CharMetrics {Wx :_affae },true ;};func (_dcfgb *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _bggac []*PdfFieldSignature ;
+for _ ,_cbef :=range _dcfgb .AllFields (){switch _bcbg :=_cbef .GetContext ().(type ){case *PdfFieldSignature :_ccbge :=_bcbg ;_bggac =append (_bggac ,_ccbge );};};return _bggac ;};
+
+// GetNumComponents returns the number of color components (1 for Indexed).
+func (_gagd *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
+
+// GetAscent returns the Ascent of the font `descriptor`.
+func (_fgdc *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _dfg .GetNumberAsFloat (_fgdc .Ascent );};
+
+// ArtifactAttachPosition specifies the position where an artifact is attached to a page.
+type ArtifactAttachPosition string ;
+
+// PdfAnnotationWatermark represents Watermark annotations.
+// (Section 12.5.6.22).
+type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _dfg .PdfObject ;};
+
+// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
+func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
+
+// PdfColorCalRGB represents a color in the Colorimetric CIE RGB colorspace.
+// A, B, C components
+// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
+type PdfColorCalRGB [3]float64 ;
+
+// GenerateRandomID generates a random ID for the K dictionary object.
+func (_fadgg *KDict )GenerateRandomID ()string {_ccceac ,_cbedd :=_gdb .NewUUID ();if _cbedd !=nil {_egb .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020g\u0065\u006e\u0065\u0072\u0061t\u0069n\u0067 \u0055\u0055\u0049\u0044\u003a\u0020\u0025v",_cbedd );};
+if _ccceac !=_gdb .Nil {_bfafb :=_ccceac .String ();_fadgg .ID =_dfg .MakeString (_bfafb );return _bfafb ;};return "";};
+
+// SetAction sets the PDF action for the annotation link.
+func (_bbcd *PdfAnnotationLink )SetAction (action *PdfAction ){_bbcd ._gdc =action ;if action ==nil {_bbcd .A =nil ;};};
+
+// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
+// AcroForm dictionary.
+func (_ecbf *PdfAcroForm )ToPdfObject ()_dfg .PdfObject {_gbcgc :=_ecbf ._gddd ;_ddff :=_gbcgc .PdfObject .(*_dfg .PdfObjectDictionary );if _ecbf .Fields !=nil {_adbca :=_dfg .PdfObjectArray {};for _ ,_dfbaeg :=range *_ecbf .Fields {_egac :=_dfbaeg .GetContext ();
+if _egac !=nil {_adbca .Append (_egac .ToPdfObject ());}else {_adbca .Append (_dfbaeg .ToPdfObject ());};};_ddff .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_adbca );};if _ecbf .NeedAppearances !=nil {_ddff .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_ecbf .NeedAppearances );
+}else {if _fffea :=_ddff .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_fffea !=nil {_ddff .Remove ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");};};if _ecbf .SigFlags !=nil {_ddff .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_ecbf .SigFlags );
+};if _ecbf .CO !=nil {_ddff .Set ("\u0043\u004f",_ecbf .CO );};if _ecbf .DR !=nil {_ddff .Set ("\u0044\u0052",_ecbf .DR .ToPdfObject ());};if _ecbf .DA !=nil {_ddff .Set ("\u0044\u0041",_ecbf .DA );};if _ecbf .Q !=nil {_ddff .Set ("\u0051",_ecbf .Q );};
+if _ecbf .XFA !=nil {_ddff .Set ("\u0058\u0046\u0041",_ecbf .XFA );};if _ecbf .ADBEEchoSign !=nil {_ddff .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_ecbf .ADBEEchoSign );};return _gbcgc ;};
+
+// FlattenFieldsWithOpts flattens the AcroForm fields of the page using the
+// provided field appearance generator and the specified options. If no options
+// are specified, all form fields are flattened for the page.
+// If a filter function is provided using the opts parameter, only the filtered
+// fields are flattened. Otherwise, all form fields are flattened.
+func (_bgecd *PdfPage )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {_aafg :=map[*PdfAnnotation ]bool {};_cdadc ,_gbdff :=_bgecd .GetAnnotations ();if _gbdff !=nil {return _gbdff ;};_daeeb :=false ;for _ ,_ddcbc :=range _cdadc {if opts .AnnotFilterFunc !=nil {_aafg [_ddcbc ]=opts .AnnotFilterFunc (_ddcbc );
+}else {_aafg [_ddcbc ]=true ;};if _aafg [_ddcbc ]{_daeeb =true ;};};if !_daeeb {return nil ;};return _bgecd .flattenFieldsWithOpts (appgen ,opts ,_aafg );};
+
+// String returns the name of the colorspace (DeviceN).
+func (_efad *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
+
+// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
+func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_gbf :=PdfColorDeviceRGB {r ,g ,b };return &_gbf ;};
+
+// GetAction returns the PDF action for the annotation link.
+func (_cffc *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _cffc ._gdc !=nil {return _cffc ._gdc ,nil ;};if _cffc .A ==nil {return nil ,nil ;};if _cffc ._ebdec ==nil {return nil ,nil ;};_eeac ,_bab :=_cffc ._ebdec .loadAction (_cffc .A );if _bab !=nil {return nil ,_bab ;
+};_cffc ._gdc =_eeac ;return _cffc ._gdc ,nil ;};func (_cda *PdfReader )newPdfAnnotationCircleFromDict (_fecb *_dfg .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_gccb :=PdfAnnotationCircle {};_bcg ,_egaa :=_cda .newPdfAnnotationMarkupFromDict (_fecb );
+if _egaa !=nil {return nil ,_egaa ;};_gccb .PdfAnnotationMarkup =_bcg ;_gccb .BS =_fecb .Get ("\u0042\u0053");_gccb .IC =_fecb .Get ("\u0049\u0043");_gccb .BE =_fecb .Get ("\u0042\u0045");_gccb .RD =_fecb .Get ("\u0052\u0044");return &_gccb ,nil ;};
+
+// PdfActionGoTo3DView represents a GoTo3DView action.
+type PdfActionGoTo3DView struct{*PdfAction ;TA _dfg .PdfObject ;V _dfg .PdfObject ;};
+
+// FieldFlattenOpts defines a set of options which can be used to configure
+// the field flattening process.
+type FieldFlattenOpts struct{
+
+// FilterFunc allows filtering the form fields used in the flattening
+// process. If the filter function returns true, the field is flattened,
+// otherwise it is skipped.
+// If a non-terminal field is discarded, all of its children (the fields
+// present in the Kids array) are discarded as well.
+// Non-terminal fields are kept in the AcroForm if one or more of their
+// child fields have not been selected for flattening.
+// If a filter function is not provided, all form fields are flattened.
+FilterFunc FieldFilterFunc ;
+
+// AnnotFilterFunc allows filtering the annotations in the flattening
+// process. If the filter function returns true, the annotation is flattened,
+// otherwise it is skipped.
+AnnotFilterFunc AnnotFilterFunc ;};
+
+// NewPermissions returns a new permissions object.
+func NewPermissions (docMdp *PdfSignature )*Permissions {_bcfgfa :=Permissions {};_bcfgfa .DocMDP =docMdp ;_gegbe :=_dfg .MakeDict ();_gegbe .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_bcfgfa ._gbdee =_gegbe ;return &_bcfgfa ;
+};func (_geag fontCommon )fontFlags ()int {if _geag ._cebfd ==nil {return 0;};return _geag ._cebfd ._dffgf ;};
+
+// ArtifactSubtype represents the subtype of an artifact in a PDF document.
+type ArtifactSubtype string ;
+
+// Image interface is a basic representation of an image used in PDF.
+// The colorspace is not specified, but must be known when handling the image.
+type Image struct{Width int64 ;Height int64 ;BitsPerComponent int64 ;ColorComponents int ;Data []byte ;_baeef []byte ;_begcc []float64 ;};
+
+// IDTree represents the ID tree dictionary where the format of the content
+// is using Name Trees as described in chapter 7.9.6.
+type IDTree struct{
+
+// Limits shall be an array of two strings, that shall specify the (lexically) least and greatest keys included in the Names array.
+Limits *_dfg .PdfObjectArray ;
+
+// Names shall be an array of the form
+//
+// [ key1 value1 key2 value2 … keyn valuen]
+//
+// where each keyi shall be a string and the corresponding valuei shall be the object
+// associated with that key. The keys shall be sorted in lexical order, as described below.
+Names *_dfg .PdfObjectArray ;
+
+// Kids Shall be an array of indirect references to the immediate children of this node.
+Kids []*IDTree ;};func (_acad *Artifact )GenerateMap ()map[string ]_dfg .PdfObject {_ffda :=make (map[string ]_dfg .PdfObject );if _acad .Type !=ArtifactTypeNone {_ffda ["\u0054\u0079\u0070\u0065"]=_dfg .MakeName (string (_acad .Type ));};if _acad .BBox !=nil {_ffda ["\u0042\u0042\u006f\u0078"]=_dfg .MakeArrayFromFloats ([]float64 {_acad .BBox .Llx ,_acad .BBox .Lly ,_acad .BBox .Urx ,_acad .BBox .Ury });
+};if len (_acad .AttachPositions )> 0{var _afbgc []_dfg .PdfObject ;for _ ,_gagb :=range _acad .AttachPositions {_afbgc =append (_afbgc ,_dfg .MakeName (string (_gagb )));};_ffda ["\u0041\u0074\u0074\u0061\u0063\u0068"]=_dfg .MakeArray (_afbgc ...);};if _acad .Subtype !=""{_ffda ["\u0053u\u0062\u0074\u0079\u0070\u0065"]=_dfg .MakeName (_acad .Subtype );
+};return _ffda ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_gbaa *PdfAnnotationCaret )ToPdfObject ()_dfg .PdfObject {_gbaa .PdfAnnotation .ToPdfObject ();_dcca :=_gbaa ._afae ;_aggf :=_dcca .PdfObject .(*_dfg .PdfObjectDictionary );_gbaa .appendToPdfDictionary (_aggf );_aggf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0043\u0061\u0072e\u0074"));
+_aggf .SetIfNotNil ("\u0052\u0044",_gbaa .RD );_aggf .SetIfNotNil ("\u0053\u0079",_gbaa .Sy );return _dcca ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_fdcb *PdfAnnotationProjection )ToPdfObject ()_dfg .PdfObject {_fdcb .PdfAnnotation .ToPdfObject ();_fbee :=_fdcb ._afae ;_gggf :=_fbee .PdfObject .(*_dfg .PdfObjectDictionary );_fdcb .appendToPdfDictionary (_gggf );return _fbee ;};
+
+// IsCID returns true if the underlying font is CID.
+func (_fdgbc *PdfFont )IsCID ()bool {return _fdgbc .baseFields ().isCIDFont ()};
+
+// Clear clears flag fl from the flag and returns the resulting flag.
+func (_ddddf FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_ddddf .Mask ()&^fl .Mask ())};
+
+// ColorFromFloats returns a new PdfColor based on the input slice of color
+// components. The slice should contain a single element between 0 and 1.
+func (_bcgg *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_efcea :=vals [0];if _efcea < 0.0||_efcea > 1.0{_egb .Log .Debug ("\u0049\u006eco\u006d\u0070\u0061t\u0069\u0062\u0069\u006city\u003a R\u0061\u006e\u0067\u0065\u0020\u006f\u0075ts\u0069\u0064\u0065\u0020\u005b\u0030\u002c1\u005d");
+};if _efcea < 0.0{_efcea =0.0;}else if _efcea > 1.0{_efcea =1.0;};return NewPdfColorDeviceGray (_efcea ),nil ;};
+
+// Val returns the color value.
+func (_fdfa *PdfColorDeviceGray )Val ()float64 {return float64 (*_fdfa )};
+
+// IsHideToolbar returns the value of the hideToolbar flag.
+func (_fbeeg *ViewerPreferences )IsHideToolbar ()bool {if _fbeeg ._dcdcg ==nil {return false ;};return *_fbeeg ._dcdcg ;};func (_dabeb *PdfWriter )updateObjectNumbers (){_dgeb :=_dabeb .ObjNumOffset ;_dgdga :=0;for _ ,_bdbda :=range _dabeb ._abcef {_eedbe :=int64 (_dgdga +1+_dgeb );
+_abbcfb :=true ;if _dabeb ._cddgg {if _ddacb ,_fgaece :=_dabeb ._dacf [_bdbda ];_fgaece {_eedbe =_ddacb ;_abbcfb =false ;};};switch _egcg :=_bdbda .(type ){case *_dfg .PdfIndirectObject :_egcg .ObjectNumber =_eedbe ;_egcg .GenerationNumber =0;case *_dfg .PdfObjectStream :_egcg .ObjectNumber =_eedbe ;
+_egcg .GenerationNumber =0;case *_dfg .PdfObjectStreams :_egcg .ObjectNumber =_eedbe ;_egcg .GenerationNumber =0;case *_dfg .PdfObjectReference :_egcg .ObjectNumber =_eedbe ;_egcg .GenerationNumber =0;case *_dfg .PdfObjectDictionary ,*_dfg .PdfObjectString :default:_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0055\u006e\u006b\u006e\u006f\u0077\u006e\u0020\u0074\u0079\u0070\u0065\u0020%\u0054\u0020\u002d\u0020\u0073\u006b\u0069p\u0070\u0069\u006e\u0067",_egcg );
+continue ;};if _abbcfb {_dgdga ++;};};_ccabb :=func (_gbefd _dfg .PdfObject )int64 {switch _dcecee :=_gbefd .(type ){case *_dfg .PdfIndirectObject :return _dcecee .ObjectNumber ;case *_dfg .PdfObjectStream :return _dcecee .ObjectNumber ;case *_dfg .PdfObjectStreams :return _dcecee .ObjectNumber ;
+case *_dfg .PdfObjectReference :return _dcecee .ObjectNumber ;};return 0;};_ed .SliceStable (_dabeb ._abcef ,func (_degdg ,_accfc int )bool {return _ccabb (_dabeb ._abcef [_degdg ])< _ccabb (_dabeb ._abcef [_accfc ])});};func _bafgc ()string {_ddab :="\u0051\u0057\u0045\u0052\u0054\u0059\u0055\u0049\u004f\u0050\u0041S\u0044\u0046\u0047\u0048\u004a\u004b\u004c\u005a\u0058\u0043V\u0042\u004e\u004d";
+var _acfa _cca .Buffer ;for _fabe :=0;_fabe < 6;_fabe ++{_acfa .WriteRune (rune (_ddab [_eg .Intn (len (_ddab ))]));};return _acfa .String ();};
+
+// GetCapHeight returns the CapHeight of the font `descriptor`.
+func (_eega *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _dfg .GetNumberAsFloat (_eega .CapHeight );};
+
+// ToPdfObject implements interface PdfModel.
+func (_cggf *PdfAnnotationWidget )ToPdfObject ()_dfg .PdfObject {_cggf .PdfAnnotation .ToPdfObject ();_gace :=_cggf ._afae ;_bbgd :=_gace .PdfObject .(*_dfg .PdfObjectDictionary );if _cggf ._fbde {return _gace ;};_cggf ._fbde =true ;_bbgd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
+_bbgd .SetIfNotNil ("\u0048",_cggf .H );_bbgd .SetIfNotNil ("\u004d\u004b",_cggf .MK );_bbgd .SetIfNotNil ("\u0041",_cggf .A );_bbgd .SetIfNotNil ("\u0041\u0041",_cggf .AA );_bbgd .SetIfNotNil ("\u0042\u0053",_cggf .BS );_cbbc :=_cggf .Parent ;if _cggf ._bcad !=nil {if _cggf ._bcad ._caaa ==_cggf ._afae {_cggf ._bcad .ToPdfObject ();
+};_cbbc =_cggf ._bcad .GetContainingPdfObject ();};if _cbbc !=_gace {_bbgd .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_cbbc );};_cggf ._fbde =false ;return _gace ;};
+
+// PdfOutlineTreeNode contains common fields used by the outline and outline
+// item objects.
+type PdfOutlineTreeNode struct{_cface interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
+
+// SetRefObject sets the reference object for the KValue.
+func (_faeac *KValue )SetRefObject (refObject _dfg .PdfObject ){_faeac .Clear ();_faeac ._gbedc =refObject ;};
+
+// BorderEffect represents a border effect (Table 167 p. 395).
+type BorderEffect int ;
+
+// AcroFormNeedsRepair returns true if the document contains widget annotations
+// linked to fields which are not referenced in the AcroForm. The AcroForm can
+// be repaired using the RepairAcroForm method of the reader.
+func (_dagaa *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _fdcdb []*PdfField ;if _dagaa .AcroForm !=nil {_fdcdb =_dagaa .AcroForm .AllFields ();};_gccfg :=make (map[*PdfField ]struct{},len (_fdcdb ));for _ ,_fgde :=range _fdcdb {_gccfg [_fgde ]=struct{}{};
+};for _ ,_ecfcg :=range _dagaa .PageList {_aeacb ,_fabee :=_ecfcg .GetAnnotations ();if _fabee !=nil {return false ,_fabee ;};for _ ,_agdbf :=range _aeacb {_ecec ,_aedc :=_agdbf .GetContext ().(*PdfAnnotationWidget );if !_aedc {continue ;};_fdfdf :=_ecec .Field ();
+if _fdfdf ==nil {return true ,nil ;};if _ ,_dgfgg :=_gccfg [_fdfdf ];!_dgfgg {return true ,nil ;};};};return false ,nil ;};
+
+// Compress is yet to be implemented.
+// Should be able to compress in terms of JPEG quality parameter,
+// and DPI threshold (need to know bounding area dimensions).
+func (_bdffdb DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
+
+// SetColorSpace sets `r` colorspace object to `colorspace`.
+func (_gefbe *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_gefbe ._fgfec =colorspace ;};
+
+// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
+func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_acgc :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
+};_acgc .N =N ;return _acgc ,nil ;};
+
+// GetExtGState gets the ExtGState specified by keyName. Returns a bool
+// indicating whether it was found or not.
+func (_aefad *PdfPageResources )GetExtGState (keyName _dfg .PdfObjectName )(_dfg .PdfObject ,bool ){if _aefad .ExtGState ==nil {return nil ,false ;};_aaafe ,_febaeb :=_dfg .TraceToDirectObject (_aefad .ExtGState ).(*_dfg .PdfObjectDictionary );if !_febaeb {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0049n\u0076\u0061\u006c\u0069\u0064 \u0045\u0078\u0074\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0065\u006e\u0074\u0072\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_aefad .ExtGState );
+return nil ,false ;};if _gdba :=_aaafe .Get (keyName );_gdba !=nil {return _gdba ,true ;};return nil ,false ;};
+
+// String returns a string representation of the field.
+func (_agab *PdfField )String ()string {if _ggagd ,_fgedd :=_agab .ToPdfObject ().(*_dfg .PdfIndirectObject );_fgedd {return _d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_agab ._agcfe ,_ggagd .PdfObject .String ());};return "";};
+
+// Direction represents the predominant reading order for text.
+type Direction string ;var _dbcab =_gd .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
+
+// SetPageLabels sets the PageLabels entry in the PDF catalog.
+// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
+func (_ddcbcf *PdfWriter )SetPageLabels (pageLabels _dfg .PdfObject )error {if pageLabels ==nil {return nil ;};_egb .Log .Trace ("\u0053\u0065t\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006cs.\u002e\u002e");
+_ddcbcf ._acgcc .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _ddcbcf .addObjects (pageLabels );};
+
+// Evaluate runs the function on the passed in slice and returns the results.
+func (_eefa *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_egb .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
+};return nil ,_bd .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};var _gbffc =map[string ]struct{}{"\u0054\u0069\u0074l\u0065":{},"\u0041\u0075\u0074\u0068\u006f\u0072":{},"\u0053u\u0062\u006a\u0065\u0063\u0074":{},"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":{},"\u0043r\u0065\u0061\u0074\u006f\u0072":{},"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":{},"\u0054r\u0061\u0070\u0070\u0065\u0064":{},"\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":{},"\u004do\u0064\u0044\u0061\u0074\u0065":{}};
+
+
+// ToInteger convert to an integer format.
+func (_bfde *PdfColorCalGray )ToInteger (bits int )uint32 {_bgga :=_df .Pow (2,float64 (bits ))-1;return uint32 (_bgga *_bfde .Val ());};
+
+// ToPdfObject returns the PDF representation of the colorspace.
+func (_fbgc *PdfColorspaceDeviceGray )ToPdfObject ()_dfg .PdfObject {return _dfg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
+
+// StandardApplier is the interface that performs optimization of the whole PDF document.
+// As a result an input document is being changed by the optimizer.
+// The writer than takes back all it's parts and overwrites it.
+// NOTE: This implementation is in experimental development state.
+//
+// Keep in mind that it might change in the subsequent minor versions.
+type StandardApplier interface{ApplyStandard (_dfcagg *_beg .Document )error ;};func (_ggfad *PdfAcroForm )fill (_cgdg FieldValueProvider ,_badf FieldAppearanceGenerator )error {if _ggfad ==nil {return nil ;};_egacd ,_eacf :=_cgdg .FieldValues ();if _eacf !=nil {return _eacf ;
+};for _ ,_fbdfe :=range _ggfad .AllFields (){_ddeeb :=_fbdfe .PartialName ();_gcea ,_ebdg :=_egacd [_ddeeb ];if !_ebdg {if _dbdeg ,_aaba :=_fbdfe .FullName ();_aaba ==nil {_gcea ,_ebdg =_egacd [_dbdeg ];};};if !_ebdg {_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020f\u006f\u0072\u006d \u0066\u0069\u0065l\u0064\u0020\u0025\u0073\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u0069n \u0074\u0068\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0072\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u002e",_ddeeb );
+continue ;};if _afcgd :=_eaade (_fbdfe ,_gcea );_afcgd !=nil {return _afcgd ;};if _badf ==nil {continue ;};for _ ,_ggade :=range _fbdfe .Annotations {_ddgg ,_cefage :=_badf .GenerateAppearanceDict (_ggfad ,_fbdfe ,_ggade );if _cefage !=nil {return _cefage ;
+};_ggade .AP =_ddgg ;_ggade .ToPdfObject ();};};return nil ;};func _aeegd (_fegf *_dfg .PdfObjectDictionary )bool {for _ ,_effag :=range _fegf .Keys (){if _ ,_egdba :=_gefaf [_effag .String ()];_egdba {return true ;};};return false ;};func (_fcbf *PdfWriter )makeOffSetReference (_fedfb int64 ){_ddbcg :=_d .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_fedfb );
+_fcbf .writeString (_ddbcg );_fcbf .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");};
+
+// ToPdfObject implements interface PdfModel.
+func (_affe *PdfAnnotationStamp )ToPdfObject ()_dfg .PdfObject {_affe .PdfAnnotation .ToPdfObject ();_efbe :=_affe ._afae ;_dafa :=_efbe .PdfObject .(*_dfg .PdfObjectDictionary );_affe .appendToPdfDictionary (_dafa );_dafa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0053\u0074\u0061m\u0070"));
+_dafa .SetIfNotNil ("\u004e\u0061\u006d\u0065",_affe .Name );return _efbe ;};func (_fddg *PdfReader )newPdfAnnotationSoundFromDict (_fage *_dfg .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_efce :=PdfAnnotationSound {};_bddb ,_ceec :=_fddg .newPdfAnnotationMarkupFromDict (_fage );
+if _ceec !=nil {return nil ,_ceec ;};_efce .PdfAnnotationMarkup =_bddb ;_efce .Name =_fage .Get ("\u004e\u0061\u006d\u0065");_efce .Sound =_fage .Get ("\u0053\u006f\u0075n\u0064");return &_efce ,nil ;};
+
+// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
+func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_cdbe :=&PdfColorPatternType3 {};return _cdbe };
+
+// PdfColorspaceDeviceGray represents a grayscale colorspace.
+type PdfColorspaceDeviceGray struct{};
+
+// ToPdfObject returns the PDF representation of the shading dictionary.
+func (_cceed *PdfShadingType2 )ToPdfObject ()_dfg .PdfObject {_cceed .PdfShading .ToPdfObject ();_eafbf ,_fgee :=_cceed .getShadingDict ();if _fgee !=nil {_egb .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
+return nil ;};if _eafbf ==nil {_egb .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _cceed .Coords !=nil {_eafbf .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_cceed .Coords );
+};if _cceed .Domain !=nil {_eafbf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cceed .Domain );};if _cceed .Function !=nil {if len (_cceed .Function )==1{_eafbf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cceed .Function [0].ToPdfObject ());
+}else {_fcecff :=_dfg .MakeArray ();for _ ,_gbcade :=range _cceed .Function {_fcecff .Append (_gbcade .ToPdfObject ());};_eafbf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fcecff );};};if _cceed .Extend !=nil {_eafbf .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_cceed .Extend );
+};return _cceed ._gdfdg ;};
+
+// NewViewerPreferences returns a new ViewerPreferences object with
+// default empty values.
+func NewViewerPreferences ()*ViewerPreferences {return &ViewerPreferences {}};var _ pdfFont =(*pdfCIDFontType0 )(nil );
+
+// C returns the value of the C component of the color.
+func (_baa *PdfColorCalRGB )C ()float64 {return _baa [2]};
+
+// GetNumComponents returns the number of color components of the colorspace device.
+// Returns 3 for a Lab device.
+func (_ggdd *PdfColorspaceLab )GetNumComponents ()int {return 3};
+
+// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
+func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_dceeg :=&PdfColorPatternType2 {};return _dceeg ;};
+
+// ToPdfOutlineItem returns a low level PdfOutlineItem object,
+// based on the current instance.
+func (_bgadf *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_bebec :=NewPdfOutlineItem ();_bebec .Title =_dfg .MakeEncodedString (_bgadf .Title ,true );_bebec .Dest =_bgadf .Dest .ToPdfObject ();var _eaefd []*PdfOutlineItem ;var _bfeb int64 ;
+var _ddfca *PdfOutlineItem ;for _ ,_faeag :=range _bgadf .Entries {_gfbaa ,_dfbac :=_faeag .ToPdfOutlineItem ();_gfbaa .Parent =&_bebec .PdfOutlineTreeNode ;if _ddfca !=nil {_ddfca .Next =&_gfbaa .PdfOutlineTreeNode ;_gfbaa .Prev =&_ddfca .PdfOutlineTreeNode ;
+};_eaefd =append (_eaefd ,_gfbaa );_bfeb +=_dfbac ;_ddfca =_gfbaa ;};_fgaed :=len (_eaefd );_bfeb +=int64 (_fgaed );if _fgaed > 0{_bebec .First =&_eaefd [0].PdfOutlineTreeNode ;_bebec .Last =&_eaefd [_fgaed -1].PdfOutlineTreeNode ;_bebec .Count =&_bfeb ;
+};return _bebec ,_bfeb ;};
+
+// AddPage adds a page to the PDF file. The new page should be an indirect object.
+func (_cgdag *PdfWriter )AddPage (page *PdfPage )error {const _fcca ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_geed :=_gccaa (page );_egb .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
+_egb .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_geed );_ccdgb ,_bcabg :=_dfg .GetIndirect (_geed );if !_bcabg {return _bd .New ("\u0070\u0061\u0067\u0065\u0020\u0073h\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0069\u006ed\u0069\u0072\u0065\u0063\u0074\u0020\u006fb\u006a\u0065\u0063\u0074");
+};_egb .Log .Trace ("\u0025\u0073",_ccdgb );_egb .Log .Trace ("\u0025\u0073",_ccdgb .PdfObject );_dbecb ,_bcabg :=_dfg .GetDict (_ccdgb .PdfObject );if !_bcabg {return _bd .New ("\u0070\u0061\u0067e \u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0068o\u0075l\u0064 \u0062e\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+};_dffc ,_bcabg :=_dfg .GetName (_dbecb .Get ("\u0054\u0079\u0070\u0065"));if !_bcabg {return _d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_dbecb .Get ("\u0054\u0079\u0070\u0065"));
+};if _dffc .String ()!="\u0050\u0061\u0067\u0065"{return _bd .New ("\u0066\u0069e\u006c\u0064\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020\u0050\u0061\u0067\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069re\u0064\u0029");};_dgecg :=[]_dfg .PdfObjectName {"\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s","\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078","\u0043r\u006f\u0070\u0042\u006f\u0078","\u0052\u006f\u0074\u0061\u0074\u0065"};
+_gbfee ,_aadef :=_dfg .GetIndirect (_dbecb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_egb .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_dbecb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_aadef );
+for _aadef {_egb .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gbfee );_efcc ,_geafg :=_dfg .GetDict (_gbfee .PdfObject );if !_geafg {return _bd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
+};for _ ,_dbadc :=range _dgecg {_egb .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_dbadc );if _dbecb .Get (_dbadc )!=nil {_egb .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
+};if _aafdg :=_efcc .Get (_dbadc );_aafdg !=nil {_egb .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_dbadc );_dbecb .Set (_dbadc ,_aafdg );};};_gbfee ,_aadef =_dfg .GetIndirect (_efcc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
+_egb .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_efcc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_egb .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
+_dbecb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cgdag ._gdcdb );_ccdgb .PdfObject =_dbecb ;_abbbd ,_bcabg :=_dfg .GetDict (_cgdag ._gdcdb .PdfObject );if !_bcabg {return _bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0020(\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0029");
+};_feaab ,_bcabg :=_dfg .GetArray (_abbbd .Get ("\u004b\u0069\u0064\u0073"));if !_bcabg {return _bd .New ("\u0069\u006ev\u0061\u006c\u0069\u0064 \u0050\u0061g\u0065\u0073\u0020\u004b\u0069\u0064\u0073\u0020o\u0062\u006a\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079\u0029");
+};_feaab .Append (_ccdgb );_cgdag ._cbcacc [_dbecb ]=struct{}{};_cgdag ._cbccc =append (_cgdag ._cbccc ,_ccdgb );_gggaf ,_bcabg :=_dfg .GetInt (_abbbd .Get ("\u0043\u006f\u0075n\u0074"));if !_bcabg {return _bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0050\u0061\u0067e\u0073\u0020\u0043\u006fu\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0029");
+};*_gggaf =*_gggaf +1;if page ._ggcgd ==nil {_bffe :=_gb .Track (_cgdag ._afacc ,_fcca ,_cgdag ._bdadb );if _bffe !=nil {return _bffe ;};}else {_gddaac :=_gb .Track (page ._ggcgd ._befaf ,_fcca ,page ._ggcgd ._aefda );if _gddaac !=nil {return _gddaac ;
+};};_cgdag .addObject (_ccdgb );_eabeb :=_cgdag .addObjects (_dbecb );if _eabeb !=nil {return _eabeb ;};return nil ;};
+
+// GetNumComponents returns the number of color components (1 for Separation).
+func (_cgcc *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
+
+// AppendContentStream adds content stream by string. Appends to the last
+// contentstream instance if many.
+func (_gbbcd *PdfPage )AppendContentStream (contentStr string )error {_ddfda ,_dgcb :=_gbbcd .GetContentStreams ();if _dgcb !=nil {return _dgcb ;};if len (_ddfda )==0{_ddfda =[]string {contentStr };return _gbbcd .SetContentStreams (_ddfda ,_dfg .NewFlateEncoder ());
+};var _gfgea _cca .Buffer ;_gfgea .WriteString (_ddfda [len (_ddfda )-1]);_gfgea .WriteString ("\u000a");_gfgea .WriteString (contentStr );_ddfda [len (_ddfda )-1]=_gfgea .String ();return _gbbcd .SetContentStreams (_ddfda ,_dfg .NewFlateEncoder ());};
+
+
+// PdfSignatureReference represents a PDF signature reference dictionary and is used for signing via form signature fields.
+// (Section 12.8.1, Table 253 - Entries in a signature reference dictionary p. 469 in PDF32000_2008).
+type PdfSignatureReference struct{_bacgc *_dfg .PdfObjectDictionary ;Type *_dfg .PdfObjectName ;TransformMethod *_dfg .PdfObjectName ;TransformParams _dfg .PdfObject ;Data _dfg .PdfObject ;DigestMethod *_dfg .PdfObjectName ;};
+
+// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
+func (_gddca *Image )GetParamsDict ()*_dfg .PdfObjectDictionary {_cegef :=_dfg .MakeDict ();_cegef .Set ("\u0057\u0069\u0064t\u0068",_dfg .MakeInteger (_gddca .Width ));_cegef .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_dfg .MakeInteger (_gddca .Height ));
+_cegef .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_dfg .MakeInteger (int64 (_gddca .ColorComponents )));_cegef .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dfg .MakeInteger (_gddca .BitsPerComponent ));
+return _cegef ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_faa *PdfActionLaunch )ToPdfObject ()_dfg .PdfObject {_faa .PdfAction .ToPdfObject ();_afb :=_faa ._fe ;_fga :=_afb .PdfObject .(*_dfg .PdfObjectDictionary );_fga .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeLaunch )));if _faa .F !=nil {_fga .Set ("\u0046",_faa .F .ToPdfObject ());
+};_fga .SetIfNotNil ("\u0057\u0069\u006e",_faa .Win );_fga .SetIfNotNil ("\u004d\u0061\u0063",_faa .Mac );_fga .SetIfNotNil ("\u0055\u006e\u0069\u0078",_faa .Unix );_fga .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_faa .NewWindow );return _afb ;
+};func _bfegf ()string {return _egb .Version };
+
+// NewOutlineDest returns a new outline destination which can be used
+// with outline items.
+func NewOutlineDest (page int64 ,x ,y float64 )OutlineDest {return OutlineDest {Page :page ,Mode :"\u0058\u0059\u005a",X :x ,Y :y };};
+
+// PageProcessCallback callback function used in page loading
+// that could be used to modify the page content.
+//
+// If an error is returned, the `ToWriter` process would fail.
+//
+// This callback, if defined, will take precedence over `PageCallback` callback.
+type PageProcessCallback func (_becc int ,_ccgdf *PdfPage )error ;func (_bdaeb *PdfSignature )extractChainFromPKCS7 ()([]*_de .Certificate ,error ){_acgg ,_dbcdb :=_ec .Parse (_bdaeb .Contents .Bytes ());if _dbcdb !=nil {return nil ,_dbcdb ;};return _acgg .Certificates ,nil ;
+};
+
+// A returns the value of the A component of the color.
+func (_dagf *PdfColorCalRGB )A ()float64 {return _dagf [0]};
+
+// ToPdfObject converts the font to a PDF representation.
+func (_eged *pdfFontType0 )ToPdfObject ()_dfg .PdfObject {if _eged ._gfcf ==nil {_eged ._gfcf =&_dfg .PdfIndirectObject {};};_egcb :=_eged .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_eged ._gfcf .PdfObject =_egcb ;if _eged .Encoding !=nil {_egcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_eged .Encoding );
+}else if _eged ._gbaf !=nil {_egcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_eged ._gbaf .ToPdfObject ());};if _eged .DescendantFont !=nil {_egcb .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_dfg .MakeArray (_eged .DescendantFont .ToPdfObject ()));
+};return _eged ._gfcf ;};type fontFile struct{_agcb string ;_adfbf string ;_adbgd _ff .SimpleEncoder ;};
+
+// IsSimple returns true if `font` is a simple font.
+func (_cfcdf *PdfFont )IsSimple ()bool {_ ,_eaee :=_cfcdf ._fab .(*pdfFontSimple );return _eaee };
+
+// Set applies flag fl to the flag's bitmask and returns the combined flag.
+func (_dbeag FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_dbeag .Mask ()|fl .Mask ())};var (ArtifactSubtypeHeader ArtifactSubtype ="\u0048\u0065\u0061\u0064\u0065\u0072";ArtifactSubtypeFooter ArtifactSubtype ="\u0046\u006f\u006f\u0074\u0065\u0072";
+ArtifactSubtypeWatermark ArtifactSubtype ="\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k";);func (_gbae *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
+
+// SetContentStreams sets the content streams based on a string array. Will make
+// 1 object stream for each string and reference from the page Contents.
+// Each stream will be encoded using the encoding specified by the StreamEncoder,
+// if empty, will use identity encoding (raw data).
+func (_cbfea *PdfPage )SetContentStreams (cStreams []string ,encoder _dfg .StreamEncoder )error {if len (cStreams )==0{_cbfea .Contents =nil ;return nil ;};if encoder ==nil {encoder =_dfg .NewRawEncoder ();};var _beabf []*_dfg .PdfObjectStream ;for _ ,_efaaa :=range cStreams {_gddeb :=&_dfg .PdfObjectStream {};
+_faede :=encoder .MakeStreamDict ();_fdca ,_cedae :=encoder .EncodeBytes ([]byte (_efaaa ));if _cedae !=nil {return _cedae ;};_faede .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_dfg .MakeInteger (int64 (len (_fdca ))));_gddeb .PdfObjectDictionary =_faede ;
+_gddeb .Stream =_fdca ;_beabf =append (_beabf ,_gddeb );};if len (_beabf )==1{_cbfea .Contents =_beabf [0];}else {_fgcgd :=_dfg .MakeArray ();for _ ,_ceefa :=range _beabf {_fgcgd .Append (_ceefa );};_cbfea .Contents =_fgcgd ;};return nil ;};
+
+// PdfActionJavaScript represents a javaScript action.
+type PdfActionJavaScript struct{*PdfAction ;JS _dfg .PdfObject ;};
+
+// NewPdfActionRendition returns a new "rendition" action.
+func NewPdfActionRendition ()*PdfActionRendition {_cdg :=NewPdfAction ();_ccba :=&PdfActionRendition {};_ccba .PdfAction =_cdg ;_cdg .SetContext (_ccba );return _ccba ;};
+
+// WriteToFile writes the output PDF to file.
+func (_bfaaf *PdfWriter )WriteToFile (outputFilePath string )error {_beaea ,_gadcd :=_ga .Create (outputFilePath );if _gadcd !=nil {return _gadcd ;};defer _beaea .Close ();return _bfaaf .Write (_beaea );};
+
+// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
+// for a button field.
+func (_bbcc *PdfField )GetContext ()PdfModel {return _bbcc ._agcfe };
+
+// ToPdfObject returns an indirect object containing the signature field dictionary.
+func (_cebde *PdfFieldSignature )ToPdfObject ()_dfg .PdfObject {if _cebde .PdfAnnotationWidget !=nil {_cebde .PdfAnnotationWidget .ToPdfObject ();};_cebde .PdfField .ToPdfObject ();_cdcfe :=_cebde ._caaa ;_fgbd :=_cdcfe .PdfObject .(*_dfg .PdfObjectDictionary );
+_fgbd .SetIfNotNil ("\u0046\u0054",_dfg .MakeName ("\u0053\u0069\u0067"));_fgbd .SetIfNotNil ("\u004c\u006f\u0063\u006b",_cebde .Lock );_fgbd .SetIfNotNil ("\u0053\u0056",_cebde .SV );if _cebde .V !=nil {_fgbd .SetIfNotNil ("\u0056",_cebde .V .ToPdfObject ());
+};return _cdcfe ;};
+
+// CheckAccessRights checks access rights and permissions for a specified password. If either user/owner
+// password is specified, full rights are granted, otherwise the access rights are specified by the
+// Permissions flag.
+//
+// The bool flag indicates that the user can access and view the file.
+// The AccessPermissions shows what access the user has for editing etc.
+// An error is returned if there was a problem performing the authentication.
+func (_dgbace *PdfReader )CheckAccessRights (password []byte )(bool ,_fc .Permissions ,error ){return _dgbace ._agbcd .CheckAccessRights (password );};
+
+// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
+// document revision.
+func (_debd *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_debd .updateObjectsDeep (dss .ToPdfObject (),nil );};_debd ._caagc =dss ;};
+
+// GetFontByName gets the font specified by keyName. Returns the PdfObject which
+// the entry refers to. Returns a bool value indicating whether or not the entry was found.
+func (_beabd *PdfPageResources )GetFontByName (keyName _dfg .PdfObjectName )(_dfg .PdfObject ,bool ){if _beabd .Font ==nil {return nil ,false ;};_gbeb ,_edecb :=_dfg .TraceToDirectObject (_beabd .Font ).(*_dfg .PdfObjectDictionary );if !_edecb {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0021\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_dfg .TraceToDirectObject (_beabd .Font ));
+return nil ,false ;};if _fgbcd :=_gbeb .Get (keyName );_fgbcd !=nil {return _fgbcd ,true ;};return nil ,false ;};
+
+// SetHideWindowUI sets the value of the hideWindowUI flag.
+func (_ddgbe *ViewerPreferences )SetHideWindowUI (hideWindowUI bool ){_ddgbe ._dgbgf =&hideWindowUI };
+
+// NonFullScreenPageMode represents the document’s page mode when exiting
+// full-screen mode.
+type NonFullScreenPageMode string ;func _ggadd (_abca *_dfg .PdfObjectDictionary )(*PdfFieldChoice ,error ){_faggd :=&PdfFieldChoice {};_faggd .Opt ,_ =_dfg .GetArray (_abca .Get ("\u004f\u0070\u0074"));_faggd .TI ,_ =_dfg .GetInt (_abca .Get ("\u0054\u0049"));
+_faggd .I ,_ =_dfg .GetArray (_abca .Get ("\u0049"));return _faggd ,nil ;};
+
+// ColorFromFloats returns a new PdfColor based on the input slice of color
+// components. The slice should contain three elements representing the
+// L (range 0-100), A (range -100-100) and B (range -100-100) components of
+// the color.
+func (_cccea *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dfbf :=vals [0];if _dfbf < 0.0||_dfbf > 100.0{_egb .Log .Debug ("\u004c\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030-\u0031\u0030\u0030\u0029",_dfbf );
+return nil ,ErrColorOutOfRange ;};_gcba :=vals [1];_fcbg :=float64 (-100);_egbe :=float64 (100);if len (_cccea .Range )> 1{_fcbg =_cccea .Range [0];_egbe =_cccea .Range [1];};if _gcba < _fcbg ||_gcba > _egbe {_egb .Log .Debug ("\u0041\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u003b\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0025\u0076\u0020\u0074o\u0020\u0025\u0076\u0029",_gcba ,_fcbg ,_egbe );
+return nil ,ErrColorOutOfRange ;};_gabac :=vals [2];_fged :=float64 (-100);_fecd :=float64 (100);if len (_cccea .Range )> 3{_fged =_cccea .Range [2];_fecd =_cccea .Range [3];};if _gabac < _fged ||_gabac > _fecd {_egb .Log .Debug ("\u0062\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u003b\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0025\u0076\u0020\u0074o\u0020\u0025\u0076\u0029",_gabac ,_fged ,_fecd );
+return nil ,ErrColorOutOfRange ;};_agca :=NewPdfColorLab (_dfbf ,_gcba ,_gabac );return _agca ,nil ;};type pdfFont interface{_bf .Font ;
+
+// ToPdfObject returns a PDF representation of the font and implements interface Model.
+ToPdfObject ()_dfg .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};func (_aae *PdfReader )newPdfActionGoTo3DViewFromDict (_eca *_dfg .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_eca .Get ("\u0054\u0041"),V :_eca .Get ("\u0056")},nil ;
+};var _acaaf =map[string ]string {"\u0053\u0079\u006d\u0062\u006f\u006c":"\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067","\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073":"Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067"};
+
+
+// PdfColorspaceDeviceN represents a DeviceN color space. DeviceN color spaces are similar to Separation color
+// spaces, except they can contain an arbitrary number of color components.
+/*
+ Format: [/DeviceN names alternateSpace tintTransform]
+ or: [/DeviceN names alternateSpace tintTransform attributes]
+*/
+type PdfColorspaceDeviceN struct{ColorantNames *_dfg .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_fbae *_dfg .PdfIndirectObject ;};
+
+// SetPage directly sets the page object.
+func (_agcge *KDict )SetPage (page *_dfg .PdfIndirectObject ){_agcge .Pg =page };
+
+// SetCenterWindow sets the value of the centerWindow flag.
+func (_dfbce *ViewerPreferences )SetCenterWindow (centerWindow bool ){_dfbce ._ebdgb =&centerWindow };
+
+// Add appends an outline item as a child of the current outline item.
+func (_bgdfe *OutlineItem )Add (item *OutlineItem ){_bgdfe .Entries =append (_bgdfe .Entries ,item )};
+
+// GetXHeight returns the XHeight of the font `descriptor`.
+func (_beaf *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _dfg .GetNumberAsFloat (_beaf .XHeight );};func (_fbege *PdfWriter )writeXRefStreams (_gagge int ,_gebbdd int64 )error {_fgccc :=_gagge +1;_fbege ._effg [_fgccc ]=crossReference {Type :1,ObjectNumber :_fgccc ,Offset :_gebbdd };
+_cbgff :=_cca .NewBuffer (nil );_faggc :=_dfg .MakeArray ();for _dffaf :=0;_dffaf <=_gagge ;{for ;_dffaf <=_gagge ;_dffaf ++{_cbcg ,_bfgafg :=_fbege ._effg [_dffaf ];if _bfgafg &&(!_fbege ._cddgg ||_fbege ._cddgg &&(_cbcg .Type ==1&&_cbcg .Offset >=_fbege ._fgedaa ||_cbcg .Type ==0)){break ;
+};};var _dddbe int ;for _dddbe =_dffaf +1;_dddbe <=_gagge ;_dddbe ++{_bcgaf ,_gbced :=_fbege ._effg [_dddbe ];if _gbced &&(!_fbege ._cddgg ||_fbege ._cddgg &&(_bcgaf .Type ==1&&_bcgaf .Offset > _fbege ._fgedaa )){continue ;};break ;};_faggc .Append (_dfg .MakeInteger (int64 (_dffaf )),_dfg .MakeInteger (int64 (_dddbe -_dffaf )));
+for _adcb :=_dffaf ;_adcb < _dddbe ;_adcb ++{_ecbee :=_fbege ._effg [_adcb ];switch _ecbee .Type {case 0:_bg .Write (_cbgff ,_bg .BigEndian ,byte (0));_bg .Write (_cbgff ,_bg .BigEndian ,uint32 (0));_bg .Write (_cbgff ,_bg .BigEndian ,uint16 (0xFFFF));
+case 1:_bg .Write (_cbgff ,_bg .BigEndian ,byte (1));_bg .Write (_cbgff ,_bg .BigEndian ,uint32 (_ecbee .Offset ));_bg .Write (_cbgff ,_bg .BigEndian ,uint16 (_ecbee .Generation ));case 2:_bg .Write (_cbgff ,_bg .BigEndian ,byte (2));_bg .Write (_cbgff ,_bg .BigEndian ,uint32 (_ecbee .ObjectNumber ));
+_bg .Write (_cbgff ,_bg .BigEndian ,uint16 (_ecbee .Index ));};};_dffaf =_dddbe +1;};_dbefb ,_faba :=_dfg .MakeStream (_cbgff .Bytes (),_dfg .NewFlateEncoder ());if _faba !=nil {return _faba ;};_dbefb .ObjectNumber =int64 (_fgccc );_dbefb .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0058\u0052\u0065\u0066"));
+_dbefb .PdfObjectDictionary .Set ("\u0057",_dfg .MakeArray (_dfg .MakeInteger (1),_dfg .MakeInteger (4),_dfg .MakeInteger (2)));_dbefb .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_faggc );_dbefb .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_dfg .MakeInteger (int64 (_fgccc )));
+_dbefb .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_fbege ._acace );_dbefb .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_fbege ._cbfagb );if _fbege ._cddgg &&_fbege ._baeag > 0{_dbefb .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_dfg .MakeInteger (_fbege ._baeag ));
+};if _fbege ._gbdfc !=nil {_dbefb .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_fbege ._bbbecb );};if _fbege ._beccf ==nil &&_fbege ._baeaee !=""&&_fbege ._dbddd !=""{_fbege ._beccf =_dfg .MakeArray (_dfg .MakeHexString (_fbege ._baeaee ),_dfg .MakeHexString (_fbege ._dbddd ));
+};if _fbege ._beccf !=nil {_egb .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_fbege ._beccf );_dbefb .Set ("\u0049\u0044",_fbege ._beccf );};_fbege .writeObject (int (_dbefb .ObjectNumber ),_dbefb );return nil ;};
+
+// PdfSignature represents a PDF signature dictionary and is used for signing via form signature fields.
+// (Section 12.8, Table 252 - Entries in a signature dictionary p. 475 in PDF32000_2008).
+type PdfSignature struct{Handler SignatureHandler ;_fdeb *_dfg .PdfIndirectObject ;
+
+// Type: Sig/DocTimeStamp
+Type *_dfg .PdfObjectName ;Filter *_dfg .PdfObjectName ;SubFilter *_dfg .PdfObjectName ;Contents *_dfg .PdfObjectString ;Cert _dfg .PdfObject ;ByteRange *_dfg .PdfObjectArray ;Reference *_dfg .PdfObjectArray ;Changes *_dfg .PdfObjectArray ;Name *_dfg .PdfObjectString ;
+M *_dfg .PdfObjectString ;Location *_dfg .PdfObjectString ;Reason *_dfg .PdfObjectString ;ContactInfo *_dfg .PdfObjectString ;R *_dfg .PdfObjectInteger ;V *_dfg .PdfObjectInteger ;PropBuild *_dfg .PdfObjectDictionary ;PropAuthTime *_dfg .PdfObjectInteger ;
+PropAuthType *_dfg .PdfObjectName ;};
+
+// ColorFromPdfObjects loads the color from PDF objects.
+// The first objects (if present) represent the color in underlying colorspace. The last one represents
+// the name of the pattern.
+func (_fagd *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_bd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072\u0073");
+};_fgfe :=&PdfColorPattern {};_bgde ,_gbdeb :=objects [len (objects )-1].(*_dfg .PdfObjectName );if !_gbdeb {_egb .Log .Debug ("\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020a\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",objects [len (objects )-1]);
+return nil ,ErrTypeCheck ;};_fgfe .PatternName =*_bgde ;if len (objects )> 1{_bbeb :=objects [0:len (objects )-1];if _fagd .UnderlyingCS ==nil {_egb .Log .Debug ("P\u0061\u0074t\u0065\u0072\u006e\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0077\u0069\u0074\u0068\u0020\u0064\u0065\u0066\u0069\u006ee\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006et\u0073\u0020\u0062\u0075\u0074\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079i\u006e\u0067\u0020\u0063\u0073\u0020\u006d\u0069\u0073\u0073\u0069n\u0067");
+return nil ,_bd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_bbfc ,_bgdgd :=_fagd .UnderlyingCS .ColorFromPdfObjects (_bbeb );if _bgdgd !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0055n\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0076\u0069\u0061\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079\u0069\u006e\u0067\u0020\u0063\u0073\u003a\u0020\u0025\u0076",_bgdgd );
+return nil ,_bgdgd ;};_fgfe .Color =_bbfc ;};return _fgfe ,nil ;};func (_bgfaa fontCommon )isCIDFont ()bool {if _bgfaa ._gdab ==""{_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0069\u0073\u0043\u0049\u0044\u0046\u006f\u006e\u0074\u002e\u0020\u0063o\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_bgfaa );
+};_gfge :=false ;switch _bgfaa ._gdab {case "\u0054\u0079\u0070e\u0030","\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030","\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_gfge =true ;};_egb .Log .Trace ("i\u0073\u0043\u0049\u0044\u0046\u006fn\u0074\u003a\u0020\u0069\u0073\u0043\u0049\u0044\u003d%\u0074\u0020\u0066o\u006et\u003d\u0025\u0073",_gfge ,_bgfaa );
+return _gfge ;};func _dbdc (_caggg *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_caggg }};func (_egdda *PdfWriter )writeOutlines ()error {if _egdda ._fdged ==nil {return nil ;};_egb .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_egdda ._fdged );
+_bdcba :=_egdda ._fdged .ToPdfObject ();_egb .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_bdcba ,_bdcba ,_bdcba );_egdda ._acgcc .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_bdcba );
+_ddaeg :=_egdda .addObjects (_bdcba );if _ddaeg !=nil {return _ddaeg ;};return nil ;};
+
+// Enable LTV enables the specified signature. The signing certificate
+// chain is extracted from the signature dictionary. Optionally, additional
+// certificates can be specified through the `extraCerts` parameter.
+// The LTV client attempts to build the certificate chain up to a trusted root
+// by downloading any missing certificates.
+func (_ggeb *LTV )Enable (sig *PdfSignature ,extraCerts []*_de .Certificate )error {if _eacfa :=_ggeb .validateSig (sig );_eacfa !=nil {return _eacfa ;};_gecd ,_dgccb :=_ggeb .generateVRIKey (sig );if _dgccb !=nil {return _dgccb ;};if _ ,_bcaaa :=_ggeb ._gaggb .VRI [_gecd ];
+_bcaaa &&_ggeb .SkipExisting {return nil ;};_ccga ,_dgccb :=sig .GetCerts ();if _dgccb !=nil {return _dgccb ;};return _ggeb .enable (_ccga ,extraCerts ,_gecd );};
+
+// ToPdfObject implements interface PdfModel.
+func (_gcg *PdfActionMovie )ToPdfObject ()_dfg .PdfObject {_gcg .PdfAction .ToPdfObject ();_decg :=_gcg ._fe ;_gge :=_decg .PdfObject .(*_dfg .PdfObjectDictionary );_gge .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeMovie )));_gge .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_gcg .Annotation );
+_gge .SetIfNotNil ("\u0054",_gcg .T );_gge .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_gcg .Operation );return _decg ;};
+
+// GenerateKDict generates K Dictionary based on existing Annotation type.
+func (_ffg *PdfAnnotation )GenerateKDict ()*KDict {if _ffg ==nil {return nil ;};_gcc :=NewKDictionary ();_gcc .S =_dfg .MakeName (string (StructureTypeAnnot ));_gcc .AddRefChild (_ffg ._afae );return _gcc ;};func (_edgb *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";
+};func _dfce (_gcega *_dfg .PdfIndirectObject ,_dbea *_dfg .PdfObjectDictionary )(*DSS ,error ){if _gcega ==nil {_gcega =_dfg .MakeIndirectObject (nil );};_gcega .PdfObject =_dfg .MakeDict ();_abgf :=map[string ]*VRI {};if _gaddb ,_deea :=_dfg .GetDict (_dbea .Get ("\u0056\u0052\u0049"));
+_deea {for _ ,_bdfg :=range _gaddb .Keys (){if _gffea ,_abce :=_dfg .GetDict (_gaddb .Get (_bdfg ));_abce {_abgf [_af .ToUpper (_bdfg .String ())]=_gccdg (_gffea );};};};return &DSS {Certs :_fccef (_dbea .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_fccef (_dbea .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_fccef (_dbea .Get ("\u0043\u0052\u004c\u0073")),VRI :_abgf ,_beab :_gcega },nil ;
+};
+
+// ToPdfObject implements interface PdfModel.
+func (_gdgc *PdfAnnotationLink )ToPdfObject ()_dfg .PdfObject {_gdgc .PdfAnnotation .ToPdfObject ();_begb :=_gdgc ._afae ;_ecca :=_begb .PdfObject .(*_dfg .PdfObjectDictionary );_ecca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u004c\u0069\u006e\u006b"));
+if _gdgc ._gdc !=nil &&_gdgc ._gdc ._bdb !=nil {_ecca .Set ("\u0041",_gdgc ._gdc ._bdb .ToPdfObject ());}else if _gdgc .A !=nil {_ecca .Set ("\u0041",_gdgc .A );};_ecca .SetIfNotNil ("\u0044\u0065\u0073\u0074",_gdgc .Dest );_ecca .SetIfNotNil ("\u0048",_gdgc .H );
+_ecca .SetIfNotNil ("\u0050\u0041",_gdgc .PA );_ecca .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gdgc .QuadPoints );_ecca .SetIfNotNil ("\u0042\u0053",_gdgc .BS );return _begb ;};
+
+// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
+type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_abbf *_dfg .PdfIndirectObject ;};
+
+// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
+func (_bcgbg *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_dfg .StreamEncoder ,error ){_adbdgf ,_edebf :=_bcgbg ._adcec .(*_dfg .PdfObjectStream );if !_edebf {_egb .Log .Debug ("\u0054\u0069l\u0069\u006e\u0067\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_bcgbg ._adcec );
+return nil ,nil ,_dfg .ErrTypeError ;};_abegc ,_bcfc :=_dfg .DecodeStream (_adbdgf );if _bcfc !=nil {_egb .Log .Debug ("\u0046\u0061\u0069l\u0065\u0064\u0020\u0064e\u0063\u006f\u0064\u0069\u006e\u0067\u0020s\u0074\u0072\u0065\u0061\u006d\u002c\u0020\u0065\u0072\u0072\u003a\u0020\u0025\u0076",_bcfc );
+return nil ,nil ,_bcfc ;};_gdege ,_bcfc :=_dfg .NewEncoderFromStream (_adbdgf );if _bcfc !=nil {_egb .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020f\u0069\u006e\u0064\u0069\u006e\u0067 \u0064\u0065\u0063\u006f\u0064\u0069\u006eg\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u003a\u0020%\u0076",_bcfc );
+return nil ,nil ,_bcfc ;};return _abegc ,_gdege ,nil ;};
+
+// Duplex represents the paper handling option that shall be used when printing
+// the file from the print dialog.
+type Duplex string ;
+
+// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
+// from the input dictionary.
+func NewPdfPageResourcesFromDict (dict *_dfg .PdfObjectDictionary )(*PdfPageResources ,error ){_degbg :=NewPdfPageResources ();if _accd :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_accd !=nil {_degbg .ExtGState =_accd ;};if _ecdff :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
+_ecdff !=nil &&!_dfg .IsNullObject (_ecdff ){_degbg .ColorSpace =_ecdff ;};if _gcgfd :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_gcgfd !=nil {_degbg .Pattern =_gcgfd ;};if _acdf :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_acdf !=nil {_degbg .Shading =_acdf ;
+};if _efcdf :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_efcdf !=nil {_degbg .XObject =_efcdf ;};if _ffgec :=_dfg .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_ffgec !=nil {_degbg .Font =_ffgec ;};if _egbb :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
+_egbb !=nil {_degbg .ProcSet =_egbb ;};if _aagfe :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_aagfe !=nil {_degbg .Properties =_aagfe ;};return _degbg ,nil ;};func (_gddcg *PdfPage )getParentResources ()(*PdfPageResources ,error ){_afad :=_gddcg .Parent ;
+for _afad !=nil {_gegdf ,_baafb :=_dfg .GetDict (_afad );if !_baafb {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020n\u006f\u0064\u0065");return nil ,_bd .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
+};if _bgbde :=_gegdf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_bgbde !=nil {_efcae ,_afccd :=_dfg .GetDict (_bgbde );if !_afccd {return nil ,_bd .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");
+};_gaac ,_gegfc :=NewPdfPageResourcesFromDict (_efcae );if _gegfc !=nil {return nil ,_gegfc ;};return _gaac ,nil ;};_afad =_gegdf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};func (_afaf *PdfReader )newPdfAnnotationLineFromDict (_bbe *_dfg .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_gbdc :=PdfAnnotationLine {};
+_gegce ,_dcdd :=_afaf .newPdfAnnotationMarkupFromDict (_bbe );if _dcdd !=nil {return nil ,_dcdd ;};_gbdc .PdfAnnotationMarkup =_gegce ;_gbdc .L =_bbe .Get ("\u004c");_gbdc .BS =_bbe .Get ("\u0042\u0053");_gbdc .LE =_bbe .Get ("\u004c\u0045");_gbdc .IC =_bbe .Get ("\u0049\u0043");
+_gbdc .LL =_bbe .Get ("\u004c\u004c");_gbdc .LLE =_bbe .Get ("\u004c\u004c\u0045");_gbdc .Cap =_bbe .Get ("\u0043\u0061\u0070");_gbdc .IT =_bbe .Get ("\u0049\u0054");_gbdc .LLO =_bbe .Get ("\u004c\u004c\u004f");_gbdc .CP =_bbe .Get ("\u0043\u0050");_gbdc .Measure =_bbe .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");
+_gbdc .CO =_bbe .Get ("\u0043\u004f");return &_gbdc ,nil ;};
+
+// Encoder iterates through the list of fonts and returns a working encoder
+func (_cfced *MultipleFontEncoder )Encoder (rn rune )(_ff .TextEncoder ,bool ){_cdec :=_cfced .CurrentFont ;_baeaa :=_cdec .Encoder ();_ ,_gabgb :=_baeaa .RuneToCharcode (rn );for _dfcc :=1;_dfcc < len (_cfced ._ceede )&&!_gabgb ;_dfcc ++{_cdec =_cfced ._ceede [_dfcc ];
+_baeaa =_cdec .Encoder ();_ ,_gabgb =_baeaa .RuneToCharcode (rn );_cfced .CurrentFont =_cdec ;};return _baeaa ,_gabgb ;};
+
+// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
+func NewPdfInfoFromObject (obj _dfg .PdfObject )(*PdfInfo ,error ){var _bfbeg PdfInfo ;_bgdcb ,_gaeg :=obj .(*_dfg .PdfObjectDictionary );if !_gaeg {return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079p\u0065:\u0020\u0025\u0054",obj );
+};for _ ,_ddgaf :=range _bgdcb .Keys (){switch _ddgaf {case "\u0054\u0069\u0074l\u0065":_bfbeg .Title ,_ =_dfg .GetString (_bgdcb .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_bfbeg .Author ,_ =_dfg .GetString (_bgdcb .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
+case "\u0053u\u0062\u006a\u0065\u0063\u0074":_bfbeg .Subject ,_ =_dfg .GetString (_bgdcb .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_bfbeg .Keywords ,_ =_dfg .GetString (_bgdcb .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
+case "\u0043r\u0065\u0061\u0074\u006f\u0072":_bfbeg .Creator ,_ =_dfg .GetString (_bgdcb .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_bfbeg .Producer ,_ =_dfg .GetString (_bgdcb .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
+case "\u0054r\u0061\u0070\u0070\u0065\u0064":_bfbeg .Trapped ,_ =_dfg .GetName (_bgdcb .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _cecgd ,_edadc :=_dfg .GetString (_bgdcb .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
+_edadc &&_cecgd .String ()!=""{_efabga ,_bbgg :=NewPdfDate (_cecgd .String ());if _bbgg !=nil {return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0072e\u0061\u0074\u0069\u006f\u006e\u0044\u0061t\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0077",_bbgg );
+};_bfbeg .CreationDate =&_efabga ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _gade ,_eeabg :=_dfg .GetString (_bgdcb .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_eeabg &&_gade .String ()!=""{_ffbg ,_cdaa :=NewPdfDate (_gade .String ());if _cdaa !=nil {return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_cdaa );
+};_bfbeg .ModifiedDate =&_ffbg ;};default:_fgaag ,_ :=_dfg .GetString (_bgdcb .Get (_ddgaf ));if _bfbeg ._gdaaeb ==nil {_bfbeg ._gdaaeb =_dfg .MakeDict ();};_bfbeg ._gdaaeb .Set (_ddgaf ,_fgaag );};};return &_bfbeg ,nil ;};
+
+// GetObjectNums returns the object numbers of the PDF objects in the file
+// Numbered objects are either indirect objects or stream objects.
+// e.g. objNums := pdfReader.GetObjectNums()
+// The underlying objects can then be accessed with
+// pdfReader.GetIndirectObjectByNumber(objNums[0]) for the first available object.
+func (_cbcaee *PdfReader )GetObjectNums ()[]int {return _cbcaee ._agbcd .GetObjectNums ()};
+
+// ToPdfObject implements interface PdfModel.
+func (_cfg *PdfActionGoTo3DView )ToPdfObject ()_dfg .PdfObject {_cfg .PdfAction .ToPdfObject ();_eddc :=_cfg ._fe ;_eeab :=_eddc .PdfObject .(*_dfg .PdfObjectDictionary );_eeab .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeGoTo3DView )));_eeab .SetIfNotNil ("\u0054\u0041",_cfg .TA );
+_eeab .SetIfNotNil ("\u0056",_cfg .V );return _eddc ;};
+
+// GetAttachedFiles retrieves all the attached files info and content.
+func (_adgga *PdfReader )GetAttachedFiles ()([]*EmbeddedFile ,error ){_bdefg :=[]*EmbeddedFile {};_cabec ,_agggc :=_adgga .GetNameDictionary ();if _agggc !=nil {return nil ,_agggc ;};if _cabec ==nil {return _bdefg ,nil ;};_gaeeg :=_adgdg (_cabec );if _gaeeg .EmbeddedFiles ==nil {return nil ,nil ;
+};_ggadf :=_gaeeg .EmbeddedFiles .Get ("\u004e\u0061\u006de\u0073");_acfac ,_feggc :=_ggadf .(*_dfg .PdfObjectArray );if !_feggc {return nil ,_bd .New ("\u0049\u006e\u0076\u0061li\u0064\u0020\u004e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
+};for _gega :=1;_gega < len (_acfac .Elements ());_gega +=2{if _gega %2!=0{_afbc :=_acfac .Get (_gega );_bdgdb ,_gfcbe :=NewPdfFilespecFromObj (_afbc );if _gfcbe !=nil {return nil ,_gfcbe ;};_dccac ,_gfcbe :=NewEmbeddedFileFromObject (_bdgdb .EF );if _gfcbe !=nil {return nil ,_gfcbe ;
+};_dadcg ,_fgddg :=_bdgdb .F .(*_dfg .PdfObjectString );if _fgddg {_dccac .Name =_dadcg .Str ();};_dccac .Description =string (_bdgdb .Desc .Write ());_dccac .Relationship =RelationshipUnspecified ;if _bdgdb .AFRelationship !=nil {switch string (_bdgdb .AFRelationship .Write ()){case "\u0053\u006f\u0075\u0072\u0063\u0065":_dccac .Relationship =RelationshipSource ;
+case "\u0044\u0061\u0074\u0061":_dccac .Relationship =RelationshipData ;case "A\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065":_dccac .Relationship =RelationshipAlternative ;case "\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074":_dccac .Relationship =RelationshipSupplement ;
+default:_dccac .Relationship =RelationshipUnspecified ;};};_bdefg =append (_bdefg ,_dccac );};};return _bdefg ,nil ;};
+
+// NewPdfActionResetForm returns a new "reset form" action.
+func NewPdfActionResetForm ()*PdfActionResetForm {_ada :=NewPdfAction ();_ab :=&PdfActionResetForm {};_ab .PdfAction =_ada ;_ada .SetContext (_ab );return _ab ;};
+
+// Evaluate runs the function on the passed in slice and returns the results.
+func (_fgddd *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_egb .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
+};_aefd :=[]float64 {0.0};if _fgddd .C0 !=nil {_aefd =_fgddd .C0 ;};_adbdg :=[]float64 {1.0};if _fgddd .C1 !=nil {_adbdg =_fgddd .C1 ;};var _edeff []float64 ;for _egba :=0;_egba < len (_aefd );_egba ++{_bbged :=_aefd [_egba ]+_df .Pow (x [0],_fgddd .N )*(_adbdg [_egba ]-_aefd [_egba ]);
+_edeff =append (_edeff ,_bbged );};return _edeff ,nil ;};
+
+// Encoder returns the font's text encoder.
+func (_ebab pdfFontType3 )Encoder ()_ff .TextEncoder {return _ebab ._bafca };
+
+// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
+type PdfColorPatternType2 struct{Color PdfColor ;PatternName _dfg .PdfObjectName ;};func (_eda *PdfReader )newPdfActionFromIndirectObject (_db *_dfg .PdfIndirectObject )(*PdfAction ,error ){_gaed ,_cfee :=_db .PdfObject .(*_dfg .PdfObjectDictionary );if !_cfee {return nil ,_d .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+};if model :=_eda ._acaed .GetModelFromPrimitive (_gaed );model !=nil {_aecf ,_gged :=model .(*PdfAction );if !_gged {return nil ,_d .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");
+};return _aecf ,nil ;};_ba :=&PdfAction {};_ba ._fe =_db ;_eda ._acaed .Register (_gaed ,_ba );if _daf :=_gaed .Get ("\u0054\u0079\u0070\u0065");_daf !=nil {_dcf ,_dce :=_daf .(*_dfg .PdfObjectName );if !_dce {_egb .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_daf );
+}else {if *_dcf !="\u0041\u0063\u0074\u0069\u006f\u006e"{_egb .Log .Trace ("\u0055\u006e\u0073u\u0073\u0070\u0065\u0063t\u0065\u0064\u0020\u0054\u0079\u0070\u0065 \u0021\u003d\u0020\u0041\u0063\u0074\u0069\u006f\u006e\u0020\u0028\u0025\u0073\u0029",*_dcf );
+};_ba .Type =_dcf ;};};if _dg :=_gaed .Get ("\u004e\u0065\u0078\u0074");_dg !=nil {_ba .Next =_dg ;};if _bfc :=_gaed .Get ("\u0053");_bfc !=nil {_ba .S =_bfc ;};_efcb ,_fcac :=_ba .S .(*_dfg .PdfObjectName );if !_fcac {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_ba .S );
+return nil ,_d .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_ba .S );};_bcae :=PdfActionType (_efcb .String ());
+switch _bcae {case ActionTypeGoTo :_aac ,_aaca :=_eda .newPdfActionGotoFromDict (_gaed );if _aaca !=nil {return nil ,_aaca ;};_aac .PdfAction =_ba ;_ba ._bdb =_aac ;return _ba ,nil ;case ActionTypeGoToR :_gbd ,_bdg :=_eda .newPdfActionGotoRFromDict (_gaed );
+if _bdg !=nil {return nil ,_bdg ;};_gbd .PdfAction =_ba ;_ba ._bdb =_gbd ;return _ba ,nil ;case ActionTypeGoToE :_dbg ,_bgc :=_eda .newPdfActionGotoEFromDict (_gaed );if _bgc !=nil {return nil ,_bgc ;};_dbg .PdfAction =_ba ;_ba ._bdb =_dbg ;return _ba ,nil ;
+case ActionTypeLaunch :_ccg ,_aab :=_eda .newPdfActionLaunchFromDict (_gaed );if _aab !=nil {return nil ,_aab ;};_ccg .PdfAction =_ba ;_ba ._bdb =_ccg ;return _ba ,nil ;case ActionTypeThread :_aeg ,_dfa :=_eda .newPdfActionThreadFromDict (_gaed );if _dfa !=nil {return nil ,_dfa ;
+};_aeg .PdfAction =_ba ;_ba ._bdb =_aeg ;return _ba ,nil ;case ActionTypeURI :_afbg ,_fbd :=_eda .newPdfActionURIFromDict (_gaed );if _fbd !=nil {return nil ,_fbd ;};_afbg .PdfAction =_ba ;_ba ._bdb =_afbg ;return _ba ,nil ;case ActionTypeSound :_ega ,_ggea :=_eda .newPdfActionSoundFromDict (_gaed );
+if _ggea !=nil {return nil ,_ggea ;};_ega .PdfAction =_ba ;_ba ._bdb =_ega ;return _ba ,nil ;case ActionTypeMovie :_gdbc ,_fbc :=_eda .newPdfActionMovieFromDict (_gaed );if _fbc !=nil {return nil ,_fbc ;};_gdbc .PdfAction =_ba ;_ba ._bdb =_gdbc ;return _ba ,nil ;
+case ActionTypeHide :_cff ,_begd :=_eda .newPdfActionHideFromDict (_gaed );if _begd !=nil {return nil ,_begd ;};_cff .PdfAction =_ba ;_ba ._bdb =_cff ;return _ba ,nil ;case ActionTypeNamed :_gaf ,_bfa :=_eda .newPdfActionNamedFromDict (_gaed );if _bfa !=nil {return nil ,_bfa ;
+};_gaf .PdfAction =_ba ;_ba ._bdb =_gaf ;return _ba ,nil ;case ActionTypeSubmitForm :_gebe ,_ccbc :=_eda .newPdfActionSubmitFormFromDict (_gaed );if _ccbc !=nil {return nil ,_ccbc ;};_gebe .PdfAction =_ba ;_ba ._bdb =_gebe ;return _ba ,nil ;case ActionTypeResetForm :_cdfg ,_ceb :=_eda .newPdfActionResetFormFromDict (_gaed );
+if _ceb !=nil {return nil ,_ceb ;};_cdfg .PdfAction =_ba ;_ba ._bdb =_cdfg ;return _ba ,nil ;case ActionTypeImportData :_gfa ,_gbac :=_eda .newPdfActionImportDataFromDict (_gaed );if _gbac !=nil {return nil ,_gbac ;};_gfa .PdfAction =_ba ;_ba ._bdb =_gfa ;
+return _ba ,nil ;case ActionTypeSetOCGState :_bed ,_gfe :=_eda .newPdfActionSetOCGStateFromDict (_gaed );if _gfe !=nil {return nil ,_gfe ;};_bed .PdfAction =_ba ;_ba ._bdb =_bed ;return _ba ,nil ;case ActionTypeRendition :_adf ,_aea :=_eda .newPdfActionRenditionFromDict (_gaed );
+if _aea !=nil {return nil ,_aea ;};_adf .PdfAction =_ba ;_ba ._bdb =_adf ;return _ba ,nil ;case ActionTypeTrans :_fcf ,_abd :=_eda .newPdfActionTransFromDict (_gaed );if _abd !=nil {return nil ,_abd ;};_fcf .PdfAction =_ba ;_ba ._bdb =_fcf ;return _ba ,nil ;
+case ActionTypeGoTo3DView :_afbf ,_aegg :=_eda .newPdfActionGoTo3DViewFromDict (_gaed );if _aegg !=nil {return nil ,_aegg ;};_afbf .PdfAction =_ba ;_ba ._bdb =_afbf ;return _ba ,nil ;case ActionTypeJavaScript :_dcg ,_cce :=_eda .newPdfActionJavaScriptFromDict (_gaed );
+if _cce !=nil {return nil ,_cce ;};_dcg .PdfAction =_ba ;_ba ._bdb =_dcg ;return _ba ,nil ;};_egb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u0067\u006e\u006f\u0072\u0069\u006eg\u0020u\u006ek\u006eo\u0077\u006e\u0020\u0061\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073",_bcae );
+return nil ,nil ;};
+
+// Direction returns the value of the direction.
+func (_cbbdg *ViewerPreferences )Direction ()Direction {return _cbbdg ._afddc };
+
+// NewPdfActionSound returns a new "sound" action.
+func NewPdfActionSound ()*PdfActionSound {_ca :=NewPdfAction ();_dec :=&PdfActionSound {};_dec .PdfAction =_ca ;_ca .SetContext (_dec );return _dec ;};
+
+// GetCatalogMetadata gets the catalog defined XMP Metadata.
+func (_bdbdc *PdfReader )GetCatalogMetadata ()(_dfg .PdfObject ,bool ){if _bdbdc ._fbfgb ==nil {return nil ,false ;};_ccacb :=_bdbdc ._fbfgb .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _ccacb ,_ccacb !=nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_feee *Permissions )ToPdfObject ()_dfg .PdfObject {return _feee ._gbdee };type pdfFontType3 struct{fontCommon ;_agfgb *_dfg .PdfIndirectObject ;
+
+// These fields are specific to Type 3 fonts.
+CharProcs _dfg .PdfObject ;Encoding _dfg .PdfObject ;FontBBox _dfg .PdfObject ;FontMatrix _dfg .PdfObject ;FirstChar _dfg .PdfObject ;LastChar _dfg .PdfObject ;Widths _dfg .PdfObject ;Resources _dfg .PdfObject ;_efgcd map[_ff .CharCode ]float64 ;_bafca _ff .TextEncoder ;
+};func (_fdcgd *PdfReader )buildPageList (_gdgcg *_dfg .PdfIndirectObject ,_faabfe *_dfg .PdfIndirectObject ,_efaeg map[_dfg .PdfObject ]struct{})error {if _gdgcg ==nil {return nil ;};if _ ,_gcfg :=_efaeg [_gdgcg ];_gcfg {_egb .Log .Debug ("\u0043\u0079\u0063l\u0069\u0063\u0020\u0072e\u0063\u0075\u0072\u0073\u0069\u006f\u006e,\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0028\u0025\u0076\u0029",_gdgcg .ObjectNumber );
+return nil ;};_efaeg [_gdgcg ]=struct{}{};_bfag ,_facdb :=_gdgcg .PdfObject .(*_dfg .PdfObjectDictionary );if !_facdb {return _bd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_aagga ,_facdb :=(*_bfag ).Get ("\u0054\u0079\u0070\u0065").(*_dfg .PdfObjectName );
+if !_facdb {if _bfag .Get ("\u004b\u0069\u0064\u0073")==nil {return _bd .New ("\u006e\u006f\u0064\u0065 \u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0054\u0079p\u0065 \u0028\u0052\u0065\u0071\u0075\u0069\u0072e\u0064\u0029");};_egb .Log .Debug ("ER\u0052\u004fR\u003a\u0020\u006e\u006f\u0064\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067\u0020\u0054\u0079\u0070\u0065\u002c\u0020\u0062\u0075\u0074\u0020\u0068\u0061\u0073\u0020\u004b\u0069\u0064\u0073\u002e\u0020\u0041\u0073\u0073u\u006di\u006e\u0067\u0020\u0050\u0061\u0067\u0065\u0073 \u006eo\u0064\u0065.");
+_aagga =_dfg .MakeName ("\u0050\u0061\u0067e\u0073");_bfag .Set ("\u0054\u0079\u0070\u0065",_aagga );};_egb .Log .Trace ("\u0062\u0075\u0069\u006c\u0064\u0050a\u0067\u0065\u004c\u0069\u0073\u0074\u0020\u006e\u006f\u0064\u0065\u0020\u0074y\u0070\u0065\u003a\u0020\u0025\u0073\u0020(\u0025\u002b\u0076\u0029",*_aagga ,_gdgcg );
+if *_aagga =="\u0050\u0061\u0067\u0065"{_gcae ,_ggdaf :=_fdcgd .newPdfPageFromDict (_bfag );if _ggdaf !=nil {return _ggdaf ;};_gcae .setContainer (_gdgcg );if _faabfe !=nil {_bfag .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_faabfe );};_fdcgd ._ggbf =append (_fdcgd ._ggbf ,_gdgcg );
+_fdcgd .PageList =append (_fdcgd .PageList ,_gcae );return nil ;};if *_aagga !="\u0050\u0061\u0067e\u0073"{if _fdcgd ._agbcd .Opts !=nil &&_fdcgd ._agbcd .Opts .RelaxedMode {_egb .Log .Warning ("\u0057\u0061\u0072\u006e\u0069\u006e\u0067\u003a\u0020\u0054\u0061\u0062\u006c\u0065\u0020\u006f\u0066 \u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0063\u006fn\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u006e\u006f\u006e\u0020\u0050\u0061\u0067\u0065\u002f\u0050a\u0067\u0065\u0073\u0020\u006f\u0062j\u0065\u0063t\u0021\u0020(\u0025s\u0029",_aagga );
+return nil ;};_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0054\u0061\u0062\u006c\u0065\u0020\u006f\u0066\u0020\u0063\u006fnt\u0065n\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067 \u006e\u006f\u006e\u0020\u0050\u0061\u0067\u0065\u002f\u0050\u0061\u0067\u0065\u0073\u0020\u006f\u0062j\u0065\u0063\u0074\u0021\u0020\u0028\u0025\u0073\u0029",_aagga );
+return _bd .New ("\u0074\u0061\u0062\u006c\u0065\u0020o\u0066\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067 \u006e\u006f\u006e\u0020\u0050\u0061\u0067\u0065\u002f\u0050\u0061\u0067\u0065\u0073 \u006fb\u006a\u0065\u0063\u0074");
+};if _faabfe !=nil {_bfag .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_faabfe );};if !_fdcgd ._bafba {_bebgc :=_fdcgd .traverseObjectData (_gdgcg );if _bebgc !=nil {return _bebgc ;};};_gaee ,_gefc :=_fdcgd ._agbcd .Resolve (_bfag .Get ("\u004b\u0069\u0064\u0073"));
+if _gefc !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0046\u0061\u0069\u006c\u0065\u0064\u0020\u006c\u006f\u0061\u0064\u0069\u006eg\u0020\u004b\u0069\u0064\u0073\u0020\u006fb\u006a\u0065\u0063\u0074");return _gefc ;};var _agaad *_dfg .PdfObjectArray ;
+_agaad ,_facdb =_gaee .(*_dfg .PdfObjectArray );if !_facdb {_cgggg ,_bcdcc :=_gaee .(*_dfg .PdfIndirectObject );if !_bcdcc {return _bd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_agaad ,_facdb =_cgggg .PdfObject .(*_dfg .PdfObjectArray );
+if !_facdb {return _bd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u0069\u006ed\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006ae\u0063\u0074");};};_egb .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_agaad );
+for _bfcfdb ,_gdegg :=range _agaad .Elements (){_afff ,_bbce :=_dfg .GetIndirect (_gdegg );if !_bbce {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074 \u006f\u0062\u006a\u0065\u0063t\u0020\u002d \u0028\u0025\u0073\u0029",_afff );
+return _bd .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_agaad .Set (_bfcfdb ,_afff );_gefc =_fdcgd .buildPageList (_afff ,_gdgcg ,_efaeg );if _gefc !=nil {return _gefc ;
+};};return nil ;};
+
+// ToPdfObject converts the PdfFont object to its PDF representation.
+func (_agefb *PdfFont )ToPdfObject ()_dfg .PdfObject {if _agefb ._fab ==nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0066\u006f\u006e\u0074 \u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073 \u006e\u0069\u006c");return _dfg .MakeNull ();
+};return _agefb ._fab .ToPdfObject ();};type pdfFontType0 struct{fontCommon ;_gfcf *_dfg .PdfIndirectObject ;_gbaf _ff .TextEncoder ;Encoding _dfg .PdfObject ;DescendantFont *PdfFont ;_dfec *_efg .CMap ;};func (_gfdga *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _gfdga ._agbcd .GetCrypter ()!=nil &&!_gfdga ._agbcd .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
+};_dfeb :=_gfdga ._fbfgb ;_ccbb :=_dfeb .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _ccbb ==nil {return nil ,nil ;};_egb .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_gbcge :=_dfg .ResolveReference (_ccbb );
+_egb .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_gbcge );if _bgagd :=_dfg .IsNullObject (_gbcge );_bgagd {_egb .Log .Trace ("\u004f\u0075\u0074li\u006e\u0065\u0020\u0072\u006f\u006f\u0074\u0020\u0069s\u0020n\u0075l\u006c \u002d\u0020\u006e\u006f\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");
+return nil ,nil ;};_fabbd ,_cgdcc :=_gbcge .(*_dfg .PdfIndirectObject );if !_cgdcc {if _ ,_gegef :=_dfg .GetDict (_gbcge );!_gegef {_egb .Log .Debug ("\u0049\u006e\u0076a\u006c\u0069\u0064\u0020o\u0075\u0074\u006c\u0069\u006e\u0065\u0020r\u006f\u006f\u0074\u0020\u002d\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067");
+return nil ,nil ;};_egb .Log .Debug ("\u004f\u0075t\u006c\u0069\u006e\u0065\u0020r\u006f\u006f\u0074\u0020\u0069s\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u002e\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
+_fabbd =_dfg .MakeIndirectObject (_gbcge );};_gfegg ,_cgdcc :=_fabbd .PdfObject .(*_dfg .PdfObjectDictionary );if !_cgdcc {return nil ,_bd .New ("\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072y");
+};_egb .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_gfegg );_adgdgf ,_ ,_dccba :=_gfdga .buildOutlineTree (_fabbd ,nil ,nil ,nil );if _dccba !=nil {return nil ,_dccba ;};_egb .Log .Trace ("\u0052\u0065\u0073\u0075\u006c\u0074\u0069\u006e\u0067\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065:\u0020\u0025\u0076",_adgdgf );
+return _adgdgf ,nil ;};
+
+// Write outputs the object as it is to be written to file.
+func (_gcebe *pdfSignDictionary )Write ()[]byte {_gcebe ._ffbffd =0;_gcebe ._ceffa =0;_gcebe ._fdfed =0;_gcebe ._gcdg =0;_cbdc :=_cca .NewBuffer (nil );_cbdc .WriteString ("\u003c\u003c");for _ ,_fbabc :=range _gcebe .Keys (){_aecgga :=_gcebe .Get (_fbabc );
+switch _fbabc {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_cbdc .Write (_fbabc .Write ());_cbdc .WriteString ("\u0020");_gcebe ._fdfed =_cbdc .Len ();_cbdc .Write (_aecgga .Write ());_cbdc .WriteString ("\u0020");_gcebe ._gcdg =_cbdc .Len ()-1;
+case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_cbdc .Write (_fbabc .Write ());_cbdc .WriteString ("\u0020");_gcebe ._ffbffd =_cbdc .Len ();_cbdc .Write (_aecgga .Write ());_cbdc .WriteString ("\u0020");_gcebe ._ceffa =_cbdc .Len ()-1;default:_cbdc .Write (_fbabc .Write ());
+_cbdc .WriteString ("\u0020");_cbdc .Write (_aecgga .Write ());};};_cbdc .WriteString ("\u003e\u003e");return _cbdc .Bytes ();};
+
+// ToPdfObject recursively builds the Outline tree PDF object.
+func (_adgbb *PdfOutline )ToPdfObject ()_dfg .PdfObject {_dafbg :=_adgbb ._gcdeg ;_ddffc :=_dafbg .PdfObject .(*_dfg .PdfObjectDictionary );_ddffc .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _adgbb .First !=nil {_ddffc .Set ("\u0046\u0069\u0072s\u0074",_adgbb .First .ToPdfObject ());
+};if _adgbb .Last !=nil {_ddffc .Set ("\u004c\u0061\u0073\u0074",_adgbb .Last .GetContext ().GetContainingPdfObject ());};if _adgbb .Parent !=nil {_ddffc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_adgbb .Parent .GetContext ().GetContainingPdfObject ());
+};if _adgbb .Count !=nil {_ddffc .Set ("\u0043\u006f\u0075n\u0074",_dfg .MakeInteger (*_adgbb .Count ));};return _dafbg ;};
+
+// ReplacePage replaces the original page to a new page.
+func (_fbeec *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_cgfc :=pageNum -1;for _gegb :=range _fbeec ._egfc {if _gegb ==_cgfc {_gegf :=page .Duplicate ();_gccaa (_gegf );_fbeec ._egfc [_gegb ]=_gegf ;};};};
+
+// PdfAnnotationFreeText represents FreeText annotations.
+// (Section 12.5.6.6).
+type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _dfg .PdfObject ;Q _dfg .PdfObject ;RC _dfg .PdfObject ;DS _dfg .PdfObject ;CL _dfg .PdfObject ;IT _dfg .PdfObject ;BE _dfg .PdfObject ;RD _dfg .PdfObject ;BS _dfg .PdfObject ;LE _dfg .PdfObject ;
+};
+
+// ToPdfObject implements interface PdfModel.
+func (_fdd *PdfActionThread )ToPdfObject ()_dfg .PdfObject {_fdd .PdfAction .ToPdfObject ();_cdd :=_fdd ._fe ;_eeag :=_cdd .PdfObject .(*_dfg .PdfObjectDictionary );_eeag .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeThread )));if _fdd .F !=nil {_eeag .Set ("\u0046",_fdd .F .ToPdfObject ());
+};_eeag .SetIfNotNil ("\u0044",_fdd .D );_eeag .SetIfNotNil ("\u0042",_fdd .B );return _cdd ;};func (_gdcab *PdfReader )buildNameNodes (_ebbde *_dfg .PdfIndirectObject ,_cgbca map[_dfg .PdfObject ]struct{})error {if _ebbde ==nil {return nil ;};if _ ,_bcdfc :=_cgbca [_ebbde ];
+_bcdfc {_egb .Log .Debug ("\u0043\u0079\u0063l\u0069\u0063\u0020\u0072e\u0063\u0075\u0072\u0073\u0069\u006f\u006e,\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0028\u0025\u0076\u0029",_ebbde .ObjectNumber );return nil ;};_cgbca [_ebbde ]=struct{}{};
+_ccbfcd ,_bcgdc :=_ebbde .PdfObject .(*_dfg .PdfObjectDictionary );if !_bcgdc {return _bd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _eeafa ,_cfaff :=_dfg .GetDict (_ccbfcd .Get ("\u0044\u0065\u0073t\u0073"));
+_cfaff {_fbgae ,_acbaf :=_dfg .GetArray (_eeafa .Get ("\u004b\u0069\u0064\u0073"));if !_acbaf {return _bd .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_egb .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_fbgae );
+for _cgfbd ,_fafff :=range _fbgae .Elements (){_gdacf ,_eabaa :=_dfg .GetIndirect (_fafff );if !_eabaa {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u0068\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006e\u0064i\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u002d \u0028\u0025\u0073\u0029",_gdacf );
+return _bd .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_fbgae .Set (_cgfbd ,_gdacf );_gbcab :=_gdcab .buildNameNodes (_gdacf ,_cgbca );if _gbcab !=nil {return _gbcab ;
+};};};if _gfca ,_dedce :=_dfg .GetDict (_ccbfcd );_dedce {if !_dfg .IsNullObject (_gfca .Get ("\u004b\u0069\u0064\u0073")){if _ffefa ,_ddda :=_dfg .GetArray (_gfca .Get ("\u004b\u0069\u0064\u0073"));_ddda {for _ggccc ,_efdbd :=range _ffefa .Elements (){if _bdabg ,_edce :=_dfg .GetIndirect (_efdbd );
+_edce {_ffefa .Set (_ggccc ,_bdabg );_cbfag :=_gdcab .buildNameNodes (_bdabg ,_cgbca );if _cbfag !=nil {return _cbfag ;};};};};};};return nil ;};func (_gdff *PdfReader )newPdfAnnotationWatermarkFromDict (_bcbb *_dfg .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_fgc :=PdfAnnotationWatermark {};
+_fgc .FixedPrint =_bcbb .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_fgc ,nil ;};
+
+// Initialize initializes the PdfSignature.
+func (_abccec *PdfSignature )Initialize ()error {if _abccec .Handler ==nil {return _bd .New ("\u0073\u0069\u0067n\u0061\u0074\u0075\u0072e\u0020\u0068\u0061\u006e\u0064\u006c\u0065r\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u006e\u0069\u006c");
+};return _abccec .Handler .InitSignature (_abccec );};
+
+// NewStructTreeRoot creates a new structure tree root dictionary.
+func NewStructTreeRoot ()*StructTreeRoot {return &StructTreeRoot {K :[]*KDict {},RoleMap :_dfg .MakeDict (),ParentTreeNextKey :0};};
+
+// PdfAnnotationRichMedia represents Rich Media annotations.
+type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _dfg .PdfObject ;RichMediaContent _dfg .PdfObject ;};
+
+// LTV represents an LTV (Long-Term Validation) client. It is used to LTV
+// enable signatures by adding validation and revocation data (certificate,
+// OCSP and CRL information) to the DSS dictionary of a PDF document.
+//
+// LTV is added through the DSS by:
+// - Adding certificates, OCSP and CRL information in the global scope of the
+// DSS. The global data is used for validating any of the signatures present
+// in the document.
+// - Adding certificates, OCSP and CRL information for a single signature,
+// through an entry in the VRI dictionary of the DSS. The added data is used
+// for validating that particular signature only. This is the recommended
+// method for adding validation data for a signature. However, this is not
+// possible in the same revision the signature is applied. Validation data
+// for a signature is added based on the Contents entry of the signature,
+// which is known only after the revision is written. Even if the Contents
+// are known (e.g. when signing externally), updating the DSS at that point
+// would invalidate the calculated signature. As a result, if adding LTV
+// in the same revision is a requirement, use the first method.
+// See LTV.EnableChain.
+//
+// The client applies both methods, when possible.
+//
+// If `LTV.SkipExisting` is set to true (the default), validations are
+// not added for signatures which are already present in the VRI entry of the
+// document's DSS dictionary.
+type LTV struct{
+
+// CertClient is the client used to retrieve certificates.
+CertClient *_dfd .CertClient ;
+
+// OCSPClient is the client used to retrieve OCSP validation information.
+OCSPClient *_dfd .OCSPClient ;
+
+// CRLClient is the client used to retrieve CRL validation information.
+CRLClient *_dfd .CRLClient ;
+
+// SkipExisting specifies whether existing signature validations
+// should be skipped.
+SkipExisting bool ;_adcg *PdfAppender ;_gaggb *DSS ;};func (_dfaag fontCommon )asPdfObjectDictionary (_befea string )*_dfg .PdfObjectDictionary {if _befea !=""&&_dfaag ._gdab !=""&&_befea !=_dfaag ._gdab {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0061\u0073\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063\u0074\u0044\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0020O\u0076\u0065\u0072\u0072\u0069\u0064\u0069\u006e\u0067\u0020\u0073\u0075\u0062t\u0079\u0070\u0065\u0020\u0074\u006f \u0025\u0023\u0071 \u0025\u0073",_befea ,_dfaag );
+}else if _befea ==""&&_dfaag ._gdab ==""{_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0061s\u0050\u0064\u0066Ob\u006a\u0065\u0063\u0074\u0044\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006e\u006f\u0020\u0073\u0075\u0062\u0074y\u0070\u0065\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_dfaag );
+}else if _dfaag ._gdab ==""{_dfaag ._gdab =_befea ;};_adaa :=_dfg .MakeDict ();_adaa .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0046\u006f\u006e\u0074"));_adaa .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_dfg .MakeName (_dfaag ._dbcbc ));
+_adaa .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName (_dfaag ._gdab ));if _dfaag ._cebfd !=nil {_adaa .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_dfaag ._cebfd .ToPdfObject ());};if _dfaag ._eaaga !=nil {_adaa .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_dfaag ._eaaga );
+}else if _dfaag ._bgdcbc !=nil {_gcdfc ,_dbab :=_dfaag ._bgdcbc .Stream ();if _dbab !=nil {_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u0067\u0065\u0074\u0020C\u004d\u0061\u0070\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u002e\u0020\u0065r\u0072\u003d\u0025\u0076",_dbab );
+}else {_adaa .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_gcdfc );};};return _adaa ;};
+
+// PageBoundary represents the name of the page boundary representing
+// the visible area.
+type PageBoundary string ;func (_afcgc *PdfReader )newPdfAnnotationFreeTextFromDict (_cfff *_dfg .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_gege :=PdfAnnotationFreeText {};_gafc ,_ecea :=_afcgc .newPdfAnnotationMarkupFromDict (_cfff );if _ecea !=nil {return nil ,_ecea ;
+};_gege .PdfAnnotationMarkup =_gafc ;_gege .DA =_cfff .Get ("\u0044\u0041");_gege .Q =_cfff .Get ("\u0051");_gege .RC =_cfff .Get ("\u0052\u0043");_gege .DS =_cfff .Get ("\u0044\u0053");_gege .CL =_cfff .Get ("\u0043\u004c");_gege .IT =_cfff .Get ("\u0049\u0054");
+_gege .BE =_cfff .Get ("\u0042\u0045");_gege .RD =_cfff .Get ("\u0052\u0044");_gege .BS =_cfff .Get ("\u0042\u0053");_gege .LE =_cfff .Get ("\u004c\u0045");return &_gege ,nil ;};func (_ccea *PdfReader )newPdfAnnotationLinkFromDict (_bacc *_dfg .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_cbca :=PdfAnnotationLink {};
+_cbca .A =_bacc .Get ("\u0041");_cbca .Dest =_bacc .Get ("\u0044\u0065\u0073\u0074");_cbca .H =_bacc .Get ("\u0048");_cbca .PA =_bacc .Get ("\u0050\u0041");_cbca .QuadPoints =_bacc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_cbca .BS =_bacc .Get ("\u0042\u0053");
+return &_cbca ,nil ;};func (_dcc *PdfReader )newPdfActionGotoRFromDict (_feb *_dfg .PdfObjectDictionary )(*PdfActionGoToR ,error ){_dd ,_dabd :=_dbga (_feb .Get ("\u0046"));if _dabd !=nil {return nil ,_dabd ;};return &PdfActionGoToR {D :_feb .Get ("\u0044"),NewWindow :_feb .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_dd },nil ;
+};
+
+// GetFontDescriptor returns the font descriptor for `font`.
+func (_cgga PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _cgga ._fab .getFontDescriptor (),nil ;};
+
+// PdfRectangle is a definition of a rectangle.
+type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
+
+// PdfActionSound represents a sound action.
+type PdfActionSound struct{*PdfAction ;Sound _dfg .PdfObject ;Volume _dfg .PdfObject ;Synchronous _dfg .PdfObject ;Repeat _dfg .PdfObject ;Mix _dfg .PdfObject ;};
+
+// ToPdfObject returns a stream object.
+func (_abeab *XObjectForm )ToPdfObject ()_dfg .PdfObject {_bbeae :=_abeab ._baced ;_dgcdf :=_bbeae .PdfObjectDictionary ;if _abeab .Filter !=nil {_dgcdf =_abeab .Filter .MakeStreamDict ();_bbeae .PdfObjectDictionary =_dgcdf ;};_dgcdf .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
+_dgcdf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0046\u006f\u0072\u006d"));_dgcdf .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_abeab .FormType );_dgcdf .SetIfNotNil ("\u0042\u0042\u006f\u0078",_abeab .BBox );
+_dgcdf .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_abeab .Matrix );if _abeab .Resources !=nil {_dgcdf .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_abeab .Resources .ToPdfObject ());};_dgcdf .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_abeab .Group );
+_dgcdf .SetIfNotNil ("\u0052\u0065\u0066",_abeab .Ref );_dgcdf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_abeab .MetaData );_dgcdf .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_abeab .PieceInfo );_dgcdf .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_abeab .LastModified );
+_dgcdf .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_abeab .StructParent );_dgcdf .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_abeab .StructParents );_dgcdf .SetIfNotNil ("\u004f\u0050\u0049",_abeab .OPI );
+_dgcdf .SetIfNotNil ("\u004f\u0043",_abeab .OC );_dgcdf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_abeab .Name );_dgcdf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_dfg .MakeInteger (int64 (len (_abeab .Stream ))));_bbeae .Stream =_abeab .Stream ;return _bbeae ;
+};
+
+// GetRuneMetrics returns the character metrics for the specified rune.
+// A bool flag is returned to indicate whether or not the entry was found.
+func (_gcbce pdfCIDFontType2 )GetRuneMetrics (r rune )(_bf .CharMetrics ,bool ){_cffaf ,_egbee :=_gcbce ._cede [r ];if !_egbee {_bdad ,_dggfa :=_dfg .GetInt (_gcbce .DW );if !_dggfa {return _bf .CharMetrics {},false ;};_cffaf =int (*_bdad );};return _bf .CharMetrics {Wx :float64 (_cffaf )},true ;
+};
+
+// Evaluate runs the function. Input is [x1 x2 x3].
+func (_fdcfc *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _fdcfc ._adgdc ==nil {_fdcfc ._adgdc =_cb .NewPSExecutor (_fdcfc .Program );};var _cdgaa []_cb .PSObject ;for _ ,_ecba :=range xVec {_cdgaa =append (_cdgaa ,_cb .MakeReal (_ecba ));
+};_bfbdea ,_defdg :=_fdcfc ._adgdc .Execute (_cdgaa );if _defdg !=nil {return nil ,_defdg ;};_febae ,_defdg :=_cb .PSObjectArrayToFloat64Array (_bfbdea );if _defdg !=nil {return nil ,_defdg ;};return _febae ,nil ;};
+
+// NewPdfReaderFromFile creates a new PdfReader from the speficied PDF file.
+// If ReaderOpts is nil it will be set to default value from NewReaderOpts.
+func NewPdfReaderFromFile (pdfFile string ,opts *ReaderOpts )(*PdfReader ,*_ga .File ,error ){const _ecgcb ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
+_cdgfe ,_ebeec :=_ga .Open (pdfFile );if _ebeec !=nil {return nil ,nil ,_ebeec ;};_caefa ,_ebeec :=_dafc (_cdgfe ,opts ,true ,_ecgcb );if _ebeec !=nil {_cdgfe .Close ();return nil ,nil ,_ebeec ;};_caefa ._aefda =pdfFile ;return _caefa ,_cdgfe ,nil ;};
+
+// XObjectForm (Table 95 in 8.10.2).
+type XObjectForm struct{Filter _dfg .StreamEncoder ;FormType _dfg .PdfObject ;BBox _dfg .PdfObject ;Matrix _dfg .PdfObject ;Resources *PdfPageResources ;Group _dfg .PdfObject ;Ref _dfg .PdfObject ;MetaData _dfg .PdfObject ;PieceInfo _dfg .PdfObject ;LastModified _dfg .PdfObject ;
+StructParent _dfg .PdfObject ;StructParents _dfg .PdfObject ;OPI _dfg .PdfObject ;OC _dfg .PdfObject ;Name _dfg .PdfObject ;
+
+// Stream data.
+Stream []byte ;_baced *_dfg .PdfObjectStream ;};
+
+// ColorToRGB verifies that the input color is an RGB color. Method exists in
+// order to satisfy the PdfColorspace interface.
+func (_dcce *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_cdgf ,_eedd :=color .(*PdfColorDeviceRGB );if !_eedd {_egb .Log .Debug ("\u0049\u006e\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006f\u0072 \u006e\u006f\u0074\u0020\u0064\u0065\u0076\u0069\u0063\u0065 \u0052\u0047\u0042");
+return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _cdgf ,nil ;};func (_cegd *PdfReader )loadAction (_ebf _dfg .PdfObject )(*PdfAction ,error ){if _egg ,_gag :=_dfg .GetIndirect (_ebf );
+_gag {_gfga ,_dbe :=_cegd .newPdfActionFromIndirectObject (_egg );if _dbe !=nil {return nil ,_dbe ;};return _gfga ,nil ;}else if !_dfg .IsNullObject (_ebf ){return nil ,_bd .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
+};return nil ,nil ;};
+
+// ViewerPreferences represents the viewer preferences of a PDF document.
+type ViewerPreferences struct{_dcdcg *bool ;_eaded *bool ;_dgbgf *bool ;_abea *bool ;_ebdgb *bool ;_dagge *bool ;_gbbce NonFullScreenPageMode ;_afddc Direction ;_gaeae PageBoundary ;_cfbeg PageBoundary ;_ggbeb PageBoundary ;_cdbee PageBoundary ;_bcdgc PrintScaling ;
+_adeg Duplex ;_cdgcd *bool ;_gbdfbf []int ;_gefff int ;};
+
+// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
+func (_bcbdag *PdfPageResources )HasColorspaceByName (keyName _dfg .PdfObjectName )bool {_aafde ,_edecg :=_bcbdag .GetColorspaces ();if _edecg !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_edecg );
+return false ;};if _aafde ==nil {return false ;};_ ,_egfa :=_aafde .Colorspaces [string (keyName )];return _egfa ;};func _bgade (_cgag []byte )bool {if len (_cgag )< 4{return true ;};for _fbea :=range _cgag [:4]{_feecb :=rune (_fbea );if !_cf .Is (_cf .ASCII_Hex_Digit ,_feecb )&&!_cf .IsSpace (_feecb ){return true ;
+};};return false ;};var _ecdba =false ;
+
+// NewPdfAnnotationFreeText returns a new free text annotation.
+func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_bcfa :=NewPdfAnnotation ();_ceg :=&PdfAnnotationFreeText {};_ceg .PdfAnnotation =_bcfa ;_ceg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcfa .SetContext (_ceg );return _ceg ;};
+
+// NewPdfSignature creates a new PdfSignature object.
+func NewPdfSignature (handler SignatureHandler )*PdfSignature {_ddeg :=&PdfSignature {Type :_dfg .MakeName ("\u0053\u0069\u0067"),Handler :handler };_dcdg :=&pdfSignDictionary {PdfObjectDictionary :_dfg .MakeDict (),_adfa :&handler ,_abfbg :_ddeg };_ddeg ._fdeb =_dfg .MakeIndirectObject (_dcdg );
+return _ddeg ;};
+
+// GetNumComponents returns the number of color components (3 for Lab).
+func (_abec *PdfColorLab )GetNumComponents ()int {return 3};var (StructureTypeUnknown StructureType ="";StructureTypeDocument StructureType ="\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074";StructureTypePart StructureType ="\u0050\u0061\u0072\u0074";
+StructureTypeArticle StructureType ="\u0041\u0072\u0074";StructureTypeSection StructureType ="\u0053\u0065\u0063\u0074";StructureTypeDivision StructureType ="\u0044\u0069\u0076";StructureTypeBlockQuote StructureType ="\u0042\u006c\u006f\u0063\u006b\u0051\u0075\u006f\u0074\u0065";
+StructureTypeCaption StructureType ="\u0043a\u0070\u0074\u0069\u006f\u006e";StructureTypeTOC StructureType ="\u0054\u004f\u0043";StructureTypeTOCI StructureType ="\u0054\u004f\u0043\u0049";StructureTypeIndex StructureType ="\u0049\u006e\u0064e\u0078";StructureTypeNonStructural StructureType ="\u004eo\u006e\u0053\u0074\u0072\u0075\u0063t";
+StructureTypePrivate StructureType ="\u0050r\u0069\u0076\u0061\u0074\u0065";);func (_fbgbed *PdfWriter )addObject (_fbgfc _dfg .PdfObject )bool {_fgfba :=_fbgbed .hasObject (_fbgfc );if !_fgfba {_ebcde :=_dfg .ResolveReferencesDeep (_fbgfc ,_fbgbed ._faeee );
+if _ebcde !=nil {_egb .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_ebcde );};_fbgbed ._abcef =append (_fbgbed ._abcef ,_fbgfc );_fbgbed ._bgbee [_fbgfc ]=struct{}{};return true ;};return false ;
+};
+
+// AllFields returns a flattened list of all fields in the form.
+func (_befb *PdfAcroForm )AllFields ()[]*PdfField {if _befb ==nil {return nil ;};var _bfcaa []*PdfField ;if _befb .Fields !=nil {for _ ,_gbaab :=range *_befb .Fields {_bfcaa =append (_bfcaa ,_adbgf (_gbaab )...);};};return _bfcaa ;};func (_egec *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
+
+
+// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
+func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
+
+// SetImageHandler sets the image handler used by the package.
+func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
+
+// StdFontName represents name of a standard font.
+type StdFontName =_bf .StdFontName ;
+
+// GetNumComponents returns the number of color components of the colorspace device.
+// Returns 3 for a CalRGB device.
+func (_fbgad *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};func (_bec *PdfReader )newPdfActionHideFromDict (_gda *_dfg .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_gda .Get ("\u0054"),H :_gda .Get ("\u0048")},nil ;
+};
+
+// PdfColorspaceCalRGB stores A, B, C components
+type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_bgcc *_dfg .PdfObjectDictionary ;_fbag *_dfg .PdfIndirectObject ;};
+
+// IsTiling specifies if the pattern is a tiling pattern.
+func (_beceg *PdfPattern )IsTiling ()bool {return _beceg .PatternType ==1};
+
+// SetXObjectImageByNameLazy adds the provided XObjectImage to the page resources.
+// The added XObjectImage is identified by the specified name.
+func (_ccbeg *PdfPageResources )SetXObjectImageByNameLazy (keyName _dfg .PdfObjectName ,ximg *XObjectImage ,lazy bool )error {_adgbc :=ximg .ToPdfObject ().(*_dfg .PdfObjectStream );if lazy {_adgbc .MakeLazy ();};_fcgbe :=_ccbeg .SetXObjectByName (keyName ,_adgbc );
+return _fcgbe ;};
+
+// ColorAt returns the color of the image pixel specified by the x and y coordinates.
+func (_aeac *Image )ColorAt (x ,y int )(_dc .Color ,error ){_egff :=_ef .BytesPerLine (int (_aeac .Width ),int (_aeac .BitsPerComponent ),_aeac .ColorComponents );switch _aeac .ColorComponents {case 1:return _ef .ColorAtGrayscale (x ,y ,int (_aeac .BitsPerComponent ),_egff ,_aeac .Data ,_aeac ._begcc );
+case 3:return _ef .ColorAtNRGBA (x ,y ,int (_aeac .Width ),_egff ,int (_aeac .BitsPerComponent ),_aeac .Data ,_aeac ._baeef ,_aeac ._begcc );case 4:return _ef .ColorAtCMYK (x ,y ,int (_aeac .Width ),_aeac .Data ,_aeac ._begcc );};_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064 i\u006da\u0067\u0065\u002e\u0020\u0025\u0064\u0020\u0063\u006f\u006d\u0070\u006fn\u0065\u006e\u0074\u0073\u002c\u0020\u0025\u0064\u0020\u0062\u0069\u0074\u0073\u0020\u0070\u0065\u0072 \u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aeac .ColorComponents ,_aeac .BitsPerComponent );
+return nil ,_bd .New ("\u0075\u006e\u0073\u0075p\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0069\u006d\u0061g\u0065 \u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065");};func _ecaae (_cggea _dfg .PdfObject )*IDTree {_cggea =_dfg .ResolveReference (_cggea );
+_aefff :=_dfg .MakeArray ();_gcdd :=_dfg .MakeArray ();_fccdg :=[]*IDTree {};if _egbg ,_aaaag :=_dfg .GetDict (_cggea );_aaaag {if _fgdda :=_egbg .Get ("\u004e\u0061\u006de\u0073");_fgdda !=nil {_fgdda =_dfg .ResolveReference (_fgdda );if _bcfde ,_cagdg :=_dfg .GetArray (_fgdda );
+_cagdg {for _ ,_gfbcff :=range _bcfde .Elements (){_aefff .Append (_gfbcff );};};};if _gfggb :=_egbg .Get ("\u004c\u0069\u006d\u0069\u0074\u0073");_gfggb !=nil {_gfggb =_dfg .ResolveReference (_gfggb );if _fdbdd ,_cgbfa :=_dfg .GetArray (_gfggb );_cgbfa {for _ebeceb :=0;
+_ebeceb < 2;_ebeceb ++{_gcdd .Append (_fdbdd .Get (_ebeceb ));};};};if _dfgga :=_egbg .Get ("\u004b\u0069\u0064\u0073");_dfgga !=nil {_dfgga =_dfg .ResolveReference (_dfgga );if _gcafee ,_efgb :=_dfg .GetArray (_dfgga );_efgb {for _ ,_gcfc :=range _gcafee .Elements (){_gaafb :=_ecaae (_gcfc );
+_fccdg =append (_fccdg ,_gaafb );};};};};_dcae :=&IDTree {Names :_aefff ,Limits :_gcdd };if len (_fccdg )> 0{_dcae .Kids =_fccdg ;};return _dcae ;};
+
+// SetDocInfo set document info.
+// This will overwrite any globally declared document info.
+func (_egadc *PdfWriter )SetDocInfo (info *PdfInfo ){_egadc .setDocInfo (info .ToPdfObject ())};
+
+// PrintArea returns the value of the printArea.
+func (_eeceg *ViewerPreferences )PrintArea ()PageBoundary {return _eeceg ._ggbeb };
+
+// GetContainingPdfObject implements interface PdfModel.
+func (_aadggb *Permissions )GetContainingPdfObject ()_dfg .PdfObject {return _aadggb ._gbdee };
+
+// PdfAnnotationProjection represents Projection annotations.
+type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
+
+// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
+func (_bfdcff *pdfCIDFontType2 )ToPdfObject ()_dfg .PdfObject {if _bfdcff ._dfgaa ==nil {_bfdcff ._dfgaa =&_dfg .PdfIndirectObject {};};_fdbe :=_bfdcff .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
+_bfdcff ._dfgaa .PdfObject =_fdbe ;if _bfdcff .CIDSystemInfo !=nil {_fdbe .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_bfdcff .CIDSystemInfo );};if _bfdcff .DW !=nil {_fdbe .Set ("\u0044\u0057",_bfdcff .DW );};
+if _bfdcff .DW2 !=nil {_fdbe .Set ("\u0044\u0057\u0032",_bfdcff .DW2 );};if _bfdcff .W !=nil {_fdbe .Set ("\u0057",_bfdcff .W );};if _bfdcff .W2 !=nil {_fdbe .Set ("\u0057\u0032",_bfdcff .W2 );};if _bfdcff .CIDToGIDMap !=nil {_fdbe .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_bfdcff .CIDToGIDMap );
+};return _bfdcff ._dfgaa ;};
+
+// NewPdfAnnotationTrapNet returns a new trapnet annotation.
+func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_cecf :=NewPdfAnnotation ();_bdfa :=&PdfAnnotationTrapNet {};_bdfa .PdfAnnotation =_cecf ;_cecf .SetContext (_bdfa );return _bdfa ;};type modelManager struct{_cddd map[PdfModel ]_dfg .PdfObject ;_gdcgg map[_dfg .PdfObject ]PdfModel ;
+_febac _b .RWMutex ;_feeaf _b .RWMutex ;};
+
+// AddRefChild adds a child reference object.
+func (_gaagd *KDict )AddRefChild (kChild _dfg .PdfObject ){_gaagd ._dcgedc =append (_gaagd ._dcgedc ,&KValue {_gbedc :kChild });};
+
+// StringToCharcodeBytes maps the provided string runes to charcode bytes and
+// it returns the resulting slice of bytes, along with the number of runes
+// which could not be converted. If the number of misses is 0, all string runes
+// were successfully converted.
+func (_cfdda *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _cfdda .RunesToCharcodeBytes ([]rune (str ));};func (_daea *PdfReader )loadStructure ()error {if _daea ._agbcd .GetCrypter ()!=nil &&!_daea ._agbcd .IsAuthenticated (){return _d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
+};_cedfc :=_daea ._agbcd .GetTrailer ();if _cedfc ==nil {return _d .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_fcdfa ,_beagg :=_cedfc .Get ("\u0052\u006f\u006f\u0074").(*_dfg .PdfObjectReference );if !_beagg {return _d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_cedfc );
+};_gecdc ,_afcef :=_daea ._agbcd .LookupByReference (*_fcdfa );if _afcef !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u0072\u006f\u006f\u0074\u0020\u0065\u006c\u0065\u006d\u0065\u006e\u0074\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_afcef );
+return _afcef ;};_faegg ,_beagg :=_gecdc .(*_dfg .PdfIndirectObject );if !_beagg {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0028\u0072\u006f\u006f\u0074\u0020\u0025\u0071\u0029\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u0020\u0025\u0073\u0029",_gecdc ,*_cedfc );
+return _bd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_daeac ,_beagg :=(*_faegg ).PdfObject .(*_dfg .PdfObjectDictionary );if !_beagg {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020I\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u0061t\u0061\u006c\u006fg\u0020(\u0025\u0073\u0029",_faegg .PdfObject );
+return _bd .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_egb .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_daeac );_fdae ,_beagg :=_daeac .Get ("\u0050\u0061\u0067e\u0073").(*_dfg .PdfObjectReference );
+if !_beagg {return _bd .New ("\u0070\u0061\u0067\u0065\u0073\u0020\u0069\u006e\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020b\u0065\u0020\u0061\u0020\u0072e\u0066\u0065r\u0065\u006e\u0063\u0065");};_bfcfc ,_afcef :=_daea ._agbcd .LookupByReference (*_fdae );
+if _afcef !=nil {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020F\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020r\u0065\u0061\u0064 \u0070a\u0067\u0065\u0073");return _afcef ;};_eedf ,_beagg :=_bfcfc .(*_dfg .PdfIndirectObject );if !_beagg {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020P\u0061\u0067\u0065\u0073\u0020\u006f\u0062\u006a\u0065c\u0074\u0020\u0069n\u0076a\u006c\u0069\u0064");
+_egb .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_eedf );return _bd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_ceafb ,_beagg :=_eedf .PdfObject .(*_dfg .PdfObjectDictionary );if !_beagg {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0073\u0020\u006f\u0062j\u0065c\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0025\u0073\u0029",_eedf );
+return _bd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_bgcbf ,_beagg :=_dfg .GetInt (_ceafb .Get ("\u0043\u006f\u0075n\u0074"));if !_beagg {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0050\u0061\u0067\u0065\u0073\u0020\u0063\u006f\u0075\u006e\u0074\u0020\u006fb\u006a\u0065\u0063\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
+return _bd .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_beagg =_dfg .GetName (_ceafb .Get ("\u0054\u0079\u0070\u0065"));!_beagg {_egb .Log .Debug ("\u0050\u0061\u0067\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020T\u0079\u0070\u0065\u0020\u0066\u0069\u0065\u006cd\u0020n\u006f\u0074\u0020\u0073\u0065\u0074\u002e\u0020\u0053\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0054\u0079p\u0065\u0020\u0074\u006f\u0020\u0050\u0061\u0067\u0065\u0073\u002e");
+_ceafb .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0050\u0061\u0067e\u0073"));};if _cbgf ,_eecda :=_dfg .GetInt (_ceafb .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_eecda {_aeabf :=int64 (*_cbgf );_daea .Rotate =&_aeabf ;};_daea ._ceff =_fcdfa ;
+_daea ._fbfgb =_daeac ;_daea ._gfbee =_ceafb ;_daea ._ffdb =_eedf ;_daea ._dfgg =int (*_bgcbf );_daea ._ggbf =[]*_dfg .PdfIndirectObject {};_fddf :=map[_dfg .PdfObject ]struct{}{};_afcef =_daea .buildPageList (_eedf ,nil ,_fddf );if _afcef !=nil {return _afcef ;
+};_egb .Log .Trace ("\u002d\u002d\u002d");_egb .Log .Trace ("\u0054\u004f\u0043");_egb .Log .Trace ("\u0050\u0061\u0067e\u0073");_egb .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_daea ._ggbf ),_daea ._ggbf );_daea ._dagg ,_afcef =_daea .loadOutlines ();
+if _afcef !=nil {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0062\u0075i\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065 t\u0072\u0065\u0065 \u0028%\u0073\u0029",_afcef );
+return _afcef ;};_daea .AcroForm ,_afcef =_daea .loadForms ();if _afcef !=nil {return _afcef ;};_daea .DSS ,_afcef =_daea .loadDSS ();if _afcef !=nil {return _afcef ;};_daea ._efgca ,_afcef =_daea .loadPerms ();if _afcef !=nil {return _afcef ;};return nil ;
+};func (_dafg *PdfField )inherit (_fdbbe func (*PdfField )bool )(bool ,error ){_ccbdd :=map[*PdfField ]bool {};_gbbc :=false ;_fdgf :=_dafg ;for _fdgf !=nil {if _ ,_ceca :=_ccbdd [_fdgf ];_ceca {return false ,_bd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");
+};_ggad :=_fdbbe (_fdgf );if _ggad {_gbbc =true ;break ;};_ccbdd [_fdgf ]=true ;_fdgf =_fdgf .Parent ;};return _gbbc ,nil ;};func (_fbgb *PdfReader )newPdfAnnotationMarkupFromDict (_ggaa *_dfg .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_geee :=&PdfAnnotationMarkup {};
+if _aef :=_ggaa .Get ("\u0054");_aef !=nil {_geee .T =_aef ;};if _fbf :=_ggaa .Get ("\u0050\u006f\u0070u\u0070");_fbf !=nil {_dgfg ,_dadg :=_fbf .(*_dfg .PdfIndirectObject );if !_dadg {if _ ,_ddde :=_fbf .(*_dfg .PdfObjectNull );!_ddde {return nil ,_bd .New ("p\u006f\u0070\u0075\u0070\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074\u0020t\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072ec\u0074\u0020\u006fb\u006ae\u0063\u0074");
+};}else {_bef ,_fbff :=_fbgb .newPdfAnnotationFromIndirectObject (_dgfg );if _fbff !=nil {return nil ,_fbff ;};if _bef !=nil {_fbe ,_fgdg :=_bef ._dga .(*PdfAnnotationPopup );if !_fgdg {return nil ,_bd .New ("\u006f\u0062\u006ae\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0072\u0065\u0066\u0065\u0072\u0072\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0061\u0020\u0070\u006f\u0070\u0075\u0070\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e");
+};_geee .Popup =_fbe ;};};};if _gcde :=_ggaa .Get ("\u0043\u0041");_gcde !=nil {_geee .CA =_gcde ;};if _dag :=_ggaa .Get ("\u0052\u0043");_dag !=nil {_geee .RC =_dag ;};if _bbbb :=_ggaa .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
+_bbbb !=nil {_geee .CreationDate =_bbbb ;};if _febc :=_ggaa .Get ("\u0049\u0052\u0054");_febc !=nil {_geee .IRT =_febc ;};if _dgg :=_ggaa .Get ("\u0053\u0075\u0062\u006a");_dgg !=nil {_geee .Subj =_dgg ;};if _abbc :=_ggaa .Get ("\u0052\u0054");_abbc !=nil {_geee .RT =_abbc ;
+};if _aacac :=_ggaa .Get ("\u0049\u0054");_aacac !=nil {_geee .IT =_aacac ;};if _bge :=_ggaa .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_bge !=nil {_geee .ExData =_bge ;};return _geee ,nil ;};
+
+// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
+// flags are specific.
+type FieldFlag uint32 ;
+
+// ToPdfObject implements model.PdfModel interface.
+func (_dgce *PdfOutputIntent )ToPdfObject ()_dfg .PdfObject {if _dgce ._gacff ==nil {_dgce ._gacff =_dfg .MakeDict ();};_bdbfe :=_dgce ._gacff ;if _dgce .Type !=""{_bdbfe .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName (_dgce .Type ));};_bdbfe .Set ("\u0053",_dfg .MakeName (_dgce .S .String ()));
+if _dgce .OutputCondition !=""{_bdbfe .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_dfg .MakeString (_dgce .OutputCondition ));};_bdbfe .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_dfg .MakeString (_dgce .OutputConditionIdentifier ));
+_bdbfe .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_dfg .MakeString (_dgce .RegistryName ));if _dgce .Info !=""{_bdbfe .Set ("\u0049\u006e\u0066\u006f",_dfg .MakeString (_dgce .Info ));};if len (_dgce .DestOutputProfile )!=0{_edba ,_bdgec :=_dfg .MakeStream (_dgce .DestOutputProfile ,_dfg .NewFlateEncoder ());
+if _bdgec !=nil {_egb .Log .Error ("\u004d\u0061\u006b\u0065\u0053\u0074\u0072\u0065\u0061\u006d\u0020\u0044\u0065s\u0074\u004f\u0075\u0074\u0070\u0075t\u0050\u0072\u006f\u0066\u0069\u006c\u0065\u0020\u0066\u0061\u0069\u006c\u0065d\u003a\u0020\u0025\u0076",_bdgec );
+};_edba .PdfObjectDictionary .Set ("\u004e",_dfg .MakeInteger (int64 (_dgce .ColorComponents )));_bcdb :=make ([]float64 ,_dgce .ColorComponents *2);for _abbbb :=0;_abbbb < _dgce .ColorComponents *2;_abbbb ++{_edbe :=0.0;if _abbbb %2!=0{_edbe =1.0;};_bcdb [_abbbb ]=_edbe ;
+};_edba .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_dfg .MakeArrayFromFloats (_bcdb ));_bdbfe .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_edba );};return _bdbfe ;};
+
+// ImageToRGB convert 1-component grayscale data to 3-component RGB.
+func (_acff *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_bd .New ("\u0074\u0068e \u0070\u0072\u006fv\u0069\u0064\u0065\u0064 im\u0061ge\u0020\u0069\u0073\u0020\u006e\u006f\u0074 g\u0072\u0061\u0079\u0020\u0073\u0063\u0061l\u0065");
+};_fff ,_fdgc :=_ef .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._baeef ,img ._begcc );if _fdgc !=nil {return img ,_fdgc ;};_aecgc ,_fdgc :=_ef .NRGBAConverter .Convert (_fff );if _fdgc !=nil {return img ,_fdgc ;
+};_adda :=_deba (_aecgc .Base ());_egb .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_egb .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_egb .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_adda .Data );
+_egb .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_adda );return _adda ,nil ;};
+
+// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
+func (_dfaea *PdfPattern )SetContext (ctx PdfModel ){_dfaea ._bfaedb =ctx };
+
+// ToPdfObject converts date to a PDF string object.
+func (_adgdd *PdfDate )ToPdfObject ()_dfg .PdfObject {_beage :=_d .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_adgdd ._accga ,_adgdd ._fedabd ,_adgdd ._agfc ,_adgdd ._cgae ,_adgdd ._abggb ,_adgdd ._dbddf ,_adgdd ._fedac ,_adgdd ._adgc ,_adgdd ._aaggg );
+return _dfg .MakeString (_beage );};func _dfefb (_bdbbg *_dfg .PdfObjectDictionary )(*PdfShadingType7 ,error ){_acdbd :=PdfShadingType7 {};_dfdgff :=_bdbbg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
+if _dfdgff ==nil {_egb .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
+return nil ,ErrRequiredAttributeMissing ;};_bfecg ,_defeg :=_dfdgff .(*_dfg .PdfObjectInteger );if !_defeg {_egb .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_dfdgff );
+return nil ,_dfg .ErrTypeError ;};_acdbd .BitsPerCoordinate =_bfecg ;_dfdgff =_bdbbg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dfdgff ==nil {_egb .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
+return nil ,ErrRequiredAttributeMissing ;};_bfecg ,_defeg =_dfdgff .(*_dfg .PdfObjectInteger );if !_defeg {_egb .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_dfdgff );
+return nil ,_dfg .ErrTypeError ;};_acdbd .BitsPerComponent =_bfecg ;_dfdgff =_bdbbg .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _dfdgff ==nil {_egb .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067");
+return nil ,ErrRequiredAttributeMissing ;};_bfecg ,_defeg =_dfdgff .(*_dfg .PdfObjectInteger );if !_defeg {_egb .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_dfdgff );
+return nil ,_dfg .ErrTypeError ;};_acdbd .BitsPerComponent =_bfecg ;_dfdgff =_bdbbg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dfdgff ==nil {_egb .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
+return nil ,ErrRequiredAttributeMissing ;};_aaade ,_defeg :=_dfdgff .(*_dfg .PdfObjectArray );if !_defeg {_egb .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_dfdgff );
+return nil ,_dfg .ErrTypeError ;};_acdbd .Decode =_aaade ;if _gfgbee :=_bdbbg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gfgbee !=nil {_acdbd .Function =[]PdfFunction {};if _afabe ,_dadgd :=_gfgbee .(*_dfg .PdfObjectArray );_dadgd {for _ ,_bcafeb :=range _afabe .Elements (){_acbdb ,_aefga :=_gbada (_bcafeb );
+if _aefga !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_aefga );return nil ,_aefga ;};_acdbd .Function =append (_acdbd .Function ,_acbdb );
+};}else {_gdeec ,_gcgbb :=_gbada (_gfgbee );if _gcgbb !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_gcgbb );return nil ,_gcgbb ;
+};_acdbd .Function =append (_acdbd .Function ,_gdeec );};};return &_acdbd ,nil ;};
+
+// AddImageResource adds an image to the XObject resources.
+func (_dfddgf *PdfPage )AddImageResource (name _dfg .PdfObjectName ,ximg *XObjectImage )error {var _cefbe *_dfg .PdfObjectDictionary ;if _dfddgf .Resources .XObject ==nil {_cefbe =_dfg .MakeDict ();_dfddgf .Resources .XObject =_cefbe ;}else {var _fdadc bool ;
+_cefbe ,_fdadc =(_dfddgf .Resources .XObject ).(*_dfg .PdfObjectDictionary );if !_fdadc {return _bd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_cefbe .Set (name ,ximg .ToPdfObject ());
+return nil ;};
+
+// PdfColorLab represents a color in the L*, a*, b* 3 component colorspace.
+// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
+type PdfColorLab [3]float64 ;
+
+// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
+func (_adfgb *PdfPage )GetPageAsIndirectObject ()*_dfg .PdfIndirectObject {return _adfgb ._bdeee };
+
+// RemoveChild removes a specific KValue child from the kChildren slice.
+func (_beecf *KDict )RemoveChild (kv *KValue )bool {for _gfbag ,_eafca :=range _beecf ._dcgedc {if _eafca ==kv {_beecf ._dcgedc =append (_beecf ._dcgedc [:_gfbag ],_beecf ._dcgedc [_gfbag +1:]...);return true ;};};return false ;};
+
+// PdfFilespec represents a file specification which can either refer to an external or embedded file.
+type PdfFilespec struct{Type _dfg .PdfObject ;FS _dfg .PdfObject ;F _dfg .PdfObject ;UF _dfg .PdfObject ;DOS _dfg .PdfObject ;Mac _dfg .PdfObject ;Unix _dfg .PdfObject ;ID _dfg .PdfObject ;V _dfg .PdfObject ;EF _dfg .PdfObject ;RF _dfg .PdfObject ;Desc _dfg .PdfObject ;
+CI _dfg .PdfObject ;AFRelationship _dfg .PdfObject ;_bcadf _dfg .PdfObject ;};
+
+// GetCerts returns the signature certificate chain.
+func (_ffbba *PdfSignature )GetCerts ()([]*_de .Certificate ,error ){var _agdde []func ()([]*_de .Certificate ,error );switch _gddfa ,_ :=_dfg .GetNameVal (_ffbba .SubFilter );_gddfa {case "\u0061\u0064\u0062\u0065.p\u006b\u0063\u0073\u0037\u002e\u0064\u0065\u0074\u0061\u0063\u0068\u0065\u0064","\u0045\u0054\u0053\u0049.C\u0041\u0064\u0045\u0053\u002e\u0064\u0065\u0074\u0061\u0063\u0068\u0065\u0064":_agdde =append (_agdde ,_ffbba .extractChainFromPKCS7 ,_ffbba .extractChainFromCert );
+case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_agdde =append (_agdde ,_ffbba .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_agdde =append (_agdde ,_ffbba .extractChainFromPKCS7 );
+default:return nil ,_d .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_gddfa );};for _ ,_dcegf :=range _agdde {_ecgg ,_ffabc :=_dcegf ();if _ffabc !=nil {return nil ,_ffabc ;
+};if len (_ecgg )> 0{return _ecgg ,nil ;};};return nil ,ErrSignNoCertificates ;};
+
+// SetEncoder sets the encoding for the underlying font.
+// TODO(peterwilliams97): Change function signature to SetEncoder(encoder *textencoding.simpleEncoder).
+// TODO(gunnsth): Makes sense if SetEncoder is removed from the interface fonts.Font as proposed in PR #260.
+func (_dbee *pdfFontSimple )SetEncoder (encoder _ff .TextEncoder ){_dbee ._febca =encoder };
+
+// SetImage updates XObject Image with new image data.
+func (_ecedbc *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ecedbc .Filter .UpdateParams (img .GetParamsDict ());_ggcfa ,_cgdab :=_ecedbc .Filter .EncodeBytes (img .Data );if _cgdab !=nil {return _cgdab ;};_ecedbc .Stream =_ggcfa ;_agaefd :=img .Width ;
+_ecedbc .Width =&_agaefd ;_bggdde :=img .Height ;_ecedbc .Height =&_bggdde ;_eacbd :=img .BitsPerComponent ;_ecedbc .BitsPerComponent =&_eacbd ;if cs ==nil {if img .ColorComponents ==1{_ecedbc .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ecedbc .ColorSpace =NewPdfColorspaceDeviceRGB ();
+}else if img .ColorComponents ==4{_ecedbc .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _bd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ecedbc .ColorSpace =cs ;};return nil ;
+};
+
+// SetFontByName sets the font specified by keyName to the given object.
+func (_cgec *PdfPageResources )SetFontByName (keyName _dfg .PdfObjectName ,obj _dfg .PdfObject )error {if _cgec .Font ==nil {_cgec .Font =_dfg .MakeDict ();};_eagab ,_gdedc :=_dfg .TraceToDirectObject (_cgec .Font ).(*_dfg .PdfObjectDictionary );if !_gdedc {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0021\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_dfg .TraceToDirectObject (_cgec .Font ));
+return _dfg .ErrTypeError ;};_eagab .Set (keyName ,obj );return nil ;};
+
+// IsColored specifies if the pattern is colored.
+func (_agfad *PdfTilingPattern )IsColored ()bool {if _agfad .PaintType !=nil &&*_agfad .PaintType ==1{return true ;};return false ;};func (_deebb *Image )samplesTrimPadding (_cdgbc []uint32 )[]uint32 {_ceeg :=_deebb .ColorComponents *int (_deebb .Width )*int (_deebb .Height );
+if len (_cdgbc )==_ceeg {return _cdgbc ;};_gcff :=make ([]uint32 ,_ceeg );_ceddc :=int (_deebb .Width )*_deebb .ColorComponents ;var _aeaa ,_aecgg ,_afbed ,_fecfg int ;_egbeb :=_ef .BytesPerLine (int (_deebb .Width ),int (_deebb .BitsPerComponent ),_deebb .ColorComponents );
+for _aeaa =0;_aeaa < int (_deebb .Height );_aeaa ++{_aecgg =_aeaa *int (_deebb .Width );_afbed =_aeaa *_egbeb ;for _fecfg =0;_fecfg < _ceddc ;_fecfg ++{_gcff [_aecgg +_fecfg ]=_cdgbc [_afbed +_fecfg ];};};return _gcff ;};const (ButtonTypeCheckbox ButtonType =iota ;
+ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);
+
+// ToPdfObject converts the font to a PDF representation.
+func (_baae *pdfFontType3 )ToPdfObject ()_dfg .PdfObject {if _baae ._agfgb ==nil {_baae ._agfgb =&_dfg .PdfIndirectObject {};};_fafee :=_baae .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_baae ._agfgb .PdfObject =_fafee ;if _baae .FirstChar !=nil {_fafee .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_baae .FirstChar );
+};if _baae .LastChar !=nil {_fafee .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_baae .LastChar );};if _baae .Widths !=nil {_fafee .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_baae .Widths );};if _baae .Encoding !=nil {_fafee .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_baae .Encoding );
+}else if _baae ._bafca !=nil {_ggefa :=_baae ._bafca .ToPdfObject ();if _ggefa !=nil {_fafee .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ggefa );};};if _baae .FontBBox !=nil {_fafee .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_baae .FontBBox );
+};if _baae .FontMatrix !=nil {_fafee .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_baae .FontMatrix );};if _baae .CharProcs !=nil {_fafee .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_baae .CharProcs );};if _baae .Resources !=nil {_fafee .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_baae .Resources );
+};return _baae ._agfgb ;};func _cfafa ()_ge .Time {_dfbaa .Lock ();defer _dfbaa .Unlock ();return _cedee };func _ceead ()_ge .Time {_dfbaa .Lock ();defer _dfbaa .Unlock ();return _agfff };
+
+// ColorToRGB converts a Lab color to an RGB color.
+func (_fgfd *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_cfbe :=func (_eece float64 )float64 {if _eece >=6.0/29{return _eece *_eece *_eece ;};return 108.0/841*(_eece -4.0/29.0);};_bcda ,_efabc :=color .(*PdfColorLab );if !_efabc {_egb .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
+return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_bcda .L ();AStar :=_bcda .A ();BStar :=_bcda .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
+X :=_fgfd .WhitePoint [0]*_cfbe (L );Y :=_fgfd .WhitePoint [1]*_cfbe (M );Z :=_fgfd .WhitePoint [2]*_cfbe (N );_dgfa :=3.240479*X +-1.537150*Y +-0.498535*Z ;_adfeb :=-0.969256*X +1.875992*Y +0.041556*Z ;_bcdc :=0.055648*X +-0.204043*Y +1.057311*Z ;_dgfa =_df .Min (_df .Max (_dgfa ,0),1.0);
+_adfeb =_df .Min (_df .Max (_adfeb ,0),1.0);_bcdc =_df .Min (_df .Max (_bcdc ,0),1.0);return NewPdfColorDeviceRGB (_dgfa ,_adfeb ,_bcdc ),nil ;};func (_cad *PdfReader )newPdfActionRenditionFromDict (_fagg *_dfg .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_fagg .Get ("\u0052"),AN :_fagg .Get ("\u0041\u004e"),OP :_fagg .Get ("\u004f\u0050"),JS :_fagg .Get ("\u004a\u0053")},nil ;
+};
+
+// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
+func (_gcce *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_cece :=_efe .NewReader (img .getBase ());_gccd :=_ef .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_ddbc :=_efe .NewWriter (_gccd );
+_cbde :=_df .Pow (2,float64 (img .BitsPerComponent ))-1;_cddfb :=make ([]uint32 ,3);var (_fcad error ;_gdaeg ,_affa ,_fdbb ,_bgca ,_aada ,_cebdf float64 ;);for {_fcad =_cece .ReadSamples (_cddfb );if _fcad ==_edg .EOF {break ;}else if _fcad !=nil {return img ,_fcad ;
+};_gdaeg =float64 (_cddfb [0])/_cbde ;_affa =float64 (_cddfb [1])/_cbde ;_fdbb =float64 (_cddfb [2])/_cbde ;_bgca =_gcce .Matrix [0]*_df .Pow (_gdaeg ,_gcce .Gamma [0])+_gcce .Matrix [3]*_df .Pow (_affa ,_gcce .Gamma [1])+_gcce .Matrix [6]*_df .Pow (_fdbb ,_gcce .Gamma [2]);
+_aada =_gcce .Matrix [1]*_df .Pow (_gdaeg ,_gcce .Gamma [0])+_gcce .Matrix [4]*_df .Pow (_affa ,_gcce .Gamma [1])+_gcce .Matrix [7]*_df .Pow (_fdbb ,_gcce .Gamma [2]);_cebdf =_gcce .Matrix [2]*_df .Pow (_gdaeg ,_gcce .Gamma [0])+_gcce .Matrix [5]*_df .Pow (_affa ,_gcce .Gamma [1])+_gcce .Matrix [8]*_df .Pow (_fdbb ,_gcce .Gamma [2]);
+_gdaeg =3.240479*_bgca +-1.537150*_aada +-0.498535*_cebdf ;_affa =-0.969256*_bgca +1.875992*_aada +0.041556*_cebdf ;_fdbb =0.055648*_bgca +-0.204043*_aada +1.057311*_cebdf ;_gdaeg =_df .Min (_df .Max (_gdaeg ,0),1.0);_affa =_df .Min (_df .Max (_affa ,0),1.0);
+_fdbb =_df .Min (_df .Max (_fdbb ,0),1.0);_cddfb [0]=uint32 (_gdaeg *_cbde );_cddfb [1]=uint32 (_affa *_cbde );_cddfb [2]=uint32 (_fdbb *_cbde );if _fcad =_ddbc .WriteSamples (_cddfb );_fcad !=nil {return img ,_fcad ;};};return _deba (&_gccd ),nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_gcedb *PdfSignatureReference )ToPdfObject ()_dfg .PdfObject {_fdaffc :=_dfg .MakeDict ();_fdaffc .SetIfNotNil ("\u0054\u0079\u0070\u0065",_gcedb .Type );_fdaffc .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_gcedb .TransformMethod );
+_fdaffc .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_gcedb .TransformParams );_fdaffc .SetIfNotNil ("\u0044\u0061\u0074\u0061",_gcedb .Data );_fdaffc .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_gcedb .DigestMethod );
+return _fdaffc ;};
+
+// Width returns the width of `rect`.
+func (_gfddc *PdfRectangle )Width ()float64 {return _df .Abs (_gfddc .Urx -_gfddc .Llx )};
+
+// PdfShadingType1 is a Function-based shading.
+type PdfShadingType1 struct{*PdfShading ;Domain *_dfg .PdfObjectArray ;Matrix *_dfg .PdfObjectArray ;Function []PdfFunction ;};
+
+// DecodeArray returns the range of color component values in CalGray colorspace.
+func (_cebd *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
+
+// NewPdfAnnotationHighlight returns a new text highlight annotation.
+func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_fda :=NewPdfAnnotation ();_ace :=&PdfAnnotationHighlight {};_ace .PdfAnnotation =_fda ;_ace .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fda .SetContext (_ace );return _ace ;};
+
+// PdfFunctionType0 uses a sequence of sample values (contained in a stream) to provide an approximation
+// for functions whose domains and ranges are bounded. The samples are organized as an m-dimensional
+// table in which each entry has n components
+type PdfFunctionType0 struct{Domain []float64 ;Range []float64 ;NumInputs int ;NumOutputs int ;Size []int ;BitsPerSample int ;Order int ;Encode []float64 ;Decode []float64 ;_ffdce []byte ;_aabea []uint32 ;_deefg *_dfg .PdfObjectStream ;};
+
+// GetOutlinesFlattened returns a flattened list of tree nodes and titles.
+// NOTE: for most use cases, it is recommended to use the high-level GetOutlines
+// method instead, which also provides information regarding the destination
+// of the outline items.
+func (_aafeb *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _debe []*PdfOutlineTreeNode ;var _ddgcd []string ;var _dfgc func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_dfgc =func (_agcfc *PdfOutlineTreeNode ,_ebac *[]*PdfOutlineTreeNode ,_ebae *[]string ,_bdfbe int ){if _agcfc ==nil {return ;
+};if _agcfc ._cface ==nil {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020M\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006e\u006fd\u0065\u002e\u0063o\u006et\u0065\u0078\u0074");return ;};_gdegf ,_bgbe :=_agcfc ._cface .(*PdfOutlineItem );if _bgbe {*_ebac =append (*_ebac ,&_gdegf .PdfOutlineTreeNode );
+_fbce :=_af .Repeat ("\u0020",_bdfbe *2)+_gdegf .Title .Decoded ();*_ebae =append (*_ebae ,_fbce );};if _agcfc .First !=nil {_ecfcb :=_af .Repeat ("\u0020",_bdfbe *2)+"\u002b";*_ebae =append (*_ebae ,_ecfcb );_dfgc (_agcfc .First ,_ebac ,_ebae ,_bdfbe +1);
+};if _bgbe &&_gdegf .Next !=nil {_dfgc (_gdegf .Next ,_ebac ,_ebae ,_bdfbe );};};_dfgc (_aafeb ._dagg ,&_debe ,&_ddgcd ,0);return _debe ,_ddgcd ,nil ;};
+
+// ToInteger convert to an integer format.
+func (_ggb *PdfColorLab )ToInteger (bits int )[3]uint32 {_bege :=_df .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_bege *_ggb .L ()),uint32 (_bege *_ggb .A ()),uint32 (_bege *_ggb .B ())};};
+
+// ToPdfObject implements interface PdfModel.
+func (_caag *PdfAnnotationSound )ToPdfObject ()_dfg .PdfObject {_caag .PdfAnnotation .ToPdfObject ();_gfc :=_caag ._afae ;_agbf :=_gfc .PdfObject .(*_dfg .PdfObjectDictionary );_caag .appendToPdfDictionary (_agbf );_agbf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0053\u006f\u0075n\u0064"));
+_agbf .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_caag .Sound );_agbf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_caag .Name );return _gfc ;};
+
+// SignatureHandlerDocMDP extends SignatureHandler with the ValidateWithOpts method for checking the DocMDP policy.
+type SignatureHandlerDocMDP interface{SignatureHandler ;
+
+// ValidateWithOpts validates a PDF signature by checking PdfReader or PdfParser
+// ValidateWithOpts shall contain Validate call
+ValidateWithOpts (_adbga *PdfSignature ,_fgfc Hasher ,_accf SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};func _agdbe ()string {_dfbaa .Lock ();defer _dfbaa .Unlock ();return _eebage };
+
+// SetPrintArea sets the value of the printArea.
+func (_bcfbb *ViewerPreferences )SetPrintArea (printArea PageBoundary ){_bcfbb ._ggbeb =printArea };
+
+// ColorToRGB only converts color used with uncolored patterns (defined in underlying colorspace). Does not go into the
+// pattern objects and convert those. If that is desired, needs to be done separately. See for example
+// grayscale conversion example in unidoc-examples repo.
+func (_eded *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_aagf ,_fegc :=color .(*PdfColorPattern );if !_fegc {_egb .Log .Debug ("\u0043\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0070a\u0074\u0074\u0065\u0072\u006e\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",color );
+return nil ,ErrTypeCheck ;};if _aagf .Color ==nil {return color ,nil ;};if _eded .UnderlyingCS ==nil {return nil ,_bd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _eded .UnderlyingCS .ColorToRGB (_aagf .Color );
+};
+
+// ColorFromFloats returns a new PdfColorDevice based on the input slice of
+// color components. The slice should contain four elements representing the
+// cyan, magenta, yellow and key components of the color. The values of the
+// elements should be between 0 and 1.
+func (_caec *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dacaa :=vals [0];if _dacaa < 0.0||_dacaa > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dacaa );
+return nil ,ErrColorOutOfRange ;};_beagc :=vals [1];if _beagc < 0.0||_beagc > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_beagc );return nil ,ErrColorOutOfRange ;
+};_dddd :=vals [2];if _dddd < 0.0||_dddd > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dddd );return nil ,ErrColorOutOfRange ;};_gegdc :=vals [3];
+if _gegdc < 0.0||_gegdc > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gegdc );return nil ,ErrColorOutOfRange ;};_fefb :=NewPdfColorDeviceCMYK (_dacaa ,_beagc ,_dddd ,_gegdc );
+return _fefb ,nil ;};
+
+// NewDSS returns a new DSS dictionary.
+func NewDSS ()*DSS {return &DSS {_beab :_dfg .MakeIndirectObject (_dfg .MakeDict ()),VRI :map[string ]*VRI {}};};
+
+// NewPdfColorDeviceCMYK returns a new CMYK32 color.
+func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_ccbf :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_ccbf ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_fdg *PdfActionRendition )ToPdfObject ()_dfg .PdfObject {_fdg .PdfAction .ToPdfObject ();_bff :=_fdg ._fe ;_aec :=_bff .PdfObject .(*_dfg .PdfObjectDictionary );_aec .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeRendition )));_aec .SetIfNotNil ("\u0052",_fdg .R );
+_aec .SetIfNotNil ("\u0041\u004e",_fdg .AN );_aec .SetIfNotNil ("\u004f\u0050",_fdg .OP );_aec .SetIfNotNil ("\u004a\u0053",_fdg .JS );return _bff ;};func _dafc (_gbcbd _edg .ReadSeeker ,_fbefbd *ReaderOpts ,_ddcd bool ,_bdag string )(*PdfReader ,error ){if _fbefbd ==nil {_fbefbd =NewReaderOpts ();
+};_cbcac :="";if _caabe ,_edfbf :=_gbcbd .(*_ga .File );_edfbf {_cbcac =_caabe .Name ();};_bbfgd :=*_fbefbd ;_abaad :=&PdfReader {_cggac :_gbcbd ,_fcecf :map[_dfg .PdfObject ]struct{}{},_acaed :_cebfb (),_bafba :_fbefbd .LazyLoad ,_ggda :_fbefbd .ComplianceMode ,_faage :_ddcd ,_abef :&_bbfgd ,_aefda :_cbcac };
+_gcfab ,_bbgcc :=_bdaaf ("\u0072");if _bbgcc !=nil {return nil ,_bbgcc ;};_bbgcc =_gb .Track (_gcfab ,_bdag ,_abaad ._aefda );if _bbgcc !=nil {return nil ,_bbgcc ;};_abaad ._befaf =_gcfab ;var _dbedf *_dfg .PdfParser ;if !_abaad ._ggda {if _fbefbd !=nil {_bfcadf :=_dfg .ParserOpts {RelaxedMode :_fbefbd .RelaxedMode };
+_dbedf ,_bbgcc =_dfg .NewParserWithOpts (_gbcbd ,_bfcadf );}else {_dbedf ,_bbgcc =_dfg .NewParser (_gbcbd );};}else {_dbedf ,_bbgcc =_dfg .NewCompliancePdfParser (_gbcbd );};if _bbgcc !=nil {return nil ,_bbgcc ;};_abaad ._agbcd =_dbedf ;_acea ,_bbgcc :=_abaad .IsEncrypted ();
+if _bbgcc !=nil {return nil ,_bbgcc ;};if !_acea {_bbgcc =_abaad .loadStructure ();if _bbgcc !=nil {return nil ,_bbgcc ;};}else if _ddcd {_fccge ,_fbdffe :=_abaad .Decrypt ([]byte (_fbefbd .Password ));if _fbdffe !=nil {return nil ,_fbdffe ;};if !_fccge {return nil ,_bd .New ("\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f \u0064\u0065c\u0072\u0079\u0070\u0074\u0020\u0070\u0061\u0073\u0073w\u006f\u0072\u0064\u0020p\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u002d\u0020\u006e\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0073\u0070\u0065\u0063\u0069\u0066y\u0020\u0070\u0061s\u0073\u0020\u0074\u006f\u0020\u0044\u0065\u0063\u0072\u0079\u0070\u0074");
+};};_abaad ._cceg =make (map[*PdfReader ]*PdfReader );_abaad ._eaff =make ([]*PdfReader ,_dbedf .GetRevisionNumber ());return _abaad ,nil ;};
+
+// ToJBIG2Image converts current image to the core.JBIG2Image.
+func (_dcge *Image )ToJBIG2Image ()(*_dfg .JBIG2Image ,error ){_bedab ,_ddec :=_dcge .ToGoImage ();if _ddec !=nil {return nil ,_ddec ;};return _dfg .GoImageToJBIG2 (_bedab ,_dfg .JB2ImageAutoThreshold );};
+
+// ToPdfObject implements interface PdfModel.
+func (_ecedc *PdfAnnotationText )ToPdfObject ()_dfg .PdfObject {_ecedc .PdfAnnotation .ToPdfObject ();_bfdd :=_ecedc ._afae ;_dddg :=_bfdd .PdfObject .(*_dfg .PdfObjectDictionary );if _ecedc .PdfAnnotationMarkup !=nil {_ecedc .appendToPdfDictionary (_dddg );
+};_dddg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0054\u0065\u0078\u0074"));_dddg .SetIfNotNil ("\u004f\u0070\u0065\u006e",_ecedc .Open );_dddg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ecedc .Name );_dddg .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_ecedc .State );
+_dddg .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_ecedc .StateModel );return _bfdd ;};
+
+// CharcodesToUnicode converts the character codes `charcodes` to a slice of runes.
+// How it works:
+// 1. Use the ToUnicode CMap if there is one.
+// 2. Use the underlying font's encoding.
+func (_egccg *PdfFont )CharcodesToUnicode (charcodes []_ff .CharCode )[]rune {_fddgf ,_ ,_ :=_egccg .CharcodesToUnicodeWithStats (charcodes );return _fddgf ;};
+
+// CharcodeBytesToUnicode converts PDF character codes `data` to a Go unicode string.
+//
+// 9.10 Extraction of Text Content (page 292)
+// The process of finding glyph descriptions in OpenType fonts by a conforming reader shall be the following:
+// - For Type 1 fonts using “CFF” tables, the process shall be as described in 9.6.6.2, "Encodings
+// for Type 1 Fonts".
+// - For TrueType fonts using “glyf” tables, the process shall be as described in 9.6.6.4,
+// "Encodings for TrueType Fonts". Since this process sometimes produces ambiguous results,
+// conforming writers, instead of using a simple font, shall use a Type 0 font with an Identity-H
+// encoding and use the glyph indices as character codes, as described following Table 118.
+func (_bcedb *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_ccgff ,_ ,_fbgec :=_bcedb .CharcodesToUnicodeWithStats (_bcedb .BytesToCharcodes (data ));_dfcab :=_ff .ExpandLigatures (_ccgff );return _dfcab ,_ee .RuneCountInString (_dfcab ),_fbgec ;
+};
+
+// GetPdfInfo returns the PDF info dictionary.
+func (_bcbgcc *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_acaag ,_bgcca :=_bcbgcc .GetTrailer ();if _bgcca !=nil {return nil ,_bgcca ;};var _ededa *_dfg .PdfObjectDictionary ;_eeefe :=_acaag .Get ("\u0049\u006e\u0066\u006f");switch _gcffb :=_eeefe .(type ){case *_dfg .PdfObjectReference :_bfgdc :=_gcffb ;
+_eeefe ,_bgcca =_bcbgcc .GetIndirectObjectByNumber (int (_bfgdc .ObjectNumber ));_eeefe =_dfg .TraceToDirectObject (_eeefe );if _bgcca !=nil {return nil ,_bgcca ;};_ededa ,_ =_eeefe .(*_dfg .PdfObjectDictionary );case *_dfg .PdfObjectDictionary :_ededa =_gcffb ;
+};if _ededa ==nil {return nil ,_bd .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_baed ,_bgcca :=NewPdfInfoFromObject (_ededa );if _bgcca !=nil {return nil ,_bgcca ;
+};return _baed ,nil ;};
+
+// ToPdfObject generates a PdfObject representation of the Names struct.
+func (_cbda *Names )ToPdfObject ()_dfg .PdfObject {_fdfba :=_cbda ._ggeed ;_ddeca ,_dfcag :=_fdfba .PdfObject .(*_dfg .PdfObjectDictionary );if !_dfcag {_egb .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006fb\u006a\u0065\u0063\u0074");
+return _fdfba ;};if _cbda .EmbeddedFiles !=nil {_ddeca .Set ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0046\u0069\u006c\u0065\u0073",_dfg .MakeIndirectObject (_cbda .EmbeddedFiles ));};return _fdfba ;};type fontCommon struct{_dbcbc string ;_gdab string ;
+_gadbd string ;_eaaga _dfg .PdfObject ;_bgdcbc *_efg .CMap ;_cebfd *PdfFontDescriptor ;_egggc int64 ;};
+
+// AddFont adds a font dictionary to the Font resources.
+func (_ggcb *PdfPage )AddFont (name _dfg .PdfObjectName ,font _dfg .PdfObject )error {if _ggcb .Resources ==nil {_ggcb .Resources =NewPdfPageResources ();};if _ggcb .Resources .Font ==nil {_ggcb .Resources .Font =_dfg .MakeDict ();};_fddd ,_ecbae :=_dfg .TraceToDirectObject (_ggcb .Resources .Font ).(*_dfg .PdfObjectDictionary );
+if !_ecbae {_egb .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064 \u0066\u006f\u006et \u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a \u0025\u0076",_dfg .TraceToDirectObject (_ggcb .Resources .Font ));
+return _bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fddd .Set (name ,font );return nil ;};
+
+// AddKDict adds a K dictionary object to the structure tree root.
+func (_agdfb *StructTreeRoot )AddKDict (k *KDict ){_agdfb .K =append (_agdfb .K ,k )};func (_gagea *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _gagea ._agbcd .GetCrypter ()!=nil &&!_gagea ._agbcd .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
+};_bdefc :=_gagea ._fbfgb ;_fgaec :=_bdefc .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _fgaec ==nil {return nil ,nil ;};_dccc ,_abggc :=_dfg .GetIndirect (_fgaec );_fgaec =_dfg .TraceToDirectObject (_fgaec );if _dfg .IsNullObject (_fgaec ){_egb .Log .Trace ("\u0041\u0063\u0072of\u006f\u0072\u006d\u0020\u0069\u0073\u0020\u0061\u0020n\u0075l\u006c \u006fb\u006a\u0065\u0063\u0074\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029\u000a");
+return nil ,nil ;};_gafbe ,_eeacb :=_dfg .GetDict (_fgaec );if !_eeacb {_egb .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_fgaec );_egb .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
+if _gagea ._abef .RelaxedMode {_egb .Log .Debug ("\u0052\u0065\u006c\u0061\u0078\u0065\u0064\u004d\u006f\u0064\u0065 \u0065\u006e\u0061\u0062\u006c\u0065\u0064\u002e \u0049g\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0020\u006c\u006fa\u0064\u0069\u006e\u0067\u0020\u0065\u0072\u0072\u006f\u0072\u0073");
+return nil ,nil ;};return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_fgaec );};_egb .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
+_egb .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0065\u0020\u0074\u0068\u0065\u0020\u0041\u0063r\u006ff\u006f\u0072\u006d\u0073\u0020\u0073\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065");if !_gagea ._bafba {_deaa :=_gagea .traverseObjectData (_gafbe );
+if _deaa !=nil {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0074\u0072a\u0076\u0065\u0072\u0073\u0065\u0020\u0041\u0063\u0072\u006fFo\u0072\u006d\u0073 \u0028%\u0073\u0029",_deaa );
+return nil ,_deaa ;};};_edbbf ,_fbedfc :=_gagea .newPdfAcroFormFromDict (_dccc ,_gafbe );if _fbedfc !=nil {return nil ,_fbedfc ;};_edbbf ._ecfa =!_abggc ;return _edbbf ,nil ;};
+
+// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
+type PdfFieldChoice struct{*PdfField ;Opt *_dfg .PdfObjectArray ;TI *_dfg .PdfObjectInteger ;I *_dfg .PdfObjectArray ;};
+
+// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
+func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_gcdbb :=&PdfShadingPatternType3 {};_gcdbb .Matrix =_dfg .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_gcdbb .PdfPattern =&PdfPattern {};_gcdbb .PdfPattern .PatternType =int64 (*_dfg .MakeInteger (2));
+_gcdbb .PdfPattern ._bfaedb =_gcdbb ;_gcdbb .PdfPattern ._adcec =_dfg .MakeIndirectObject (_dfg .MakeDict ());return _gcdbb ;};var (ArtifactTypeNone ArtifactType ="";ArtifactTypePagination ArtifactType ="\u0050\u0061\u0067\u0069\u006e\u0061\u0074\u0069\u006f\u006e";
+ArtifactTypeLayout ArtifactType ="\u004c\u0061\u0079\u006f\u0075\u0074";ArtifactTypePage ArtifactType ="\u0050\u0061\u0067\u0065";ArtifactTypeBackground ArtifactType ="\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064";);func (_gdbb *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";
+};
+
+// SetShadingByName sets a shading resource specified by keyName.
+func (_eeed *PdfPageResources )SetShadingByName (keyName _dfg .PdfObjectName ,shadingObj _dfg .PdfObject )error {if _eeed .Shading ==nil {_eeed .Shading =_dfg .MakeDict ();};_aecfb ,_gdabf :=_dfg .GetDict (_eeed .Shading );if !_gdabf {return _dfg .ErrTypeError ;
+};_aecfb .Set (keyName ,shadingObj );return nil ;};
+
+// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
+func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_ccgf :=PdfColorDeviceGray (grayVal );return &_ccgf ;};
+
+// ConvertToBinary converts current image into binary (bi-level) format.
+// Binary images are composed of single bits per pixel (only black or white).
+// If provided image has more color components, then it would be converted into binary image using
+// histogram auto threshold function.
+func (_decc *Image )ConvertToBinary ()error {if _decc .ColorComponents ==1&&_decc .BitsPerComponent ==1{return nil ;};_afbfg ,_cfgdf :=_decc .ToGoImage ();if _cfgdf !=nil {return _cfgdf ;};_ecbe ,_cfgdf :=_ef .MonochromeConverter .Convert (_afbfg );if _cfgdf !=nil {return _cfgdf ;
+};_decc .Data =_ecbe .Base ().Data ;_decc ._baeef ,_cfgdf =_ef .ScaleAlphaToMonochrome (_decc ._baeef ,int (_decc .Width ),int (_decc .Height ));if _cfgdf !=nil {return _cfgdf ;};_decc .BitsPerComponent =1;_decc .ColorComponents =1;_decc ._begcc =nil ;
+return nil ;};
+
+// Items returns all children outline items.
+func (_fffa *Outline )Items ()[]*OutlineItem {return _fffa .Entries };
+
+// GetContentStreams returns the content stream as an array of strings.
+func (_gfaecb *PdfPage )GetContentStreams ()([]string ,error ){_gdgaf :=_gfaecb .GetContentStreamObjs ();var _abcbf []string ;for _ ,_ggfb :=range _gdgaf {_fccg ,_eggcf :=_bgbfb (_ggfb );if _eggcf !=nil {return nil ,_eggcf ;};_abcbf =append (_abcbf ,_fccg );
+};return _abcbf ,nil ;};
+
+// PdfActionRendition represents a Rendition action.
+type PdfActionRendition struct{*PdfAction ;R _dfg .PdfObject ;AN _dfg .PdfObject ;OP _dfg .PdfObject ;JS _dfg .PdfObject ;};
+
+// PdfAnnotationWidget represents Widget annotations.
+// Note: Widget annotations are used to display form fields.
+// (Section 12.5.6.19).
+type PdfAnnotationWidget struct{*PdfAnnotation ;H _dfg .PdfObject ;MK _dfg .PdfObject ;A _dfg .PdfObject ;AA _dfg .PdfObject ;BS _dfg .PdfObject ;Parent _dfg .PdfObject ;_bcad *PdfField ;_fbde bool ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_fcc *PdfActionGoToR )ToPdfObject ()_dfg .PdfObject {_fcc .PdfAction .ToPdfObject ();_aaf :=_fcc ._fe ;_eb :=_aaf .PdfObject .(*_dfg .PdfObjectDictionary );_eb .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeGoToR )));if _fcc .F !=nil {_eb .Set ("\u0046",_fcc .F .ToPdfObject ());
+};_eb .SetIfNotNil ("\u0044",_fcc .D );_eb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fcc .NewWindow );return _aaf ;};func (_effb *PdfReader )newPdfAnnotationSquigglyFromDict (_bbg *_dfg .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_bae :=PdfAnnotationSquiggly {};
+_feeb ,_gccf :=_effb .newPdfAnnotationMarkupFromDict (_bbg );if _gccf !=nil {return nil ,_gccf ;};_bae .PdfAnnotationMarkup =_feeb ;_bae .QuadPoints =_bbg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bae ,nil ;};
+
+// GetNumComponents returns the number of color components (3 for CalRGB).
+func (_dfbca *PdfColorCalRGB )GetNumComponents ()int {return 3};func _dggd (_ccgced *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_ccgced }};func (_begda *PdfReader )loadDSS ()(*DSS ,error ){if _begda ._agbcd .GetCrypter ()!=nil &&!_begda ._agbcd .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
+};_ffcfd :=_begda ._fbfgb .Get ("\u0044\u0053\u0053");if _ffcfd ==nil {return nil ,nil ;};_gedd ,_ :=_dfg .GetIndirect (_ffcfd );_ffcfd =_dfg .TraceToDirectObject (_ffcfd );switch _ceba :=_ffcfd .(type ){case *_dfg .PdfObjectNull :return nil ,nil ;case *_dfg .PdfObjectDictionary :return _dfce (_gedd ,_ceba );
+};return nil ,_d .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_ffcfd );};func _gfaec (_cagf _dfg .PdfObject ,_agcc bool )(*PdfFont ,error ){_daed ,_eddbe ,_cacef :=_ffed (_cagf );if _daed !=nil {_gceee (_daed );
+};if _cacef !=nil {if _cacef ==ErrType1CFontNotSupported {_bfaaa ,_gbbdg :=_faff (_daed ,_eddbe ,nil );if _gbbdg !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0057h\u0069\u006c\u0065 l\u006f\u0061\u0064\u0069\u006e\u0067 \u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0066\u006f\u006e\u0074\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072=\u0025\u0076",_eddbe ,_gbbdg );
+return nil ,_cacef ;};return &PdfFont {_fab :_bfaaa },_cacef ;};return nil ,_cacef ;};_deec :=&PdfFont {};switch _eddbe ._gdab {case "\u0054\u0079\u0070e\u0030":if !_agcc {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u004c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u00650\u0020\u006e\u006f\u0074\u0020\u0061\u006c\u006c\u006f\u0077\u0065\u0064\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_eddbe );
+return nil ,_bd .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_fabga ,_bbgeb :=_afbab (_daed ,_eddbe );if _bbgeb !=nil {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0057\u0068\u0069l\u0065\u0020\u006c\u006f\u0061\u0064\u0069ng\u0020\u0054\u0079\u0070e\u0030\u0020\u0066\u006f\u006e\u0074\u002e\u0020\u0066on\u0074\u003d%\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_eddbe ,_bbgeb );
+return nil ,_bbgeb ;};_deec ._fab =_fabga ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _bdac *pdfFontSimple ;_eabdg ,_bfadg :=_bf .NewStdFontByName (_bf .StdFontName (_eddbe ._dbcbc ));
+if _bfadg {_cdea :=_agafd (_eabdg );_deec ._fab =&_cdea ;_abbfa :=_dfg .TraceToDirectObject (_cdea .ToPdfObject ());_ebgea ,_eefbe ,_bafb :=_ffed (_abbfa );if _bafb !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0064\u0020\u0053\u0074a\u006e\u0064\u0061\u0072\u0064\u00314\u000a\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u000a\u0009\u0073\u0074d\u003d\u0025\u002b\u0076",_eddbe ,_cdea );
+return nil ,_bafb ;};for _ ,_bgeff :=range _daed .Keys (){_ebgea .Set (_bgeff ,_daed .Get (_bgeff ));};_bdac ,_bafb =_faff (_ebgea ,_eefbe ,_cdea ._eabff );if _bafb !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0064\u0020\u0053\u0074a\u006e\u0064\u0061\u0072\u0064\u00314\u000a\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u000a\u0009\u0073\u0074d\u003d\u0025\u002b\u0076",_eddbe ,_cdea );
+return nil ,_bafb ;};_bdac ._aefba =_cdea ._aefba ;_bdac ._eecea =_cdea ._eecea ;if _bdac ._gdegd ==nil {_bdac ._gdegd =_cdea ._gdegd ;};}else {_bdac ,_cacef =_faff (_daed ,_eddbe ,nil );if _cacef !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0057h\u0069\u006c\u0065 l\u006f\u0061\u0064\u0069\u006e\u0067 \u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0066\u006f\u006e\u0074\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072=\u0025\u0076",_eddbe ,_cacef );
+return nil ,_cacef ;};};_cacef =_bdac .addEncoding ();if _cacef !=nil {return nil ,_cacef ;};if _bfadg {_bdac .updateStandard14Font ();};if _bfadg &&_bdac ._febca ==nil &&_bdac ._eabff ==nil {_egb .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_bdac );
+_egb .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_eabdg );};if len (_bdac ._aefba )==0{_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_bdac );};_deec ._fab =_bdac ;
+case "\u0054\u0079\u0070e\u0033":_dfff ,_fegdd :=_acfab (_daed ,_eddbe );if _fegdd !=nil {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020W\u0068\u0069\u006c\u0065\u0020\u006co\u0061\u0064\u0069\u006e\u0067\u0020\u0074y\u0070\u0065\u0033\u0020\u0066\u006f\u006e\u0074\u003a\u0020%\u0076",_fegdd );
+return nil ,_fegdd ;};_deec ._fab =_dfff ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_dcecg ,_abdf :=_agdb (_daed ,_eddbe );if _abdf !=nil {_egb .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0057\u0068i\u006c\u0065\u0020l\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0069d \u0066\u006f\u006et\u0020\u0074y\u0070\u0065\u0030\u0020\u0066\u006fn\u0074\u003a \u0025\u0076",_abdf );
+return nil ,_abdf ;};_deec ._fab =_dcecg ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_bafg ,_bbdag :=_aecff (_daed ,_eddbe );if _bbdag !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0057\u0068\u0069l\u0065\u0020\u006co\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0069\u0064\u0020f\u006f\u006e\u0074\u0020\u0074yp\u0065\u0032\u0020\u0066\u006f\u006e\u0074\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_eddbe ,_bbdag );
+return nil ,_bbdag ;};_deec ._fab =_bafg ;default:_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020U\u006e\u0073u\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020f\u006f\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073",_eddbe );
+return nil ,_d .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_eddbe );};return _deec ,nil ;};
+
+// GetNumComponents returns the number of color components.
+func (_dggf *PdfColorspaceICCBased )GetNumComponents ()int {return _dggf .N };func (_degfd *PdfWriter )checkPendingObjects (){for _gdefb ,_fegfc :=range _degfd ._fgebdb {if !_degfd .hasObject (_gdefb ){_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u0020\u0050\u0065n\u0064\u0069\u006eg\u0020\u006f\u0062j\u0065\u0063t\u0020\u0025\u002b\u0076\u0020\u0025T\u0020(%\u0070\u0029\u0020\u006e\u0065\u0076\u0065\u0072\u0020\u0061\u0064\u0064\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0077\u0072\u0069\u0074\u0069\u006e\u0067",_gdefb ,_gdefb ,_gdefb );
+for _ ,_adbfb :=range _fegfc {for _ ,_dfgaac :=range _adbfb .Keys (){_ededc :=_adbfb .Get (_dfgaac );if _ededc ==_gdefb {_egb .Log .Debug ("\u0050e\u006e\u0064i\u006e\u0067\u0020\u006fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0075\u006e\u0064\u0021\u0020\u0061nd\u0020\u0072\u0065p\u006c\u0061c\u0065\u0064\u0020\u0077\u0069\u0074h\u0020\u006eu\u006c\u006c");
+_adbfb .Set (_dfgaac ,_dfg .MakeNull ());break ;};};};};};};
+
+// GetXObjectFormByName returns the XObjectForm with the specified name from the
+// page resources, if it exists.
+func (_fgagb *PdfPageResources )GetXObjectFormByName (keyName _dfg .PdfObjectName )(*XObjectForm ,error ){_bgae ,_fded :=_fgagb .GetXObjectByName (keyName );if _bgae ==nil {return nil ,nil ;};if _fded !=XObjectTypeForm {return nil ,_bd .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
+};_deceg ,_bdfaad :=NewXObjectFormFromStream (_bgae );if _bdfaad !=nil {return nil ,_bdfaad ;};return _deceg ,nil ;};
+
+// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
+func (_edcb *pdfCIDFontType0 )ToPdfObject ()_dfg .PdfObject {return _dfg .MakeNull ()};
+
+// PdfAnnotationStamp represents Stamp annotations.
+// (Section 12.5.6.12).
+type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _dfg .PdfObject ;};
+
+// NewPdfAnnotationCircle returns a new circle annotation.
+func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_gdd :=NewPdfAnnotation ();_gaab :=&PdfAnnotationCircle {};_gaab .PdfAnnotation =_gdd ;_gaab .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gdd .SetContext (_gaab );return _gaab ;};
+
+// IsPush returns true if the button field represents a push button, false otherwise.
+func (_bacfa *PdfFieldButton )IsPush ()bool {return _bacfa .GetType ()==ButtonTypePush };
+
+// ToPdfObject implements interface PdfModel.
+func (_eefda *PdfSignature )ToPdfObject ()_dfg .PdfObject {_bedc :=_eefda ._fdeb ;var _ggdgg *_dfg .PdfObjectDictionary ;if _ggaad ,_gccbd :=_bedc .PdfObject .(*pdfSignDictionary );_gccbd {_ggdgg =_ggaad .PdfObjectDictionary ;}else {_ggdgg =_bedc .PdfObject .(*_dfg .PdfObjectDictionary );
+};_ggdgg .SetIfNotNil ("\u0054\u0079\u0070\u0065",_eefda .Type );_ggdgg .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_eefda .Filter );_ggdgg .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_eefda .SubFilter );_ggdgg .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_eefda .ByteRange );
+_ggdgg .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_eefda .Contents );_ggdgg .SetIfNotNil ("\u0043\u0065\u0072\u0074",_eefda .Cert );_ggdgg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eefda .Name );_ggdgg .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_eefda .Reason );
+_ggdgg .SetIfNotNil ("\u004d",_eefda .M );_ggdgg .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_eefda .Reference );_ggdgg .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_eefda .Changes );_ggdgg .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_eefda .ContactInfo );
+_ggdgg .SetIfNotNil ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e",_eefda .Location );return _bedc ;};func (_cbce *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _fcfca :=_cbce ._cebfd ;_fcfca !=nil {return _fcfca ;};return _cbce ._gdegd ;
+};
+
+// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
+func (_fcaa *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _fcaa ._agbcd .GetRevisionNumber ()==0{return nil ,_bd .New ("\u0070\u0072e\u0076\u0069\u006f\u0075\u0073\u0020\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0065xi\u0073\u0074");
+};if _gfgf ,_cbee :=_fcaa ._cceg [_fcaa ];_cbee {return _gfgf ,nil ;};_bgcab ,_eefcf :=_fcaa ._agbcd .GetPreviousRevisionReadSeeker ();if _eefcf !=nil {return nil ,_eefcf ;};_dbdgf ,_eefcf :=_dafc (_bgcab ,_fcaa ._abef ,_fcaa ._faage ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
+if _eefcf !=nil {return nil ,_eefcf ;};_fcaa ._eaff [_fcaa ._agbcd .GetRevisionNumber ()-1]=_dbdgf ;_fcaa ._cceg [_fcaa ]=_dbdgf ;_dbdgf ._cceg =_fcaa ._cceg ;return _dbdgf ,nil ;};
+
+// PdfAnnotationPrinterMark represents PrinterMark annotations.
+// (Section 12.5.6.20).
+type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _dfg .PdfObject ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_bcf *PdfActionImportData )ToPdfObject ()_dfg .PdfObject {_bcf .PdfAction .ToPdfObject ();_ade :=_bcf ._fe ;_bdf :=_ade .PdfObject .(*_dfg .PdfObjectDictionary );_bdf .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeImportData )));if _bcf .F !=nil {_bdf .Set ("\u0046",_bcf .F .ToPdfObject ());
+};return _ade ;};
+
+// GetPage returns the PdfPage model for the specified page number.
+func (_ffea *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _ffea ._agbcd .GetCrypter ()!=nil &&!_ffea ._agbcd .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
+};if len (_ffea ._ggbf )< pageNumber {return nil ,_bd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u0028\u0070\u0061\u0067\u0065\u0020\u0063\u006f\u0075\u006e\u0074\u0020\u0074o\u006f\u0020\u0073\u0068\u006f\u0072\u0074\u0029");
+};_bedec :=pageNumber -1;if _bedec < 0{return nil ,_d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_edbec :=_ffea .PageList [_bedec ];
+return _edbec ,nil ;};func _bacbd (_gdcdf _dfg .PdfObject )(*PdfColorspaceLab ,error ){_gbfg :=NewPdfColorspaceLab ();if _aebd ,_dgbe :=_gdcdf .(*_dfg .PdfIndirectObject );_dgbe {_gbfg ._abbf =_aebd ;};_gdcdf =_dfg .TraceToDirectObject (_gdcdf );_gfeb ,_dbbg :=_gdcdf .(*_dfg .PdfObjectArray );
+if !_dbbg {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gfeb .Len ()!=2{return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
+};_gdcdf =_dfg .TraceToDirectObject (_gfeb .Get (0));_fbcb ,_dbbg :=_gdcdf .(*_dfg .PdfObjectName );if !_dbbg {return nil ,_d .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
+};if *_fbcb !="\u004c\u0061\u0062"{return nil ,_d .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_gdcdf =_dfg .TraceToDirectObject (_gfeb .Get (1));_gedf ,_dbbg :=_gdcdf .(*_dfg .PdfObjectDictionary );
+if !_dbbg {return nil ,_d .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};_gdcdf =_gedf .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
+_gdcdf =_dfg .TraceToDirectObject (_gdcdf );_caea ,_dbbg :=_gdcdf .(*_dfg .PdfObjectArray );if !_dbbg {return nil ,_d .Errorf ("\u006c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _caea .Len ()!=3{return nil ,_d .Errorf ("\u006c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
+};_ceee ,_dage :=_caea .GetAsFloat64Slice ();if _dage !=nil {return nil ,_dage ;};_gbfg .WhitePoint =_ceee ;_gdcdf =_gedf .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gdcdf !=nil {_gdcdf =_dfg .TraceToDirectObject (_gdcdf );
+_daaf ,_cccgg :=_gdcdf .(*_dfg .PdfObjectArray );if !_cccgg {return nil ,_d .Errorf ("\u006c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _daaf .Len ()!=3{return nil ,_d .Errorf ("\u006c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
+};_bbde ,_caagcb :=_daaf .GetAsFloat64Slice ();if _caagcb !=nil {return nil ,_caagcb ;};_gbfg .BlackPoint =_bbde ;};_gdcdf =_gedf .Get ("\u0052\u0061\u006eg\u0065");if _gdcdf !=nil {_gdcdf =_dfg .TraceToDirectObject (_gdcdf );_edfd ,_bbdf :=_gdcdf .(*_dfg .PdfObjectArray );
+if !_bbdf {_egb .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_d .Errorf ("\u006ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _edfd .Len ()!=4{_egb .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");
+return nil ,_d .Errorf ("\u006c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_dbdd ,_ggbd :=_edfd .GetAsFloat64Slice ();if _ggbd !=nil {return nil ,_ggbd ;};_gbfg .Range =_dbdd ;};return _gbfg ,nil ;};
+
+// NewPdfAnnotationStamp returns a new stamp annotation.
+func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_fgg :=NewPdfAnnotation ();_bgda :=&PdfAnnotationStamp {};_bgda .PdfAnnotation =_fgg ;_bgda .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fgg .SetContext (_bgda );return _bgda ;};
+
+// GetCharMetrics returns the char metrics for character code `code`.
+func (_fccb pdfFontType3 )GetCharMetrics (code _ff .CharCode )(_bf .CharMetrics ,bool ){if _adef ,_gaaf :=_fccb ._efgcd [code ];_gaaf {return _bf .CharMetrics {Wx :_adef },true ;};if _bf .IsStdFont (_bf .StdFontName (_fccb ._dbcbc )){return _bf .CharMetrics {Wx :250},true ;
+};return _bf .CharMetrics {},false ;};func (_bbcgf *PdfReader )newPdfSignatureFromIndirect (_daadc *_dfg .PdfIndirectObject )(*PdfSignature ,error ){_dadab ,_eecca :=_daadc .PdfObject .(*_dfg .PdfObjectDictionary );if !_eecca {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+return nil ,ErrTypeCheck ;};if _bddge ,_gbdb :=_bbcgf ._acaed .GetModelFromPrimitive (_daadc ).(*PdfSignature );_gbdb {return _bddge ,nil ;};_agfbb :=&PdfSignature {};_agfbb ._fdeb =_daadc ;_agfbb .Type ,_ =_dfg .GetName (_dadab .Get ("\u0054\u0079\u0070\u0065"));
+_agfbb .Filter ,_eecca =_dfg .GetName (_dadab .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_eecca {_egb .Log .Error ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0053i\u0067\u006e\u0061\u0074\u0075r\u0065\u0020\u0046\u0069\u006c\u0074\u0065\u0072\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
+return nil ,ErrInvalidAttribute ;};_agfbb .SubFilter ,_ =_dfg .GetName (_dadab .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_agfbb .Contents ,_eecca =_dfg .GetString (_dadab .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_eecca {_egb .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006et\u0065\u006e\u0074\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
+return nil ,ErrInvalidAttribute ;};if _egbbe ,_eeaca :=_dfg .GetArray (_dadab .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_eeaca {_agfbb .Reference =_dfg .MakeArray ();for _ ,_cgfde :=range _egbbe .Elements (){_dfddge ,_ddcdd :=_dfg .GetDict (_cgfde );
+if !_ddcdd {_egb .Log .Error ("\u0045\u0052R\u004f\u0052\u003a\u0020R\u0065\u0066e\u0072\u0065\u006e\u0063\u0065\u0020\u0063\u006fn\u0074\u0065\u006e\u0074\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069d\u0061\u0074\u0065\u0064");return nil ,ErrInvalidAttribute ;
+};_deeba ,_cdfgg :=_bbcgf .newPdfSignatureReferenceFromDict (_dfddge );if _cdfgg !=nil {return nil ,_cdfgg ;};_agfbb .Reference .Append (_deeba .ToPdfObject ());};};_agfbb .Cert =_dadab .Get ("\u0043\u0065\u0072\u0074");_agfbb .ByteRange ,_ =_dfg .GetArray (_dadab .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
+_agfbb .Changes ,_ =_dfg .GetArray (_dadab .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_agfbb .Name ,_ =_dfg .GetString (_dadab .Get ("\u004e\u0061\u006d\u0065"));_agfbb .M ,_ =_dfg .GetString (_dadab .Get ("\u004d"));_agfbb .Location ,_ =_dfg .GetString (_dadab .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
+_agfbb .Reason ,_ =_dfg .GetString (_dadab .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_agfbb .ContactInfo ,_ =_dfg .GetString (_dadab .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_agfbb .R ,_ =_dfg .GetInt (_dadab .Get ("\u0052"));
+_agfbb .V ,_ =_dfg .GetInt (_dadab .Get ("\u0056"));_agfbb .PropBuild ,_ =_dfg .GetDict (_dadab .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_agfbb .PropAuthTime ,_ =_dfg .GetInt (_dadab .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
+_agfbb .PropAuthType ,_ =_dfg .GetName (_dadab .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_bbcgf ._acaed .Register (_daadc ,_agfbb );return _agfbb ,nil ;};
+
+// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
+func (_gfac *PdfColorspaceCalGray )ToPdfObject ()_dfg .PdfObject {_dcgdg :=&_dfg .PdfObjectArray {};_dcgdg .Append (_dfg .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_bcecg :=_dfg .MakeDict ();if _gfac .WhitePoint !=nil {_bcecg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_dfg .MakeArray (_dfg .MakeFloat (_gfac .WhitePoint [0]),_dfg .MakeFloat (_gfac .WhitePoint [1]),_dfg .MakeFloat (_gfac .WhitePoint [2])));
+}else {_egb .Log .Error ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006fi\u006e\u0074\u0020\u0028\u0052e\u0071\u0075i\u0072\u0065\u0064\u0029");};if _gfac .BlackPoint !=nil {_bcecg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_dfg .MakeArray (_dfg .MakeFloat (_gfac .BlackPoint [0]),_dfg .MakeFloat (_gfac .BlackPoint [1]),_dfg .MakeFloat (_gfac .BlackPoint [2])));
+};_bcecg .Set ("\u0047\u0061\u006dm\u0061",_dfg .MakeFloat (_gfac .Gamma ));_dcgdg .Append (_bcecg );if _gfac ._efge !=nil {_gfac ._efge .PdfObject =_dcgdg ;return _gfac ._efge ;};return _dcgdg ;};
+
+// GetColorspaceByName returns the colorspace with the specified name from the page resources.
+func (_gfgfg *PdfPageResources )GetColorspaceByName (keyName _dfg .PdfObjectName )(PdfColorspace ,bool ){_agdea ,_adbfc :=_gfgfg .GetColorspaces ();if _adbfc !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_adbfc );
+return nil ,false ;};if _agdea ==nil {return nil ,false ;};_defad ,_gcggg :=_agdea .Colorspaces [string (keyName )];if !_gcggg {return nil ,false ;};return _defad ,true ;};
+
+// FlattenFields flattens the form fields and annotations for the PDF loaded in `pdf` and makes
+// non-editable.
+// Looks up all widget annotations corresponding to form fields and flattens them by drawing the content
+// through the content stream rather than annotations.
+// References to flattened annotations will be removed from Page Annots array. For fields the AcroForm entry
+// will be emptied.
+// When `allannots` is true, all annotations will be flattened. Keep false if want to keep non-form related
+// annotations intact.
+// When `appgen` is not nil, it will be used to generate appearance streams for the field annotations.
+func (_fcgc *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _fcgc .flattenFieldsWithOpts (allannots ,appgen ,nil );};
+
+// SetNamedDestinations sets the Dests entry in the PDF catalog.
+// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
+func (_aacdd *PdfWriter )SetNamedDestinations (dests _dfg .PdfObject )error {if dests ==nil {return nil ;};_egb .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
+_aacdd ._acgcc .Set ("\u0044\u0065\u0073t\u0073",dests );return _aacdd .addObjects (dests );};
+
+// SetTabOrder sets the tab order for the page.
+func (_bgfc *PdfPage )SetTabOrder (order TabOrderType ){_bgfc .Tabs =_dfg .MakeName (string (order ))};
+
+// GetNumComponents returns the number of color components (4 for CMYK32).
+func (_dfgbd *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
+
+// Write writes out the PDF.
+func (_abdbde *PdfWriter )Write (writer _edg .Writer )error {_egb .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");if _badff ,_affdc :=writer .(*_ga .File );_affdc {_abdbde .SetFileName (_badff .Name ());};_adac :=_abdbde .checkLicense ();if _adac !=nil {return _adac ;
+};if _adac =_abdbde .writeOutlines ();_adac !=nil {return _adac ;};if _adac =_abdbde .writeAcroFormFields ();_adac !=nil {return _adac ;};if _adac =_abdbde .writeNamesDictionary ();_adac !=nil {return _adac ;};_abdbde .checkPendingObjects ();if _adac =_abdbde .writeOutputIntents ();
+_adac !=nil {return _adac ;};_abdbde .setCatalogVersion ();_abdbde .copyObjects ();if _adac =_abdbde .optimize ();_adac !=nil {return _adac ;};if _adac =_abdbde .optimizeDocument ();_adac !=nil {return _adac ;};var _eaebfe _g .Hash ;if _abdbde ._faacaa {_eaebfe =_cd .New ();
+writer =_edg .MultiWriter (_eaebfe ,writer );};_abdbde .setWriter (writer );_gbgac :=_abdbde .checkCrossReferenceStream ();_cdade ,_gbgac :=_abdbde .mapObjectStreams (_gbgac );_abdbde .adjustXRefAffectedVersion (_gbgac );_abdbde .writeDocumentVersion ();
+_abdbde .updateObjectNumbers ();_abdbde .writeObjects ();if _adac =_abdbde .writeObjectsInStreams (_cdade );_adac !=nil {return _adac ;};_gabeg :=_abdbde ._cffge ;var _cbgdc int ;for _aadd :=range _abdbde ._effg {if _aadd > _cbgdc {_cbgdc =_aadd ;};};if _abdbde ._faacaa {if _adac =_abdbde .setHashIDs (_eaebfe );
+_adac !=nil {return _adac ;};};if _gbgac {if _adac =_abdbde .writeXRefStreams (_cbgdc ,_gabeg );_adac !=nil {return _adac ;};}else {_abdbde .writeTrailer (_cbgdc );};_abdbde .makeOffSetReference (_gabeg );if _adac =_abdbde .flushWriter ();_adac !=nil {return _adac ;
+};return nil ;};
+
+// AlphaMapFunc represents a alpha mapping function: byte -> byte. Can be used for
+// thresholding the alpha channel, i.e. setting all alpha values below threshold to transparent.
+type AlphaMapFunc func (_dafdc byte )byte ;
+
+// NewPdfFontFromTTFFile loads a TTF font file and returns a PdfFont type
+// that can be used in text styling functions.
+// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
+// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTFFile.
+func NewPdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_afcf ,_eaba :=_ga .Open (filePath );if _eaba !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0072\u0065\u0061\u0064\u0069\u006e\u0067\u0020T\u0054F\u0020\u0066\u006f\u006e\u0074\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_eaba );
+return nil ,_eaba ;};defer _afcf .Close ();return NewPdfFontFromTTF (_afcf );};
+
+// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
+// the current instance.
+func (_cabgb *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_cabgb .ToPdfOutline ().PdfOutlineTreeNode ;};
+
+// NumCopies returns the value of the numCopies.
+func (_ddfecg *ViewerPreferences )NumCopies ()int {return _ddfecg ._gefff };
+
+// ViewClip returns the value of the viewClip.
+func (_ffdfa *ViewerPreferences )ViewClip ()PageBoundary {return _ffdfa ._cfbeg };func _afbgd ()string {_dfbaa .Lock ();defer _dfbaa .Unlock ();return _bdbaed };
+
+// VRI represents a Validation-Related Information dictionary.
+// The VRI dictionary contains validation data in the form of
+// certificates, OCSP and CRL information, for a single signature.
+// See ETSI TS 102 778-4 V1.1.1 for more information.
+type VRI struct{Cert []*_dfg .PdfObjectStream ;OCSP []*_dfg .PdfObjectStream ;CRL []*_dfg .PdfObjectStream ;TU *_dfg .PdfObjectString ;TS *_dfg .PdfObjectString ;};
+
+// GetContainingPdfObject implements model.PdfModel interface.
+func (_fceda *PdfOutputIntent )GetContainingPdfObject ()_dfg .PdfObject {return _fceda ._gacff };func _faff (_fcfcb *_dfg .PdfObjectDictionary ,_acaa *fontCommon ,_fbcg _ff .TextEncoder )(*pdfFontSimple ,error ){_facf :=_dggd (_acaa );_facf ._eabff =_fbcg ;
+if _fbcg ==nil {_eafa :=_fcfcb .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _eafa ==nil {_eafa =_dfg .MakeInteger (0);};_facf .FirstChar =_eafa ;_ccff ,_ecdca :=_dfg .GetIntVal (_eafa );if !_ecdca {_egb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0046i\u0072s\u0074C\u0068\u0061\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_eafa );
+return nil ,_dfg .ErrTypeError ;};_cecc :=_ff .CharCode (_ccff );_eafa =_fcfcb .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _eafa ==nil {_eafa =_dfg .MakeInteger (255);};_facf .LastChar =_eafa ;_ccff ,_ecdca =_dfg .GetIntVal (_eafa );if !_ecdca {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004c\u0061\u0073\u0074\u0043h\u0061\u0072\u0020\u0074\u0079\u0070\u0065 \u0028\u0025\u0054\u0029",_eafa );
+return nil ,_dfg .ErrTypeError ;};_fbefb :=_ff .CharCode (_ccff );_facf ._aefba =make (map[_ff .CharCode ]float64 );_eafa =_fcfcb .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _eafa !=nil {_facf .Widths =_eafa ;_bfbeb ,_dgfgb :=_dfg .GetArray (_eafa );
+if !_dgfgb {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020W\u0069\u0064t\u0068\u0073\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079 \u0028\u0025\u0054\u0029",_eafa );return nil ,_dfg .ErrTypeError ;
+};_fdga ,_bdab :=_bfbeb .ToFloat64Array ();if _bdab !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0077\u0069d\u0074\u0068\u0073\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079");
+return nil ,_bdab ;};if len (_fdga )!=int (_fbefb -_cecc +1){_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0074\u0068s\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0025\u0064 \u0028\u0025\u0064\u0029",_fbefb -_cecc +1,len (_fdga ));
+return nil ,_dfg .ErrRangeError ;};for _ggfa ,_bgcf :=range _fdga {_facf ._aefba [_cecc +_ff .CharCode (_ggfa )]=_bgcf ;};};};_facf .Encoding =_dfg .TraceToDirectObject (_fcfcb .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _facf ,nil ;
+};func (_adgb *PdfAppender )addNewObject (_abf _dfg .PdfObject ){if _ ,_bedbb :=_adgb ._dadd [_abf ];!_bedbb {_adgb ._fbfcg =append (_adgb ._fbfcg ,_abf );_adgb ._dadd [_abf ]=struct{}{};};};
+
+// SetReason sets the `Reason` field of the signature.
+func (_ffdcg *PdfSignature )SetReason (reason string ){_ffdcg .Reason =_dfg .MakeEncodedString (reason ,true );};
+
+// GetPageDict converts the Page to a PDF object dictionary.
+func (_cfcdb *PdfPage )GetPageDict ()*_dfg .PdfObjectDictionary {_dceae :=_cfcdb ._daae ;_dceae .Clear ();_dceae .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0050\u0061\u0067\u0065"));_dceae .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cfcdb .Parent );
+if _cfcdb .LastModified !=nil {_dceae .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_cfcdb .LastModified .ToPdfObject ());};if _cfcdb .Resources !=nil {_dceae .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cfcdb .Resources .ToPdfObject ());
+};if _cfcdb .CropBox !=nil {_dceae .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_cfcdb .CropBox .ToPdfObject ());};if _cfcdb .MediaBox !=nil {_dceae .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_cfcdb .MediaBox .ToPdfObject ());};if _cfcdb .BleedBox !=nil {_dceae .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_cfcdb .BleedBox .ToPdfObject ());
+};if _cfcdb .TrimBox !=nil {_dceae .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_cfcdb .TrimBox .ToPdfObject ());};if _cfcdb .ArtBox !=nil {_dceae .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_cfcdb .ArtBox .ToPdfObject ());};_dceae .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_cfcdb .BoxColorInfo );
+_dceae .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_cfcdb .Contents );if _cfcdb .Rotate !=nil {_dceae .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_dfg .MakeInteger (*_cfcdb .Rotate ));};_dceae .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_cfcdb .Group );
+_dceae .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_cfcdb .Thumb );_dceae .SetIfNotNil ("\u0042",_cfcdb .B );_dceae .SetIfNotNil ("\u0044\u0075\u0072",_cfcdb .Dur );_dceae .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_cfcdb .Trans );_dceae .SetIfNotNil ("\u0041\u0041",_cfcdb .AA );
+_dceae .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_cfcdb .Metadata );_dceae .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_cfcdb .PieceInfo );_dceae .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_cfcdb .StructParents );
+_dceae .SetIfNotNil ("\u0049\u0044",_cfcdb .ID );_dceae .SetIfNotNil ("\u0050\u005a",_cfcdb .PZ );_dceae .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_cfcdb .SeparationInfo );_dceae .SetIfNotNil ("\u0054\u0061\u0062\u0073",_cfcdb .Tabs );
+_dceae .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_cfcdb .TemplateInstantiated );_dceae .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_cfcdb .PresSteps );_dceae .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_cfcdb .UserUnit );
+_dceae .SetIfNotNil ("\u0056\u0050",_cfcdb .VP );if _cfcdb ._dbec !=nil {_eeef :=_dfg .MakeArray ();for _ ,_bbcgc :=range _cfcdb ._dbec {if _cbddfc :=_bbcgc .GetContext ();_cbddfc !=nil {_eeef .Append (_cbddfc .ToPdfObject ());}else {_eeef .Append (_bbcgc .ToPdfObject ());
+};};if _eeef .Len ()> 0{_dceae .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_eeef );};}else if _cfcdb .Annots !=nil {_dceae .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_cfcdb .Annots );};return _dceae ;};
+
+// DecodeArray returns the component range values for the DeviceN colorspace.
+// [0 1.0 0 1.0 ...] for each color component.
+func (_eaaa *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _fffb []float64 ;for _gadf :=0;_gadf < _eaaa .GetNumComponents ();_gadf ++{_fffb =append (_fffb ,0.0,1.0);};return _fffb ;};func (_geg *PdfReader )newPdfActionLaunchFromDict (_fee *_dfg .PdfObjectDictionary )(*PdfActionLaunch ,error ){_cfgg ,_acg :=_dbga (_fee .Get ("\u0046"));
+if _acg !=nil {return nil ,_acg ;};return &PdfActionLaunch {Win :_fee .Get ("\u0057\u0069\u006e"),Mac :_fee .Get ("\u004d\u0061\u0063"),Unix :_fee .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_fee .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_cfgg },nil ;
+};
+
+// Add appends a top level outline item to the outline.
+func (_caeab *Outline )Add (item *OutlineItem ){_caeab .Entries =append (_caeab .Entries ,item )};
+
+// GetXObjectByName returns the XObject with the specified keyName and the object type.
+func (_cbfcf *PdfPageResources )GetXObjectByName (keyName _dfg .PdfObjectName )(*_dfg .PdfObjectStream ,XObjectType ){if _cbfcf .XObject ==nil {return nil ,XObjectTypeUndefined ;};_bebfd ,_aeaab :=_dfg .TraceToDirectObject (_cbfcf .XObject ).(*_dfg .PdfObjectDictionary );
+if !_aeaab {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0021\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_dfg .TraceToDirectObject (_cbfcf .XObject ));
+return nil ,XObjectTypeUndefined ;};if _eeeb :=_bebfd .Get (keyName );_eeeb !=nil {_fbaa ,_aagfc :=_dfg .GetStream (_eeeb );if !_aagfc {_egb .Log .Debug ("X\u004f\u0062\u006a\u0065\u0063\u0074 \u006e\u006f\u0074\u0020\u0070\u006fi\u006e\u0074\u0069\u006e\u0067\u0020\u0074o\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020%\u0054",_eeeb );
+return nil ,XObjectTypeUndefined ;};_edbae :=_fbaa .PdfObjectDictionary ;_bgcbd ,_aagfc :=_dfg .TraceToDirectObject (_edbae .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_dfg .PdfObjectName );if !_aagfc {_egb .Log .Debug ("\u0058\u004fbj\u0065\u0063\u0074 \u0053\u0075\u0062\u0074ype\u0020no\u0074\u0020\u0061\u0020\u004e\u0061\u006de,\u0020\u0064\u0069\u0063\u0074\u003a\u0020%\u0073",_edbae .String ());
+return nil ,XObjectTypeUndefined ;};if *_bgcbd =="\u0049\u006d\u0061g\u0065"{return _fbaa ,XObjectTypeImage ;}else if *_bgcbd =="\u0046\u006f\u0072\u006d"{return _fbaa ,XObjectTypeForm ;}else if *_bgcbd =="\u0050\u0053"{return _fbaa ,XObjectTypePS ;}else {_egb .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0053\u0075b\u0074\u0079\u0070\u0065\u0020\u006e\u006ft\u0020\u006b\u006e\u006f\u0077\u006e\u0020\u0028\u0025\u0073\u0029",*_bgcbd );
+return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};};
+
+// PdfAnnotationLine represents Line annotations.
+// (Section 12.5.6.7).
+type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _dfg .PdfObject ;BS _dfg .PdfObject ;LE _dfg .PdfObject ;IC _dfg .PdfObject ;LL _dfg .PdfObject ;LLE _dfg .PdfObject ;Cap _dfg .PdfObject ;IT _dfg .PdfObject ;LLO _dfg .PdfObject ;CP _dfg .PdfObject ;
+Measure _dfg .PdfObject ;CO _dfg .PdfObject ;};func (_ecda *PdfWriter )setDocumentIDs (_ecagc ,_bddc string ){_ecda ._beccf =_dfg .MakeArray (_dfg .MakeHexString (_ecagc ),_dfg .MakeHexString (_bddc ));};func (_fbgadg *DSS )add (_ddaf *[]*_dfg .PdfObjectStream ,_fffcd map[string ]*_dfg .PdfObjectStream ,_eebaed [][]byte )([]*_dfg .PdfObjectStream ,error ){_faadc :=make ([]*_dfg .PdfObjectStream ,0,len (_eebaed ));
+for _ ,_aaeba :=range _eebaed {_bfae ,_agad :=_fcabf (_aaeba );if _agad !=nil {return nil ,_agad ;};_cebg ,_ccaca :=_fffcd [string (_bfae )];if !_ccaca {_cebg ,_agad =_dfg .MakeStream (_aaeba ,_dfg .NewRawEncoder ());if _agad !=nil {return nil ,_agad ;
+};_fffcd [string (_bfae )]=_cebg ;*_ddaf =append (*_ddaf ,_cebg );};_faadc =append (_faadc ,_cebg );};return _faadc ,nil ;};
+
+// SetContext sets the sub action (context).
+func (_bca *PdfAction )SetContext (ctx PdfModel ){_bca ._bdb =ctx };
+
+// IsHideMenubar returns the value of the hideMenubar flag.
+func (_dbcabg *ViewerPreferences )IsHideMenubar ()bool {if _dbcabg ._eaded ==nil {return false ;};return *_dbcabg ._eaded ;};func (_cedaa *PdfWriter )AttachFile (file *EmbeddedFile )error {_ebaag :=_cedaa ._baeae ;if _ebaag ==nil {_ebaag =_ffad ();};_dacfg :=_ebaag .addEmbeddedFile (file );
+if _dacfg !=nil {return _dacfg ;};_cedaa ._baeae =_ebaag ;return nil ;};
+
+// GetNameDictionary returns the Names entry in the PDF catalog.
+// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
+func (_dbbggg *PdfReader )GetNameDictionary ()(_dfg .PdfObject ,error ){_eaeag :=_dfg .ResolveReference (_dbbggg ._fbfgb .Get ("\u004e\u0061\u006de\u0073"));if _eaeag ==nil {return nil ,nil ;};if !_dbbggg ._bafba {_ffgcec :=_dbbggg .traverseObjectData (_eaeag );
+if _ffgcec !=nil {return nil ,_ffgcec ;};};return _eaeag ,nil ;};
+
+// Encoder returns the font's text encoder.
+func (_bcac pdfCIDFontType0 )Encoder ()_ff .TextEncoder {return _bcac ._eebeb };
+
+// GetDocMDPPermission returns the DocMDP level of the restrictions
+func (_gbbbc *PdfSignature )GetDocMDPPermission ()(_bba .DocMDPPermission ,bool ){for _ ,_fcaba :=range _gbbbc .Reference .Elements (){if _bddac ,_gdccf :=_dfg .GetDict (_fcaba );_gdccf {if _gfgbg ,_cgfdf :=_dfg .GetNameVal (_bddac .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
+_cgfdf &&_gfgbg =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _cecgf ,_bbcbee :=_dfg .GetDict (_bddac .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_bbcbee {if P ,_adeagf :=_dfg .GetIntVal (_cecgf .Get ("\u0050"));
+_adeagf {return _bba .DocMDPPermission (P ),true ;};};};};};return 0,false ;};
+
+// GetContainingPdfObject implements interface PdfModel.
+func (_adgd *PdfFilespec )GetContainingPdfObject ()_dfg .PdfObject {return _adgd ._bcadf };func _beeb (_aebb _dfg .PdfObject )(*PdfPattern ,error ){_ddea :=&PdfPattern {};var _bcafc *_dfg .PdfObjectDictionary ;if _cdeca ,_bfgbb :=_dfg .GetIndirect (_aebb );
+_bfgbb {_ddea ._adcec =_cdeca ;_egfbf ,_eebb :=_cdeca .PdfObject .(*_dfg .PdfObjectDictionary );if !_eebb {_egb .Log .Debug ("\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006fn\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079\u0020\u0028g\u006f\u0074\u0020%\u0054\u0029",_cdeca .PdfObject );
+return nil ,_dfg .ErrTypeError ;};_bcafc =_egfbf ;}else if _cceaf ,_gabd :=_dfg .GetStream (_aebb );_gabd {_ddea ._adcec =_cceaf ;_bcafc =_cceaf .PdfObjectDictionary ;}else {_egb .Log .Debug ("\u0050a\u0074\u0074e\u0072\u006e\u0020\u006eo\u0074\u0020\u0061n\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074 o\u0062\u006a\u0065c\u0074\u0020o\u0072\u0020\u0073\u0074\u0072\u0065a\u006d\u002e \u0025\u0054",_aebb );
+return nil ,_dfg .ErrTypeError ;};_ebbgb :=_bcafc .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _ebbgb ==nil {_egb .Log .Debug ("\u0050\u0064\u0066\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069n\u0067\u0020\u0050\u0061\u0074t\u0065\u0072n\u0054\u0079\u0070\u0065");
+return nil ,ErrRequiredAttributeMissing ;};_fecfc ,_faadce :=_ebbgb .(*_dfg .PdfObjectInteger );if !_faadce {_egb .Log .Debug ("\u0050\u0061tt\u0065\u0072\u006e \u0074\u0079\u0070\u0065 no\u0074 a\u006e\u0020\u0069\u006e\u0074\u0065\u0067er\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_ebbgb );
+return nil ,_dfg .ErrTypeError ;};if *_fecfc !=1&&*_fecfc !=2{_egb .Log .Debug ("\u0050\u0061\u0074\u0074e\u0072\u006e\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d \u0031/\u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",*_fecfc );return nil ,_dfg .ErrRangeError ;
+};_ddea .PatternType =int64 (*_fecfc );switch *_fecfc {case 1:_bafcg ,_eaebf :=_afca (_bcafc );if _eaebf !=nil {return nil ,_eaebf ;};_bafcg .PdfPattern =_ddea ;_ddea ._bfaedb =_bafcg ;return _ddea ,nil ;case 2:_bcecc ,_ffbeg :=_cfbc (_bcafc );if _ffbeg !=nil {return nil ,_ffbeg ;
+};_bcecc .PdfPattern =_ddea ;_ddea ._bfaedb =_bcecc ;return _ddea ,nil ;};return nil ,_bd .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
+
+// Mask returns the uin32 bitmask for the specific flag.
+func (_eeea FieldFlag )Mask ()uint32 {return uint32 (_eeea )};func (_abgd *PdfAcroForm )fillImageWithAppearance (_fafgd FieldImageProvider ,_cfbeb FieldAppearanceGenerator )error {if _abgd ==nil {return nil ;};_egfcf ,_geaga :=_fafgd .FieldImageValues ();
+if _geaga !=nil {return _geaga ;};for _ ,_bdbd :=range _abgd .AllFields (){_deac :=_bdbd .PartialName ();_ebdgc ,_afccg :=_egfcf [_deac ];if !_afccg {if _abee ,_ecgce :=_bdbd .FullName ();_ecgce ==nil {_ebdgc ,_afccg =_egfcf [_abee ];};};if !_afccg {_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020f\u006f\u0072\u006d \u0066\u0069\u0065l\u0064\u0020\u0025\u0073\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u0069n \u0074\u0068\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0072\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u002e",_deac );
+continue ;};switch _eccbf :=_bdbd .GetContext ().(type ){case *PdfFieldButton :if _eccbf .IsPush (){_eccbf .SetFillImage (_ebdgc );};};if _cfbeb ==nil {continue ;};for _ ,_dfddg :=range _bdbd .Annotations {_efdaf ,_fagea :=_cfbeb .GenerateAppearanceDict (_abgd ,_bdbd ,_dfddg );
+if _fagea !=nil {return _fagea ;};_dfddg .AP =_efdaf ;_dfddg .ToPdfObject ();};};return nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_fccc *PdfActionSound )ToPdfObject ()_dfg .PdfObject {_fccc .PdfAction .ToPdfObject ();_gef :=_fccc ._fe ;_bgd :=_gef .PdfObject .(*_dfg .PdfObjectDictionary );_bgd .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeSound )));_bgd .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_fccc .Sound );
+_bgd .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_fccc .Volume );_bgd .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_fccc .Synchronous );_bgd .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_fccc .Repeat );
+_bgd .SetIfNotNil ("\u004d\u0069\u0078",_fccc .Mix );return _gef ;};
+
+// NewXObjectFormFromStream builds the Form XObject from a stream object.
+// TODO: Should this be exposed? Consider different access points.
+func NewXObjectFormFromStream (stream *_dfg .PdfObjectStream )(*XObjectForm ,error ){_dedge :=&XObjectForm {};_dedge ._baced =stream ;_begcga :=*(stream .PdfObjectDictionary );_cgecf ,_cbbda :=_dfg .NewEncoderFromStream (stream );if _cbbda !=nil {return nil ,_cbbda ;
+};_dedge .Filter =_cgecf ;if _bdaea :=_begcga .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_bdaea !=nil {_dfecf ,_dbgada :=_bdaea .(*_dfg .PdfObjectName );if !_dbgada {return nil ,_bd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
+};if *_dfecf !="\u0046\u006f\u0072\u006d"{_egb .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_bd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
+};};if _gabea :=_begcga .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_gabea !=nil {_dedge .FormType =_gabea ;};if _bfbcg :=_begcga .Get ("\u0042\u0042\u006f\u0078");_bfbcg !=nil {_dedge .BBox =_bfbcg ;};if _bfgbacg :=_begcga .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
+_bfgbacg !=nil {_dedge .Matrix =_bfgbacg ;};if _fdceaf :=_begcga .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_fdceaf !=nil {_fdceaf =_dfg .TraceToDirectObject (_fdceaf );_ecde ,_cfbcc :=_fdceaf .(*_dfg .PdfObjectDictionary );if !_cfbcc {_egb .Log .Debug ("\u0049\u006e\u0076\u0061\u006ci\u0064\u0020\u0058\u004f\u0062j\u0065c\u0074\u0020\u0046\u006f\u0072\u006d\u0020\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006f\u0062j\u0065\u0063\u0074\u002c\u0020\u0070\u006f\u0069\u006e\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u006e\u006f\u006e\u002d\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");
+return nil ,_dfg .ErrTypeError ;};_cagbf ,_aefed :=NewPdfPageResourcesFromDict (_ecde );if _aefed !=nil {_egb .Log .Debug ("\u0046\u0061i\u006c\u0065\u0064\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0020\u0072\u0065\u0073\u006f\u0075rc\u0065\u0073");
+return nil ,_aefed ;};_dedge .Resources =_cagbf ;_egb .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_dedge .Resources );};_dedge .Group =_begcga .Get ("\u0047\u0072\u006fu\u0070");
+_dedge .Ref =_begcga .Get ("\u0052\u0065\u0066");_dedge .MetaData =_begcga .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_dedge .PieceInfo =_begcga .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_dedge .LastModified =_begcga .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
+_dedge .StructParent =_begcga .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dedge .StructParents =_begcga .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_dedge .OPI =_begcga .Get ("\u004f\u0050\u0049");
+_dedge .OC =_begcga .Get ("\u004f\u0043");_dedge .Name =_begcga .Get ("\u004e\u0061\u006d\u0065");_dedge .Stream =stream .Stream ;return _dedge ,nil ;};func (_ddagc *PdfWriter )setDocInfo (_dbdad _dfg .PdfObject ){if _ddagc .hasObject (_ddagc ._acace ){delete (_ddagc ._bgbee ,_ddagc ._acace );
+delete (_ddagc ._faeee ,_ddagc ._acace );for _aggbg ,_cdbff :=range _ddagc ._abcef {if _cdbff ==_ddagc ._acace {copy (_ddagc ._abcef [_aggbg :],_ddagc ._abcef [_aggbg +1:]);_ddagc ._abcef [len (_ddagc ._abcef )-1]=nil ;_ddagc ._abcef =_ddagc ._abcef [:len (_ddagc ._abcef )-1];
+break ;};};};_bebfda :=_dfg .PdfIndirectObject {};_bebfda .PdfObject =_dbdad ;_ddagc ._acace =&_bebfda ;_ddagc .addObject (&_bebfda );};
+
+// Artifact represents a PDF artifact, which is a non-visual element
+// that provides additional information about the document structure or content.
+type Artifact struct{
+
+// Type of the artifact.
+Type ArtifactType ;
+
+// BBox of the artifact.
+//
+// Optional; required for background artifacts.
+//
+// An array of four numbers in default user space units giving the coordinates
+// of the left, bottom, right, and top edges, respectively, of the artifact’s
+// bounding box (the rectangle that completely encloses its visible extent).
+BBox *PdfRectangle ;
+
+// Attached positions for the artifact.
+//
+// Optional; pagination and full-page background artifacts only)
+//
+// An array of name objects containing one to four of the names Top, Bottom, Left, and
+// Right, specifying the edges of the page, if any, to which the artifact is
+// logically attached. Page edges shall be defined by the page’s crop box.
+// The ordering of names within the array is immaterial. Including both Left and Right or both Top and Bottom
+// indicates a full-width or full-height artifact, respectively.
+//
+// Use of this entry for background artifacts shall be limited to full-page artifacts.
+// Background artifacts that are not full-page take their dimensions from their parent structural element.
+AttachPositions []ArtifactAttachPosition ;
+
+// Subtype of the artifact, if applicable.
+//
+// The subtype of the artifact. This entry should appear
+// only when the Type entry has a value of Pagination.
+//
+// Several standard values are defined in `model.ArtifactSubtype` type.
+//
+// Additional values may be specified for this entry.
+Subtype string ;};
+
+// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
+func (_gfcdf *PdfReader )PageFromIndirectObject (ind *_dfg .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_gfcdf .PageList )!=len (_gfcdf ._ggbf ){return nil ,0,_bd .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
+};for _eceeb ,_bcbbc :=range _gfcdf ._ggbf {if _bcbbc ==ind {return _gfcdf .PageList [_eceeb ],_eceeb +1,nil ;};};return nil ,0,_bd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};func (_gcgf *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
+
+
+// FieldImageProvider provides fields images for specified fields.
+type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
+
+// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
+type PdfAnnotation struct{_dga PdfModel ;Rect _dfg .PdfObject ;Contents _dfg .PdfObject ;P _dfg .PdfObject ;NM _dfg .PdfObject ;M _dfg .PdfObject ;F _dfg .PdfObject ;AP _dfg .PdfObject ;AS _dfg .PdfObject ;Border _dfg .PdfObject ;C _dfg .PdfObject ;StructParent _dfg .PdfObject ;
+OC _dfg .PdfObject ;_afae *_dfg .PdfIndirectObject ;};
+
+// GetContainingPdfObject implements interface PdfModel.
+func (_dgd *PdfAnnotation )GetContainingPdfObject ()_dfg .PdfObject {return _dgd ._afae };
+
+// CopyFrom copies all the fields from another PdfAnnotation
+func (_cee *PdfAnnotation )CopyFrom (another *PdfAnnotation ){if another ==nil {return ;};_cee .Rect =another .Rect ;_cee .Contents =another .Contents ;_cee .P =another .P ;_cee .NM =another .NM ;_cee .M =another .M ;_cee .F =another .F ;_cee .AP =another .AP ;
+_cee .AS =another .AS ;_cee .Border =another .Border ;_cee .C =another .C ;_cee .StructParent =another .StructParent ;_cee .OC =another .OC ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_gae *PdfActionURI )ToPdfObject ()_dfg .PdfObject {_gae .PdfAction .ToPdfObject ();_cdfc :=_gae ._fe ;_eegd :=_cdfc .PdfObject .(*_dfg .PdfObjectDictionary );_eegd .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeURI )));_eegd .SetIfNotNil ("\u0055\u0052\u0049",_gae .URI );
+_eegd .SetIfNotNil ("\u0049\u0073\u004da\u0070",_gae .IsMap );return _cdfc ;};
+
+// PdfActionGoToR represents a GoToR action.
+type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _dfg .PdfObject ;NewWindow _dfg .PdfObject ;};
+
+// SetDocInfo sets the document /Info metadata.
+// This will overwrite any globally declared document info.
+func (_afba *PdfAppender )SetDocInfo (info *PdfInfo ){_afba ._ccf =info };
+
+// NewPdfAnnotationSquare returns a new square annotation.
+func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_bfd :=NewPdfAnnotation ();_fdb :=&PdfAnnotationSquare {};_fdb .PdfAnnotation =_bfd ;_fdb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bfd .SetContext (_fdb );return _fdb ;};
+
+// NewPdfPage returns a new PDF page.
+func NewPdfPage ()*PdfPage {_cdbcb :=PdfPage {};_cdbcb ._daae =_dfg .MakeDict ();_cdbcb .Resources =NewPdfPageResources ();_eccgd :=_dfg .PdfIndirectObject {};_eccgd .PdfObject =_cdbcb ._daae ;_cdbcb ._bdeee =&_eccgd ;_cdbcb ._fagbf =*_cdbcb ._daae ;return &_cdbcb ;
+};
+
+// Encoder returns the font's text encoder.
+func (_acec pdfCIDFontType2 )Encoder ()_ff .TextEncoder {return _acec ._fbfb };
+
+// NewPdfActionMovie returns a new "movie" action.
+func NewPdfActionMovie ()*PdfActionMovie {_fca :=NewPdfAction ();_gfg :=&PdfActionMovie {};_gfg .PdfAction =_fca ;_fca .SetContext (_gfg );return _gfg ;};
+
+// ImageHandler interface implements common image loading and processing tasks.
+// Implementing as an interface allows for the possibility to use non-standard libraries for faster
+// loading and processing of images.
+type ImageHandler interface{
+
+// Read any image type and load into a new Image object.
+Read (_gece _edg .Reader )(*Image ,error );
+
+// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
+NewImageFromGoImage (_dbce _gf .Image )(*Image ,error );
+
+// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
+NewGrayImageFromGoImage (_cgebe _gf .Image )(*Image ,error );
+
+// Compress an image.
+Compress (_bfaed *Image ,_dcdcc int64 )(*Image ,error );};
+
+// ColorToRGB converts a CalGray color to an RGB color.
+func (_bgfa *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_ebge ,_ddgf :=color .(*PdfColorCalGray );if !_ddgf {_egb .Log .Debug ("\u0049n\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u006eo\u0074\u0020\u0063\u0061\u006c\u0020\u0067\u0072\u0061\u0079");
+return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_ebge .Val ();X :=_bgfa .WhitePoint [0]*_df .Pow (ANorm ,_bgfa .Gamma );Y :=_bgfa .WhitePoint [1]*_df .Pow (ANorm ,_bgfa .Gamma );
+Z :=_bgfa .WhitePoint [2]*_df .Pow (ANorm ,_bgfa .Gamma );_fdad :=3.240479*X +-1.537150*Y +-0.498535*Z ;_adbg :=-0.969256*X +1.875992*Y +0.041556*Z ;_cbgd :=0.055648*X +-0.204043*Y +1.057311*Z ;_fdad =_df .Min (_df .Max (_fdad ,0),1.0);_adbg =_df .Min (_df .Max (_adbg ,0),1.0);
+_cbgd =_df .Min (_df .Max (_cbgd ,0),1.0);return NewPdfColorDeviceRGB (_fdad ,_adbg ,_cbgd ),nil ;};func _ceeeg ()string {_dfbaa .Lock ();defer _dfbaa .Unlock ();return _gabfe };
+
+// Field returns the parent form field of the widget annotation, if one exists.
+// NOTE: the method returns nil if the parent form field has not been parsed.
+func (_dad *PdfAnnotationWidget )Field ()*PdfField {return _dad ._bcad };func (_ffdcf *PdfWriter )setWriter (_bdaddc _edg .Writer ){_ffdcf ._cffge =_ffdcf ._fcacd ;_ffdcf ._bfdbg =_c .NewWriter (_bdaddc );};
+
+// PdfAnnotationScreen represents Screen annotations.
+// (Section 12.5.6.18).
+type PdfAnnotationScreen struct{*PdfAnnotation ;T _dfg .PdfObject ;MK _dfg .PdfObject ;A _dfg .PdfObject ;AA _dfg .PdfObject ;};
+
+// ToPdfObject returns the PDF representation of the shading dictionary.
+func (_bdgfe *PdfShadingType6 )ToPdfObject ()_dfg .PdfObject {_bdgfe .PdfShading .ToPdfObject ();_dgdf ,_ddcabb :=_bdgfe .getShadingDict ();if _ddcabb !=nil {_egb .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
+return nil ;};if _bdgfe .BitsPerCoordinate !=nil {_dgdf .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_bdgfe .BitsPerCoordinate );};if _bdgfe .BitsPerComponent !=nil {_dgdf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bdgfe .BitsPerComponent );
+};if _bdgfe .BitsPerFlag !=nil {_dgdf .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_bdgfe .BitsPerFlag );};if _bdgfe .Decode !=nil {_dgdf .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bdgfe .Decode );};if _bdgfe .Function !=nil {if len (_bdgfe .Function )==1{_dgdf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bdgfe .Function [0].ToPdfObject ());
+}else {_ebbb :=_dfg .MakeArray ();for _ ,_gbfgd :=range _bdgfe .Function {_ebbb .Append (_gbfgd .ToPdfObject ());};_dgdf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ebbb );};};return _bdgfe ._gdfdg ;};func (_bdbee *PdfWriter )getPdfVersion ()string {return _d .Sprintf ("\u0025\u0064\u002e%\u0064",_bdbee ._cfbcb .Major ,_bdbee ._cfbcb .Minor );
+};
+
+// GetRefObject returns the reference object of the KValue.
+func (_eeecf *KValue )GetRefObject ()_dfg .PdfObject {return _eeecf ._gbedc };func _abbg (_degb _dfg .PdfObject )(*PdfColorspaceCalGray ,error ){_begdb :=NewPdfColorspaceCalGray ();if _bgac ,_dacae :=_degb .(*_dfg .PdfIndirectObject );_dacae {_begdb ._efge =_bgac ;
+};_degb =_dfg .TraceToDirectObject (_degb );_edda ,_bagb :=_degb .(*_dfg .PdfObjectArray );if !_bagb {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _edda .Len ()!=2{return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");
+};_degb =_dfg .TraceToDirectObject (_edda .Get (0));_dacad ,_bagb :=_degb .(*_dfg .PdfObjectName );if !_bagb {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
+};if *_dacad !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_d .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_degb =_dfg .TraceToDirectObject (_edda .Get (1));
+_gffe ,_bagb :=_degb .(*_dfg .PdfObjectDictionary );if !_bagb {return nil ,_d .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");
+};_degb =_gffe .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_degb =_dfg .TraceToDirectObject (_degb );_abac ,_bagb :=_degb .(*_dfg .PdfObjectArray );if !_bagb {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");
+};if _abac .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_ebgc ,_fcgb :=_abac .GetAsFloat64Slice ();
+if _fcgb !=nil {return nil ,_fcgb ;};_begdb .WhitePoint =_ebgc ;_degb =_gffe .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _degb !=nil {_degb =_dfg .TraceToDirectObject (_degb );_bad ,_fccee :=_degb .(*_dfg .PdfObjectArray );
+if !_fccee {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");};if _bad .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");
+};_cbbe ,_aggd :=_bad .GetAsFloat64Slice ();if _aggd !=nil {return nil ,_aggd ;};_begdb .BlackPoint =_cbbe ;};_degb =_gffe .Get ("\u0047\u0061\u006dm\u0061");if _degb !=nil {_degb =_dfg .TraceToDirectObject (_degb );_bbeg ,_afgg :=_dfg .GetNumberAsFloat (_degb );
+if _afgg !=nil {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_begdb .Gamma =_bbeg ;};return _begdb ,nil ;};
+
+// NewPdfAcroForm returns a new PdfAcroForm with an initialized container (indirect object).
+func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_gddd :_dfg .MakeIndirectObject (_dfg .MakeDict ())};};func _fbedee (_ebacg *XObjectImage )error {if _ebacg .SMask ==nil {return nil ;};_bgeac ,_dgdaa :=_ebacg .SMask .(*_dfg .PdfObjectStream );
+if !_dgdaa {_egb .Log .Debug ("\u0053\u004da\u0073\u006b\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u002a\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063\u0074\u0053\u0074re\u0061\u006d");return _dfg .ErrTypeError ;};_bdgfge :=_bgeac .PdfObjectDictionary ;
+_bgfd :=_bdgfge .Get ("\u004d\u0061\u0074t\u0065");if _bgfd ==nil {return nil ;};_gceed ,_dfebfe :=_gcacc (_bgfd .(*_dfg .PdfObjectArray ));if _dfebfe !=nil {return _dfebfe ;};_dggaf :=_dfg .MakeArrayFromFloats ([]float64 {_gceed });_bdgfge .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dggaf );
+return nil ;};
+
+// GetPerms returns the Permissions dictionary
+func (_eaffg *PdfReader )GetPerms ()*Permissions {return _eaffg ._efgca };
+
+// Has checks if flag fl is set in flag and returns true if so, false otherwise.
+func (_acfed FieldFlag )Has (fl FieldFlag )bool {return (_acfed .Mask ()&fl .Mask ())> 0};
+
+// IsHideWindowUI returns the value of the hideWindowUI flag.
+func (_ccefa *ViewerPreferences )IsHideWindowUI ()bool {if _ccefa ._dgbgf ==nil {return false ;};return *_ccefa ._dgbgf ;};func (_dadgb *PdfFont )baseFields ()*fontCommon {if _dadgb ._fab ==nil {_egb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0062\u0061\u0073\u0065\u0046\u0069\u0065l\u0064s\u002e \u0063o\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c\u002e");
+return nil ;};return _dadgb ._fab .baseFields ();};
+
+// NewLTV returns a new LTV client.
+func NewLTV (appender *PdfAppender )(*LTV ,error ){_dbed :=appender .Reader .DSS ;if _dbed ==nil {_dbed =NewDSS ();};if _bdfbf :=_dbed .GenerateHashMaps ();_bdfbf !=nil {return nil ,_bdfbf ;};return &LTV {CertClient :_dfd .NewCertClient (),OCSPClient :_dfd .NewOCSPClient (),CRLClient :_dfd .NewCRLClient (),SkipExisting :true ,_adcg :appender ,_gaggb :_dbed },nil ;
+};
+
+// IsEncrypted returns true if the PDF file is encrypted.
+func (_agegf *PdfReader )IsEncrypted ()(bool ,error ){return _agegf ._agbcd .IsEncrypted ()};
+
+// PageCallback callback function used in page loading
+// that could be used to modify the page content.
+//
+// Deprecated: will be removed in v4. Use PageProcessCallback instead.
+type PageCallback func (_ddafd int ,_cdfd *PdfPage );func (_ecbc *LTV )getCRLs (_gcbced []*_de .Certificate )([][]byte ,error ){_bfbg :=make ([][]byte ,0,len (_gcbced ));for _ ,_decec :=range _gcbced {for _ ,_edfda :=range _decec .CRLDistributionPoints {if _ecbc .CertClient .IsCA (_decec ){continue ;
+};_cacbd ,_cacdg :=_ecbc .CRLClient .MakeRequest (_edfda ,_decec );if _cacdg !=nil {_egb .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0043R\u004c\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074 \u0065\u0072\u0072o\u0072:\u0020\u0025\u0076",_cacdg );continue ;
+};_bfbg =append (_bfbg ,_cacbd );};};return _bfbg ,nil ;};
+
+// NewPdfFieldSignature returns an initialized signature field.
+func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_dbacg :=&PdfFieldSignature {};_dbacg .PdfField =NewPdfField ();_dbacg .SetContext (_dbacg );_dbacg .PdfAnnotationWidget =NewPdfAnnotationWidget ();_dbacg .PdfAnnotationWidget .SetContext (_dbacg );
+_dbacg .PdfAnnotationWidget ._afae =_dbacg ._caaa ;_dbacg .T =_dfg .MakeString ("");_dbacg .F =_dfg .MakeInteger (132);_dbacg .V =signature ;return _dbacg ;};
+
+// AddKChild adds a child K dictionary object.
+func (_aebbf *KDict )AddKChild (kChild *KDict ){_aebbf ._dcgedc =append (_aebbf ._dcgedc ,&KValue {_badbf :kChild });};
+
+// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
+func (_fefa *PdfRectangle )Normalize (){if _fefa .Llx > _fefa .Urx {_fefa .Llx ,_fefa .Urx =_fefa .Urx ,_fefa .Llx ;};if _fefa .Lly > _fefa .Ury {_fefa .Lly ,_fefa .Ury =_fefa .Ury ,_fefa .Lly ;};};func _gagdd (_fgcfdf *_dfg .PdfObjectDictionary )(*PdfShadingType4 ,error ){_fdcge :=PdfShadingType4 {};
+_dcded :=_fgcfdf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _dcded ==nil {_egb .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
+return nil ,ErrRequiredAttributeMissing ;};_feebgc ,_bgcag :=_dcded .(*_dfg .PdfObjectInteger );if !_bgcag {_egb .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_dcded );
+return nil ,_dfg .ErrTypeError ;};_fdcge .BitsPerCoordinate =_feebgc ;_dcded =_fgcfdf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dcded ==nil {_egb .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
+return nil ,ErrRequiredAttributeMissing ;};_feebgc ,_bgcag =_dcded .(*_dfg .PdfObjectInteger );if !_bgcag {_egb .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_dcded );
+return nil ,_dfg .ErrTypeError ;};_fdcge .BitsPerComponent =_feebgc ;_dcded =_fgcfdf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _dcded ==nil {_egb .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067");
+return nil ,ErrRequiredAttributeMissing ;};_feebgc ,_bgcag =_dcded .(*_dfg .PdfObjectInteger );if !_bgcag {_egb .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_dcded );
+return nil ,_dfg .ErrTypeError ;};_fdcge .BitsPerComponent =_feebgc ;_dcded =_fgcfdf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dcded ==nil {_egb .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
+return nil ,ErrRequiredAttributeMissing ;};_egda ,_bgcag :=_dcded .(*_dfg .PdfObjectArray );if !_bgcag {_egb .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_dcded );
+return nil ,_dfg .ErrTypeError ;};_fdcge .Decode =_egda ;_dcded =_fgcfdf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _dcded ==nil {_egb .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
+return nil ,ErrRequiredAttributeMissing ;};_fdcge .Function =[]PdfFunction {};if _fead ,_gaff :=_dcded .(*_dfg .PdfObjectArray );_gaff {for _ ,_eacff :=range _fead .Elements (){_adfebg ,_fada :=_gbada (_eacff );if _fada !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fada );
+return nil ,_fada ;};_fdcge .Function =append (_fdcge .Function ,_adfebg );};}else {_ggbfg ,_accdg :=_gbada (_dcded );if _accdg !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_accdg );
+return nil ,_accdg ;};_fdcge .Function =append (_fdcge .Function ,_ggbfg );};return &_fdcge ,nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_decf *PdfFilespec )ToPdfObject ()_dfg .PdfObject {_cfcg :=_decf .getDict ();_cfcg .Clear ();_cfcg .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_cfcg .SetIfNotNil ("\u0046\u0053",_decf .FS );
+_cfcg .SetIfNotNil ("\u0046",_decf .F );_cfcg .SetIfNotNil ("\u0055\u0046",_decf .UF );_cfcg .SetIfNotNil ("\u0044\u004f\u0053",_decf .DOS );_cfcg .SetIfNotNil ("\u004d\u0061\u0063",_decf .Mac );_cfcg .SetIfNotNil ("\u0055\u006e\u0069\u0078",_decf .Unix );
+_cfcg .SetIfNotNil ("\u0049\u0044",_decf .ID );_cfcg .SetIfNotNil ("\u0056",_decf .V );_cfcg .SetIfNotNil ("\u0045\u0046",_decf .EF );_cfcg .SetIfNotNil ("\u0052\u0046",_decf .RF );_cfcg .SetIfNotNil ("\u0044\u0065\u0073\u0063",_decf .Desc );_cfcg .SetIfNotNil ("\u0043\u0049",_decf .CI );
+_cfcg .SetIfNotNil ("\u0041\u0046\u0052\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068\u0069\u0070",_decf .AFRelationship );return _decf ._bcadf ;};
+
+// PdfColorspaceDeviceRGB represents an RGB colorspace.
+type PdfColorspaceDeviceRGB struct{};
+
+// PdfColorspaceCalGray represents CalGray color space.
+type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_efge *_dfg .PdfIndirectObject ;};
+
+// OutlineDest represents the destination of an outline item.
+// It holds the page and the position on the page an outline item points to.
+type OutlineDest struct{PageObj *_dfg .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
+
+// NewKDictionary creates a new K dictionary object.
+func NewKDictionary ()*KDict {return &KDict {_dcgedc :make ([]*KValue ,0),_gabf :-1}};func (_fdbdg *LTV )enable (_ggagdf ,_fbegg []*_de .Certificate ,_fdbea string )error {_eddca ,_cbed ,_bfcdb :=_fdbdg .buildCertChain (_ggagdf ,_fbegg );if _bfcdb !=nil {return _bfcdb ;
+};_eefgf ,_bfcdb :=_fdbdg .getCerts (_eddca );if _bfcdb !=nil {return _bfcdb ;};var _eegdf ,_fgfaf [][]byte ;if _fdbdg .OCSPClient !=nil {_eegdf ,_bfcdb =_fdbdg .getOCSPs (_eddca ,_cbed );if _bfcdb !=nil {return _bfcdb ;};};if _fdbdg .CRLClient !=nil {_fgfaf ,_bfcdb =_fdbdg .getCRLs (_eddca );
+if _bfcdb !=nil {return _bfcdb ;};};_aabg :=_fdbdg ._gaggb ;_gbcaa ,_bfcdb :=_aabg .AddCerts (_eefgf );if _bfcdb !=nil {return _bfcdb ;};_fedab ,_bfcdb :=_aabg .AddOCSPs (_eegdf );if _bfcdb !=nil {return _bfcdb ;};_fbdeb ,_bfcdb :=_aabg .AddCRLs (_fgfaf );
+if _bfcdb !=nil {return _bfcdb ;};if _fdbea !=""{_aabg .VRI [_fdbea ]=&VRI {Cert :_gbcaa ,OCSP :_fedab ,CRL :_fbdeb };};_fdbdg ._adcg .SetDSS (_aabg );return nil ;};
+
+// NewCompositePdfFontFromTTFFile loads a composite font from a TTF font file. Composite fonts can
+// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
+// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
+// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
+// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
+// NOTE: For simple fonts, use NewPdfFontFromTTFFile.
+func NewCompositePdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_dbad ,_cfbba :=_ga .Open (filePath );if _cfbba !=nil {_egb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_cfbba );
+return nil ,_cfbba ;};defer _dbad .Close ();return NewCompositePdfFontFromTTF (_dbad );};
+
+// GetXObjectByName gets XObject by name.
+func (_afccf *PdfPage )GetXObjectByName (name _dfg .PdfObjectName )(_dfg .PdfObject ,bool ){_ccdcd ,_fbfgd :=_afccf .Resources .XObject .(*_dfg .PdfObjectDictionary );if !_fbfgd {return nil ,false ;};if _fffcc :=_ccdcd .Get (name );_fffcc !=nil {return _fffcc ,true ;
+};return nil ,false ;};
+
+// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
+func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_fdgg :=&PdfPageResourcesColorspaces {};_fdgg .Names =[]string {};_fdgg .Colorspaces =map[string ]PdfColorspace {};_fdgg ._acbeg =&_dfg .PdfIndirectObject {};return _fdgg ;};
+
+// OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377).
+type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;};
+
+// GetKDict returns the KDict of the KValue.
+func (_cbcaa *KValue )GetKDict ()*KDict {return _cbcaa ._badbf };
+
+// SetOpenAction sets the OpenAction in the PDF catalog.
+// The value shall be either an array defining a destination (12.3.2 "Destinations" PDF32000_2008),
+// or an action dictionary representing an action (12.6 "Actions" PDF32000_2008).
+func (_acffbc *PdfWriter )SetOpenAction (dest _dfg .PdfObject )error {if dest ==nil ||_dfg .IsNullObject (dest ){return nil ;};_acffbc ._acgcc .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _acffbc .addObjects (dest );
+};
+
+// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
+type EncryptionAlgorithm int ;func (_adcdb *PdfReader )traverseObjectData (_ffdef _dfg .PdfObject )error {return _dfg .ResolveReferencesDeep (_ffdef ,_adcdb ._fcecf );};
+
+// PdfWriter handles outputing PDF content.
+type PdfWriter struct{_cbfagb *_dfg .PdfIndirectObject ;_gdcdb *_dfg .PdfIndirectObject ;_cbcacc map[_dfg .PdfObject ]struct{};_cbccc []*_dfg .PdfIndirectObject ;_abcef []_dfg .PdfObject ;_bgbee map[_dfg .PdfObject ]struct{};_cffdc []*_dfg .PdfIndirectObject ;
+_fdged *PdfOutlineTreeNode ;_acgcc *_dfg .PdfObjectDictionary ;_bgeae []_dfg .PdfObject ;_acace *_dfg .PdfIndirectObject ;_bfdbg *_c .Writer ;_cffge int64 ;_afgfcg error ;_gbdfc *_dfg .PdfCrypt ;_ecgcc *_dfg .PdfObjectDictionary ;_bbbecb *_dfg .PdfIndirectObject ;
+_beccf *_dfg .PdfObjectArray ;_cfbcb _dfg .Version ;_ecbad *bool ;_fgebdb map[_dfg .PdfObject ][]*_dfg .PdfObjectDictionary ;_abcfe *PdfAcroForm ;_baeae *Names ;_gface Optimizer ;_fbafb StandardApplier ;_effg map[int ]crossReference ;_fcacd int64 ;ObjNumOffset int ;
+_cddgg bool ;_accfg _dfg .XrefTable ;_baeag int64 ;_fgedaa int64 ;_dacf map[_dfg .PdfObject ]int64 ;_faeee map[_dfg .PdfObject ]struct{};_afacc string ;_bdadb string ;_ebgdb []*PdfOutputIntent ;_faacaa bool ;_baeaee ,_dbddd string ;};func _cfbc (_ffccg *_dfg .PdfObjectDictionary )(*PdfShadingPattern ,error ){_gefbd :=&PdfShadingPattern {};
+_ccdeg :=_ffccg .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _ccdeg ==nil {_egb .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_bbbecf ,_faffc :=_debbd (_ccdeg );
+if _faffc !=nil {_egb .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_faffc );return nil ,_faffc ;};_gefbd .Shading =_bbbecf ;if _gdfga :=_ffccg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
+_gdfga !=nil {_caecgb ,_bfbgc :=_gdfga .(*_dfg .PdfObjectArray );if !_bfbgc {_egb .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_gdfga );
+return nil ,_dfg .ErrTypeError ;};_gefbd .Matrix =_caecgb ;};if _dgaa :=_ffccg .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_dgaa !=nil {_gefbd .ExtGState =_dgaa ;};return _gefbd ,nil ;};
+
+// GetNumComponents returns the number of color components (1 for grayscale).
+func (_bbda *PdfColorDeviceGray )GetNumComponents ()int {return 1};
+
+// VariableText contains the common attributes of a variable text.
+// The VariableText is typically not used directly, but is can encapsulate by PdfField
+// See section 12.7.3.3 "Variable Text" and Table 222 (pp. 434-436 PDF32000_2008).
+type VariableText struct{DA *_dfg .PdfObjectString ;Q *_dfg .PdfObjectInteger ;DS *_dfg .PdfObjectString ;RV _dfg .PdfObject ;};
+
+// GetAlphabet returns a map of the runes in `text` and their frequencies.
+func GetAlphabet (text string )map[rune ]int {_bfadd :=map[rune ]int {};for _ ,_fceb :=range text {_bfadd [_fceb ]++;};return _bfadd ;};
+
+// Sign signs a specific page with a digital signature.
+// The signature field parameter must have a valid signature dictionary
+// specified by its V field.
+func (_bfccc *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _bd .New ("\u0073\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065 n\u0069\u006c");
+};_dfdf :=field .V ;if _dfdf ==nil {return _bd .New ("\u0073\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0064\u0069\u0063\u0074i\u006fn\u0061r\u0079 \u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u006e\u0069\u006c");};_bcba :=pageNum -1;
+if _bcba < 0||_bcba > len (_bfccc ._egfc )-1{return _d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_gabef :=_bfccc .Reader .PageList [_bcba ];field .P =_gabef .ToPdfObject ();
+if field .T ==nil ||field .T .String ()==""{field .T =_dfg .MakeString (_d .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_gabef .AddAnnotation (field .PdfAnnotation );if _bfccc ._ebfe ==_bfccc ._eege .AcroForm {_bfccc ._ebfe =_bfccc .Reader .AcroForm ;
+};_fgea :=_bfccc ._ebfe ;if _fgea ==nil {_fgea =NewPdfAcroForm ();};_fgea .SigFlags =_dfg .MakeInteger (3);if _fgea .NeedAppearances !=nil {_fgea .NeedAppearances =nil ;};_gffca :=append (_fgea .AllFields (),field .PdfField );_fgea .Fields =&_gffca ;_bfccc .ReplaceAcroForm (_fgea );
+_bfccc .UpdatePage (_gabef );_bfccc ._egfc [_bcba ]=_gabef ;if _ ,_egfbg :=field .V .GetDocMDPPermission ();_egfbg {_bfccc ._bcdg =NewPermissions (field .V );};return nil ;};func (_gfegd *LTV )buildCertChain (_cdbfg ,_ddgeg []*_de .Certificate )([]*_de .Certificate ,map[string ]*_de .Certificate ,error ){_bgfae :=map[string ]*_de .Certificate {};
+for _ ,_badd :=range _cdbfg {_bgfae [_badd .Subject .CommonName ]=_badd ;};_cdgdf :=_cdbfg ;for _ ,_ddag :=range _ddgeg {_gcggf :=_ddag .Subject .CommonName ;if _ ,_afbee :=_bgfae [_gcggf ];_afbee {continue ;};_bgfae [_gcggf ]=_ddag ;_cdgdf =append (_cdgdf ,_ddag );
+};if len (_cdgdf )==0{return nil ,nil ,ErrSignNoCertificates ;};var _bfcccc error ;for _gaef :=_cdgdf [0];_gaef !=nil &&!_gfegd .CertClient .IsCA (_gaef );{_ccefc ,_gdaac :=_bgfae [_gaef .Issuer .CommonName ];if !_gdaac {if _ccefc ,_bfcccc =_gfegd .CertClient .GetIssuer (_gaef );
+_bfcccc !=nil {_egb .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0043\u006f\u0075\u006cd\u0020\u006e\u006f\u0074\u0020\u0072\u0065tr\u0069\u0065\u0076\u0065 \u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061te\u0020\u0069s\u0073\u0075\u0065\u0072\u003a\u0020\u0025\u0076",_bfcccc );
+break ;};_bgfae [_gaef .Issuer .CommonName ]=_ccefc ;_cdgdf =append (_cdgdf ,_ccefc );};_gaef =_ccefc ;};return _cdgdf ,_bgfae ,nil ;};
+
+// GetNumComponents returns the number of color components (3 for RGB).
+func (_adga *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
+
+// GetStructParentsKey returns the StructParents key.
+// If not set, returns -1.
+func (_edec *PdfPage )GetStructParentsKey ()int {if _eafde ,_bffd :=_dfg .GetIntVal (_edec .StructParents );_bffd {return _eafde ;};return -1;};func (_dedd *pdfFontType3 )baseFields ()*fontCommon {return &_dedd .fontCommon };func _ggbfb (_acadb rune )string {for _ebeca ,_gfgab :=range _cf .Categories {if len (_ebeca )==2&&_cf .Is (_gfgab ,_acadb ){return _ebeca ;
+};};return "\u0043\u006e";};
+
+// NewStandard14FontWithEncoding returns the standard 14 font named `basefont` as a *PdfFont and
+// a TextEncoder that encodes all the runes in `alphabet`, or an error if this is not possible.
+// An error can occur if `basefont` is not one the standard 14 font names.
+func NewStandard14FontWithEncoding (basefont StdFontName ,alphabet map[rune ]int )(*PdfFont ,_ff .SimpleEncoder ,error ){_cbbcc ,_dfbd :=_ggabd (basefont );if _dfbd !=nil {return nil ,nil ,_dfbd ;};_bdcfd ,_bdbce :=_cbbcc .Encoder ().(_ff .SimpleEncoder );
+if !_bdbce {return nil ,nil ,_d .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_cbbcc .Encoder ());
+};_ggabe :=make (map[rune ]_ff .GlyphName );for _bfaea :=range alphabet {if _ ,_aebaa :=_bdcfd .RuneToCharcode (_bfaea );!_aebaa {_ ,_faabc :=_cbbcc ._eecea .Read (_bfaea );if !_faabc {_egb .Log .Trace ("r\u0075\u006e\u0065\u0020\u0025\u0023x\u003d\u0025\u0071\u0020\u006e\u006f\u0074\u0020\u0069n\u0020\u0074\u0068e\u0020f\u006f\u006e\u0074",_bfaea ,_bfaea );
+continue ;};_eagd ,_faabc :=_ff .RuneToGlyph (_bfaea );if !_faabc {_egb .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_bfaea ,_bfaea );continue ;};if len (_ggabe )>=255{return nil ,nil ,_bd .New ("\u0074\u006f\u006f\u0020\u006d\u0061\u006e\u0079\u0020\u0063\u0068\u0061\u0072a\u0063\u0074\u0065\u0072\u0073\u0020f\u006f\u0072\u0020\u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063o\u0064\u0069\u006e\u0067");
+};_ggabe [_bfaea ]=_eagd ;};};var (_fabg []_ff .CharCode ;_egaff []_ff .CharCode ;);for _geae :=_ff .CharCode (1);_geae <=0xff;_geae ++{_cdbgg ,_ebaf :=_bdcfd .CharcodeToRune (_geae );if !_ebaf {_fabg =append (_fabg ,_geae );continue ;};if _ ,_ebaf =alphabet [_cdbgg ];
+!_ebaf {_egaff =append (_egaff ,_geae );};};_gbga :=append (_fabg ,_egaff ...);if len (_gbga )< len (_ggabe ){return nil ,nil ,_d .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_ggabe ),len (_gbga ));
+};_bgfag :=make ([]rune ,0,len (_ggabe ));for _cfge :=range _ggabe {_bgfag =append (_bgfag ,_cfge );};_ed .Slice (_bgfag ,func (_cfbbc ,_gdee int )bool {return _bgfag [_cfbbc ]< _bgfag [_gdee ]});_fbcc :=make (map[_ff .CharCode ]_ff .GlyphName ,len (_bgfag ));
+for _ ,_cebdfa :=range _bgfag {_gbbac :=_gbga [0];_gbga =_gbga [1:];_fbcc [_gbbac ]=_ggabe [_cebdfa ];};_bdcfd =_ff .ApplyDifferences (_bdcfd ,_fbcc );_cbbcc .SetEncoder (_bdcfd );return &PdfFont {_fab :&_cbbcc },_bdcfd ,nil ;};
+
+// GetPdfVersion gets the version of the PDF used within this document.
+func (_afaffb *PdfWriter )GetPdfVersion ()string {return _afaffb .getPdfVersion ()};
+
+// NewPdfRectangle creates a PDF rectangle object based on an input array of 4 integers.
+// Defining the lower left (LL) and upper right (UR) corners with
+// floating point numbers.
+func NewPdfRectangle (arr _dfg .PdfObjectArray )(*PdfRectangle ,error ){_acgee :=PdfRectangle {};if arr .Len ()!=4{return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0072\u0065\u0063\u0074\u0061\u006e\u0067\u006c\u0065\u0020\u0061\u0072r\u0061\u0079\u002c\u0020\u006c\u0065\u006e \u0021\u003d\u0020\u0034");
+};var _fcee error ;_acgee .Llx ,_fcee =_dfg .GetNumberAsFloat (arr .Get (0));if _fcee !=nil {return nil ,_fcee ;};_acgee .Lly ,_fcee =_dfg .GetNumberAsFloat (arr .Get (1));if _fcee !=nil {return nil ,_fcee ;};_acgee .Urx ,_fcee =_dfg .GetNumberAsFloat (arr .Get (2));
+if _fcee !=nil {return nil ,_fcee ;};_acgee .Ury ,_fcee =_dfg .GetNumberAsFloat (arr .Get (3));if _fcee !=nil {return nil ,_fcee ;};return &_acgee ,nil ;};
+
+// PdfDate represents a date, which is a PDF string of the form:
+// (D:YYYYMMDDHHmmSSOHH'mm)
+type PdfDate struct{_accga int64 ;_fedabd int64 ;_agfc int64 ;_cgae int64 ;_abggb int64 ;_dbddf int64 ;_fedac byte ;_adgc int64 ;_aaggg int64 ;};
+
+// NewStructureTagInfo creates a new StructureTagInfo with default values.
+func NewStructureTagInfo ()*StructureTagInfo {return &StructureTagInfo {Mcid :0,StructureType :StructureTypeUnknown };};var (StructureTypeSpan StructureType ="\u0053\u0070\u0061\u006e";StructureTypeQuote StructureType ="\u0051\u0075\u006ft\u0065";StructureTypeNote StructureType ="\u004e\u006f\u0074\u0065";
+StructureTypeReference StructureType ="\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e";StructureTypeBibliography StructureType ="\u0042\u0069\u0062\u0045\u006e\u0074\u0072\u0079";StructureTypeCode StructureType ="\u0043\u006f\u0064\u0065";StructureTypeLink StructureType ="\u004c\u0069\u006e\u006b";
+StructureTypeAnnot StructureType ="\u0041\u006e\u006eo\u0074";StructureTypeRuby StructureType ="\u0052\u0075\u0062\u0079";StructureTypeWarichu StructureType ="\u0057a\u0072\u0069\u0063\u0068\u0075";StructureTypeRubyBase StructureType ="\u0052\u0042";StructureTypeRubyText StructureType ="\u0052\u0054";
+StructureTypeRubyPunctuation StructureType ="\u0052\u0050";StructureTypeWarichuText StructureType ="\u0057\u0054";StructureTypeWarichuPunctuation StructureType ="\u0057\u0050";StructureTypeFigure StructureType ="\u0046\u0069\u0067\u0075\u0072\u0065";StructureTypeFormula StructureType ="\u0046o\u0072\u006d\u0075\u006c\u0061";
+StructureTypeForm StructureType ="\u0046\u006f\u0072\u006d";);
+
+// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
+func (_bcff *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_egb .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_egb .Log .Trace ("I\u006d\u0061\u0067\u0065\u0020\u0042P\u0043\u003a\u0020\u0025\u0064\u002c \u0043\u006f\u006c\u006f\u0072\u0020\u0063o\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073\u003a\u0020%\u0064",img .BitsPerComponent ,img .ColorComponents );
+_egb .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_egb .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
+_eafbb ,_bfcad :=_ef .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._baeef ,img ._begcc );if _bfcad !=nil {return Image {},_bfcad ;};_adce ,_bfcad :=_ef .NRGBAConverter .Convert (_eafbb );
+if _bfcad !=nil {return Image {},_bfcad ;};return _deba (_adce .Base ()),nil ;};func (_aead *PdfReader )newPdfActionJavaScriptFromDict (_fccea *_dfg .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_fccea .Get ("\u004a\u0053")},nil ;
+};
+
+// NewXObjectImage returns a new XObjectImage.
+func NewXObjectImage ()*XObjectImage {_gaabe :=&XObjectImage {};_gadaf :=&_dfg .PdfObjectStream {};_gadaf .PdfObjectDictionary =_dfg .MakeDict ();_gaabe ._gfgedd =_gadaf ;return _gaabe ;};
+
+// RunesToCharcodeBytes maps the provided runes to charcode bytes and it
+// returns the resulting slice of bytes, along with the number of runes which
+// could not be converted. If the number of misses is 0, all runes were
+// successfully converted.
+func (_degcf *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _eagbf []_ff .TextEncoder ;var _afgec _ff .CMapEncoder ;if _gdaff :=_degcf .baseFields ()._bgdcbc ;_gdaff !=nil {_afgec =_ff .NewCMapEncoder ("",nil ,_gdaff );};_bbccc :=_degcf .Encoder ();
+if _bbccc !=nil {switch _gecfa :=_bbccc .(type ){case _ff .SimpleEncoder :_eegg :=_gecfa .BaseName ();if _ ,_gced :=_cbgbe [_eegg ];_gced {_eagbf =append (_eagbf ,_bbccc );};};};if len (_eagbf )==0{if _degcf .baseFields ()._bgdcbc !=nil {_eagbf =append (_eagbf ,_afgec );
+};if _bbccc !=nil {_eagbf =append (_eagbf ,_bbccc );};};var _fbefc _cca .Buffer ;var _abgc int ;for _ ,_ceggd :=range data {var _fcceag bool ;for _ ,_fcae :=range _eagbf {if _gdgd :=_fcae .Encode (string (_ceggd ));len (_gdgd )> 0{_fbefc .Write (_gdgd );
+_fcceag =true ;break ;};};if !_fcceag {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020f\u0061\u0069\u006ce\u0064\u0020\u0074\u006f \u006d\u0061\u0070\u0020\u0072\u0075\u006e\u0065\u0020\u0060\u0025\u002b\u0071\u0060\u0020\u0074\u006f\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065",_ceggd );
+_abgc ++;};};if _abgc !=0{_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0061\u006cl\u0020\u0072\u0075\u006e\u0065\u0073\u0020\u0074\u006f\u0020\u0063\u0068\u0061\u0072c\u006fd\u0065\u0073\u002e\u000a"+"\u0009\u006e\u0075\u006d\u0052\u0075\u006e\u0065\u0073\u003d\u0025d\u0020\u006e\u0075\u006d\u004d\u0069\u0073\u0073\u0065\u0073=\u0025\u0064\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073 \u0065\u006e\u0063\u006f\u0064e\u0072\u0073\u003d\u0025\u002b\u0076",len (data ),_abgc ,_degcf ,_eagbf );
+};return _fbefc .Bytes (),_abgc ;};type pdfCIDFontType0 struct{fontCommon ;_eceb *_dfg .PdfIndirectObject ;_eebeb _ff .TextEncoder ;
+
+// Table 117 – Entries in a CIDFont dictionary (page 269)
+// (Required) Dictionary that defines the character collection of the CIDFont.
+// See Table 116.
+CIDSystemInfo *_dfg .PdfObjectDictionary ;
+
+// Glyph metrics fields (optional).
+DW _dfg .PdfObject ;W _dfg .PdfObject ;DW2 _dfg .PdfObject ;W2 _dfg .PdfObject ;_ceda map[_ff .CharCode ]float64 ;_ebfc float64 ;};
+
+// SetSubtype sets the Subtype S for given PdfOutputIntent.
+func (_cdbdc *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _bd .New ("\u0070\u0072o\u0076\u0069\u0064\u0065d\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u004f\u0075t\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0020\u0053\u0075b\u0054\u0079\u0070\u0065");
+};_cdbdc .S =subtype ;return nil ;};
+
+// ToPdfObject returns a PDF object representation of the outline item.
+func (_fcffb *OutlineItem )ToPdfObject ()_dfg .PdfObject {_egacb ,_ :=_fcffb .ToPdfOutlineItem ();return _egacb .ToPdfObject ();};
+
+// GetRuneMetrics returns the char metrics for a rune.
+// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
+// well give them 0 width. There is no need for the bool return.
+func (_aeeb *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_aecac :=_aeeb .actualFont ();if _aecac ==nil {_egb .Log .Debug ("ER\u0052\u004fR\u003a\u0020\u0047\u0065\u0074\u0047\u006c\u0079\u0070h\u0043\u0068\u0061\u0072\u004d\u0065\u0074\u0072\u0069\u0063\u0073\u0020\u004e\u006f\u0074\u0020\u0069\u006d\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020f\u006fr\u0020\u0066\u006f\u006e\u0074\u0020\u0074\u0079p\u0065=\u0025\u0023T",_aeeb ._fab );
+return _bf .CharMetrics {},false ;};if _gdbdf ,_bdae :=_aecac .GetRuneMetrics (r );_bdae {return _gdbdf ,true ;};if _aeafe ,_cgbg :=_aeeb .GetFontDescriptor ();_cgbg ==nil &&_aeafe !=nil {return _bf .CharMetrics {Wx :_aeafe ._decbb },true ;};_egb .Log .Debug ("\u0047\u0065\u0074\u0047\u006c\u0079\u0070h\u0043\u0068\u0061r\u004d\u0065\u0074\u0072i\u0063\u0073\u003a\u0020\u004e\u006f\u0020\u006d\u0065\u0074\u0072\u0069\u0063\u0073\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_aeeb );
+return _bf .CharMetrics {},false ;};
+
+// NewPdfColorCalRGB returns a new CalRBG color.
+func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_bcgd :=PdfColorCalRGB {a ,b ,c };return &_bcgd ;};func _faeg (_bgdf ,_eebdc string )string {if _af .Contains (_bgdf ,"\u002b"){_aefg :=_af .Split (_bgdf ,"\u002b");if len (_aefg )==2{_bgdf =_aefg [1];
+};};return _eebdc +"\u002b"+_bgdf ;};type crossReference struct{Type int ;
+
+// Type 1
+Offset int64 ;Generation int64 ;
+
+// Type 2
+ObjectNumber int ;Index int ;};
+
+// PrintScaling returns the value of the printScaling.
+func (_fbdce *ViewerPreferences )PrintScaling ()PrintScaling {return _fbdce ._bcdgc };
+
+// SetPdfProducer sets the Producer attribute of the output PDF.
+func SetPdfProducer (producer string ){_dfbaa .Lock ();defer _dfbaa .Unlock ();_fgfff =producer };
+
+// DetermineColorspaceNameFromPdfObject determines PDF colorspace from a PdfObject. Returns the colorspace name and
+// an error on failure. If the colorspace was not found, will return an empty string.
+func DetermineColorspaceNameFromPdfObject (obj _dfg .PdfObject )(_dfg .PdfObjectName ,error ){var _gffg *_dfg .PdfObjectName ;var _eaag *_dfg .PdfObjectArray ;if _defe ,_gfbg :=obj .(*_dfg .PdfIndirectObject );_gfbg {if _adab ,_caaec :=_defe .PdfObject .(*_dfg .PdfObjectArray );
+_caaec {_eaag =_adab ;}else if _bfee ,_efga :=_defe .PdfObject .(*_dfg .PdfObjectName );_efga {_gffg =_bfee ;};}else if _bdbae ,_gdcf :=obj .(*_dfg .PdfObjectArray );_gdcf {_eaag =_bdbae ;}else if _gfeg ,_baee :=obj .(*_dfg .PdfObjectName );_baee {_gffg =_gfeg ;
+};if _gffg !=nil {switch *_gffg {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079","\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B","\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":return *_gffg ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_gffg ,nil ;
+};};if _eaag !=nil &&_eaag .Len ()> 0{if _ddbf ,_bfba :=_eaag .Get (0).(*_dfg .PdfObjectName );_bfba {switch *_ddbf {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079","\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B","\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _eaag .Len ()==1{return *_ddbf ,nil ;
+};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_ddbf ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_ddbf ,nil ;
+case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_ddbf ,nil ;};};};return "",nil ;};func (_beed *LTV )validateSig (_adeba *PdfSignature )error {if _adeba ==nil ||_adeba .Contents ==nil ||len (_adeba .Contents .Bytes ())==0{return _d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_adeba );
+};return nil ;};
+
+// String returns a string representation of what flags are set.
+func (_bccf FieldFlag )String ()string {_eafd :="";if _bccf ==FieldFlagClear {_eafd ="\u0043\u006c\u0065a\u0072";return _eafd ;};if _bccf &FieldFlagReadOnly > 0{_eafd +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _bccf &FieldFlagRequired > 0{_eafd +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
+};if _bccf &FieldFlagNoExport > 0{_eafd +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _bccf &FieldFlagNoToggleToOff > 0{_eafd +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _bccf &FieldFlagRadio > 0{_eafd +="\u007c\u0052\u0061\u0064\u0069\u006f";
+};if _bccf &FieldFlagPushbutton > 0{_eafd +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _bccf &FieldFlagRadiosInUnision > 0{_eafd +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _bccf &FieldFlagMultiline > 0{_eafd +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
+};if _bccf &FieldFlagPassword > 0{_eafd +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _bccf &FieldFlagFileSelect > 0{_eafd +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _bccf &FieldFlagDoNotScroll > 0{_eafd +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
+};if _bccf &FieldFlagComb > 0{_eafd +="\u007c\u0043\u006fm\u0062";};if _bccf &FieldFlagRichText > 0{_eafd +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _bccf &FieldFlagDoNotSpellCheck > 0{_eafd +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
+};if _bccf &FieldFlagCombo > 0{_eafd +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _bccf &FieldFlagEdit > 0{_eafd +="\u007c\u0045\u0064i\u0074";};if _bccf &FieldFlagSort > 0{_eafd +="\u007c\u0053\u006fr\u0074";};if _bccf &FieldFlagMultiSelect > 0{_eafd +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
+};if _bccf &FieldFlagCommitOnSelChange > 0{_eafd +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _af .Trim (_eafd ,"\u007c");};
+
+// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
+func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
+
+// PdfTransformParamsDocMDP represents a transform parameters dictionary for the DocMDP method and is used to detect
+// modifications relative to a signature field that is signed by the author of a document.
+// (Section 12.8.2.2, Table 254 - Entries in the DocMDP transform parameters dictionary p. 471 in PDF32000_2008).
+type PdfTransformParamsDocMDP struct{Type *_dfg .PdfObjectName ;P *_dfg .PdfObjectInteger ;V *_dfg .PdfObjectName ;};
+
+// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
+func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_baf :=NewPdfAnnotation ();_dge :=&PdfAnnotationFileAttachment {};_dge .PdfAnnotation =_baf ;_dge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_baf .SetContext (_dge );return _dge ;};
+
+
+// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
+func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_add :=NewPdfAnnotation ();_agf :=&PdfAnnotationSquiggly {};_agf .PdfAnnotation =_add ;_agf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_add .SetContext (_agf );return _agf ;};const (RC4_128bit =EncryptionAlgorithm (iota );
+AES_128bit ;AES_256bit ;);
+
+// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
+type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_dfg .PdfObjectInteger ;BitsPerComponent *_dfg .PdfObjectInteger ;VerticesPerRow *_dfg .PdfObjectInteger ;Decode *_dfg .PdfObjectArray ;Function []PdfFunction ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_ffb *PdfActionSetOCGState )ToPdfObject ()_dfg .PdfObject {_ffb .PdfAction .ToPdfObject ();_bggf :=_ffb ._fe ;_dfdd :=_bggf .PdfObject .(*_dfg .PdfObjectDictionary );_dfdd .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeSetOCGState )));_dfdd .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_ffb .State );
+_dfdd .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_ffb .PreserveRB );return _bggf ;};
+
+// NewOutlineItem returns a new outline item instance.
+func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};
+
+// ToWriter creates a new writer from the current reader, based on the specified options.
+// If no options are provided, all reader properties are copied to the writer.
+func (_gadbb *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_fdbfc :=NewPdfWriter ();_fdbfc .SetFileName (_gadbb ._aefda );if opts ==nil {opts =&ReaderToWriterOpts {};};_gggeg ,_ggfga :=_gadbb .GetNumPages ();if _ggfga !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ggfga );
+return nil ,_ggfga ;};for _eacdg :=1;_eacdg <=_gggeg ;_eacdg ++{_ffac ,_cbccae :=_gadbb .GetPage (_eacdg );if _cbccae !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cbccae );return nil ,_cbccae ;};if opts .PageProcessCallback !=nil {_cbccae =opts .PageProcessCallback (_eacdg ,_ffac );
+if _cbccae !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cbccae );return nil ,_cbccae ;};}else if opts .PageCallback !=nil {opts .PageCallback (_eacdg ,_ffac );};_cbccae =_fdbfc .AddPage (_ffac );if _cbccae !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cbccae );
+return nil ,_cbccae ;};};_fdbfc ._cfbcb =_gadbb .PdfVersion ();if !opts .SkipInfo {_bfbab ,_daafb :=_gadbb .GetPdfInfo ();if _daafb !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_daafb );}else {_fdbfc ._acace .PdfObject =_bfbab .ToPdfObject ();
+};};if !opts .SkipMetadata {if _degd :=_gadbb ._fbfgb .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_degd !=nil {if _agebc :=_fdbfc .SetCatalogMetadata (_degd );_agebc !=nil {return nil ,_agebc ;};};};if !opts .SkipMarkInfo {if _aggc ,_dccag :=_gadbb .GetCatalogMarkInfo ();
+_dccag {if _cceebg :=_fdbfc .SetCatalogMarkInfo (_aggc );_cceebg !=nil {return nil ,_cceebg ;};};};if !opts .SkipAcroForm {_cacgg :=_fdbfc .SetForms (_gadbb .AcroForm );if _cacgg !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cacgg );
+return nil ,_cacgg ;};};if !opts .SkipViewerPreferences {if _ebgdg ,_defde :=_gadbb .GetCatalogViewerPreferences ();_defde {if _bbecd :=_fdbfc .SetCatalogViewerPreferences (_ebgdg );_bbecd !=nil {return nil ,_bbecd ;};};};if !opts .SkipLanguage {if _agcee ,_edbf :=_gadbb .GetCatalogLanguage ();
+_edbf {if _affee :=_fdbfc .SetCatalogLanguage (_agcee );_affee !=nil {return nil ,_affee ;};};};if !opts .SkipOutlines {_fdbfc .AddOutlineTree (_gadbb .GetOutlineTree ());};if !opts .SkipOCProperties {_bdeg ,_eaffa :=_gadbb .GetOCProperties ();if _eaffa !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eaffa );
+}else {_eaffa =_fdbfc .SetOCProperties (_bdeg );if _eaffa !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eaffa );};};};if !opts .SkipPageLabels {_fccgb ,_aegea :=_gadbb .GetPageLabels ();if _aegea !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aegea );
+}else {_aegea =_fdbfc .SetPageLabels (_fccgb );if _aegea !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aegea );};};};if !opts .SkipNamedDests {_eaeae ,_cfeb :=_gadbb .GetNamedDestinations ();if _cfeb !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfeb );
+}else {_cfeb =_fdbfc .SetNamedDestinations (_eaeae );if _cfeb !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfeb );};};};if !opts .SkipNameDictionary {_dfbcf ,_fccca :=_gadbb .GetNameDictionary ();if _fccca !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fccca );
+}else {_fccca =_fdbfc .SetNameDictionary (_dfbcf );if _fccca !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fccca );};};};_gecfe ,_dceab :=_gadbb .GetCatalogStructTreeRoot ();if _dceab {_dbdga :=_fdbfc .SetCatalogStructTreeRoot (_gecfe );
+if _dbdga !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbdga );};};if !opts .SkipRotation &&_gadbb .Rotate !=nil {if _caac :=_fdbfc .SetRotation (*_gadbb .Rotate );_caac !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_caac );
+};};return &_fdbfc ,nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_eeca *PdfAnnotationWatermark )ToPdfObject ()_dfg .PdfObject {_eeca .PdfAnnotation .ToPdfObject ();_gcgb :=_eeca ._afae ;_fagf :=_gcgb .PdfObject .(*_dfg .PdfObjectDictionary );_fagf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
+_fagf .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_eeca .FixedPrint );return _gcgb ;};
+
+// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
+type PdfActionType string ;
+
+// ToPdfObject converts the ID tree to a PDF object.
+func (_bgccf *IDTree )ToPdfObject ()_dfg .PdfObject {_gffcf :=_dfg .MakeDict ();if _bgccf .Names !=nil &&_bgccf .Names .Len ()> 0{_gffcf .Set ("\u004e\u0061\u006de\u0073",_bgccf .Names );_gffcf .Set ("\u004c\u0069\u006d\u0069\u0074\u0073",_bgccf .Limits );
+};if len (_bgccf .Kids )> 0{_bfgbf :=_dfg .MakeArray ();for _ ,_ecgag :=range _bgccf .Kids {_bfgbf .Append (_ecgag .ToPdfObject ());};_fafda :=_dfg .MakeDict ();_fafda .Set ("\u004b\u0069\u0064\u0073",_bfgbf );_gffcf .Set ("\u004b\u0069\u0064\u0073",_fafda );
+};return _gffcf ;};
+
+// NewStructTreeRootFromPdfObject creates a new structure tree root from a PDF object.
+func NewStructTreeRootFromPdfObject (obj _dfg .PdfObject )(*StructTreeRoot ,error ){_aebfd :=_dfg .ResolveReference (obj );_aecceg ,_beefg :=_dfg .GetDict (_aebfd );if !_beefg {return nil ,_d .Errorf ("\u0065\u0078\u0069\u0073\u0074\u0069\u006e\u0067 \u0073\u0074\u0072uc\u0074\u0075\u0072\u0065\u0020\u0074r\u0065\u0065\u0020\u0072\u006f\u006f\u0074\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006ea\u0072\u0079");
+};_gecaa :=&StructTreeRoot {};_gecaa ._badddb =_dfg .MakeIndirectObject (_dfg .MakeDict ());if _acbag :=_aecceg .Get ("\u004b");_acbag !=nil {_deadf :=_dfg .ResolveReference (_acbag );_ebfff :=_dfg .ResolveReferencesDeep (_deadf ,nil );if _ebfff !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006fr\u0020\u0072\u0065\u0073\u006f\u006c\u0076\u0069\u006e\u0067 \u004b \u006f\u0062\u006a\u0065\u0063\u0074\u003a \u0025\u0076",_ebfff );
+};_gecaa .K =[]*KDict {};if _ccbag ,_adedc :=_dfg .GetArray (_deadf );_adedc {for _affaa :=0;_affaa < _ccbag .Len ();_affaa ++{_deeff :=_ccbag .Get (_affaa );_ageadf ,_eeeeba :=NewKDictFromPdfObject (_deeff );if _eeeeba !=nil {return nil ,_eeeeba ;};_gecaa .K =append (_gecaa .K ,_ageadf );
+};}else {_ecefcg ,_acfee :=NewKDictFromPdfObject (_deadf );if _acfee !=nil {return nil ,_acfee ;};_gecaa .K =append (_gecaa .K ,_ecefcg );};};if _cbcf :=_aecceg .Get ("\u0049\u0044\u0054\u0072\u0065\u0065");_cbcf !=nil {_gecaa .IDTree =_ecaae (_cbcf );
+};if _gcfgb :=_aecceg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074\u0054\u0072\u0065\u0065");_gcfgb !=nil {_dgcd :=_dfg .ResolveReference (_gcfgb );if _baaba ,_dbdbd :=_dfg .GetDict (_dgcd );_dbdbd {_gecaa .ParentTree =_baaba ;};};if _gddg :=_aecceg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074\u0054\u0072\u0065\u0065\u004e\u0065x\u0074\u004b\u0065\u0079");
+_gddg !=nil {_ ,_ecece :=_dfg .GetInt (_gddg );if _ecece {_bggffg ,_ggdfcf :=_dfg .GetNumberAsInt64 (_gddg );if _ggdfcf !=nil {return nil ,_ggdfcf ;};_gecaa .ParentTreeNextKey =_bggffg ;};};if _bdfgd :=_aecceg .Get ("\u0052o\u006c\u0065\u004d\u0061\u0070");
+_bdfgd !=nil {switch _fbeea :=_bdfgd .(type ){case *_dfg .PdfIndirectObject :if _bcfda ,_egfdb :=_dfg .GetDict (_fbeea .PdfObject );_egfdb {_gecaa .RoleMap =_bcfda ;};case *_dfg .PdfObjectDictionary :_gecaa .RoleMap =_fbeea ;case *_dfg .PdfObjectString :_gecaa .RoleMap =_fbeea ;
+};};if _ccdab :=_aecceg .Get ("\u0043\u006c\u0061\u0073\u0073\u004d\u0061\u0070");_ccdab !=nil {if _fcbag ,_ebabf :=_dfg .GetDict (_ccdab );_ebabf {_gecaa .ClassMap =_fcbag ;};};return _gecaa ,nil ;};func (_gdgbd *PdfPage )removeXObj (_ffdcd *_dfg .PdfObjectDictionary ,_cgbaf _dfg .PdfObjectName ){_ffdcd .Remove (_cgbaf );
+_bgecf :=_dfg .NewFlateEncoder ();_cdafce :=_gdgbd .GetContentStreamObjs ();_fabd :=_dfg .MakeArray ();for _ ,_aeaba :=range _cdafce {_ddfd ,_ :=_bgbfb (_aeaba );if _af .Contains (_ddfd ,_cgbaf .String ()){_daaa :=_af .Index (_ddfd ,_cgbaf .String ());
+_cceac :=_af .LastIndex (_ddfd [:_daaa ],"\u0071");_acfec :=_af .Index (_ddfd [_daaa :],"\u0051")+_daaa +1;if _cceac >=0&&_acfec >=0{var _debg _af .Builder ;_debg .WriteString (_ddfd [:_cceac ]);_debg .WriteString (_ddfd [_acfec :]);_cdaff ,_bccb :=_dfg .MakeStream ([]byte (_debg .String ()),_bgecf );
+if _bccb ==nil {_fabd .Append (_cdaff );continue ;};};};_fabd .Append (_aeaba );};_gdgbd .Contents =_fabd ;};func _cgbf (_bbgc _dfg .PdfObject ,_fdfaf *PdfReader )(*OutlineDest ,error ){_geaa ,_ecgea :=_dfg .GetArray (_bbgc );if !_ecgea {return nil ,_bd .New ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0064\u0065\u0073t\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
+};_bdbb :=_geaa .Len ();if _bdbb < 2{return nil ,_d .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_bdbb );
+};_fdbef :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_cbfg :=_geaa .Get (0);if _dddgb ,_gabgd :=_dfg .GetIndirect (_cbfg );_gabgd {if _ ,_gcdc ,_cdeab :=_fdfaf .PageFromIndirectObject (_dddgb );_cdeab ==nil {_fdbef .Page =int64 (_gcdc -1);}else {_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020g\u0065\u0074\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u0066\u006f\u0072\u0020\u0070\u0061\u0067\u0065\u0020\u0025\u002b\u0076",_dddgb );
+};_fdbef .PageObj =_dddgb ;}else if _edgf ,_aeebc :=_dfg .GetIntVal (_cbfg );_aeebc {if _edgf >=0&&_edgf < len (_fdfaf .PageList ){_fdbef .PageObj =_fdfaf .PageList [_edgf ].GetPageAsIndirectObject ();}else {_egb .Log .Debug ("\u0057\u0041R\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0067\u0065\u0074\u0020\u0070\u0061\u0067\u0065\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0070\u0061\u0067\u0065\u0020\u0025\u0064",_edgf );
+};_fdbef .Page =int64 (_edgf );}else {return nil ,_d .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_cbfg );};_ggaaec ,_ecgea :=_dfg .GetNameVal (_geaa .Get (1));
+if !_ecgea {_egb .Log .Debug ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0064\u0065s\u0074\u0069\u006e\u0061\u0074\u0069\u006fn\u0020\u006d\u0061\u0067\u006e\u0069\u0066\u0069\u0063\u0061\u0074i\u006f\u006e\u0020\u006d\u006f\u0064\u0065\u003a\u0020\u0025\u0076",_geaa .Get (1));
+return _fdbef ,nil ;};switch _ggaaec {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _bdbb > 2{_fdbef .Y ,_ =_dfg .GetNumberAsFloat (_dfg .TraceToDirectObject (_geaa .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _bdbb > 2{_fdbef .X ,_ =_dfg .GetNumberAsFloat (_dfg .TraceToDirectObject (_geaa .Get (2)));
+};case "\u0058\u0059\u005a":if _bdbb > 4{_fdbef .X ,_ =_dfg .GetNumberAsFloat (_dfg .TraceToDirectObject (_geaa .Get (2)));_fdbef .Y ,_ =_dfg .GetNumberAsFloat (_dfg .TraceToDirectObject (_geaa .Get (3)));_fdbef .Zoom ,_ =_dfg .GetNumberAsFloat (_dfg .TraceToDirectObject (_geaa .Get (4)));
+};default:_ggaaec ="\u0046\u0069\u0074";};_fdbef .Mode =_ggaaec ;return _fdbef ,nil ;};
+
+// PdfAnnotationSquiggly represents Squiggly annotations.
+// (Section 12.5.6.10).
+type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _dfg .PdfObject ;};func (_caeb *PdfReader )newPdfAnnotationFileAttachmentFromDict (_cbdd *_dfg .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_fbgg :=PdfAnnotationFileAttachment {};
+_dea ,_dfea :=_caeb .newPdfAnnotationMarkupFromDict (_cbdd );if _dfea !=nil {return nil ,_dfea ;};_fbgg .PdfAnnotationMarkup =_dea ;_fbgg .FS =_cbdd .Get ("\u0046\u0053");_fbgg .Name =_cbdd .Get ("\u004e\u0061\u006d\u0065");return &_fbgg ,nil ;};
+
+// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
+func (_cefae *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0049\u006d\u0061\u0067\u0065\u0020\u0063\u0061n\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0073\u0070\u0065\u0063\u0069\u0066i\u0065\u0064\u0020\u0069\u006e\u0020\u0050\u0061\u0074\u0074\u0065\u0072n \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
+return img ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0066\u006f\u0072\u0020\u0069m\u0061\u0067\u0065\u0020\u0028p\u0061\u0074t\u0065\u0072\u006e\u0029");};
+
+// ViewArea returns the value of the viewArea.
+func (_adbfd *ViewerPreferences )ViewArea ()PageBoundary {return _adbfd ._gaeae };func (_bcde *PdfReader )newPdfAnnotationPopupFromDict (_fdfe *_dfg .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_cac :=PdfAnnotationPopup {};_cac .Parent =_fdfe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");
+_cac .Open =_fdfe .Get ("\u004f\u0070\u0065\u006e");return &_cac ,nil ;};
+
+// Size returns the width and the height of the page. The method reports
+// the page dimensions as displayed by a PDF viewer (i.e. page rotation is
+// taken into account).
+func (_aaadg *PdfPage )Size ()(float64 ,float64 ,error ){_afbae ,_bgfb :=_aaadg .GetMediaBox ();if _bgfb !=nil {return 0,0,_bgfb ;};_fgcfa ,_daefb :=_afbae .Width (),_afbae .Height ();_caaf ,_bgfb :=_aaadg .GetRotate ();if _bgfb !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0025\u0073\u0020\u002d\u0020\u0069\u0067\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0061\u006e\u0064\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067\u0020\u006e\u006f\u0020\u0072\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u000a",_bgfb .Error ());
+};if _eebgg :=_caaf ;_eebgg %360!=0&&_eebgg %90==0{if _cgbe :=(360+_eebgg %360)%360;_cgbe ==90||_cgbe ==270{_fgcfa ,_daefb =_daefb ,_fgcfa ;};};return _fgcfa ,_daefb ,nil ;};
+
+// StandardImplementer is an interface that defines specified PDF standards like PDF/A-1A (pdfa.Profile1A)
+// NOTE: This implementation is in experimental development state.
+//
+// Keep in mind that it might change in the subsequent minor versions.
+type StandardImplementer interface{StandardValidator ;StandardApplier ;
+
+// StandardName gets the human-readable name of the standard.
+StandardName ()string ;};
+
+// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
+func NewXObjectForm ()*XObjectForm {_cgfcb :=&XObjectForm {};_cdbba :=&_dfg .PdfObjectStream {};_cdbba .PdfObjectDictionary =_dfg .MakeDict ();_cgfcb ._baced =_cdbba ;return _cgfcb ;};
+
+// ToInteger convert to an integer format.
+func (_gcfe *PdfColorDeviceGray )ToInteger (bits int )uint32 {_bdde :=_df .Pow (2,float64 (bits ))-1;return uint32 (_bdde *_gcfe .Val ());};func _aecff (_cbddb *_dfg .PdfObjectDictionary ,_eeec *fontCommon )(*pdfCIDFontType2 ,error ){if _eeec ._gdab !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_egb .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0046\u006fn\u0074\u0020\u0053u\u0062\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020CI\u0044\u0046\u006fn\u0074\u0054y\u0070\u0065\u0032\u002e\u0020\u0066o\u006e\u0074=\u0025\u0073",_eeec );
+return nil ,_dfg .ErrRangeError ;};_edafg :=_ddcab (_eeec );_agfg ,_dcgce :=_dfg .GetDict (_cbddb .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_dcgce {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043I\u0044\u0053\u0079st\u0065\u006d\u0049\u006e\u0066\u006f \u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_eeec );
+return nil ,ErrRequiredAttributeMissing ;};_edafg .CIDSystemInfo =_agfg ;_edafg .DW =_cbddb .Get ("\u0044\u0057");_edafg .W =_cbddb .Get ("\u0057");_edafg .DW2 =_cbddb .Get ("\u0044\u0057\u0032");_edafg .W2 =_cbddb .Get ("\u0057\u0032");_edafg .CIDToGIDMap =_cbddb .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
+_edafg ._cfcga =1000.0;if _dbgfa ,_gcadb :=_dfg .GetNumberAsFloat (_edafg .DW );_gcadb ==nil {_edafg ._cfcga =_dbgfa ;};_dcfgg ,_ddebf :=_fafd (_edafg .W );if _ddebf !=nil {return nil ,_ddebf ;};if _dcfgg ==nil {_dcfgg =map[_ff .CharCode ]float64 {};};
+_edafg ._gdebe =_dcfgg ;return _edafg ,nil ;};
+
+// NewPdfAnnotationLink returns a new link annotation.
+func NewPdfAnnotationLink ()*PdfAnnotationLink {_bggff :=NewPdfAnnotation ();_adfb :=&PdfAnnotationLink {};_adfb .PdfAnnotation =_bggff ;_bggff .SetContext (_adfb );return _adfb ;};
+
+// PdfColorspaceICCBased format [/ICCBased stream]
+//
+// The stream shall contain the ICC profile.
+// A conforming reader shall support ICC.1:2004:10 as required by PDF 1.7, which will enable it
+// to properly render all embedded ICC profiles regardless of the PDF version
+//
+// In the current implementation, we rely on the alternative colormap provided.
+type PdfColorspaceICCBased struct{N int ;Alternate PdfColorspace ;
+
+// If omitted ICC not supported: then use DeviceGray,
+// DeviceRGB or DeviceCMYK for N=1,3,4 respectively.
+Range []float64 ;Metadata *_dfg .PdfObjectStream ;Data []byte ;_ggdb *_dfg .PdfIndirectObject ;_edadb *_dfg .PdfObjectStream ;};const (NonFullScreenPageModeUseNone NonFullScreenPageMode ="\u0055s\u0065\u004e\u006f\u006e\u0065";NonFullScreenPageModeUseOutlines NonFullScreenPageMode ="U\u0073\u0065\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073";
+NonFullScreenPageModeUseThumbs NonFullScreenPageMode ="\u0055s\u0065\u0054\u0068\u0075\u006d\u0062s";NonFullScreenPageModeUseOC NonFullScreenPageMode ="\u0055\u0073\u0065O\u0043";DirectionL2R Direction ="\u004c\u0032\u0052";DirectionR2L Direction ="\u0052\u0032\u004c";
+PageBoundaryMediaBox PageBoundary ="\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078";PageBoundaryCropBox PageBoundary ="\u0043r\u006f\u0070\u0042\u006f\u0078";PageBoundaryBleedBox PageBoundary ="\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078";PageBoundaryTrimBox PageBoundary ="\u0054r\u0069\u006d\u0042\u006f\u0078";
+PageBoundaryArtBox PageBoundary ="\u0041\u0072\u0074\u0042\u006f\u0078";PrintScalingNone PrintScaling ="\u004e\u006f\u006e\u0065";PrintScalingAppDefault PrintScaling ="\u0041\u0070\u0070\u0044\u0065\u0066\u0061\u0075\u006c\u0074";DuplexNone Duplex ="\u006e\u006f\u006e\u0065";
+DuplexSimplex Duplex ="\u0053i\u006d\u0070\u006c\u0065\u0078";DuplexFlipShortEdge Duplex ="\u0044\u0075\u0070\u006cex\u0046\u006c\u0069\u0070\u0053\u0068\u006f\u0072\u0074\u0045\u0064\u0067\u0065";DuplexFlipLongEdge Duplex ="\u0044u\u0070l\u0065\u0078\u0046\u006c\u0069p\u004c\u006fn\u0067\u0045\u0064\u0067\u0065";
+);func (_bcabe *PdfReader )newPdfOutlineItemFromIndirectObject (_ccggc *_dfg .PdfIndirectObject )(*PdfOutlineItem ,error ){_ffff ,_edade :=_ccggc .PdfObject .(*_dfg .PdfObjectDictionary );if !_edade {return nil ,_d .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+};_bcbeb :=NewPdfOutlineItem ();_acaab :=_ffff .Get ("\u0054\u0069\u0074l\u0065");if _acaab ==nil {return nil ,_d .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
+};_dgff ,_fgcdcf :=_dfg .GetString (_acaab );if !_fgcdcf {return nil ,_d .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_acaab );};_bcbeb .Title =_dgff ;if _agebg :=_ffff .Get ("\u0043\u006f\u0075n\u0074");
+_agebg !=nil {_ceag ,_eedde :=_agebg .(*_dfg .PdfObjectInteger );if !_eedde {return nil ,_d .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_agebg );};_dbegd :=int64 (*_ceag );
+_bcbeb .Count =&_dbegd ;};if _adbed :=_ffff .Get ("\u0044\u0065\u0073\u0074");_adbed !=nil {_bcbeb .Dest =_dfg .ResolveReference (_adbed );if !_bcabe ._bafba {_dbbbg :=_bcabe .traverseObjectData (_bcbeb .Dest );if _dbbbg !=nil {return nil ,_dbbbg ;};};
+};if _fbedf :=_ffff .Get ("\u0041");_fbedf !=nil {_bcbeb .A =_dfg .ResolveReference (_fbedf );if !_bcabe ._bafba {_bffbb :=_bcabe .traverseObjectData (_bcbeb .A );if _bffbb !=nil {return nil ,_bffbb ;};};};if _gbea :=_ffff .Get ("\u0053\u0045");_gbea !=nil {_bcbeb .SE =nil ;
+};if _eebed :=_ffff .Get ("\u0043");_eebed !=nil {_bcbeb .C =_dfg .ResolveReference (_eebed );};if _fecfgd :=_ffff .Get ("\u0046");_fecfgd !=nil {_bcbeb .F =_dfg .ResolveReference (_fecfgd );};return _bcbeb ,nil ;};
+
+// HasShadingByName checks whether a shading is defined by the specified keyName.
+func (_fbaeb *PdfPageResources )HasShadingByName (keyName _dfg .PdfObjectName )bool {_ ,_eggb :=_fbaeb .GetShadingByName (keyName );return _eggb ;};
+
+// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
+// components. The slice should contain a single PdfObjectFloat element.
+func (_begea *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dgbg ,_cccd :=_dfg .GetNumbersAsFloat (objects );
+if _cccd !=nil {return nil ,_cccd ;};return _begea .ColorFromFloats (_dgbg );};
+
+// ToPdfObject returns the PDF representation of the outline tree node.
+func (_acefbf *PdfOutlineTreeNode )ToPdfObject ()_dfg .PdfObject {return _acefbf .GetContext ().ToPdfObject ();};
+
+// GetCharMetrics returns the char metrics for character code `code`.
+// How it works:
+// 1. It calls the GetCharMetrics function for the underlying font, either a simple font or
+// a Type0 font. The underlying font GetCharMetrics() functions do direct charcode ➞ metrics
+// mappings.
+// 2. If the underlying font's GetCharMetrics() doesn't have a CharMetrics for `code` then a
+// a CharMetrics with the FontDescriptor's /MissingWidth is returned.
+// 3. If there is no /MissingWidth then a failure is returned.
+//
+// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
+// well give them 0 width. There is no need for the bool return.
+//
+// TODO(gunnsth): Reconsider whether needed or if can map via GlyphName.
+func (_dfbdd *PdfFont )GetCharMetrics (code _ff .CharCode )(CharMetrics ,bool ){var _gbbec _bf .CharMetrics ;switch _abgfb :=_dfbdd ._fab .(type ){case *pdfFontSimple :if _cgcg ,_cfcdd :=_abgfb .GetCharMetrics (code );_cfcdd {return _cgcg ,_cfcdd ;};case *pdfFontType0 :if _dbffa ,_efca :=_abgfb .GetCharMetrics (code );
+_efca {return _dbffa ,_efca ;};case *pdfCIDFontType0 :if _bdfb ,_cfbbcd :=_abgfb .GetCharMetrics (code );_cfbbcd {return _bdfb ,_cfbbcd ;};case *pdfCIDFontType2 :if _fbgd ,_dbbd :=_abgfb .GetCharMetrics (code );_dbbd {return _fbgd ,_dbbd ;};case *pdfFontType3 :if _cadf ,_fece :=_abgfb .GetCharMetrics (code );
+_fece {return _cadf ,_fece ;};default:_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020G\u0065\u0074\u0043h\u0061\u0072\u004de\u0074\u0072i\u0063\u0073\u0020\u006e\u006f\u0074 \u0069mp\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003d\u0025\u0054\u002e",_dfbdd ._fab );
+return _gbbec ,false ;};if _efgeg ,_fdege :=_dfbdd .GetFontDescriptor ();_fdege ==nil &&_efgeg !=nil {return _bf .CharMetrics {Wx :_efgeg ._decbb },true ;};_egb .Log .Debug ("\u0047\u0065\u0074\u0043\u0068\u0061\u0072\u004d\u0065\u0074\u0072\u0069\u0063\u0073\u003a\u0020\u004e\u006f\u0020\u006d\u0065\u0074\u0072\u0069c\u0073\u0020\u0066\u006f\u0072 \u0066\u006fn\u0074\u003d\u0025\u0073",_dfbdd );
+return _gbbec ,false ;};
+
+// multiFontEncoder implements a an Encoder that holds a list of fonts provided.
+type MultipleFontEncoder struct{_ceede []*PdfFont ;CurrentFont *PdfFont ;};
+
+// ToPdfObject returns the PDF representation of the colorspace.
+func (_bfbd *PdfColorspaceSpecialPattern )ToPdfObject ()_dfg .PdfObject {if _bfbd .UnderlyingCS ==nil {return _dfg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_begbd :=_dfg .MakeArray (_dfg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));
+_begbd .Append (_bfbd .UnderlyingCS .ToPdfObject ());if _bfbd ._fdea !=nil {_bfbd ._fdea .PdfObject =_begbd ;return _bfbd ._fdea ;};return _begbd ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_cada *PdfAnnotationHighlight )ToPdfObject ()_dfg .PdfObject {_cada .PdfAnnotation .ToPdfObject ();_eafc :=_cada ._afae ;_dcfg :=_eafc .PdfObject .(*_dfg .PdfObjectDictionary );_cada .appendToPdfDictionary (_dcfg );_dcfg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
+_dcfg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cada .QuadPoints );return _eafc ;};
+
+// PdfAnnotationTrapNet represents TrapNet annotations.
+// (Section 12.5.6.21).
+type PdfAnnotationTrapNet struct{*PdfAnnotation };func (_edcda *PdfPage )setContainer (_fgac *_dfg .PdfIndirectObject ){_fgac .PdfObject =_edcda ._daae ;_edcda ._bdeee =_fgac ;};
+
+// NewPdfShadingType3 creates an empty shading type 3 dictionary.
+func NewPdfShadingType3 ()*PdfShadingType3 {_aebba :=&PdfShadingType3 {};_aebba .PdfShading =&PdfShading {};_aebba .PdfShading ._gdfdg =_dfg .MakeIndirectObject (_dfg .MakeDict ());_aebba .PdfShading ._fdbfb =_aebba ;return _aebba ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_gba *PdfActionJavaScript )ToPdfObject ()_dfg .PdfObject {_gba .PdfAction .ToPdfObject ();_bbc :=_gba ._fe ;_fea :=_bbc .PdfObject .(*_dfg .PdfObjectDictionary );_fea .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeJavaScript )));_fea .SetIfNotNil ("\u004a\u0053",_gba .JS );
+return _bbc ;};
+
+// NewKDictFromPdfObject creates a new K dictionary object from a PDF object.
+func NewKDictFromPdfObject (obj _dfg .PdfObject )(*KDict ,error ){_ffafg :=_dfg .ResolveReference (obj );if _ffafg ==nil {return nil ,_d .Errorf ("\u004b \u006fb\u006a\u0065\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_dgfge ,_agcgg :=_dfg .GetDict (_ffafg );
+if !_agcgg {return nil ,_d .Errorf ("\u004b\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u006f\u0074 \u0061 \u0064\u0069\u0063\u0074\u0069\u006f\u006ea\u0072\u0079");};_ebdga :=&KDict {};if _fdcff :=_dgfge .Get ("\u0053");_fdcff !=nil {_ebdga .S =_fdcff ;
+};if _adbgaa :=_dgfge .Get ("\u0050");_adbgaa !=nil {_ebdga .P =_adbgaa ;};if _gaga :=_dgfge .Get ("\u0049\u0044");_gaga !=nil {if _abbcb ,_fedcg :=_dfg .GetString (_gaga );_fedcg {_ebdga .ID =_abbcb ;};};if _cgccg :=_dgfge .Get ("\u0050\u0067");_cgccg !=nil {_ebdga .Pg =_cgccg ;
+};if _dceef :=_dgfge .Get ("\u004b");_dceef !=nil {_ebdga .K =_dceef ;switch _agagg :=_dceef .(type ){case *_dfg .PdfObjectArray :if _fcceb ,_bfaac :=_dfg .GetArray (_dceef );_bfaac {for _ ,_edgab :=range _fcceb .Elements (){switch _ddfdg :=_edgab .(type ){case *_dfg .PdfIndirectObject :_cgcd ,_gddec :=NewKDictFromPdfObject (_ddfdg );
+if _gddec !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u0072\u0065\u0061\u0074i\u006e\u0067\u0020\u004b\u0020\u0063\u0068\u0069\u006c\u0064:\u0020\u0025\u0076",_gddec );continue ;};_ebdga ._dcgedc =append (_ebdga ._dcgedc ,&KValue {_badbf :_cgcd });
+case *_dfg .PdfObjectInteger :if _deed ,_bfbded :=_dfg .GetIntVal (_edgab );_bfbded {_ebdga ._dcgedc =append (_ebdga ._dcgedc ,&KValue {_dddge :&_deed });};case *_dfg .PdfObjectDictionary :_ebdga ._dcgedc =append (_ebdga ._dcgedc ,&KValue {_gbedc :_edgab });
+};};};case *_dfg .PdfIndirectObject :_ggebcf ,_daba :=NewKDictFromPdfObject (_agagg );if _daba !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u0072\u0065\u0061\u0074i\u006e\u0067\u0020\u004b\u0020\u0063\u0068\u0069\u006c\u0064:\u0020\u0025\u0076",_daba );
+};if _ggebcf !=nil {_ebdga ._dcgedc =append (_ebdga ._dcgedc ,&KValue {_badbf :_ggebcf });};case *_dfg .PdfObjectDictionary :_ebdga ._dcgedc =append (_ebdga ._dcgedc ,&KValue {_gbedc :_agagg });case *_dfg .PdfObjectInteger :if _gcgef ,_gagbb :=_dfg .GetIntVal (_dceef );
+_gagbb {_ebdga ._dcgedc =append (_ebdga ._dcgedc ,&KValue {_dddge :&_gcgef });};};};if _cggc :=_dgfge .Get ("\u0041");_cggc !=nil {_ebdga .A =_cggc ;};if _afgd :=_dgfge .Get ("\u0043");_afgd !=nil {_ebdga .C =_afgd ;};if _dedcg :=_dgfge .Get ("\u0052");
+_dedcg !=nil {if _aeeec ,_fcagc :=_dfg .GetInt (_dedcg );_fcagc {_ebdga .R =_aeeec ;};};if _ffdfg :=_dgfge .Get ("\u0054");_ffdfg !=nil {if _fbfca ,_cgbde :=_dfg .GetString (_ffdfg );_cgbde {_ebdga .T =_fbfca ;};};if _bebgcc :=_dgfge .Get ("\u004c\u0061\u006e\u0067");
+_bebgcc !=nil {if _ffgde ,_defab :=_dfg .GetString (_bebgcc );_defab {_ebdga .Lang =_ffgde ;};};if _bdcag :=_dgfge .Get ("\u0041\u006c\u0074");_bdcag !=nil {if _efged ,_gfde :=_dfg .GetString (_bdcag );_gfde {_ebdga .Alt =_efged ;};};if _gdgcc :=_dgfge .Get ("\u0045");
+_gdgcc !=nil {if _fbbbe ,_eegcf :=_dfg .GetString (_gdgcc );_eegcf {_ebdga .E =_fbbbe ;};};if _feecd :=_dgfge .Get ("\u0041\u0063\u0074\u0075\u0061\u006c\u0054\u0065\u0078\u0074");_feecd !=nil {if _cefaf ,_edgbb :=_dfg .GetString (_feecd );_edgbb {_ebdga .ActualText =_cefaf ;
+};};return _ebdga ,nil ;};
+
+// SetDecode sets the decode image float slice.
+func (_bcaa *Image )SetDecode (decode []float64 ){_bcaa ._begcc =decode };
+
+// ToPdfObject returns the PDF representation of the shading pattern.
+func (_dceff *PdfShadingPatternType2 )ToPdfObject ()_dfg .PdfObject {_dceff .PdfPattern .ToPdfObject ();_fbbcd :=_dceff .getDict ();if _dceff .Shading !=nil {_fbbcd .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_dceff .Shading .ToPdfObject ());};if _dceff .Matrix !=nil {_fbbcd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dceff .Matrix );
+};if _dceff .ExtGState !=nil {_fbbcd .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_dceff .ExtGState );};return _dceff ._adcec ;};
+
+// PdfAnnotationFileAttachment represents FileAttachment annotations.
+// (Section 12.5.6.15).
+type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _dfg .PdfObject ;Name _dfg .PdfObject ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_eeba *PdfAnnotationMovie )ToPdfObject ()_dfg .PdfObject {_eeba .PdfAnnotation .ToPdfObject ();_ddfb :=_eeba ._afae ;_bacb :=_ddfb .PdfObject .(*_dfg .PdfObjectDictionary );_bacb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u004d\u006f\u0076i\u0065"));
+_bacb .SetIfNotNil ("\u0054",_eeba .T );_bacb .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_eeba .Movie );_bacb .SetIfNotNil ("\u0041",_eeba .A );return _ddfb ;};
+
+// GetContainingPdfObject returns the container of the DSS (indirect object).
+func (_ecbb *DSS )GetContainingPdfObject ()_dfg .PdfObject {return _ecbb ._beab };
+
+// GetSubFilter returns SubFilter value or empty string.
+func (_fdeaf *pdfSignDictionary )GetSubFilter ()string {_dbaac :=_fdeaf .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _dbaac ==nil {return "";};if _dgaf ,_fgcfab :=_dfg .GetNameVal (_dbaac );_fgcfab {return _dgaf ;};return "";};
+
+// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
+func (_beeg DefaultImageHandler )NewGrayImageFromGoImage (goimg _gf .Image )(*Image ,error ){_bcbgc :=goimg .Bounds ();_gada :=&Image {Width :int64 (_bcbgc .Dx ()),Height :int64 (_bcbgc .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _fgdbg :=goimg .(type ){case *_gf .Gray :if len (_fgdbg .Pix )!=_bcbgc .Dx ()*_bcbgc .Dy (){_bbcabc ,_gebg :=_ef .GrayConverter .Convert (goimg );
+if _gebg !=nil {return nil ,_gebg ;};_gada .Data =_bbcabc .Pix ();}else {_gada .Data =_fgdbg .Pix ;};case *_gf .Gray16 :_gada .BitsPerComponent =16;if len (_fgdbg .Pix )!=_bcbgc .Dx ()*_bcbgc .Dy ()*2{_dcbe ,_ggbdd :=_ef .Gray16Converter .Convert (goimg );
+if _ggbdd !=nil {return nil ,_ggbdd ;};_gada .Data =_dcbe .Pix ();}else {_gada .Data =_fgdbg .Pix ;};case _ef .Image :_babcc :=_fgdbg .Base ();if _babcc .ColorComponents ==1{_gada .BitsPerComponent =int64 (_babcc .BitsPerComponent );_gada .Data =_babcc .Data ;
+return _gada ,nil ;};_gdbec ,_cdgde :=_ef .GrayConverter .Convert (goimg );if _cdgde !=nil {return nil ,_cdgde ;};_gada .Data =_gdbec .Pix ();default:_cgdd ,_cbdda :=_ef .GrayConverter .Convert (goimg );if _cbdda !=nil {return nil ,_cbdda ;};_gada .Data =_cgdd .Pix ();
+};return _gada ,nil ;};
+
+// MergePageWith appends page content to source Pdf file page content.
+func (_begc *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_fade :=pageNum -1;var _addc *PdfPage ;for _gafcb ,_acdb :=range _begc ._egfc {if _gafcb ==_fade {_addc =_acdb ;};};if _addc ==nil {return _d .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );
+};if _addc ._bdeee !=nil &&_addc ._bdeee .GetParser ()==_begc ._eege ._agbcd {_addc =_addc .Duplicate ();_begc ._egfc [_fade ]=_addc ;};page =page .Duplicate ();_gccaa (page );_ecee :=_cggdb (_addc );_gccfc :=_cggdb (page );_egfd :=make (map[_dfg .PdfObjectName ]_dfg .PdfObjectName );
+for _bega :=range _gccfc {if _ ,_accc :=_ecee [_bega ];_accc {for _aegc :=1;true ;_aegc ++{_gaggc :=_dfg .PdfObjectName (string (_bega )+_gg .Itoa (_aegc ));if _ ,_gdef :=_ecee [_gaggc ];!_gdef {_egfd [_bega ]=_gaggc ;break ;};};};};_bbfg ,_gfd :=page .GetContentStreams ();
+if _gfd !=nil {return _gfd ;};_cfce ,_gfd :=_addc .GetContentStreams ();if _gfd !=nil {return _gfd ;};for _eae ,_fef :=range _bbfg {for _egc ,_bggfb :=range _egfd {_fef =_af .ReplaceAll (_fef ,"\u002f"+string (_egc ),"\u002f"+string (_bggfb ));};_bbfg [_eae ]=_fef ;
+};_cfce =append (_cfce ,_bbfg ...);if _egaaf :=_addc .SetContentStreams (_cfce ,_dfg .NewFlateEncoder ());_egaaf !=nil {return _egaaf ;};_addc ._dbec =append (_addc ._dbec ,page ._dbec ...);if _addc .Resources ==nil {_addc .Resources =NewPdfPageResources ();
+};if page .Resources !=nil {_addc .Resources .Font =_begc .mergeResources (_addc .Resources .Font ,page .Resources .Font ,_egfd );_addc .Resources .XObject =_begc .mergeResources (_addc .Resources .XObject ,page .Resources .XObject ,_egfd );_addc .Resources .Properties =_begc .mergeResources (_addc .Resources .Properties ,page .Resources .Properties ,_egfd );
+if _addc .Resources .ProcSet ==nil {_addc .Resources .ProcSet =page .Resources .ProcSet ;};_addc .Resources .Shading =_begc .mergeResources (_addc .Resources .Shading ,page .Resources .Shading ,_egfd );_addc .Resources .ExtGState =_begc .mergeResources (_addc .Resources .ExtGState ,page .Resources .ExtGState ,_egfd );
+};_cbfc ,_gfd :=_addc .GetMediaBox ();if _gfd !=nil {return _gfd ;};_bebf ,_gfd :=page .GetMediaBox ();if _gfd !=nil {return _gfd ;};var _cdbd bool ;if _cbfc .Llx > _bebf .Llx {_cbfc .Llx =_bebf .Llx ;_cdbd =true ;};if _cbfc .Lly > _bebf .Lly {_cbfc .Lly =_bebf .Lly ;
+_cdbd =true ;};if _cbfc .Urx < _bebf .Urx {_cbfc .Urx =_bebf .Urx ;_cdbd =true ;};if _cbfc .Ury < _bebf .Ury {_cbfc .Ury =_bebf .Ury ;_cdbd =true ;};if _cdbd {_addc .MediaBox =_cbfc ;};return nil ;};
+
+// XObjectType represents the type of an XObject.
+type XObjectType int ;
+
+// UpdateXObjectImageFromImage creates a new XObject Image from an
+// Image object `img` and default masks from xobjIn.
+// The default masks are overridden if img.hasAlpha
+// If `encoder` is nil, uses raw encoding (none).
+func UpdateXObjectImageFromImage (xobjIn *XObjectImage ,img *Image ,cs PdfColorspace ,encoder _dfg .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {var _ccbegg error ;encoder ,_ccbegg =img .getSuitableEncoder ();if _ccbegg !=nil {_egb .Log .Debug ("F\u0061\u0069l\u0075\u0072\u0065\u0020\u006f\u006e\u0020\u0066\u0069\u006e\u0064\u0069\u006e\u0067\u0020\u0073\u0075\u0069\u0074\u0061b\u006c\u0065\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072,\u0020\u0066\u0061\u006c\u006c\u0062\u0061\u0063\u006b\u0020\u0074\u006f\u0020R\u0061\u0077\u0045\u006e\u0063\u006f\u0064\u0065\u0072\u003a\u0020%\u0076",_ccbegg );
+encoder =_dfg .NewRawEncoder ();};};encoder .UpdateParams (img .GetParamsDict ());_cgadd ,_cceef :=encoder .EncodeBytes (img .Data );if _cceef !=nil {_egb .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_cceef );
+return nil ,_cceef ;};_feggf :=NewXObjectImage ();_aafaf :=img .Width ;_gecbc :=img .Height ;_feggf .Width =&_aafaf ;_feggf .Height =&_gecbc ;_dgedab :=img .BitsPerComponent ;_feggf .BitsPerComponent =&_dgedab ;_feggf .Filter =encoder ;_feggf .Stream =_cgadd ;
+if cs ==nil {if img .ColorComponents ==1{_feggf .ColorSpace =NewPdfColorspaceDeviceGray ();if img .BitsPerComponent ==16{switch encoder .(type ){case *_dfg .DCTEncoder :_feggf .ColorSpace =NewPdfColorspaceDeviceRGB ();_dgedab =8;_feggf .BitsPerComponent =&_dgedab ;
+};};}else if img .ColorComponents ==3{_feggf .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{switch encoder .(type ){case *_dfg .DCTEncoder :_feggf .ColorSpace =NewPdfColorspaceDeviceRGB ();default:_feggf .ColorSpace =NewPdfColorspaceDeviceCMYK ();
+};}else {return nil ,_bd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_feggf .ColorSpace =cs ;};if len (img ._baeef )!=0{_gceac :=NewXObjectImage ();_gceac .Filter =encoder ;_cfbebd ,_gfdb :=encoder .EncodeBytes (img ._baeef );
+if _gfdb !=nil {_egb .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_gfdb );return nil ,_gfdb ;};_gceac .Stream =_cfbebd ;_gceac .BitsPerComponent =_feggf .BitsPerComponent ;
+_gceac .Width =&img .Width ;_gceac .Height =&img .Height ;_gceac .ColorSpace =NewPdfColorspaceDeviceGray ();_feggf .SMask =_gceac .ToPdfObject ();}else {_feggf .SMask =xobjIn .SMask ;_feggf .ImageMask =xobjIn .ImageMask ;if _feggf .ColorSpace .GetNumComponents ()==1{_fbedee (_feggf );
+};};return _feggf ,nil ;};
+
+// CharcodesToUnicodeWithStats is identical to CharcodesToUnicode except it returns more statistical
+// information about hits and misses from the reverse mapping process.
+// NOTE: The number of runes returned may be greater than the number of charcodes.
+// TODO(peterwilliams97): Deprecate in v4 and use only CharcodesToStrings()
+func (_gdega *PdfFont )CharcodesToUnicodeWithStats (charcodes []_ff .CharCode )(_decgd []rune ,_dfef ,_fegfa int ){_fceca ,_dfef ,_fegfa :=_gdega .CharcodesToStrings (charcodes ,"");return []rune (_af .Join (_fceca ,"")),_dfef ,_fegfa ;};
+
+// IsShading specifies if the pattern is a shading pattern.
+func (_gffeg *PdfPattern )IsShading ()bool {return _gffeg .PatternType ==2};
+
+// ToPdfObject returns the PDF representation of the tiling pattern.
+func (_ggfd *PdfTilingPattern )ToPdfObject ()_dfg .PdfObject {_ggfd .PdfPattern .ToPdfObject ();_ebadca :=_ggfd .getDict ();if _ggfd .PaintType !=nil {_ebadca .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_ggfd .PaintType );};if _ggfd .TilingType !=nil {_ebadca .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_ggfd .TilingType );
+};if _ggfd .BBox !=nil {_ebadca .Set ("\u0042\u0042\u006f\u0078",_ggfd .BBox .ToPdfObject ());};if _ggfd .XStep !=nil {_ebadca .Set ("\u0058\u0053\u0074e\u0070",_ggfd .XStep );};if _ggfd .YStep !=nil {_ebadca .Set ("\u0059\u0053\u0074e\u0070",_ggfd .YStep );
+};if _ggfd .Resources !=nil {_ebadca .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_ggfd .Resources .ToPdfObject ());};if _ggfd .Matrix !=nil {_ebadca .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ggfd .Matrix );};return _ggfd ._adcec ;};
+
+// PdfColorspaceSpecialPattern is a Pattern colorspace.
+// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
+type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_fdea *_dfg .PdfIndirectObject ;};var _ pdfFont =(*pdfFontType0 )(nil );
+
+// NewCompliancePdfReader creates a PdfReader or an input io.ReadSeeker that during reading will scan the files for the
+// metadata details. It could be used for the PDF standard implementations like PDF/A or PDF/X.
+// NOTE: This implementation is in experimental development state.
+//
+// Keep in mind that it might change in the subsequent minor versions.
+func NewCompliancePdfReader (rs _edg .ReadSeeker )(*CompliancePdfReader ,error ){const _ggcg ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_faafd ,_gfcb :=_dafc (rs ,&ReaderOpts {ComplianceMode :true },false ,_ggcg );
+if _gfcb !=nil {return nil ,_gfcb ;};return &CompliancePdfReader {PdfReader :_faafd },nil ;};
+
+// RemoveKChild removes a specific KDict child from the kChildren slice.
+func (_cdgda *KDict )RemoveKChild (kChild *KDict )bool {for _gbcca ,_gabdc :=range _cdgda ._dcgedc {if _gabdc ._badbf ==kChild {_cdgda ._dcgedc =append (_cdgda ._dcgedc [:_gbcca ],_cdgda ._dcgedc [_gbcca +1:]...);return true ;};};return false ;};
+
+// ColorToRGB converts gray -> rgb for a single color component.
+func (_dbbe *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_efcbd ,_ecgf :=color .(*PdfColorDeviceGray );if !_ecgf {_egb .Log .Debug ("\u0049\u006e\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006fr\u0020\u006e\u006f\u0074\u0020\u0064\u0065v\u0069\u0063\u0065\u0020\u0067\u0072\u0061\u0079\u0020\u0025\u0054",color );
+return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_efcbd ),float64 (*_efcbd ),float64 (*_efcbd )),nil ;};
+
+// GetContainingPdfObject implements interface PdfModel.
+func (_cedfb *PdfSignatureReference )GetContainingPdfObject ()_dfg .PdfObject {return _cedfb ._bacgc };
+
+// AddMCIDChild adds a child MCID object.
+func (_ecdde *KDict )AddMCIDChild (mcid int ){_ecdde ._dcgedc =append (_ecdde ._dcgedc ,&KValue {_dddge :&mcid });};
+
+// SetDuplex sets the value of the duplex.
+func (_gccgg *ViewerPreferences )SetDuplex (duplex Duplex ){_gccgg ._adeg =duplex };
+
+// GetMCID returns the MCID of the KValue.
+func (_cgcff *KValue )GetMCID ()*int {return _cgcff ._dddge };
+
+// HasXObjectByName checks if an XObject with a specified keyName is defined.
+func (_eeeeb *PdfPageResources )HasXObjectByName (keyName _dfg .PdfObjectName )bool {_agbd ,_ :=_eeeeb .GetXObjectByName (keyName );return _agbd !=nil ;};
+
+// NewPdfAnnotationPolyLine returns a new polyline annotation.
+func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_gbab :=NewPdfAnnotation ();_gbg :=&PdfAnnotationPolyLine {};_gbg .PdfAnnotation =_gbab ;_gbg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gbab .SetContext (_gbg );return _gbg ;};
+
+// NewPdfOutlineTree returns an initialized PdfOutline tree.
+func NewPdfOutlineTree ()*PdfOutline {_gdcc :=NewPdfOutline ();_gdcc ._cface =&_gdcc ;return _gdcc };
+
+// PdfAnnotationLink represents Link annotations.
+// (Section 12.5.6.5 p. 403).
+type PdfAnnotationLink struct{*PdfAnnotation ;A _dfg .PdfObject ;Dest _dfg .PdfObject ;H _dfg .PdfObject ;PA _dfg .PdfObject ;QuadPoints _dfg .PdfObject ;BS _dfg .PdfObject ;_gdc *PdfAction ;_ebdec *PdfReader ;};func (_bccda fontCommon )coreString ()string {_agaca :="";
+if _bccda ._cebfd !=nil {_agaca =_bccda ._cebfd .String ();};return _d .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_bccda ._gdab ,_bccda ._dbcbc ,_bccda ._gadbd ,_bccda ._egggc ,_bccda ._eaaga !=nil ,_bccda .fontFlags (),_agaca );
+};
+
+// GetContainingPdfObject returns the container of the outline item (indirect object).
+func (_ecega *PdfOutlineItem )GetContainingPdfObject ()_dfg .PdfObject {return _ecega ._fcecb };
+
+// NewCompositePdfFontFromTTF loads a composite TTF font. Composite fonts can
+// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
+// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
+// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
+// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
+// NOTE: For simple fonts, use NewPdfFontFromTTF.
+func NewCompositePdfFontFromTTF (r _edg .ReadSeeker )(*PdfFont ,error ){_dgbeed ,_dafb :=_edg .ReadAll (r );if _dafb !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020\u0072\u0065\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074s\u003a\u0020\u0025\u0076",_dafb );
+return nil ,_dafb ;};_dgbd ,_dafb :=_bf .TtfParse (_cca .NewReader (_dgbeed ));if _dafb !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0077\u0068\u0069\u006c\u0065\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067 \u0074\u0074\u0066\u0020\u0066\u006f\u006et\u003a\u0020\u0025\u0076",_dafb );
+return nil ,_dafb ;};_acefa :=&pdfCIDFontType2 {fontCommon :fontCommon {_gdab :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_dfg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_dgbd .Widths )<=0{return nil ,_bd .New ("\u0045\u0052\u0052O\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065 \u0028\u0057\u0069\u0064\u0074\u0068\u0073\u0029");
+};_gcgbe :=1000.0/float64 (_dgbd .UnitsPerEm );_cfac :=_gcgbe *float64 (_dgbd .Widths [0]);_daff :=make (map[rune ]int );_gaagf :=make (map[_bf .GID ]int );_ccbcab :=_bf .GID (len (_dgbd .Widths ));for _ebcf ,_adba :=range _dgbd .Chars {if _adba > _ccbcab -1{continue ;
+};_aaga :=int (_gcgbe *float64 (_dgbd .Widths [_adba ]));_daff [_ebcf ]=_aaga ;_gaagf [_adba ]=_aaga ;};_acefa ._cede =_daff ;_acefa .DW =_dfg .MakeInteger (int64 (_cfac ));_bffbg :=_dffdg (_gaagf ,uint16 (_ccbcab ));_acefa .W =_dfg .MakeIndirectObject (_bffbg );
+_bcge :=_dfg .MakeDict ();_bcge .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_dfg .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_bcge .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_dfg .MakeString ("\u0041\u0064\u006fb\u0065"));
+_bcge .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_dfg .MakeInteger (0));_acefa .CIDSystemInfo =_bcge ;_deaf :=&PdfFontDescriptor {FontName :_dfg .MakeName (_dgbd .PostScriptName ),Ascent :_dfg .MakeFloat (_gcgbe *float64 (_dgbd .TypoAscender )),Descent :_dfg .MakeFloat (_gcgbe *float64 (_dgbd .TypoDescender )),CapHeight :_dfg .MakeFloat (_gcgbe *float64 (_dgbd .CapHeight )),FontBBox :_dfg .MakeArrayFromFloats ([]float64 {_gcgbe *float64 (_dgbd .Xmin ),_gcgbe *float64 (_dgbd .Ymin ),_gcgbe *float64 (_dgbd .Xmax ),_gcgbe *float64 (_dgbd .Ymax )}),ItalicAngle :_dfg .MakeFloat (_dgbd .ItalicAngle ),MissingWidth :_dfg .MakeFloat (_cfac )};
+_ddcaf ,_dafb :=_dfg .MakeStream (_dgbeed ,_dfg .NewFlateEncoder ());if _dafb !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074o\u0020m\u0061\u006b\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_dafb );
+return nil ,_dafb ;};_ddcaf .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_dfg .MakeInteger (int64 (len (_dgbeed ))));_deaf .FontFile2 =_ddcaf ;if _dgbd .Bold {_deaf .StemV =_dfg .MakeInteger (120);}else {_deaf .StemV =_dfg .MakeInteger (70);
+};_adbf :=_dfefc ;if _dgbd .IsFixedPitch {_adbf |=_dbacd ;};if _dgbd .ItalicAngle !=0{_adbf |=_dfdb ;};_deaf .Flags =_dfg .MakeInteger (int64 (_adbf ));_acefa ._dbcbc =_dgbd .PostScriptName ;_acefa ._cebfd =_deaf ;_dcac :=pdfFontType0 {fontCommon :fontCommon {_gdab :"\u0054\u0079\u0070e\u0030",_dbcbc :_dgbd .PostScriptName },DescendantFont :&PdfFont {_fab :_acefa },Encoding :_dfg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_gbaf :_dgbd .NewEncoder ()};
+if len (_dgbd .Chars )> 0{_ffdf :=make (map[_efg .CharCode ]rune ,len (_dgbd .Chars ));for _bfda ,_cabd :=range _dgbd .Chars {_egccb :=_efg .CharCode (_cabd );if _debce ,_gdfcb :=_ffdf [_egccb ];!_gdfcb ||(_gdfcb &&_debce > _bfda ){_ffdf [_egccb ]=_bfda ;
+};};_dcac ._bgdcbc =_efg .NewToUnicodeCMap (_ffdf );};_eabdd :=PdfFont {_fab :&_dcac };return &_eabdd ,nil ;};func _aedcf (_gdaee []*_dfg .PdfObjectStream )*_dfg .PdfObjectArray {if len (_gdaee )==0{return nil ;};_cffafd :=make ([]_dfg .PdfObject ,0,len (_gdaee ));
+for _ ,_ggdgc :=range _gdaee {_cffafd =append (_cffafd ,_ggdgc );};return _dfg .MakeArray (_cffafd ...);};
+
+// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
+func NewPdfOutputIntentFromPdfObject (object _dfg .PdfObject )(*PdfOutputIntent ,error ){_fbfg :=&PdfOutputIntent {};if _fcdf :=_fbfg .ParsePdfObject (object );_fcdf !=nil {return nil ,_fcdf ;};return _fbfg ,nil ;};
+
+// SetPageNumber sets the page number.
+func (_cbae *KDict )SetPageNumber (pageNumber int64 ){_cbae ._gabf =pageNumber };func _debbd (_cgdfd _dfg .PdfObject )(*PdfShading ,error ){_bbccg :=&PdfShading {};var _dcgcb *_dfg .PdfObjectDictionary ;if _cbebc ,_dada :=_dfg .GetIndirect (_cgdfd );_dada {_bbccg ._gdfdg =_cbebc ;
+_ffffa ,_faegec :=_cbebc .PdfObject .(*_dfg .PdfObjectDictionary );if !_faegec {_egb .Log .Debug ("\u004f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074i\u006f\u006e\u0061\u0072\u0079\u0020\u0074y\u0070\u0065");return nil ,_dfg .ErrTypeError ;
+};_dcgcb =_ffffa ;}else if _eebca ,_ccefcg :=_dfg .GetStream (_cgdfd );_ccefcg {_bbccg ._gdfdg =_eebca ;_dcgcb =_eebca .PdfObjectDictionary ;}else if _fgedc ,_ggdda :=_dfg .GetDict (_cgdfd );_ggdda {_bbccg ._gdfdg =_fgedc ;_dcgcb =_fgedc ;}else {_egb .Log .Debug ("O\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0075\u006e\u0065\u0078\u0070e\u0063\u0074\u0065d\u0020(\u0025\u0054\u0029",_cgdfd );
+return nil ,_dfg .ErrTypeError ;};if _dcgcb ==nil {_egb .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_bd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
+};_cgdfd =_dcgcb .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _cgdfd ==nil {_egb .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065\u0064\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u0020\u006d\u0069\u0073si\u006e\u0067");
+return nil ,ErrRequiredAttributeMissing ;};_cgdfd =_dfg .TraceToDirectObject (_cgdfd );_eedbf ,_agbde :=_cgdfd .(*_dfg .PdfObjectInteger );if !_agbde {_egb .Log .Debug ("\u0049\u006e\u0076al\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066o\u0072 \u0073h\u0061d\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_cgdfd );
+return nil ,_dfg .ErrTypeError ;};if *_eedbf < 1||*_eedbf > 7{_egb .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u002c\u0020\u006e\u006ft\u0020\u0031\u002d\u0037\u0020(\u0067\u006ft\u0020\u0025\u0064\u0029",*_eedbf );
+return nil ,_dfg .ErrTypeError ;};_bbccg .ShadingType =_eedbf ;_cgdfd =_dcgcb .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _cgdfd ==nil {_egb .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072e\u0064\u0020\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065\u0020e\u006e\u0074\u0072\u0079\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
+return nil ,ErrRequiredAttributeMissing ;};_gddebc ,_dcbdc :=NewPdfColorspaceFromPdfObject (_cgdfd );if _dcbdc !=nil {_egb .Log .Debug ("\u0046\u0061i\u006c\u0065\u0064\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065: \u0025\u0076",_dcbdc );
+return nil ,_dcbdc ;};_bbccg .ColorSpace =_gddebc ;_cgdfd =_dcgcb .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _cgdfd !=nil {_cgdfd =_dfg .TraceToDirectObject (_cgdfd );_bcdbb ,_affb :=_cgdfd .(*_dfg .PdfObjectArray );if !_affb {_egb .Log .Debug ("\u0042\u0061\u0063\u006b\u0067r\u006f\u0075\u006e\u0064\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_cgdfd );
+return nil ,_dfg .ErrTypeError ;};_bbccg .Background =_bcdbb ;};_cgdfd =_dcgcb .Get ("\u0042\u0042\u006f\u0078");if _cgdfd !=nil {_cgdfd =_dfg .TraceToDirectObject (_cgdfd );_edebg ,_aafba :=_cgdfd .(*_dfg .PdfObjectArray );if !_aafba {_egb .Log .Debug ("\u0042\u0061\u0063\u006b\u0067r\u006f\u0075\u006e\u0064\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_cgdfd );
+return nil ,_dfg .ErrTypeError ;};_degaf ,_dcged :=NewPdfRectangle (*_edebg );if _dcged !=nil {_egb .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_dcged );return nil ,_dcged ;};_bbccg .BBox =_degaf ;};_cgdfd =_dcgcb .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
+if _cgdfd !=nil {_cgdfd =_dfg .TraceToDirectObject (_cgdfd );_gbccd ,_afbag :=_cgdfd .(*_dfg .PdfObjectBool );if !_afbag {_egb .Log .Debug ("A\u006e\u0074\u0069\u0041\u006c\u0069\u0061\u0073\u0020i\u006e\u0076\u0061\u006c\u0069\u0064\u0020ty\u0070\u0065\u002c\u0020s\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020bo\u006f\u006c \u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_cgdfd );
+return nil ,_dfg .ErrTypeError ;};_bbccg .AntiAlias =_gbccd ;};switch *_eedbf {case 1:_fedda ,_edced :=_daeg (_dcgcb );if _edced !=nil {return nil ,_edced ;};_fedda .PdfShading =_bbccg ;_bbccg ._fdbfb =_fedda ;return _bbccg ,nil ;case 2:_fabc ,_gecgf :=_bbcge (_dcgcb );
+if _gecgf !=nil {return nil ,_gecgf ;};_fabc .PdfShading =_bbccg ;_bbccg ._fdbfb =_fabc ;return _bbccg ,nil ;case 3:_fgaea ,_ceegd :=_aacg (_dcgcb );if _ceegd !=nil {return nil ,_ceegd ;};_fgaea .PdfShading =_bbccg ;_bbccg ._fdbfb =_fgaea ;return _bbccg ,nil ;
+case 4:_ccae ,_dfffc :=_gagdd (_dcgcb );if _dfffc !=nil {return nil ,_dfffc ;};_ccae .PdfShading =_bbccg ;_bbccg ._fdbfb =_ccae ;return _bbccg ,nil ;case 5:_abecf ,_edceb :=_agbff (_dcgcb );if _edceb !=nil {return nil ,_edceb ;};_abecf .PdfShading =_bbccg ;
+_bbccg ._fdbfb =_abecf ;return _bbccg ,nil ;case 6:_gdefgd ,_abdba :=_begg (_dcgcb );if _abdba !=nil {return nil ,_abdba ;};_gdefgd .PdfShading =_bbccg ;_bbccg ._fdbfb =_gdefgd ;return _bbccg ,nil ;case 7:_fbgbc ,_fcbdb :=_dfefb (_dcgcb );if _fcbdb !=nil {return nil ,_fcbdb ;
+};_fbgbc .PdfShading =_bbccg ;_bbccg ._fdbfb =_fbgbc ;return _bbccg ,nil ;};return nil ,_bd .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};func (_efabd *PdfReader )newPdfFieldSignatureFromDict (_aegfb *_dfg .PdfObjectDictionary )(*PdfFieldSignature ,error ){_bbfga :=&PdfFieldSignature {};
+_egab ,_dbaf :=_dfg .GetIndirect (_aegfb .Get ("\u0056"));if _dbaf {var _eagb error ;_bbfga .V ,_eagb =_efabd .newPdfSignatureFromIndirect (_egab );if _eagb !=nil {return nil ,_eagb ;};};_bbfga .Lock ,_ =_dfg .GetIndirect (_aegfb .Get ("\u004c\u006f\u0063\u006b"));
+_bbfga .SV ,_ =_dfg .GetIndirect (_aegfb .Get ("\u0053\u0056"));return _bbfga ,nil ;};
+
+// XObjectImage (Table 89 in 8.9.5.1).
+// Implements PdfModel interface.
+type XObjectImage struct{
+
+// ColorSpace PdfObject
+Width *int64 ;Height *int64 ;ColorSpace PdfColorspace ;BitsPerComponent *int64 ;Filter _dfg .StreamEncoder ;Intent _dfg .PdfObject ;ImageMask _dfg .PdfObject ;Mask _dfg .PdfObject ;Matte _dfg .PdfObject ;Decode _dfg .PdfObject ;Interpolate _dfg .PdfObject ;
+Alternatives _dfg .PdfObject ;SMask _dfg .PdfObject ;SMaskInData _dfg .PdfObject ;Name _dfg .PdfObject ;StructParent _dfg .PdfObject ;ID _dfg .PdfObject ;OPI _dfg .PdfObject ;Metadata _dfg .PdfObject ;OC _dfg .PdfObject ;Stream []byte ;_gfgedd *_dfg .PdfObjectStream ;
+_fbegd bool ;};func _fccef (_ddae _dfg .PdfObject )[]*_dfg .PdfObjectStream {if _ddae ==nil {return nil ;};_cfcc ,_dbabg :=_dfg .GetArray (_ddae );if !_dbabg ||_cfcc .Len ()==0{return nil ;};_ecad :=make ([]*_dfg .PdfObjectStream ,0,_cfcc .Len ());for _ ,_caca :=range _cfcc .Elements (){if _bcefe ,_decce :=_dfg .GetStream (_caca );
+_decce {_ecad =append (_ecad ,_bcefe );};};return _ecad ;};func (_gacea *LTV )generateVRIKey (_cged *PdfSignature )(string ,error ){_fdbae ,_gbace :=_fcabf (_cged .Contents .Bytes ());if _gbace !=nil {return "",_gbace ;};return _af .ToUpper (_bc .EncodeToString (_fdbae )),nil ;
+};
+
+// GetContainingPdfObject returns the container of the resources object (indirect object).
+func (_bgbeg *PdfPageResources )GetContainingPdfObject ()_dfg .PdfObject {return _bgbeg ._gffaff };
+
+// IsValid checks if the given pdf output intent type is valid.
+func (_decgdg PdfOutputIntentType )IsValid ()bool {return _decgdg >=PdfOutputIntentTypeA1 &&_decgdg <=PdfOutputIntentTypeX ;};func _bdaaf (_edfac string )(string ,error ){var _caaafb _cca .Buffer ;_caaafb .WriteString (_edfac );_dgeec :=make ([]byte ,8+16);
+_dcfaf :=_ge .Now ().UTC ().UnixNano ();_bg .BigEndian .PutUint64 (_dgeec ,uint64 (_dcfaf ));_ ,_aaecg :=_da .Read (_dgeec [8:]);if _aaecg !=nil {return "",_aaecg ;};_caaafb .WriteString (_bc .EncodeToString (_dgeec ));return _caaafb .String (),nil ;};
+
+
+// ToPdfObject implements interface PdfModel.
+func (_debb *PdfAnnotationPolyLine )ToPdfObject ()_dfg .PdfObject {_debb .PdfAnnotation .ToPdfObject ();_bee :=_debb ._afae ;_edf :=_bee .PdfObject .(*_dfg .PdfObjectDictionary );_debb .appendToPdfDictionary (_edf );_edf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
+_edf .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_debb .Vertices );_edf .SetIfNotNil ("\u004c\u0045",_debb .LE );_edf .SetIfNotNil ("\u0042\u0053",_debb .BS );_edf .SetIfNotNil ("\u0049\u0043",_debb .IC );_edf .SetIfNotNil ("\u0042\u0045",_debb .BE );
+_edf .SetIfNotNil ("\u0049\u0054",_debb .IT );_edf .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_debb .Measure );return _bee ;};
+
+// CompliancePdfReader is a wrapper over PdfReader that is used for verifying if the input Pdf document matches the
+// compliance rules of standards like PDF/A.
+// NOTE: This implementation is in experimental development state.
+//
+// Keep in mind that it might change in the subsequent minor versions.
+type CompliancePdfReader struct{*PdfReader ;_gdcg _dfg .ParserMetadata ;};
+
+// SetPdfCreator sets the Creator attribute of the output PDF.
+func SetPdfCreator (creator string ){_dfbaa .Lock ();defer _dfbaa .Unlock ();_gecfb =creator };func (_eed *PdfAnnotationMarkup )appendToPdfDictionary (_fcab *_dfg .PdfObjectDictionary ){_fcab .SetIfNotNil ("\u0054",_eed .T );if _eed .Popup !=nil {_fcab .Set ("\u0050\u006f\u0070u\u0070",_eed .Popup .ToPdfObject ());
+};_fcab .SetIfNotNil ("\u0043\u0041",_eed .CA );_fcab .SetIfNotNil ("\u0052\u0043",_eed .RC );_fcab .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_eed .CreationDate );_fcab .SetIfNotNil ("\u0049\u0052\u0054",_eed .IRT );
+_fcab .SetIfNotNil ("\u0053\u0075\u0062\u006a",_eed .Subj );_fcab .SetIfNotNil ("\u0052\u0054",_eed .RT );_fcab .SetIfNotNil ("\u0049\u0054",_eed .IT );_fcab .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_eed .ExData );};
+
+// SetAlpha sets the alpha layer for the image.
+func (_fedag *Image )SetAlpha (alpha []byte ){_fedag ._baeef =alpha };
+
+// L returns the value of the L component of the color.
+func (_dgfe *PdfColorLab )L ()float64 {return _dgfe [0]};
+
+// RepairAcroForm attempts to rebuild the AcroForm fields using the widget
+// annotations present in the document pages. Pass nil for the opts parameter
+// in order to use the default options.
+// NOTE: Currently, the opts parameter is declared in order to enable adding
+// future options, but passing nil will always result in the default options
+// being used.
+func (_eadff *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _dgeeb []*PdfField ;_cgfgb :=map[*_dfg .PdfIndirectObject ]struct{}{};for _ ,_agdgg :=range _eadff .PageList {_ebcdd ,_fdgbcf :=_agdgg .GetAnnotations ();if _fdgbcf !=nil {return _fdgbcf ;
+};for _ ,_bbegf :=range _ebcdd {var _fddea *PdfField ;switch _dcedb :=_bbegf .GetContext ().(type ){case *PdfAnnotationWidget :if _dcedb ._bcad !=nil {_fddea =_dcedb ._bcad ;break ;};if _dgge ,_agdeb :=_dfg .GetIndirect (_dcedb .Parent );_agdeb {_fddea ,_fdgbcf =_eadff .newPdfFieldFromIndirectObject (_dgge ,nil );
+if _fdgbcf ==nil {break ;};_egb .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0070\u0061\u0072s\u0065\u0020\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065ld\u0020\u0025\u002bv\u003a \u0025\u0076",_dgge ,_fdgbcf );
+};if _dcedb ._afae !=nil {_fddea ,_fdgbcf =_eadff .newPdfFieldFromIndirectObject (_dcedb ._afae ,nil );if _fdgbcf ==nil {break ;};_egb .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0070\u0061\u0072s\u0065\u0020\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065ld\u0020\u0025\u002bv\u003a \u0025\u0076",_dcedb ._afae ,_fdgbcf );
+};};if _fddea ==nil {continue ;};if _ ,_beabe :=_cgfgb [_fddea ._caaa ];_beabe {continue ;};_cgfgb [_fddea ._caaa ]=struct{}{};_dgeeb =append (_dgeeb ,_fddea );};};if len (_dgeeb )==0{return nil ;};if _eadff .AcroForm ==nil {_eadff .AcroForm =NewPdfAcroForm ();
+};_eadff .AcroForm .Fields =&_dgeeb ;return nil ;};func _deba (_eabffc *_ef .ImageBase )(_bceaa Image ){_bceaa .Width =int64 (_eabffc .Width );_bceaa .Height =int64 (_eabffc .Height );_bceaa .BitsPerComponent =int64 (_eabffc .BitsPerComponent );_bceaa .ColorComponents =_eabffc .ColorComponents ;
+_bceaa .Data =_eabffc .Data ;_bceaa ._begcc =_eabffc .Decode ;_bceaa ._baeef =_eabffc .Alpha ;return _bceaa ;};func (_begaa *PdfWriter )optimizeDocument ()error {if _begaa ._fbafb ==nil {return nil ;};_begdg ,_ebgfa :=_dfg .GetDict (_begaa ._acace );if !_ebgfa {return _bd .New ("\u0061\u006e\u0020in\u0066\u006f\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0069s\u0020n\u006ft\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+};_agged :=_beg .Document {ID :[2]string {_begaa ._baeaee ,_begaa ._dbddd },Version :_begaa ._cfbcb ,Objects :_begaa ._abcef ,Info :_begdg ,Crypt :_begaa ._gbdfc ,UseHashBasedID :_begaa ._faacaa };if _cddaa :=_begaa ._fbafb .ApplyStandard (&_agged );_cddaa !=nil {return _cddaa ;
+};_begaa ._baeaee ,_begaa ._dbddd =_agged .ID [0],_agged .ID [1];_begaa ._cfbcb =_agged .Version ;_begaa ._abcef =_agged .Objects ;_begaa ._acace .PdfObject =_agged .Info ;_begaa ._faacaa =_agged .UseHashBasedID ;_begaa ._gbdfc =_agged .Crypt ;_deadgd :=make (map[_dfg .PdfObject ]struct{},len (_begaa ._abcef ));
+for _ ,_gcaa :=range _begaa ._abcef {_deadgd [_gcaa ]=struct{}{};};_begaa ._bgbee =_deadgd ;return nil ;};func _gcacc (_cebcc *_dfg .PdfObjectArray )(float64 ,error ){_cffdca ,_fgfdc :=_cebcc .ToFloat64Array ();if _fgfdc !=nil {_egb .Log .Debug ("\u0042\u0061\u0064\u0020\u004d\u0061\u0074\u0074\u0065\u0020\u0061\u0072\u0072\u0061\u0079:\u0020m\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_cebcc ,_fgfdc );
+};switch len (_cffdca ){case 1:return _cffdca [0],nil ;case 3:_bdaba :=PdfColorspaceDeviceRGB {};_dbfe ,_gggdc :=_bdaba .ColorFromFloats (_cffdca );if _gggdc !=nil {return 0.0,_gggdc ;};return _dbfe .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_decda :=PdfColorspaceDeviceCMYK {};
+_bbed ,_caedb :=_decda .ColorFromFloats (_cffdca );if _caedb !=nil {return 0.0,_caedb ;};_bbfa ,_caedb :=_decda .ColorToRGB (_bbed .(*PdfColorDeviceCMYK ));if _caedb !=nil {return 0.0,_caedb ;};return _bbfa .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;
+};_fgfdc =_bd .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_egb .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_cebcc ,_fgfdc );
+return 0.0,_fgfdc ;};func (_dffg *PdfAppender )mergeResources (_abg ,_babf _dfg .PdfObject ,_adec map[_dfg .PdfObjectName ]_dfg .PdfObjectName )_dfg .PdfObject {if _babf ==nil &&_abg ==nil {return nil ;};if _babf ==nil {return _abg ;};_afgc ,_dcef :=_dfg .GetDict (_babf );
+if !_dcef {return _abg ;};if _abg ==nil {_agfde :=_dfg .MakeDict ();_agfde .Merge (_afgc );return _babf ;};_dfcb ,_dcef :=_dfg .GetDict (_abg );if !_dcef {_egb .Log .Error ("\u0045\u0072\u0072or\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065 \u0069s\u0020n\u006ft\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+_dfcb =_dfg .MakeDict ();};for _ ,_ddg :=range _afgc .Keys (){if _cbdg ,_abe :=_adec [_ddg ];_abe {_dfcb .Set (_cbdg ,_afgc .Get (_ddg ));}else {_dfcb .Set (_ddg ,_afgc .Get (_ddg ));};};return _dfcb ;};
+
+// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
+func NewPdfFilespecFromObj (obj _dfg .PdfObject )(*PdfFilespec ,error ){_ccbfc :=&PdfFilespec {};var _feege *_dfg .PdfObjectDictionary ;if _dddbg ,_dcbb :=_dfg .GetIndirect (obj );_dcbb {_ccbfc ._bcadf =_dddbg ;_dead ,_bggbe :=_dfg .GetDict (_dddbg .PdfObject );
+if !_bggbe {_egb .Log .Debug ("\u004f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074i\u006f\u006e\u0061\u0072\u0079\u0020\u0074y\u0070\u0065");return nil ,_dfg .ErrTypeError ;};_feege =_dead ;}else if _eefc ,_ecdb :=_dfg .GetDict (obj );
+_ecdb {_ccbfc ._bcadf =_eefc ;_feege =_eefc ;}else {_egb .Log .Debug ("O\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0075\u006e\u0065\u0078\u0070e\u0063\u0074\u0065d\u0020(\u0025\u0054\u0029",obj );return nil ,_dfg .ErrTypeError ;};if _feege ==nil {_egb .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
+return nil ,_bd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _dbffb :=_feege .Get ("\u0054\u0079\u0070\u0065");_dbffb !=nil {_bced ,_agafa :=_dbffb .(*_dfg .PdfObjectName );if !_agafa {_egb .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_dbffb );
+}else {if *_bced !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_egb .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070e\u0063\u0074\u0065\u0064\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020F\u0069\u006c\u0065\u0073\u0070\u0065\u0063 \u0028\u0025\u0073\u0029",*_bced );
+};};};if _fggc :=_feege .Get ("\u0046\u0053");_fggc !=nil {_ccbfc .FS =_fggc ;};if _bcfg :=_feege .Get ("\u0046");_bcfg !=nil {_ccbfc .F =_bcfg ;};if _eabb :=_feege .Get ("\u0055\u0046");_eabb !=nil {_ccbfc .UF =_eabb ;};if _cgba :=_feege .Get ("\u0044\u004f\u0053");
+_cgba !=nil {_ccbfc .DOS =_cgba ;};if _fdabb :=_feege .Get ("\u004d\u0061\u0063");_fdabb !=nil {_ccbfc .Mac =_fdabb ;};if _dgc :=_feege .Get ("\u0055\u006e\u0069\u0078");_dgc !=nil {_ccbfc .Unix =_dgc ;};if _gedfd :=_feege .Get ("\u0049\u0044");_gedfd !=nil {_ccbfc .ID =_gedfd ;
+};if _caaae :=_feege .Get ("\u0056");_caaae !=nil {_ccbfc .V =_caaae ;};if _baaf :=_feege .Get ("\u0045\u0046");_baaf !=nil {_ccbfc .EF =_baaf ;};if _ecdge :=_feege .Get ("\u0052\u0046");_ecdge !=nil {_ccbfc .RF =_ecdge ;};if _cdagb :=_feege .Get ("\u0044\u0065\u0073\u0063");
+_cdagb !=nil {_ccbfc .Desc =_cdagb ;};if _eegec :=_feege .Get ("\u0043\u0049");_eegec !=nil {_ccbfc .CI =_eegec ;};if _degc :=_feege .Get ("\u0041\u0046\u0052\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068\u0069\u0070");_degc !=nil {_ccbfc .AFRelationship =_degc ;
+};return _ccbfc ,nil ;};
+
+// ToPdfObject returns the button field dictionary within an indirect object.
+func (_dfde *PdfFieldButton )ToPdfObject ()_dfg .PdfObject {_dfde .PdfField .ToPdfObject ();_gagf :=_dfde ._caaa ;_gdge :=_gagf .PdfObject .(*_dfg .PdfObjectDictionary );_gdge .Set ("\u0046\u0054",_dfg .MakeName ("\u0042\u0074\u006e"));if _dfde .Opt !=nil {_gdge .Set ("\u004f\u0070\u0074",_dfde .Opt );
+};return _gagf ;};func (_eaga *PdfAppender )updateObjectsDeep (_dbac _dfg .PdfObject ,_aed map[_dfg .PdfObject ]struct{}){if _aed ==nil {_aed =map[_dfg .PdfObject ]struct{}{};};if _ ,_gccfd :=_aed [_dbac ];_gccfd ||_dbac ==nil {return ;};_aed [_dbac ]=struct{}{};
+_eaae :=_dfg .ResolveReferencesDeep (_dbac ,_eaga ._bbf );if _eaae !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eaae );};switch _ccdf :=_dbac .(type ){case *_dfg .PdfIndirectObject :switch {case _ccdf .GetParser ()==_eaga ._eege ._agbcd :return ;
+case _ccdf .GetParser ()==_eaga .Reader ._agbcd :_dbbf ,_ :=_eaga ._eege .GetIndirectObjectByNumber (int (_ccdf .ObjectNumber ));_cebc ,_ddc :=_dbbf .(*_dfg .PdfIndirectObject );if _ddc &&_cebc !=nil {_gaabg :=string (_ccdf .PdfObject .Write ());if _cebc .PdfObject !=_ccdf .PdfObject &&string (_cebc .PdfObject .Write ())!=_gaabg {if _af .Contains (_gaabg ,"\u002f\u0053\u0069\u0067")&&_af .Contains (_gaabg ,"\u002f\u0053\u0075\u0062\u0074\u0079\u0070\u0065"){return ;
+};_eaga .addNewObject (_dbac );_eaga ._effe [_dbac ]=_ccdf .ObjectNumber ;};};default:_eaga .addNewObject (_dbac );};_eaga .updateObjectsDeep (_ccdf .PdfObject ,_aed );case *_dfg .PdfObjectArray :for _ ,_dde :=range _ccdf .Elements (){_eaga .updateObjectsDeep (_dde ,_aed );
+};case *_dfg .PdfObjectDictionary :for _ ,_fgcc :=range _ccdf .Keys (){_eaga .updateObjectsDeep (_ccdf .Get (_fgcc ),_aed );};case *_dfg .PdfObjectStreams :if _ccdf .GetParser ()!=_eaga ._eege ._agbcd {for _ ,_bedf :=range _ccdf .Elements (){_eaga .updateObjectsDeep (_bedf ,_aed );
+};};case *_dfg .PdfObjectStream :switch {case _ccdf .GetParser ()==_eaga ._eege ._agbcd :return ;case _ccdf .GetParser ()==_eaga .Reader ._agbcd :if _gdgca ,_cfcd :=_eaga ._eege ._agbcd .LookupByReference (_ccdf .PdfObjectReference );_cfcd ==nil {var _gdcb bool ;
+if _fdfd ,_ccbd :=_dfg .GetStream (_gdgca );_ccbd &&_cca .Equal (_fdfd .Stream ,_ccdf .Stream ){_gdcb =true ;};if _bafc ,_fcdd :=_dfg .GetDict (_gdgca );_gdcb &&_fcdd {_gdcb =string (_bafc .Write ())==string (_ccdf .PdfObjectDictionary .Write ());};if _gdcb {return ;
+};};if _ccdf .ObjectNumber !=0{_eaga ._effe [_dbac ]=_ccdf .ObjectNumber ;};default:if _ ,_febe :=_eaga ._dadd [_dbac ];!_febe {_eaga .addNewObject (_dbac );};};_eaga .updateObjectsDeep (_ccdf .PdfObjectDictionary ,_aed );};};
+
+// GetNamedDestinations returns the Dests entry in the PDF catalog.
+// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
+func (_agebgg *PdfReader )GetNamedDestinations ()(_dfg .PdfObject ,error ){_eage :=_dfg .ResolveReference (_agebgg ._fbfgb .Get ("\u0044\u0065\u0073t\u0073"));if _eage ==nil {return nil ,nil ;};if !_agebgg ._bafba {_cabdb :=_agebgg .traverseObjectData (_eage );
+if _cabdb !=nil {return nil ,_cabdb ;};};return _eage ,nil ;};
+
+// PrintPdfObject is a helper function printing object with a given number in a PDF file.
+// It can be useful while debugging. Use os.Stdout as w io.Writer to print to console.
+// If objNum is -1, then it prints trailer of the PDF file.
+func (_eeeca *PdfReader )PrintPdfObject (w _edg .Writer ,objNum int )error {if objNum ==-1{_abgec ,_cagab :=_eeeca .GetTrailer ();if _cagab !=nil {return _cagab ;};_d .Fprintf (w ,"\u0054\u0072\u0061i\u006c\u0065\u0072\u003a\u0020\u0025\u0073\u000a",_abgec .String ());
+return nil ;};_bbcaf ,_gebebc :=_eeeca .GetIndirectObjectByNumber (objNum );if _gebebc !=nil {return _gebebc ;};_d .Fprintf (w ,"\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0064:\u0020\u0025\u0073\u000a",objNum ,_bbcaf .String ());if _dffge ,_cbeaef :=_bbcaf .(*_dfg .PdfObjectStream );
+_cbeaef {_deafg ,_cgfbg :=_dfg .DecodeStream (_dffge );if _cgfbg !=nil {return _cgfbg ;};_d .Fprintf (w ,"D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u000a\u0025\u0073",_deafg );}else if _dcda ,_dgfgbg :=_bbcaf .(*_dfg .PdfIndirectObject );_dgfgbg {_d .Fprintf (w ,"\u0025\u0054\u000a",_dcda .PdfObject );
+_d .Fprintf (w ,"\u0025\u0073\u000a",_dcda .PdfObject .String ());};return nil ;};
+
+// EnableAll LTV enables all signatures in the PDF document.
+// The signing certificate chain is extracted from each signature dictionary.
+// Optionally, additional certificates can be specified through the
+// `extraCerts` parameter. The LTV client attempts to build the certificate
+// chain up to a trusted root by downloading any missing certificates.
+func (_fggdf *LTV )EnableAll (extraCerts []*_de .Certificate )error {_dbfac :=_fggdf ._adcg ._eege .AcroForm ;for _ ,_fccd :=range _dbfac .AllFields (){_gddf ,_ :=_fccd .GetContext ().(*PdfFieldSignature );if _gddf ==nil {continue ;};_efbg :=_gddf .V ;
+if _caaee :=_fggdf .validateSig (_efbg );_caaee !=nil {_egb .Log .Debug ("\u0057\u0041\u0052N\u003a\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0076",_caaee );
+};if _egebg :=_fggdf .Enable (_efbg ,extraCerts );_egebg !=nil {return _egebg ;};};return nil ;};func _begg (_bddef *_dfg .PdfObjectDictionary )(*PdfShadingType6 ,error ){_baeda :=PdfShadingType6 {};_beec :=_bddef .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
+if _beec ==nil {_egb .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
+return nil ,ErrRequiredAttributeMissing ;};_fdbdb ,_fbbea :=_beec .(*_dfg .PdfObjectInteger );if !_fbbea {_egb .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_beec );
+return nil ,_dfg .ErrTypeError ;};_baeda .BitsPerCoordinate =_fdbdb ;_beec =_bddef .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _beec ==nil {_egb .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
+return nil ,ErrRequiredAttributeMissing ;};_fdbdb ,_fbbea =_beec .(*_dfg .PdfObjectInteger );if !_fbbea {_egb .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_beec );
+return nil ,_dfg .ErrTypeError ;};_baeda .BitsPerComponent =_fdbdb ;_beec =_bddef .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _beec ==nil {_egb .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067");
+return nil ,ErrRequiredAttributeMissing ;};_fdbdb ,_fbbea =_beec .(*_dfg .PdfObjectInteger );if !_fbbea {_egb .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_beec );
+return nil ,_dfg .ErrTypeError ;};_baeda .BitsPerComponent =_fdbdb ;_beec =_bddef .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _beec ==nil {_egb .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
+return nil ,ErrRequiredAttributeMissing ;};_dcbfe ,_fbbea :=_beec .(*_dfg .PdfObjectArray );if !_fbbea {_egb .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_beec );
+return nil ,_dfg .ErrTypeError ;};_baeda .Decode =_dcbfe ;if _ecceb :=_bddef .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_ecceb !=nil {_baeda .Function =[]PdfFunction {};if _befde ,_dgffc :=_ecceb .(*_dfg .PdfObjectArray );_dgffc {for _ ,_dbada :=range _befde .Elements (){_eegee ,_fabbe :=_gbada (_dbada );
+if _fabbe !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fabbe );return nil ,_fabbe ;};_baeda .Function =append (_baeda .Function ,_eegee );
+};}else {_acgda ,_acdaf :=_gbada (_ecceb );if _acdaf !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_acdaf );return nil ,_acdaf ;
+};_baeda .Function =append (_baeda .Function ,_acgda );};};return &_baeda ,nil ;};func (_dgba *PdfReader )newPdfAnnotationPolyLineFromDict (_efag *_dfg .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_dfcd :=PdfAnnotationPolyLine {};_aeb ,_effa :=_dgba .newPdfAnnotationMarkupFromDict (_efag );
+if _effa !=nil {return nil ,_effa ;};_dfcd .PdfAnnotationMarkup =_aeb ;_dfcd .Vertices =_efag .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_dfcd .LE =_efag .Get ("\u004c\u0045");_dfcd .BS =_efag .Get ("\u0042\u0053");_dfcd .IC =_efag .Get ("\u0049\u0043");
+_dfcd .BE =_efag .Get ("\u0042\u0045");_dfcd .IT =_efag .Get ("\u0049\u0054");_dfcd .Measure =_efag .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_dfcd ,nil ;};
+
+// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
+// components. The slice should contain three PdfObjectFloat elements representing
+// the L, A and B components of the color.
+func (_aeec *PdfColorspaceLab )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eeaf ,_cddg :=_dfg .GetNumbersAsFloat (objects );
+if _cddg !=nil {return nil ,_cddg ;};return _aeec .ColorFromFloats (_eeaf );};
+
+// ToPdfObject returns the PDF representation of the colorspace.
+func (_cbad *PdfColorspaceDeviceCMYK )ToPdfObject ()_dfg .PdfObject {return _dfg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
+
+// ToPdfObject returns the PDF representation of the shading dictionary.
+func (_aedg *PdfShadingType3 )ToPdfObject ()_dfg .PdfObject {_aedg .PdfShading .ToPdfObject ();_ageda ,_eaeba :=_aedg .getShadingDict ();if _eaeba !=nil {_egb .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
+return nil ;};if _aedg .Coords !=nil {_ageda .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_aedg .Coords );};if _aedg .Domain !=nil {_ageda .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_aedg .Domain );};if _aedg .Function !=nil {if len (_aedg .Function )==1{_ageda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aedg .Function [0].ToPdfObject ());
+}else {_fabdb :=_dfg .MakeArray ();for _ ,_fbcaf :=range _aedg .Function {_fabdb .Append (_fbcaf .ToPdfObject ());};_ageda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fabdb );};};if _aedg .Extend !=nil {_ageda .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_aedg .Extend );
+};return _aedg ._gdfdg ;};
+
+// SetXObjectByName adds the XObject from the passed in stream to the page resources.
+// The added XObject is identified by the specified name.
+func (_cgebc *PdfPageResources )SetXObjectByName (keyName _dfg .PdfObjectName ,stream *_dfg .PdfObjectStream )error {if _cgebc .XObject ==nil {_cgebc .XObject =_dfg .MakeDict ();};_gfeca :=_dfg .TraceToDirectObject (_cgebc .XObject );_acacc ,_abeda :=_gfeca .(*_dfg .PdfObjectDictionary );
+if !_abeda {_egb .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0058\u004f\u0062j\u0065\u0063\u0074\u002c\u0020\u0067\u006f\u0074\u0020\u0025T\u002f\u0025\u0054",_cgebc .XObject ,_gfeca );return _bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
+};_acacc .Set (keyName ,stream );return nil ;};
+
+// PdfAction represents an action in PDF (section 12.6 p. 412).
+type PdfAction struct{_bdb PdfModel ;Type _dfg .PdfObject ;S _dfg .PdfObject ;Next _dfg .PdfObject ;_fe *_dfg .PdfIndirectObject ;};
+
+// GetCharMetrics returns the character metrics for the specified character code. A bool flag is
+// returned to indicate whether or not the entry was found in the glyph to charcode mapping.
+// How it works:
+// 1. Return a value the /Widths array (charWidths) if there is one.
+// 2. If the font has the same name as a standard 14 font then return width=250.
+// 3. Otherwise return no match and let the caller substitute a default.
+func (_fega pdfFontSimple )GetCharMetrics (code _ff .CharCode )(_bf .CharMetrics ,bool ){if _geefg ,_cbccg :=_fega ._aefba [code ];_cbccg {return _bf .CharMetrics {Wx :_geefg },true ;};if _bf .IsStdFont (_bf .StdFontName (_fega ._dbcbc )){return _bf .CharMetrics {Wx :250},true ;
+};return _bf .CharMetrics {},false ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_eba *PdfAnnotation3D )ToPdfObject ()_dfg .PdfObject {_eba .PdfAnnotation .ToPdfObject ();_bcaeb :=_eba ._afae ;_bdee :=_bcaeb .PdfObject .(*_dfg .PdfObjectDictionary );_bdee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0033\u0044"));
+_bdee .SetIfNotNil ("\u0033\u0044\u0044",_eba .T3DD );_bdee .SetIfNotNil ("\u0033\u0044\u0056",_eba .T3DV );_bdee .SetIfNotNil ("\u0033\u0044\u0041",_eba .T3DA );_bdee .SetIfNotNil ("\u0033\u0044\u0049",_eba .T3DI );_bdee .SetIfNotNil ("\u0033\u0044\u0042",_eba .T3DB );
+return _bcaeb ;};
+
+// NewPdfActionGoToR returns a new "go to remote" action.
+func NewPdfActionGoToR ()*PdfActionGoToR {_def :=NewPdfAction ();_aee :=&PdfActionGoToR {};_aee .PdfAction =_def ;_def .SetContext (_aee );return _aee ;};
+
+// NewPdfAnnotationRedact returns a new redact annotation.
+func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_cge :=NewPdfAnnotation ();_gegc :=&PdfAnnotationRedact {};_gegc .PdfAnnotation =_cge ;_gegc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cge .SetContext (_gegc );return _gegc ;};func (_gddc *PdfReader )newPdfAnnotationStrikeOut (_adb *_dfg .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_bcdf :=PdfAnnotationStrikeOut {};
+_bbae ,_eabgg :=_gddc .newPdfAnnotationMarkupFromDict (_adb );if _eabgg !=nil {return nil ,_eabgg ;};_bcdf .PdfAnnotationMarkup =_bbae ;_bcdf .QuadPoints =_adb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bcdf ,nil ;};
+
+
+// GetTrailer returns the PDF's trailer dictionary.
+func (_dgcac *PdfReader )GetTrailer ()(*_dfg .PdfObjectDictionary ,error ){_cdca :=_dgcac ._agbcd .GetTrailer ();if _cdca ==nil {return nil ,_bd .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _cdca ,nil ;
+};
+
+// NewEmbeddedFileFromContent construct a new EmbeddedFile from supplied file content.
+func NewEmbeddedFileFromContent (content []byte )(*EmbeddedFile ,error ){_fedfdd ,_faed :=_ccaf .Match (content );if _faed !=nil {_egb .Log .Debug ("\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020d\u0065\u0074\u0065\u0063\u0074\u0020\u0066i\u006c\u0065\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0076",_faed );
+};_eaac :=_cd .Sum (content );_egeb :=&EmbeddedFile {Name :"\u0061\u0074\u0074\u0061\u0063\u0068\u006d\u0065\u006e\u0074",Content :content ,FileType :_fedfdd .MIME .Type ,Hash :_bc .EncodeToString (_eaac [:])};return _egeb ,nil ;};
+
+// AddWatermarkImage adds an image watermark to the page.
+func (_dbaed *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_agaff ,_gegdfg :=_dbaed .GetMediaBox ();if _gegdfg !=nil {return _gegdfg ;};_dfbga :=_agaff .Urx -_agaff .Llx ;_ecgd :=_agaff .Ury -_agaff .Lly ;_aaadf :=opt .Angle *_df .Pi /180;
+_fbaeg :=float64 (*ximg .Width );_cdecd :=(_dfbga -_fbaeg *_df .Cos (_aaadf ))/2;if opt .FitToWidth {_fbaeg =_dfbga ;_cdecd =0;};_gbdcac :=_ecgd ;_ddgc :=float64 (0);if opt .PreserveAspectRatio {_gbdcac =_fbaeg *float64 (*ximg .Height )/float64 (*ximg .Width );
+_ddgc =(_ecgd -_gbdcac )/2;_ddgc -=float64 (*ximg .Width )/2*_df .Sin (_aaadf );};if _dbaed .Resources ==nil {_dbaed .Resources =NewPdfPageResources ();};_bggef :=NewXObjectForm ();_bggef .BBox =_dfg .MakeArrayFromFloats ([]float64 {0,0,_fbaeg ,_gbdcac });
+_bggef .Resources =NewPdfPageResources ();_bfcgb :=0;_afccfc :=_dfg .PdfObjectName (_d .Sprintf ("\u0049\u006d\u0077%\u0064",_bfcgb ));for _bggef .Resources .HasXObjectByName (_afccfc ){_bfcgb ++;_afccfc =_dfg .PdfObjectName (_d .Sprintf ("\u0049\u006d\u0077%\u0064",_bfcgb ));
+};_gegdfg =_bggef .Resources .SetXObjectImageByName (_afccfc ,ximg );if _gegdfg !=nil {return _gegdfg ;};_bfcgb =0;_bgfab :=_dfg .PdfObjectName (_d .Sprintf ("\u0047\u0053\u0025\u0064",_bfcgb ));for _bggef .Resources .HasExtGState (_bgfab ){_bfcgb ++;_bgfab =_dfg .PdfObjectName (_d .Sprintf ("\u0047\u0053\u0025\u0064",_bfcgb ));
+};_caggf :=_dfg .MakeDict ();_caggf .Set ("\u0042\u004d",_dfg .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_caggf .Set ("\u0043\u0041",_dfg .MakeFloat (opt .Alpha ));_caggf .Set ("\u0063\u0061",_dfg .MakeFloat (opt .Alpha ));_gegdfg =_bggef .Resources .AddExtGState (_bgfab ,_caggf );
+if _gegdfg !=nil {return _gegdfg ;};_cadd :=_d .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_bgfab ,_fbaeg ,_gbdcac ,0.0,0.0,_afccfc );
+_bggef .SetContentStream ([]byte (_cadd ),nil );_fggcc :=_eea .IdentityMatrix ().Rotate (_aaadf );_gbgdd :=[]float64 {_fggcc [0],_fggcc [1],_fggcc [3],_fggcc [4],_fggcc [6],_fggcc [7]};_bggef .Matrix =_dfg .MakeArrayFromFloats (_gbgdd );_eggc :=_dbaed .Resources .GenerateXObjectName ();
+_gegdfg =_dbaed .Resources .SetXObjectFormByName (_eggc ,_bggef );if _gegdfg !=nil {return _gegdfg ;};_eafdf :=_d .Sprintf ("\u0071\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",1.0,1.0,_cdecd ,_ddgc ,_eggc );
+return _dbaed .AppendContentBytes ([]byte (_eafdf ),true );};
+
+// A returns the value of the A component of the color.
+func (_ebee *PdfColorLab )A ()float64 {return _ebee [1]};
+
+// PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is
+// defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
+type PdfColorDeviceRGB [3]float64 ;
+
+// ToPdfObject implements interface PdfModel.
+func (_bgb *PdfActionHide )ToPdfObject ()_dfg .PdfObject {_bgb .PdfAction .ToPdfObject ();_afe :=_bgb ._fe ;_abb :=_afe .PdfObject .(*_dfg .PdfObjectDictionary );_abb .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeHide )));_abb .SetIfNotNil ("\u0054",_bgb .T );
+_abb .SetIfNotNil ("\u0048",_bgb .H );return _afe ;};
+
+// SetFillImage attach a model.Image to push button.
+func (_cfga *PdfFieldButton )SetFillImage (image *Image ){if _cfga .IsPush (){_cfga ._geade =image ;};};var (TabOrderRow TabOrderType ="\u0052";TabOrderColumn TabOrderType ="\u0043";TabOrderStructure TabOrderType ="\u0053";);
+
+// SetNameDictionary sets the Names entry in the PDF catalog.
+// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
+func (_cddfd *PdfWriter )SetNameDictionary (names _dfg .PdfObject )error {if names ==nil {return nil ;};_cddfd ._baeae =_adgdg (names );_egb .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
+_cddfd ._acgcc .Set ("\u004e\u0061\u006de\u0073",names );return _cddfd .addObjects (names );};
+
+// IsFitWindow returns the value of the fitWindow flag.
+func (_gbfge *ViewerPreferences )IsFitWindow ()bool {if _gbfge ._abea ==nil {return false ;};return *_gbfge ._abea ;};
+
+// AddExtension adds the specified extension to the Extensions dictionary.
+// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
+func (_ggdc *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_bafgd ,_cafaae :=_dfg .GetDict (_ggdc ._acgcc .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_cafaae {_bafgd =_dfg .MakeDict ();_ggdc ._acgcc .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_bafgd );
+};_cdfda ,_cafaae :=_dfg .GetDict (_bafgd .Get (_dfg .PdfObjectName (extName )));if !_cafaae {_cdfda =_dfg .MakeDict ();_bafgd .Set (_dfg .PdfObjectName (extName ),_cdfda );};if _aegfc ,_ :=_dfg .GetNameVal (_cdfda .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
+_aegfc !=baseVersion {_cdfda .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_dfg .MakeName (baseVersion ));};if _faeggf ,_ :=_dfg .GetIntVal (_cdfda .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
+_faeggf !=extLevel {_cdfda .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_dfg .MakeInteger (int64 (extLevel )));};};func (_gfdg *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";
+};
+
+// GetContentStream returns the XObject Form's content stream.
+func (_ddgebd *XObjectForm )GetContentStream ()([]byte ,error ){_dfebf ,_egae :=_dfg .DecodeStream (_ddgebd ._baced );if _egae !=nil {return nil ,_egae ;};return _dfebf ,nil ;};
+
+// DecodeArray returns the range of color component values in CalRGB colorspace.
+func (_fdfaa *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func _dbga (_geea _dfg .PdfObject )(*PdfFilespec ,error ){if _geea ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_geea );};
+
+// PdfActionHide represents a hide action.
+type PdfActionHide struct{*PdfAction ;T _dfg .PdfObject ;H _dfg .PdfObject ;};
+
+// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
+// components. The slice should contain a single PdfObjectFloat element.
+func (_fcgf *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gcfa ,_cebf :=_dfg .GetNumbersAsFloat (objects );
+if _cebf !=nil {return nil ,_cebf ;};return _fcgf .ColorFromFloats (_gcfa );};
+
+// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
+func (_cgcf *PdfPage )GetContainingPdfObject ()_dfg .PdfObject {return _cgcf ._bdeee };
+
+// ToPdfObject implements interface PdfModel.
+func (_bdbg *PdfAnnotationScreen )ToPdfObject ()_dfg .PdfObject {_bdbg .PdfAnnotation .ToPdfObject ();_cfef :=_bdbg ._afae ;_fbfc :=_cfef .PdfObject .(*_dfg .PdfObjectDictionary );_fbfc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
+_fbfc .SetIfNotNil ("\u0054",_bdbg .T );_fbfc .SetIfNotNil ("\u004d\u004b",_bdbg .MK );_fbfc .SetIfNotNil ("\u0041",_bdbg .A );_fbfc .SetIfNotNil ("\u0041\u0041",_bdbg .AA );return _cfef ;};
+
+// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
+type PdfColorspaceDeviceCMYK struct{};
+
+// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
+// components. The slice should contain a single PdfObjectFloat element in
+// range 0-1.
+func (_bbcag *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gggg ,_dca :=_dfg .GetNumbersAsFloat (objects );
+if _dca !=nil {return nil ,_dca ;};return _bbcag .ColorFromFloats (_gggg );};func (_ceea *PdfReader )loadAnnotations (_ccaae _dfg .PdfObject )([]*PdfAnnotation ,error ){_eede ,_afcfa :=_dfg .GetArray (_ccaae );if !_afcfa {return nil ,_d .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
+};var _dagbe []*PdfAnnotation ;for _ ,_gfdd :=range _eede .Elements (){_gfdd =_dfg .ResolveReference (_gfdd );if _ ,_cdcfa :=_gfdd .(*_dfg .PdfObjectNull );_cdcfa {continue ;};_dfefe ,_ccdbd :=_gfdd .(*_dfg .PdfObjectDictionary );_bcgaa ,_bdaac :=_gfdd .(*_dfg .PdfIndirectObject );
+if _ccdbd {_bcgaa =&_dfg .PdfIndirectObject {};_bcgaa .PdfObject =_dfefe ;}else {if !_bdaac {return nil ,_d .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");
+};};_dageg ,_fadec :=_ceea .newPdfAnnotationFromIndirectObject (_bcgaa );if _fadec !=nil {return nil ,_fadec ;};switch _bgag :=_dageg .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_daada :=range _ceea .AcroForm .AllFields (){if _daada ._caaa ==_bgag .Parent {_bgag ._bcad =_daada ;
+break ;};};};if _dageg !=nil {_dagbe =append (_dagbe ,_dageg );};};return _dagbe ,nil ;};func (_gggee *PdfWriter )writeObjectsInStreams (_abcdd map[_dfg .PdfObject ]bool )error {for _ ,_fabag :=range _gggee ._abcef {if _ceedc :=_abcdd [_fabag ];_ceedc {continue ;
+};_bggfc :=int64 (0);switch _ecaee :=_fabag .(type ){case *_dfg .PdfIndirectObject :_bggfc =_ecaee .ObjectNumber ;case *_dfg .PdfObjectStream :_bggfc =_ecaee .ObjectNumber ;case *_dfg .PdfObjectStreams :_bggfc =_ecaee .ObjectNumber ;case *_dfg .PdfObjectDictionary ,*_dfg .PdfObjectString :default:_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0073\u0075p\u0070\u006f\u0072t\u0065\u0064 \u0074\u0079\u0070\u0065\u0020\u0069n\u0020wr\u0069\u0074\u0065\u0072\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u003a\u0020\u0025\u0054\u0020\u0028\u0074\u0079\u0070\u0065\u0020\u0025\u0054\u0029",_fabag ,_ecaee );
+return ErrTypeCheck ;};if _gggee ._gbdfc !=nil &&_fabag !=_gggee ._bbbecb {_bfbedd :=_gggee ._gbdfc .Encrypt (_fabag ,_bggfc ,0);if _bfbedd !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0065\u006e\u0063\u0072\u0079\u0070\u0074\u0069\u006e\u0067\u0020(%\u0073\u0029",_bfbedd );
+return _bfbedd ;};};_gggee .writeObject (int (_bggfc ),_fabag );};return nil ;};
+
+// SetFlag sets the flag for the field.
+func (_bccdd *PdfField )SetFlag (flag FieldFlag ){_bccdd .Ff =_dfg .MakeInteger (int64 (flag ))};
+
+// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
+type DefaultImageHandler struct{};
+
+// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
+func (_dacc *modelManager )GetModelFromPrimitive (primitive _dfg .PdfObject )PdfModel {_dacc ._feeaf .RLock ();defer _dacc ._feeaf .RUnlock ();model ,_fdbfe :=_dacc ._gdcgg [primitive ];if !_fdbfe {return nil ;};return model ;};func _gebfa (_bfgbge *XObjectForm )(*PdfRectangle ,bool ,error ){if _aaagg ,_cdfcg :=_bfgbge .BBox .(*_dfg .PdfObjectArray );
+_cdfcg {_gcfb ,_cffca :=NewPdfRectangle (*_aaagg );if _cffca !=nil {return nil ,false ,_cffca ;};if _ffbe ,_dedb :=_bfgbge .Matrix .(*_dfg .PdfObjectArray );_dedb {_ggge ,_caagcf :=_ffbe .ToFloat64Array ();if _caagcf !=nil {return nil ,false ,_caagcf ;
+};_faac :=_eea .IdentityMatrix ();if len (_ggge )==6{_faac =_eea .NewMatrix (_ggge [0],_ggge [1],_ggge [2],_ggge [3],_ggge [4],_ggge [5]);};_gcfb .Transform (_faac );return _gcfb ,true ,nil ;};return _gcfb ,false ,nil ;};return nil ,false ,_bd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061n\u0063e\u0020\u0042\u0042\u006f\u0078\u0020\u0074y\u0070\u0065");
+};
+
+// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
+func (_aecga *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};var (_cccdc =_gd .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_cbcb =_gd .MustCompile ("\u005e\u005cs\u002a\u002f\u0028\u005c\u0053\u002b\u003f\u0029\u005c\u0073\u002b\u0028\u002e\u002b\u003f\u0029\u005c\u0073\u002b\u0064\u0065\u0066\\s\u002a\u0024");
+_fggf =_gd .MustCompile ("\u005e\u005c\u0073*\u0064\u0075\u0070\u005c\u0073\u002b\u0028\u005c\u0064\u002b\u0029\u005c\u0073\u002a\u002f\u0028\u005c\u0077\u002b\u003f\u0029\u0028\u003f\u003a\u005c\u002e\u005c\u0064\u002b)\u003f\u005c\u0073\u002b\u0070\u0075\u0074\u0024");
+_cfbdf ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_efdd ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_aaaa ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
+);
+
+// PdfPageResources is a Page resources model.
+// Implements PdfModel.
+type PdfPageResources struct{ExtGState _dfg .PdfObject ;ColorSpace _dfg .PdfObject ;Pattern _dfg .PdfObject ;Shading _dfg .PdfObject ;XObject _dfg .PdfObject ;Font _dfg .PdfObject ;ProcSet _dfg .PdfObject ;Properties _dfg .PdfObject ;_gffaff *_dfg .PdfObjectDictionary ;
+_fgfec *PdfPageResourcesColorspaces ;};
+
+// EnableByName LTV enables the signature dictionary of the PDF AcroForm
+// field identified the specified name. The signing certificate chain is
+// extracted from the signature dictionary. Optionally, additional certificates
+// can be specified through the `extraCerts` parameter. The LTV client attempts
+// to build the certificate chain up to a trusted root by downloading any
+// missing certificates.
+func (_cddb *LTV )EnableByName (name string ,extraCerts []*_de .Certificate )error {_agbg :=_cddb ._adcg ._eege .AcroForm ;for _ ,_dbgac :=range _agbg .AllFields (){_egefg ,_ :=_dbgac .GetContext ().(*PdfFieldSignature );if _egefg ==nil {continue ;};if _gabg :=_egefg .PartialName ();
+_gabg !=name {continue ;};return _cddb .Enable (_egefg .V ,extraCerts );};return nil ;};func _ffad ()*Names {return &Names {_ggeed :_dfg .MakeIndirectObject (_dfg .MakeDict ())}};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;
+XObjectTypePS ;XObjectTypeUnknown ;);func (_cea *PdfReader )newPdfAnnotationTrapNetFromDict (_dabg *_dfg .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_gbge :=PdfAnnotationTrapNet {};return &_gbge ,nil ;};
+
+// PdfColorCalGray represents a CalGray colorspace.
+type PdfColorCalGray float64 ;func (_ccbca *PdfReader )newPdfActionSubmitFormFromDict (_bcb *_dfg .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_caa ,_eag :=_dbga (_bcb .Get ("\u0046"));if _eag !=nil {return nil ,_eag ;};return &PdfActionSubmitForm {F :_caa ,Fields :_bcb .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_bcb .Get ("\u0046\u006c\u0061g\u0073")},nil ;
+};func (_ccdca *pdfCIDFontType2 )baseFields ()*fontCommon {return &_ccdca .fontCommon };
+
+// SetContext set the sub annotation (context).
+func (_ggac *PdfShading )SetContext (ctx PdfModel ){_ggac ._fdbfb =ctx };
+
+// NewStandard14FontMustCompile returns the standard 14 font named `basefont` as a *PdfFont.
+// If `basefont` is one of the 14 Standard14Font values defined above then NewStandard14FontMustCompile
+// is guaranteed to succeed.
+func NewStandard14FontMustCompile (basefont StdFontName )*PdfFont {_dfcaa ,_cceeb :=NewStandard14Font (basefont );if _cceeb !=nil {panic (_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));
+};return _dfcaa ;};
+
+// GetEncryptionMethod returns a descriptive information string about the encryption method used.
+func (_eebdb *PdfReader )GetEncryptionMethod ()string {_cfgee :=_eebdb ._agbcd .GetCrypter ();return _cfgee .String ();};func (_acbdg *PdfWriter )writeObjects (){_egb .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_acbdg ._abcef ));
+_acbdg ._effg =make (map[int ]crossReference );_acbdg ._effg [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _acbdg ._accfg .ObjectMap !=nil {for _bdbcc ,_efcdb :=range _acbdg ._accfg .ObjectMap {if _bdbcc ==0{continue ;};if _efcdb .XType ==_dfg .XrefTypeObjectStream {_caege :=crossReference {Type :2,ObjectNumber :_efcdb .OsObjNumber ,Index :_efcdb .OsObjIndex };
+_acbdg ._effg [_bdbcc ]=_caege ;};if _efcdb .XType ==_dfg .XrefTypeTableEntry {_egce :=crossReference {Type :1,ObjectNumber :_efcdb .ObjectNumber ,Offset :_efcdb .Offset };_acbdg ._effg [_bdbcc ]=_egce ;};};};};
+
+// ToPdfObject returns the PDF representation of the shading dictionary.
+func (_addfa *PdfShadingType1 )ToPdfObject ()_dfg .PdfObject {_addfa .PdfShading .ToPdfObject ();_fbbb ,_ddfba :=_addfa .getShadingDict ();if _ddfba !=nil {_egb .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
+return nil ;};if _addfa .Domain !=nil {_fbbb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_addfa .Domain );};if _addfa .Matrix !=nil {_fbbb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_addfa .Matrix );};if _addfa .Function !=nil {if len (_addfa .Function )==1{_fbbb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_addfa .Function [0].ToPdfObject ());
+}else {_dbcf :=_dfg .MakeArray ();for _ ,_abfb :=range _addfa .Function {_dbcf .Append (_abfb .ToPdfObject ());};_fbbb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dbcf );};};return _addfa ._gdfdg ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_dgbcf *PdfTransformParamsDocMDP )ToPdfObject ()_dfg .PdfObject {_ceedg :=_dfg .MakeDict ();_ceedg .SetIfNotNil ("\u0054\u0079\u0070\u0065",_dgbcf .Type );_ceedg .SetIfNotNil ("\u0056",_dgbcf .V );_ceedg .SetIfNotNil ("\u0050",_dgbcf .P );return _ceedg ;
+};func (_bfgf *PdfReader )newPdfActionURIFromDict (_acfd *_dfg .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_acfd .Get ("\u0055\u0052\u0049"),IsMap :_acfd .Get ("\u0049\u0073\u004da\u0070")},nil ;};func _cggdb (_bfad *PdfPage )map[_dfg .PdfObjectName ]_dfg .PdfObject {_gebd :=make (map[_dfg .PdfObjectName ]_dfg .PdfObject );
+if _bfad .Resources ==nil {return _gebd ;};if _bfad .Resources .Font !=nil {if _aegf ,_eddg :=_dfg .GetDict (_bfad .Resources .Font );_eddg {for _ ,_dffd :=range _aegf .Keys (){_gebd [_dffd ]=_aegf .Get (_dffd );};};};if _bfad .Resources .ExtGState !=nil {if _bfef ,_dbf :=_dfg .GetDict (_bfad .Resources .ExtGState );
+_dbf {for _ ,_edbc :=range _bfef .Keys (){_gebd [_edbc ]=_bfef .Get (_edbc );};};};if _bfad .Resources .XObject !=nil {if _bede ,_eccg :=_dfg .GetDict (_bfad .Resources .XObject );_eccg {for _ ,_ebb :=range _bede .Keys (){_gebd [_ebb ]=_bede .Get (_ebb );
+};};};if _bfad .Resources .Pattern !=nil {if _gegd ,_ebba :=_dfg .GetDict (_bfad .Resources .Pattern );_ebba {for _ ,_ebg :=range _gegd .Keys (){_gebd [_ebg ]=_gegd .Get (_ebg );};};};if _bfad .Resources .Shading !=nil {if _fdda ,_gccae :=_dfg .GetDict (_bfad .Resources .Shading );
+_gccae {for _ ,_facb :=range _fdda .Keys (){_gebd [_facb ]=_fdda .Get (_facb );};};};if _bfad .Resources .ProcSet !=nil {if _adbd ,_bgef :=_dfg .GetDict (_bfad .Resources .ProcSet );_bgef {for _ ,_fbaf :=range _adbd .Keys (){_gebd [_fbaf ]=_adbd .Get (_fbaf );
+};};};if _bfad .Resources .Properties !=nil {if _bbbf ,_adbe :=_dfg .GetDict (_bfad .Resources .Properties );_adbe {for _ ,_acebf :=range _bbbf .Keys (){_gebd [_acebf ]=_bbbf .Get (_acebf );};};};return _gebd ;};
+
+// GetCIDToGIDMapObject get the underlying CIDToGIDMap object if the font type is CIDFontType2.
+func (_gbdce *PdfFont )GetCIDToGIDMapObject ()_dfg .PdfObject {_aaad ,_ggdf :=_gbdce ._fab .(*pdfCIDFontType2 );if _ggdf {return _aaad .CIDToGIDMap ;};return nil ;};func (_agfd *PdfReader )newPdfAnnotationSquareFromDict (_acac *_dfg .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_agd :=PdfAnnotationSquare {};
+_eafb ,_beag :=_agfd .newPdfAnnotationMarkupFromDict (_acac );if _beag !=nil {return nil ,_beag ;};_agd .PdfAnnotationMarkup =_eafb ;_agd .BS =_acac .Get ("\u0042\u0053");_agd .IC =_acac .Get ("\u0049\u0043");_agd .BE =_acac .Get ("\u0042\u0045");_agd .RD =_acac .Get ("\u0052\u0044");
+return &_agd ,nil ;};
+
+// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
+func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};func _agdb (_afbe *_dfg .PdfObjectDictionary ,_dggc *fontCommon )(*pdfCIDFontType0 ,error ){if _dggc ._gdab !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_egb .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0046\u006fn\u0074\u0020\u0053u\u0062\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020CI\u0044\u0046\u006fn\u0074\u0054y\u0070\u0065\u0030\u002e\u0020\u0066o\u006e\u0074=\u0025\u0073",_dggc );
+return nil ,_dfg .ErrRangeError ;};_bddd :=_abfgc (_dggc );_bfdcb ,_gfgg :=_dfg .GetDict (_afbe .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_gfgg {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043I\u0044\u0053\u0079st\u0065\u006d\u0049\u006e\u0066\u006f \u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_dggc );
+return nil ,ErrRequiredAttributeMissing ;};_bddd .CIDSystemInfo =_bfdcb ;_bddd .DW =_afbe .Get ("\u0044\u0057");_bddd .W =_afbe .Get ("\u0057");_bddd .DW2 =_afbe .Get ("\u0044\u0057\u0032");_bddd .W2 =_afbe .Get ("\u0057\u0032");_bddd ._ebfc =1000.0;if _ecfe ,_cccec :=_dfg .GetNumberAsFloat (_bddd .DW );
+_cccec ==nil {_bddd ._ebfc =_ecfe ;};_bddae ,_gbec :=_fafd (_bddd .W );if _gbec !=nil {return nil ,_gbec ;};if _bddae ==nil {_bddae =map[_ff .CharCode ]float64 {};};_bddd ._ceda =_bddae ;return _bddd ,nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_egaf *PdfAnnotationFreeText )ToPdfObject ()_dfg .PdfObject {_egaf .PdfAnnotation .ToPdfObject ();_eac :=_egaf ._afae ;_ddfc :=_eac .PdfObject .(*_dfg .PdfObjectDictionary );_egaf .appendToPdfDictionary (_ddfc );_ddfc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
+_ddfc .SetIfNotNil ("\u0044\u0041",_egaf .DA );_ddfc .SetIfNotNil ("\u0051",_egaf .Q );_ddfc .SetIfNotNil ("\u0052\u0043",_egaf .RC );_ddfc .SetIfNotNil ("\u0044\u0053",_egaf .DS );_ddfc .SetIfNotNil ("\u0043\u004c",_egaf .CL );_ddfc .SetIfNotNil ("\u0049\u0054",_egaf .IT );
+_ddfc .SetIfNotNil ("\u0042\u0045",_egaf .BE );_ddfc .SetIfNotNil ("\u0052\u0044",_egaf .RD );_ddfc .SetIfNotNil ("\u0042\u0053",_egaf .BS );_ddfc .SetIfNotNil ("\u004c\u0045",_egaf .LE );return _eac ;};
+
+// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
+func (_ebgdbc *XObjectForm )GetContainingPdfObject ()_dfg .PdfObject {return _ebgdbc ._baced };
+
+// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
+func NewOutlineBookmark (title string ,page *_dfg .PdfIndirectObject )*PdfOutlineItem {_edafb :=PdfOutlineItem {};_edafb ._cface =&_edafb ;_edafb .Title =_dfg .MakeString (title );_gdefg :=_dfg .MakeArray ();_gdefg .Append (page );_gdefg .Append (_dfg .MakeName ("\u0046\u0069\u0074"));
+_edafb .Dest =_gdefg ;return &_edafb ;};
+
+// NewStandard14Font returns the standard 14 font named `basefont` as a *PdfFont, or an error if it
+// `basefont` is not one of the standard 14 font names.
+func NewStandard14Font (basefont StdFontName )(*PdfFont ,error ){_egca ,_cfedf :=_ggabd (basefont );if _cfedf !=nil {return nil ,_cfedf ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_egca ._febca =_ff .NewWinAnsiEncoder ();};return &PdfFont {_fab :&_egca },nil ;
+};
+
+// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
+func (_aebac *PdfFieldButton )IsCheckbox ()bool {return _aebac .GetType ()==ButtonTypeCheckbox };func _eacc (_aafaa _dfg .PdfObject ,_fccbd _dfg .PdfObject ,_eddfd map[_dfg .PdfObject ][]_dfg .PdfObject ,_affcd map[string ]_dfg .PdfObject ,_gfcfd *[]_dfg .PdfObject ){var _bdgde *_dfg .PdfIndirectObject ;
+if _beff ,_afaff :=_dfg .GetIndirect (_aafaa );_afaff {_bdgde =_beff ;_aafaa =_beff .PdfObject ;};switch _bcgeg :=_aafaa .(type ){case *_dfg .PdfObjectDictionary :if _bcgeg .Get ("\u0053")==nil {return ;};_bcgeg .Set ("\u0050",_fccbd );if _cccbc :=_bcgeg .Get ("\u0050\u0067");
+_cccbc !=nil {if _bgaca ,_fcacee :=_dfg .GetIndirect (_cccbc );_fcacee &&_bgaca !=nil &&_bgaca .PdfObject !=nil {_eddfd [_cccbc ]=append (_eddfd [_cccbc ],_bdgde );};};if _bdca :=_bcgeg .Get ("\u0053");_bdca !=nil {if _cfbf ,_cdggf :=_dfg .GetNameVal (_bdca );
+_cdggf {if _cfbf ==string (StructureTypeLink )||_cfbf ==string (StructureTypeAnnot ){if _gcafe :=_bcgeg .Get ("\u004b");_gcafe !=nil {if _fdccg ,_aaccc :=_dfg .GetArray (_gcafe );_aaccc &&_fdccg .Len ()==2{_fdcfb :=false ;_bdeea :=false ;for _ ,_bcdcg :=range _fdccg .Elements (){if _cffff ,_cced :=_dfg .GetDict (_bcdcg );
+_cced {if _ ,_fcde :=_dfg .GetName (_cffff .Get ("\u0054\u0079\u0070\u0065"));_fcde {_bdeea =true ;};}else if _ ,_fbeaa :=_dfg .GetInt (_bcdcg );_fbeaa {_fdcfb =true ;};};if _fdcfb &&_bdeea {*_gfcfd =append (*_gfcfd ,_bdgde );};}else if _aefbf ,_gegdb :=_dfg .GetDict (_gcafe );
+_gegdb {if _ ,_cffcc :=_dfg .GetName (_aefbf .Get ("\u0054\u0079\u0070\u0065"));_cffcc {*_gfcfd =append (*_gfcfd ,_bdgde );};};};};};};if _dcfa :=_bcgeg .Get ("\u0049\u0044");_dcfa !=nil {_affcd [_dcfa .String ()]=_aafaa ;};if _deddg :=_bcgeg .Get ("\u004b");
+_deddg !=nil {_eacc (_deddg ,_bdgde ,_eddfd ,_affcd ,_gfcfd );};case *_dfg .PdfObjectArray :for _ ,_debcc :=range _bcgeg .Elements (){_eacc (_debcc ,_fccbd ,_eddfd ,_affcd ,_gfcfd );};default:};};
+
+// SetFilter sets compression filter. Decodes with current filter sets and
+// encodes the data with the new filter.
+func (_adaed *XObjectImage )SetFilter (encoder _dfg .StreamEncoder )error {_baff :=_adaed .Stream ;_cbgab ,_egea :=_adaed .Filter .DecodeBytes (_baff );if _egea !=nil {return _egea ;};_adaed .Filter =encoder ;encoder .UpdateParams (_adaed .getParamsDict ());
+_baff ,_egea =encoder .EncodeBytes (_cbgab );if _egea !=nil {return _egea ;};_adaed .Stream =_baff ;return nil ;};
+
+// ImageToRGB returns the passed in image. Method exists in order to satisfy
+// the PdfColorspace interface.
+func (_agcd *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);func (_cafb *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _cafb ._cebfd };
+func _ggdfc (_cdbb *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_cdbb }};
+
+// SetCatalogStructTreeRoot sets the catalog struct tree root object.
+func (_gfaee *PdfWriter )SetCatalogStructTreeRoot (tree _dfg .PdfObject )error {if tree ==nil {_gfaee ._acgcc .Remove ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return nil ;};_gfaee ._acgcc .Set ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074",tree );
+return _gfaee .addObjects (tree );};
+
+// NewPdfAnnotationPrinterMark returns a new printermark annotation.
+func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_dgf :=NewPdfAnnotation ();_gdfd :=&PdfAnnotationPrinterMark {};_gdfd .PdfAnnotation =_dgf ;_dgf .SetContext (_gdfd );return _gdfd ;};
+
+// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
+func (_cgeaa *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _cgeaa .AlternateSpace ==nil {return nil ,_bd .New ("\u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0065\u0020c\u006f\u006c\u006f\u0072\u0073\u0070\u0061c\u0065\u0020\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
+};return _cgeaa .AlternateSpace .ColorToRGB (color );};func (_cbeaee *PdfReader )newPdfPageFromDict (_fdge *_dfg .PdfObjectDictionary )(*PdfPage ,error ){_fbebg :=NewPdfPage ();_fbebg ._daae =_fdge ;_fbebg ._fagbf =*_fdge ;_fcbdf :=*_fdge ;_addce ,_bagd :=_fcbdf .Get ("\u0054\u0079\u0070\u0065").(*_dfg .PdfObjectName );
+if !_bagd {return nil ,_bd .New ("\u006d\u0069ss\u0069\u006e\u0067/\u0069\u006e\u0076\u0061lid\u0020Pa\u0067\u0065\u0020\u0064\u0069\u0063\u0074io\u006e\u0061\u0072\u0079\u0020\u0054\u0079p\u0065");};if *_addce !="\u0050\u0061\u0067\u0065"{return nil ,_bd .New ("\u0070\u0061\u0067\u0065 \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0054y\u0070\u0065\u0020\u0021\u003d\u0020\u0050a\u0067\u0065");
+};if _cdfgb :=_fcbdf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_cdfgb !=nil {_fbebg .Parent =_cdfgb ;};if _gbbaa :=_fcbdf .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_gbbaa !=nil {_fadeb ,_cgdc :=_dfg .GetString (_gbbaa );
+if !_cgdc {return nil ,_bd .New ("\u0070\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u004c\u0061\u0073\u0074\u004d\u006f\u0064\u0069f\u0069\u0065\u0064\u0020\u0021=\u0020\u0073t\u0072\u0069\u006e\u0067");};
+_cbdf ,_gffaf :=NewPdfDate (_fadeb .Str ());if _gffaf !=nil {return nil ,_gffaf ;};_fbebg .LastModified =&_cbdf ;};if _fgff :=_fcbdf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_fgff !=nil &&!_dfg .IsNullObject (_fgff ){_ecbfc ,_afdd :=_dfg .GetDict (_fgff );
+if !_afdd {return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_fgff );};var _agbe error ;_fbebg .Resources ,_agbe =NewPdfPageResourcesFromDict (_ecbfc );
+if _agbe !=nil {return nil ,_agbe ;};}else {_fedcef ,_eegb :=_fbebg .getParentResources ();if _eegb !=nil {return nil ,_eegb ;};if _fedcef ==nil {_fedcef =NewPdfPageResources ();};_fbebg .Resources =_fedcef ;};if _eacg :=_fcbdf .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
+_eacg !=nil {_gccdc ,_cgbc :=_dfg .GetArray (_eacg );if !_cgbc {return nil ,_bd .New ("\u0070\u0061\u0067\u0065\u0020\u004d\u0065\u0064\u0069\u0061\u0042o\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079");};var _gfdaa error ;
+_fbebg .MediaBox ,_gfdaa =NewPdfRectangle (*_gccdc );if _gfdaa !=nil {return nil ,_gfdaa ;};};if _egegf :=_fcbdf .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_egegf !=nil {_ccca ,_ceacg :=_dfg .GetArray (_egegf );if !_ceacg {return nil ,_bd .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
+};var _dfecc error ;_fbebg .CropBox ,_dfecc =NewPdfRectangle (*_ccca );if _dfecc !=nil {return nil ,_dfecc ;};};if _ddddfg :=_fcbdf .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_ddddfg !=nil {_bbebb ,_dcbbc :=_dfg .GetArray (_ddddfg );if !_dcbbc {return nil ,_bd .New ("\u0070\u0061\u0067\u0065\u0020\u0042\u006c\u0065\u0065\u0064\u0042o\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079");
+};var _fedcf error ;_fbebg .BleedBox ,_fedcf =NewPdfRectangle (*_bbebb );if _fedcf !=nil {return nil ,_fedcf ;};};if _edefe :=_fcbdf .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_edefe !=nil {_gbcc ,_dfee :=_dfg .GetArray (_edefe );if !_dfee {return nil ,_bd .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
+};var _cdff error ;_fbebg .TrimBox ,_cdff =NewPdfRectangle (*_gbcc );if _cdff !=nil {return nil ,_cdff ;};};if _ggbdaa :=_fcbdf .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_ggbdaa !=nil {_efeea ,_ccfd :=_dfg .GetArray (_ggbdaa );if !_ccfd {return nil ,_bd .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
+};var _fbfac error ;_fbebg .ArtBox ,_fbfac =NewPdfRectangle (*_efeea );if _fbfac !=nil {return nil ,_fbfac ;};};if _gbdca :=_fcbdf .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_gbdca !=nil {_fbebg .BoxColorInfo =_gbdca ;
+};if _bcfbd :=_fcbdf .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_bcfbd !=nil {_fbebg .Contents =_bcfbd ;};if _fbfe :=_fcbdf .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_fbfe !=nil {_eaadc ,_bafgb :=_dfg .GetNumberAsInt64 (_fbfe );if _bafgb !=nil {return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0067e\u0020\u0052\u006f\u0074\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
+};_fbebg .Rotate =&_eaadc ;};if _fgccf :=_fcbdf .Get ("\u0047\u0072\u006fu\u0070");_fgccf !=nil {_fbebg .Group =_fgccf ;};if _aabda :=_fcbdf .Get ("\u0054\u0068\u0075m\u0062");_aabda !=nil {_fbebg .Thumb =_aabda ;};if _bafcad :=_fcbdf .Get ("\u0042");_bafcad !=nil {_fbebg .B =_bafcad ;
+};if _dgca :=_fcbdf .Get ("\u0044\u0075\u0072");_dgca !=nil {_fbebg .Dur =_dgca ;};if _cagc :=_fcbdf .Get ("\u0054\u0072\u0061n\u0073");_cagc !=nil {_fbebg .Trans =_cagc ;};if _egcd :=_fcbdf .Get ("\u0041\u0041");_egcd !=nil {_fbebg .AA =_egcd ;};if _fbefff :=_fcbdf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");
+_fbefff !=nil {_fbebg .Metadata =_fbefff ;};if _bcdde :=_fcbdf .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_bcdde !=nil {_fbebg .PieceInfo =_bcdde ;};if _caggb :=_fcbdf .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
+_caggb !=nil {_fbebg .StructParents =_caggb ;};if _bfaddd :=_fcbdf .Get ("\u0049\u0044");_bfaddd !=nil {_fbebg .ID =_bfaddd ;};if _deadg :=_fcbdf .Get ("\u0050\u005a");_deadg !=nil {_fbebg .PZ =_deadg ;};if _abcca :=_fcbdf .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
+_abcca !=nil {_fbebg .SeparationInfo =_abcca ;};if _abfd :=_fcbdf .Get ("\u0054\u0061\u0062\u0073");_abfd !=nil {_fbebg .Tabs =_abfd ;};if _bbac :=_fcbdf .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
+_bbac !=nil {_fbebg .TemplateInstantiated =_bbac ;};if _gaabb :=_fcbdf .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_gaabb !=nil {_fbebg .PresSteps =_gaabb ;};if _aafe :=_fcbdf .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_aafe !=nil {_fbebg .UserUnit =_aafe ;
+};if _ggdge :=_fcbdf .Get ("\u0056\u0050");_ggdge !=nil {_fbebg .VP =_ggdge ;};if _caedg :=_fcbdf .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_caedg !=nil {_fbebg .Annots =_caedg ;};_fbebg ._ggcgd =_cbeaee ;return _fbebg ,nil ;};
+
+// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
+func (_afdba *PdfColorspaceDeviceN )GetNumComponents ()int {return _afdba .ColorantNames .Len ()};func _gceee (_bcbd *_dfg .PdfObjectDictionary ){_bgab ,_caaaa :=_dfg .GetArray (_bcbd .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));_ggce ,_aaffb :=_dfg .GetIntVal (_bcbd .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));
+_bbbd ,_acgd :=_dfg .GetIntVal (_bcbd .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _caaaa &&_aaffb &&_acgd {_ddge :=_bgab .Len ();if _ddge !=_bbbd -_ggce +1{_egb .Log .Debug ("\u0055\u006e\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0057\u0069\u0064\u0074\u0068\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u003a\u0020\u0025\u0076\u002c\u0020\u004c\u0061\u0073t\u0043\u0068\u0061\u0072\u003a\u0020\u0025\u0076",_ddge ,_bbbd );
+_gdacd :=_dfg .PdfObjectInteger (_ggce +_ddge -1);_bcbd .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_gdacd );};};};
+
+// SetDirection sets the value of the direction.
+func (_gacab *ViewerPreferences )SetDirection (direction Direction ){_gacab ._afddc =direction };func (_gdace *pdfFontType0 )subsetRegistered ()error {_fbaba ,_cfedc :=_gdace .DescendantFont ._fab .(*pdfCIDFontType2 );if !_cfedc {_egb .Log .Debug ("\u0046\u006fnt\u0020\u006e\u006ft\u0020\u0073\u0075\u0070por\u0074ed\u0020\u0066\u006f\u0072\u0020\u0073\u0075bs\u0065\u0074\u0074\u0069\u006e\u0067\u0020%\u0054",_gdace .DescendantFont );
+return nil ;};if _fbaba ==nil {return nil ;};if _fbaba ._cebfd ==nil {_egb .Log .Debug ("\u004d\u0069\u0073si\u006e\u0067\u0020\u0066\u006f\u006e\u0074\u0020\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u006f\u0072");return nil ;};if _gdace ._gbaf ==nil {_egb .Log .Debug ("\u004e\u006f\u0020e\u006e\u0063\u006f\u0064e\u0072\u0020\u002d\u0020\u0073\u0075\u0062s\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0069\u0067\u006e\u006f\u0072\u0065\u0064");
+return nil ;};_fgdce ,_cfedc :=_dfg .GetStream (_fbaba ._cebfd .FontFile2 );if !_cfedc {_egb .Log .Debug ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u006f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u002d\u002d\u0020\u0041\u0042\u004f\u0052T\u0020\u0073\u0075\u0062\u0073\u0065\u0074\u0074\u0069\u006e\u0067");
+return _bd .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_fcef ,_dgec :=_dfg .DecodeStream (_fgdce );if _dgec !=nil {_egb .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_dgec );
+return _dgec ;};_cfgge ,_dgec :=_be .Parse (_cca .NewReader (_fcef ));if _dgec !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0025\u0064\u0020\u0062\u0079\u0074\u0065\u0020f\u006f\u006e\u0074",len (_fgdce .Stream ));
+return _dgec ;};var _cfede []rune ;var _ccab *_be .Font ;switch _bgcae :=_gdace ._gbaf .(type ){case *_ff .TrueTypeFontEncoder :_cfede =_bgcae .RegisteredRunes ();_ccab ,_dgec =_cfgge .SubsetKeepRunes (_cfede );if _dgec !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgec );
+return _dgec ;};_bgcae .SubsetRegistered ();case *_ff .IdentityEncoder :_cfede =_bgcae .RegisteredRunes ();_abge :=make ([]_be .GlyphIndex ,len (_cfede ));for _bacfaf ,_geef :=range _cfede {_abge [_bacfaf ]=_be .GlyphIndex (_geef );};_ccab ,_dgec =_cfgge .SubsetKeepIndices (_abge );
+if _dgec !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgec );return _dgec ;};case _ff .SimpleEncoder :_efeff :=_bgcae .Charcodes ();for _ ,_eabcf :=range _efeff {_ccafa ,_befc :=_bgcae .CharcodeToRune (_eabcf );if !_befc {_egb .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0075\u006e\u0061\u0062\u006c\u0065\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0020\u0074\u006f \u0072\u0075\u006e\u0065\u003a\u0020\u0025\u0064",_eabcf );
+continue ;};_cfede =append (_cfede ,_ccafa );};default:return _d .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_gdace ._gbaf );
+};var _fceba _cca .Buffer ;_dgec =_ccab .Write (&_fceba );if _dgec !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgec );return _dgec ;};if _gdace ._bgdcbc !=nil {_egccgb :=make (map[_efg .CharCode ]rune ,len (_cfede ));for _ ,_adcef :=range _cfede {_ebadb ,_fegbb :=_gdace ._gbaf .RuneToCharcode (_adcef );
+if !_fegbb {continue ;};_egccgb [_efg .CharCode (_ebadb )]=_adcef ;};_gdace ._bgdcbc =_efg .NewToUnicodeCMap (_egccgb );};_fgdce ,_dgec =_dfg .MakeStream (_fceba .Bytes (),_dfg .NewFlateEncoder ());if _dgec !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgec );
+return _dgec ;};_fgdce .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_dfg .MakeInteger (int64 (_fceba .Len ())));if _gbgbf ,_edfaa :=_dfg .GetStream (_fbaba ._cebfd .FontFile2 );_edfaa {*_gbgbf =*_fgdce ;}else {_fbaba ._cebfd .FontFile2 =_fgdce ;};_ffef :=_bafgc ();
+if len (_gdace ._dbcbc )> 0{_gdace ._dbcbc =_faeg (_gdace ._dbcbc ,_ffef );};if len (_fbaba ._dbcbc )> 0{_fbaba ._dbcbc =_faeg (_fbaba ._dbcbc ,_ffef );};if len (_gdace ._gadbd )> 0{_gdace ._gadbd =_faeg (_gdace ._gadbd ,_ffef );};if _fbaba ._cebfd !=nil {_baeg ,_bacg :=_dfg .GetName (_fbaba ._cebfd .FontName );
+if _bacg &&len (_baeg .String ())> 0{_fdaff :=_faeg (_baeg .String (),_ffef );_fbaba ._cebfd .FontName =_dfg .MakeName (_fdaff );};};return nil ;};
+
+// PdfFunctionType3 defines stitching of the subdomains of several 1-input functions to produce
+// a single new 1-input function.
+type PdfFunctionType3 struct{Domain []float64 ;Range []float64 ;Functions []PdfFunction ;Bounds []float64 ;Encode []float64 ;_begcf *_dfg .PdfIndirectObject ;};func _gccag ()string {_dfbaa .Lock ();defer _dfbaa .Unlock ();return _geccfa };func (_gab *PdfReader )newPdfAnnotationInkFromDict (_dabca *_dfg .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_fgdd :=PdfAnnotationInk {};
+_fba ,_cab :=_gab .newPdfAnnotationMarkupFromDict (_dabca );if _cab !=nil {return nil ,_cab ;};_fgdd .PdfAnnotationMarkup =_fba ;_fgdd .InkList =_dabca .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_fgdd .BS =_dabca .Get ("\u0042\u0053");return &_fgdd ,nil ;
+};
+
+// SetOCProperties sets the optional content properties.
+func (_cagga *PdfWriter )SetOCProperties (ocProperties _dfg .PdfObject )error {_cggcd :=_cagga ._acgcc ;if ocProperties !=nil {_egb .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
+_cggcd .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _cagga .addObjects (ocProperties );};return nil ;};func (_ageb *pdfFontType0 )bytesToCharcodes (_bggdd []byte )([]_ff .CharCode ,bool ){if _ageb ._dfec ==nil {return nil ,false ;
+};_ggeeb ,_fegb :=_ageb ._dfec .BytesToCharcodes (_bggdd );if !_fegb {return nil ,false ;};_cgaaf :=make ([]_ff .CharCode ,len (_ggeeb ));for _egafb ,_acdbe :=range _ggeeb {_cgaaf [_egafb ]=_ff .CharCode (_acdbe );};return _cgaaf ,true ;};
+
+// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
+func (_bfgbe *Image )AlphaMap (mapFunc AlphaMapFunc ){for _cccb ,_bdgef :=range _bfgbe ._baeef {_bfgbe ._baeef [_cccb ]=mapFunc (_bdgef );};};func _dbfa (_dfeag _dfg .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_egb .Log .Trace ("\u004e\u0065\u0077\u0020\u0050\u0061\u0074\u0074\u0065\u0072n\u0020\u0043\u0053\u0020\u0066\u0072\u006fm\u0020\u006f\u0062\u006a\u003a\u0020\u0025\u0073\u0020\u0025\u0054",_dfeag .String (),_dfeag );
+_edc :=NewPdfColorspaceSpecialPattern ();if _bcbbd ,_aaeb :=_dfeag .(*_dfg .PdfIndirectObject );_aaeb {_edc ._fdea =_bcbbd ;};_dfeag =_dfg .TraceToDirectObject (_dfeag );if _ggef ,_dfcfa :=_dfeag .(*_dfg .PdfObjectName );_dfcfa {if *_ggef !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_d .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
+};return _edc ,nil ;};_gdbba ,_fedc :=_dfeag .(*_dfg .PdfObjectArray );if !_fedc {_egb .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061t\u0074\u0065\u0072\u006e\u0020\u0043\u0053 \u004f\u0062\u006a\u0065\u0063\u0074\u003a\u0020\u0025\u0023\u0076",_dfeag );
+return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _gdbba .Len ()!=1&&_gdbba .Len ()!=2{_egb .Log .Error ("\u0049\u006ev\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079\u003a %\u0023\u0076",_gdbba );
+return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_dfeag =_gdbba .Get (0);if _edde ,_dbfd :=_dfeag .(*_dfg .PdfObjectName );_dbfd {if *_edde !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_egb .Log .Error ("\u0049\u006e\u0076al\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065\u0072n\u0020C\u0053 \u0061r\u0072\u0061\u0079\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0023\u0076",_edde );
+return nil ,_d .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _gdbba .Len ()> 1{_dfeag =_gdbba .Get (1);_dfeag =_dfg .TraceToDirectObject (_dfeag );_fgcd ,_bacf :=NewPdfColorspaceFromPdfObject (_dfeag );if _bacf !=nil {return nil ,_bacf ;
+};_edc .UnderlyingCS =_fgcd ;};_egb .Log .Trace ("R\u0065\u0074\u0075\u0072\u006e\u0069\u006e\u0067\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0077i\u0074\u0068\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079in\u0067\u0020\u0063s\u003a \u0025\u0054",_edc .UnderlyingCS );
+return _edc ,nil ;};
+
+// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
+type PdfOutputIntentType int ;
+
+// NewPdfActionSetOCGState returns a new "named" action.
+func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_cdfa :=NewPdfAction ();_cfe :=&PdfActionSetOCGState {};_cfe .PdfAction =_cdfa ;_cdfa .SetContext (_cfe );return _cfe ;};
+
+// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
+func (_daga *PdfReader )GetCatalogStructTreeRoot ()(_dfg .PdfObject ,bool ){_fgcab :=_dfg .ResolveReference (_daga ._fbfgb .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074"));if _fgcab ==nil {return nil ,false ;};if !_daga ._bafba {_cfcdg :=_daga .traverseObjectData (_fgcab );
+if _cfcdg !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046a\u0069\u006c\u0065\u0064\u0020t\u006f\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0065\u0020\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065\u0065\u0052\u006f\u006f\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u0025\u0073\u0029",_cfcdg );
+return nil ,false ;};};return _fgcab ,true ;};
+
+// PdfAnnotationInk represents Ink annotations.
+// (Section 12.5.6.13).
+type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _dfg .PdfObject ;BS _dfg .PdfObject ;};
+
+// G returns the value of the green component of the color.
+func (_abcc *PdfColorDeviceRGB )G ()float64 {return _abcc [1]};func (_ddba *PdfPage )flattenFieldsWithOpts (_cdba FieldAppearanceGenerator ,_bgfac *FieldFlattenOpts ,_bbdg map[*PdfAnnotation ]bool )error {var _dfaa []*PdfAnnotation ;if _cdba !=nil {if _decbg :=_cdba .WrapContentStream (_ddba );
+_decbg !=nil {return _decbg ;};};_cbea ,_abceg :=_ddba .GetAnnotations ();if _abceg !=nil {return _abceg ;};for _ ,_becda :=range _cbea {_cecd ,_ddcge :=_bbdg [_becda ];if !_ddcge &&_bgfac .AnnotFilterFunc !=nil {if _ ,_gffae :=_becda .GetContext ().(*PdfAnnotationWidget );
+!_gffae {_ddcge =_bgfac .AnnotFilterFunc (_becda );};};if !_ddcge {_dfaa =append (_dfaa ,_becda );continue ;};switch _becda .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
+};_gbfdg ,_cagb ,_aeab :=_gdafa (_becda );if _aeab !=nil {if !_cecd {_egb .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0077\u0069\u0074h\u006f\u0075\u0074\u0020\u0056\u0020\u002d\u003e\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0077\u0069\u0074h\u006f\u0075t\u0020\u0061p\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073\u0074\u0072\u0065am\u0020\u002d\u0020\u0073\u006b\u0069\u0070\u0070\u0069n\u0067\u0020\u006f\u0076\u0065\u0072");
+continue ;};_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u0020\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0077\u0069\u0074h\u006f\u0075\u0074\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d,\u0020\u0065\u0072\u0072\u0020\u003a\u0020\u0025\u0076\u0020\u002d\u0020\u0073\u006bi\u0070\u0070\u0069n\u0067\u0020\u006f\u0076\u0065\u0072",_aeab );
+continue ;};if _gbfdg ==nil {continue ;};_fdade :=_ddba .Resources .GenerateXObjectName ();_ddba .Resources .SetXObjectFormByName (_fdade ,_gbfdg );_fdba ,_beee ,_aeab :=_gebfa (_gbfdg );if _aeab !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0061\u0070p\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u004d\u0061\u0074\u0072\u0069\u0078\u002c\u0020s\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0078\u0066\u006f\u0072\u006d\u0020\u0062\u0062\u006f\u0078\u0020\u0061\u0064\u006a\u0075\u0073t\u006d\u0065\u006e\u0074\u003a \u0025\u0076",_aeab );
+}else {_bgbff :=_eea .IdentityMatrix ();_bgbff =_bgbff .Translate (-_fdba .Llx ,-_fdba .Lly );if _beee {_aggfg :=1.0;if _fdba .Width ()> 0{_aggfg =_df .Round (_cagb .Width ()/_fdba .Width ());};_gbgc :=1.0;if _fdba .Height ()> 0{_gbgc =_df .Round (_cagb .Height ()/_fdba .Height ());
+};_bgbff =_bgbff .Scale (_aggfg ,_gbgc );};_cagb .Transform (_bgbff );};_bfcca :=_df .Min (_cagb .Llx ,_cagb .Urx );_agdcb :=_df .Min (_cagb .Lly ,_cagb .Ury );var _fcadd []string ;_fcadd =append (_fcadd ,"\u0071");_fcadd =append (_fcadd ,_d .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_bfcca ,_agdcb ));
+_fcadd =append (_fcadd ,_d .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_fdade .String ()));_fcadd =append (_fcadd ,"\u0051");_bcea :=_af .Join (_fcadd ,"\u000a");_aeab =_ddba .AppendContentStream (_bcea );if _aeab !=nil {return _aeab ;};if _gbfdg .Resources !=nil {_edadbb ,_fbef :=_dfg .GetDict (_gbfdg .Resources .Font );
+if _fbef {for _ ,_ecbd :=range _edadbb .Keys (){if !_ddba .Resources .HasFontByName (_ecbd ){_ddba .Resources .SetFontByName (_ecbd ,_edadbb .Get (_ecbd ));};};};};};if len (_dfaa )> 0{_ddba ._dbec =_dfaa ;}else {_ddba ._dbec =[]*PdfAnnotation {};};return nil ;
+};
+
+// Fill populates `form` with values provided by `provider`.
+func (_dbaec *PdfAcroForm )Fill (provider FieldValueProvider )error {return _dbaec .fill (provider ,nil )};
+
+// EncryptOptions represents encryption options for an output PDF.
+type EncryptOptions struct{Permissions _fc .Permissions ;Algorithm EncryptionAlgorithm ;};func (_acddg Image )getBase ()_ef .ImageBase {return _ef .NewImageBase (int (_acddg .Width ),int (_acddg .Height ),int (_acddg .BitsPerComponent ),_acddg .ColorComponents ,_acddg .Data ,_acddg ._baeef ,_acddg ._begcc );
+};
+
+// AddExtGState adds a graphics state to the XObject resources.
+func (_cccab *PdfPage )AddExtGState (name _dfg .PdfObjectName ,egs *_dfg .PdfObjectDictionary )error {if _cccab .Resources ==nil {_cccab .Resources =NewPdfPageResources ();};if _cccab .Resources .ExtGState ==nil {_cccab .Resources .ExtGState =_dfg .MakeDict ();
+};_efea ,_fefc :=_dfg .TraceToDirectObject (_cccab .Resources .ExtGState ).(*_dfg .PdfObjectDictionary );if !_fefc {_egb .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0045\u0078t\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0064i\u0063t\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a\u0020\u0025\u0076",_dfg .TraceToDirectObject (_cccab .Resources .ExtGState ));
+return _bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_efea .Set (name ,egs );return nil ;};
+
+// GetContentStreamObjs returns a slice of PDF objects containing the content
+// streams of the page.
+func (_dfadc *PdfPage )GetContentStreamObjs ()[]_dfg .PdfObject {if _dfadc .Contents ==nil {return nil ;};_fadd :=_dfg .TraceToDirectObject (_dfadc .Contents );if _bbecb ,_abbcf :=_fadd .(*_dfg .PdfObjectArray );_abbcf {return _bbecb .Elements ();};return []_dfg .PdfObject {_fadd };
+};
+
+// StructureType represents a standard structure type in a tagged PDF document.
+type StructureType string ;
+
+// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
+// components. The slice should contain three PdfObjectFloat elements representing
+// the A, B and C components of the color.
+func (_ddeb *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdbc ,_ceaf :=_dfg .GetNumbersAsFloat (objects );
+if _ceaf !=nil {return nil ,_ceaf ;};return _ddeb .ColorFromFloats (_cdbc );};type pdfFontSimple struct{fontCommon ;_fdcbb *_dfg .PdfIndirectObject ;_aefba map[_ff .CharCode ]float64 ;_febca _ff .TextEncoder ;_eabff _ff .TextEncoder ;_gdegd *PdfFontDescriptor ;
+
+
+// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
+// BaseFont is derived differently.
+FirstChar _dfg .PdfObject ;LastChar _dfg .PdfObject ;Widths _dfg .PdfObject ;Encoding _dfg .PdfObject ;_eecea *_bf .RuneCharSafeMap ;};
+
+// PdfActionImportData represents a importData action.
+type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
+
+// RemveTabOrder removes the tab order for the page.
+func (_abgab *PdfPage )RemoveTabOrder (){_abgab .Tabs =nil };
+
+// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
+type ContentStreamWrapper interface{WrapContentStream (_cbgdg *PdfPage )error ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_egf *PdfActionSubmitForm )ToPdfObject ()_dfg .PdfObject {_egf .PdfAction .ToPdfObject ();_eeb :=_egf ._fe ;_acf :=_eeb .PdfObject .(*_dfg .PdfObjectDictionary );_acf .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeSubmitForm )));if _egf .F !=nil {_acf .Set ("\u0046",_egf .F .ToPdfObject ());
+};_acf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_egf .Fields );_acf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_egf .Flags );return _eeb ;};func _bbfgg (_fgefge string )(map[_ff .CharCode ]_ff .GlyphName ,error ){_deeg :=_af .Split (_fgefge ,"\u000a");
+_bbccd :=make (map[_ff .CharCode ]_ff .GlyphName );for _ ,_bcbef :=range _deeg {_fegdc :=_fggf .FindStringSubmatch (_bcbef );if _fegdc ==nil {continue ;};_fdaa ,_aedde :=_fegdc [1],_fegdc [2];_accg ,_gcgg :=_gg .Atoi (_fdaa );if _gcgg !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004fR\u003a\u0020\u0042\u0061\u0064\u0020\u0065\u006e\u0063\u006fd\u0069n\u0067\u0020\u006c\u0069\u006e\u0065\u002e \u0025\u0071",_bcbef );
+return nil ,_dfg .ErrTypeError ;};_bbccd [_ff .CharCode (_accg )]=_ff .GlyphName (_aedde );};_egb .Log .Trace ("g\u0065\u0074\u0045\u006e\u0063\u006fd\u0069\u006e\u0067\u0073\u003a\u0020\u006b\u0065\u0079V\u0061\u006c\u0075e\u0073=\u0025\u0023\u0076",_bbccd );
+return _bbccd ,nil ;};func _agafd (_egdgf _bf .StdFont )pdfFontSimple {_aafae :=_egdgf .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_gdab :"\u0054\u0079\u0070e\u0031",_dbcbc :_egdgf .Name ()},_eecea :_egdgf .GetMetricsTable (),_gdegd :&PdfFontDescriptor {FontName :_dfg .MakeName (string (_aafae .Name )),FontFamily :_dfg .MakeName (_aafae .Family ),FontWeight :_dfg .MakeFloat (float64 (_aafae .Weight )),Flags :_dfg .MakeInteger (int64 (_aafae .Flags )),FontBBox :_dfg .MakeArrayFromFloats (_aafae .BBox [:]),ItalicAngle :_dfg .MakeFloat (_aafae .ItalicAngle ),Ascent :_dfg .MakeFloat (_aafae .Ascent ),Descent :_dfg .MakeFloat (_aafae .Descent ),CapHeight :_dfg .MakeFloat (_aafae .CapHeight ),XHeight :_dfg .MakeFloat (_aafae .XHeight ),StemV :_dfg .MakeFloat (_aafae .StemV ),StemH :_dfg .MakeFloat (_aafae .StemH )},_eabff :_egdgf .Encoder ()};
+};
+
+// SetPdfSubject sets the Subject attribute of the output PDF.
+func SetPdfSubject (subject string ){_dfbaa .Lock ();defer _dfbaa .Unlock ();_gabfe =subject };func (_gbef *PdfReader )lookupPageByObject (_ceefab _dfg .PdfObject )(*PdfPage ,error ){return nil ,_bd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
+};
+
+// ToPdfObject implements interface PdfModel.
+func (_dfga *PdfAnnotationPrinterMark )ToPdfObject ()_dfg .PdfObject {_dfga .PdfAnnotation .ToPdfObject ();_bdfe :=_dfga ._afae ;_fdac :=_bdfe .PdfObject .(*_dfg .PdfObjectDictionary );_fdac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
+_fdac .SetIfNotNil ("\u004d\u004e",_dfga .MN );return _bdfe ;};
+
+// IsTerminal returns true for terminal fields, false otherwise.
+// Terminal fields are fields whose descendants are only widget annotations.
+func (_dddead *PdfField )IsTerminal ()bool {return len (_dddead .Kids )==0};
+
+// GetNumComponents returns the number of color components of the colorspace device.
+// Returns 3 for an RGB device.
+func (_gbgb *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
+
+// RemoveChildAt removes a child at the specified index from the kChildren slice.
+func (_cbdb *KDict )RemoveChildAt (index int )bool {if index < 0||index >=len (_cbdb ._dcgedc ){return false ;};_cbdb ._dcgedc =append (_cbdb ._dcgedc [:index ],_cbdb ._dcgedc [index +1:]...);return true ;};func _cccge (_cafgf *_dfg .PdfIndirectObject )(*PdfOutline ,error ){_bedfg ,_bedag :=_cafgf .PdfObject .(*_dfg .PdfObjectDictionary );
+if !_bedag {return nil ,_d .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_abaaca :=NewPdfOutline ();if _bdgd :=_bedfg .Get ("\u0054\u0079\u0070\u0065");
+_bdgd !=nil {_fdbc ,_eacb :=_bdgd .(*_dfg .PdfObjectName );if _eacb {if *_fdbc !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_egb .Log .Debug ("E\u0052\u0052\u004f\u0052\u0020\u0054y\u0070\u0065\u0020\u0021\u003d\u0020\u004f\u0075\u0074l\u0069\u006e\u0065s\u0020(\u0025\u0073\u0029",*_fdbc );
+};};};if _gdga :=_bedfg .Get ("\u0043\u006f\u0075n\u0074");_gdga !=nil {_abbb ,_beded :=_dfg .GetNumberAsInt64 (_gdga );if _beded !=nil {return nil ,_beded ;};_abaaca .Count =&_abbb ;};return _abaaca ,nil ;};
+
+// FieldFilterFunc represents a PDF field filtering function. If the function
+// returns true, the PDF field is kept, otherwise it is discarded.
+type FieldFilterFunc func (*PdfField )bool ;
+
+// PdfAnnotationHighlight represents Highlight annotations.
+// (Section 12.5.6.10).
+type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _dfg .PdfObject ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_fgf *PdfActionNamed )ToPdfObject ()_dfg .PdfObject {_fgf .PdfAction .ToPdfObject ();_fgad :=_fgf ._fe ;_bgg :=_fgad .PdfObject .(*_dfg .PdfObjectDictionary );_bgg .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeNamed )));_bgg .SetIfNotNil ("\u004e",_fgf .N );
+return _fgad ;};
+
+// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
+// containing the field dictionary.
+func (_eeafd *PdfField )GetContainingPdfObject ()_dfg .PdfObject {return _eeafd ._caaa };
+
+// ColorFromFloats returns a new PdfColor based on the input slice of color
+// components. The slice should contain three elements representing the
+// A, B and C components of the color. The values of the elements should be
+// between 0 and 1.
+func (_fgfa *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eggd :=vals [0];if _eggd < 0.0||_eggd > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eggd );
+return nil ,ErrColorOutOfRange ;};_eefg :=vals [1];if _eefg < 0.0||_eefg > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eefg );return nil ,ErrColorOutOfRange ;
+};_ecgfc :=vals [2];if _ecgfc < 0.0||_ecgfc > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ecgfc );return nil ,ErrColorOutOfRange ;};_bdfdg :=NewPdfColorCalRGB (_eggd ,_eefg ,_ecgfc );
+return _bdfdg ,nil ;};
+
+// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
+type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_dfg .PdfObjectInteger ;BitsPerComponent *_dfg .PdfObjectInteger ;BitsPerFlag *_dfg .PdfObjectInteger ;Decode *_dfg .PdfObjectArray ;Function []PdfFunction ;};
+
+// Transform rectangle with the supplied matrix.
+func (_dgbbf *PdfRectangle )Transform (transformMatrix _eea .Matrix ){_dgbbf .Llx ,_dgbbf .Lly =transformMatrix .Transform (_dgbbf .Llx ,_dgbbf .Lly );_dgbbf .Urx ,_dgbbf .Ury =transformMatrix .Transform (_dgbbf .Urx ,_dgbbf .Ury );_dgbbf .Normalize ();
+};
+
+// Write outputs the object as it is to be written to file.
+func (_gbegb *PdfTransformParamsDocMDP )Write ()[]byte {return _gbegb .ToPdfObject ().Write ()};
+
+// Y returns the value of the yellow component of the color.
+func (_fbbg *PdfColorDeviceCMYK )Y ()float64 {return _fbbg [2]};const (ActionTypeGoTo PdfActionType ="\u0047\u006f\u0054\u006f";ActionTypeGoTo3DView PdfActionType ="\u0047\u006f\u0054\u006f\u0033\u0044\u0056\u0069\u0065\u0077";ActionTypeGoToE PdfActionType ="\u0047\u006f\u0054o\u0045";
+ActionTypeGoToR PdfActionType ="\u0047\u006f\u0054o\u0052";ActionTypeHide PdfActionType ="\u0048\u0069\u0064\u0065";ActionTypeImportData PdfActionType ="\u0049\u006d\u0070\u006f\u0072\u0074\u0044\u0061\u0074\u0061";ActionTypeJavaScript PdfActionType ="\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074";
+ActionTypeLaunch PdfActionType ="\u004c\u0061\u0075\u006e\u0063\u0068";ActionTypeMovie PdfActionType ="\u004d\u006f\u0076i\u0065";ActionTypeNamed PdfActionType ="\u004e\u0061\u006de\u0064";ActionTypeRendition PdfActionType ="\u0052e\u006e\u0064\u0069\u0074\u0069\u006fn";
+ActionTypeResetForm PdfActionType ="\u0052e\u0073\u0065\u0074\u0046\u006f\u0072m";ActionTypeSetOCGState PdfActionType ="S\u0065\u0074\u004f\u0043\u0047\u0053\u0074\u0061\u0074\u0065";ActionTypeSound PdfActionType ="\u0053\u006f\u0075n\u0064";ActionTypeSubmitForm PdfActionType ="\u0053\u0075\u0062\u006d\u0069\u0074\u0046\u006f\u0072\u006d";
+ActionTypeThread PdfActionType ="\u0054\u0068\u0072\u0065\u0061\u0064";ActionTypeTrans PdfActionType ="\u0054\u0072\u0061n\u0073";ActionTypeURI PdfActionType ="\u0055\u0052\u0049";);func _bfdb (_fcgad *[]*PdfField ,_dcdc FieldFilterFunc ,_adff bool )[]*PdfField {if _fcgad ==nil {return nil ;
+};_caagd :=*_fcgad ;if len (*_fcgad )==0{return nil ;};_acddc :=_caagd [:0];if _dcdc ==nil {_dcdc =func (*PdfField )bool {return true };};var _cffb []*PdfField ;for _ ,_cfdea :=range _caagd {_afabc :=_dcdc (_cfdea );if _afabc {_cffb =append (_cffb ,_cfdea );
+if len (_cfdea .Kids )> 0{_cffb =append (_cffb ,_bfdb (&_cfdea .Kids ,_dcdc ,_adff )...);};};if !_adff ||!_afabc ||len (_cfdea .Kids )> 0{_acddc =append (_acddc ,_cfdea );};};*_fcgad =_acddc ;return _cffb ;};func (_ede *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
+func _baba (_afaef _dfg .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_fgcg :=NewPdfColorspaceSpecialSeparation ();if _eeff ,_efgef :=_afaef .(*_dfg .PdfIndirectObject );_efgef {_fgcg ._fdcef =_eeff ;};_afaef =_dfg .TraceToDirectObject (_afaef );
+_cdcce ,_caff :=_afaef .(*_dfg .PdfObjectArray );if !_caff {return nil ,_d .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");};if _cdcce .Len ()!=4{return nil ,_d .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");
+};_afaef =_cdcce .Get (0);_gabae ,_caff :=_afaef .(*_dfg .PdfObjectName );if !_caff {return nil ,_d .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
+};if *_gabae !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_d .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
+};_afaef =_cdcce .Get (1);_gabae ,_caff =_afaef .(*_dfg .PdfObjectName );if !_caff {return nil ,_d .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");
+};_fgcg .ColorantName =_gabae ;_afaef =_cdcce .Get (2);_ffgc ,_gecg :=NewPdfColorspaceFromPdfObject (_afaef );if _gecg !=nil {return nil ,_gecg ;};_fgcg .AlternateSpace =_ffgc ;_gdbd ,_gecg :=_gbada (_cdcce .Get (3));if _gecg !=nil {return nil ,_gecg ;
+};_fgcg .TintTransform =_gdbd ;return _fgcg ,nil ;};
+
+// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
+type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_dfg .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _dfg .PdfObject ;A _dfg .PdfObject ;SE _dfg .PdfObject ;C _dfg .PdfObject ;F _dfg .PdfObject ;
+_fcecb *_dfg .PdfIndirectObject ;};func (_afed *PdfReader )newPdfAnnotationWidgetFromDict (_bbcab *_dfg .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_ecga :=PdfAnnotationWidget {};_ecga .H =_bbcab .Get ("\u0048");_ecga .MK =_bbcab .Get ("\u004d\u004b");
+_ecga .A =_bbcab .Get ("\u0041");_ecga .AA =_bbcab .Get ("\u0041\u0041");_ecga .BS =_bbcab .Get ("\u0042\u0053");_ecga .Parent =_bbcab .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_ecga ,nil ;};type pdfSignDictionary struct{*_dfg .PdfObjectDictionary ;
+_adfa *SignatureHandler ;_abfbg *PdfSignature ;_dgead int64 ;_ffbffd int ;_ceffa int ;_fdfed int ;_gcdg int ;};
+
+// ColorToRGB converts a DeviceN color to an RGB color.
+func (_fcfc *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fcfc .AlternateSpace ==nil {return nil ,_bd .New ("\u0044\u0065\u0076\u0069\u0063\u0065N\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0065\u0020\u0073\u0070a\u0063\u0065\u0020\u0075\u006e\u0064\u0065f\u0069\u006e\u0065\u0064");
+};return _fcfc .AlternateSpace .ColorToRGB (color );};
+
+// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
+// The bool flag indicated whether it was found or not.
+func (_bbcca *PdfPageResources )GetPatternByName (keyName _dfg .PdfObjectName )(*PdfPattern ,bool ){if _bbcca .Pattern ==nil {return nil ,false ;};_bfcge ,_egaae :=_dfg .TraceToDirectObject (_bbcca .Pattern ).(*_dfg .PdfObjectDictionary );if !_egaae {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074t\u0065\u0072\u006e\u0020\u0065\u006e\u0074r\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064i\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_bbcca .Pattern );
+return nil ,false ;};if _eeaeg :=_bfcge .Get (keyName );_eeaeg !=nil {_dgccc ,_ddbcb :=_beeb (_eeaeg );if _ddbcb !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020f\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u006c\u006fa\u0064\u0020\u0070\u0064\u0066\u0020\u0070\u0061\u0074\u0074\u0065\u0072n\u003a\u0020\u0025\u0076",_ddbcb );
+return nil ,false ;};return _dgccc ,true ;};return nil ,false ;};func _gdafa (_dfdc *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_cfeab ,_aefe :=_dfg .GetDict (_dfdc .AP );if !_aefe {return nil ,nil ,_bd .New ("f\u0069\u0065\u006c\u0064\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u0020\u0041\u0050\u0020d\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079");
+};if _cfeab ==nil {return nil ,nil ,nil ;};_fefeb ,_aefe :=_dfg .GetArray (_dfdc .Rect );if !_aefe ||_fefeb .Len ()!=4{return nil ,nil ,_bd .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_ecedd ,_abcce :=NewPdfRectangle (*_fefeb );
+if _abcce !=nil {return nil ,nil ,_abcce ;};_eggda :=_dfg .TraceToDirectObject (_cfeab .Get ("\u004e"));switch _defea :=_eggda .(type ){case *_dfg .PdfObjectStream :_ffcf :=_defea ;_gfgcc ,_bbbc :=NewXObjectFormFromStream (_ffcf );return _gfgcc ,_ecedd ,_bbbc ;
+case *_dfg .PdfObjectDictionary :_bfcg :=_defea ;if _bfcg ==nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0067e\u0074\u0020\u0061\u0070\u0070\u0065\u0061r\u0061\u006e\u0063\u0065\u002e\u0020\u0044\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
+return nil ,nil ,nil ;};var _gcad _dfg .PdfObject ;_abacg ,_bgaf :=_dfg .GetName (_dfdc .AS );if _bgaf {_gcad =_bfcg .Get (*_abacg );}else {_fbfa :=_dfdc ._afae .PdfObject .(*_dfg .PdfObjectDictionary );if _fbfa ==nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020F\u0061\u0069\u006ce\u0064\u0020\u0074\u006f \u0067\u0065\u0074\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u0076\u0061\u006c\u0075\u0065\u002e");
+return nil ,nil ,nil ;};if _cabed :=_fbfa .Get ("\u0056");_cabed !=nil {_gcad =_bfcg .Get (_dfg .PdfObjectName (_cabed .String ()));};};if _gcad ==nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0041\u0053\u0020\u0073\u0074\u0061\u0074\u0065\u0020\u006e\u006f\u0074 \u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0069\u006e\u0020\u0041\u0050\u0020\u0064\u0069\u0063\u0074\u0020\u002d\u0020\u0069\u0067\u006e\u006f\u0072\u0069\u006eg");
+return nil ,nil ,nil ;};_bfcf ,_bgaf :=_dfg .GetStream (_gcad );if !_bgaf {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055n\u0061\u0062\u006ce \u0074\u006f\u0020\u0061\u0063\u0063e\u0073\u0073\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u0066\u006f\u0072 \u0025\u0076",_abacg );
+return nil ,nil ,_bd .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_cfdfc ,_dbcbf :=NewXObjectFormFromStream (_bfcf );return _cfdfc ,_ecedd ,_dbcbf ;};_egb .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_eggda );
+return nil ,nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
+
+// PdfAnnotationPolyLine represents PolyLine annotations.
+// (Section 12.5.6.9).
+type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _dfg .PdfObject ;LE _dfg .PdfObject ;BS _dfg .PdfObject ;IC _dfg .PdfObject ;BE _dfg .PdfObject ;IT _dfg .PdfObject ;Measure _dfg .PdfObject ;};
+
+// AppendContentBytes creates a PDF stream from `cs` and appends it to the
+// array of streams specified by the pages's Contents entry.
+// If `wrapContents` is true, the content stream of the page is wrapped using
+// a `q/Q` operator pair, so that its state does not affect the appended
+// content stream.
+func (_agbce *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_ecefe :=_agbce .GetContentStreamObjs ();wrapContents =wrapContents &&len (_ecefe )> 0;_agfb :=_dfg .NewFlateEncoder ();_adgg :=_dfg .MakeArray ();if wrapContents {_fcbdd ,_ggddb :=_dfg .MakeStream ([]byte ("\u0071\u000a"),_agfb );
+if _ggddb !=nil {return _ggddb ;};_adgg .Append (_fcbdd );};_adgg .Append (_ecefe ...);if wrapContents {_cbag ,_gdcdg :=_dfg .MakeStream ([]byte ("\u000a\u0051\u000a"),_agfb );if _gdcdg !=nil {return _gdcdg ;};_adgg .Append (_cbag );};_eddfe ,_cgaga :=_dfg .MakeStream (cs ,_agfb );
+if _cgaga !=nil {return _cgaga ;};_adgg .Append (_eddfe );_agbce .Contents =_adgg ;return nil ;};
+
+// NewStandardPdfOutputIntent creates a new standard PdfOutputIntent.
+func NewStandardPdfOutputIntent (outputCondition ,outputConditionIdentifier ,registryName string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,RegistryName :registryName ,DestOutputProfile :destOutputProfile ,ColorComponents :colorComponents ,_gacff :_dfg .MakeDict ()};
+};
+
+// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
+func (_ggfbd *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _ggfbd ._bfaedb .(*PdfTilingPattern );};
+
+// ToPdfObject converts the K dictionary to a PDF object.
+func (_fdada *KValue )ToPdfObject ()_dfg .PdfObject {if _fdada ._badbf !=nil {return _dfg .MakeIndirectObject (_fdada ._badbf .ToPdfObject ());};if _fdada ._gbedc !=nil {return _fdada ._gbedc ;};if _fdada ._dddge !=nil {return _dfg .MakeInteger (int64 (*_fdada ._dddge ));
+};return nil ;};
+
+// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
+func (_fgbg *PdfField )SetContext (ctx PdfModel ){_fgbg ._agcfe =ctx };
+
+// ToGoTime returns the date in time.Time format.
+func (_badfc PdfDate )ToGoTime ()_ge .Time {_bgede :=int (_badfc ._adgc *60*60+_badfc ._aaggg *60);switch _badfc ._fedac {case '-':_bgede =-_bgede ;case 'Z':_bgede =0;};_fccgeb :=_d .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_badfc ._fedac ,_badfc ._adgc ,_badfc ._aaggg );
+_cadaa :=_ge .FixedZone (_fccgeb ,_bgede );return _ge .Date (int (_badfc ._accga ),_ge .Month (_badfc ._fedabd ),int (_badfc ._agfc ),int (_badfc ._cgae ),int (_badfc ._abggb ),int (_badfc ._dbddf ),0,_cadaa );};
+
+// FullName returns the full name of the field as in rootname.parentname.partialname.
+func (_gbce *PdfField )FullName ()(string ,error ){var _efae _cca .Buffer ;_cfbd :=[]string {};if _gbce .T !=nil {_cfbd =append (_cfbd ,_gbce .T .Decoded ());};_cfgb :=map[*PdfField ]bool {};_cfgb [_gbce ]=true ;_ggggdd :=_gbce .Parent ;for _ggggdd !=nil {if _ ,_dbbba :=_cfgb [_ggggdd ];
+_dbbba {return _efae .String (),_bd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _ggggdd .T ==nil {return _efae .String (),_bd .New ("\u0066\u0069el\u0064\u0020\u0070a\u0072\u0074\u0069\u0061l n\u0061me\u0020\u0028\u0054\u0029\u0020\u006e\u006ft \u0073\u0070\u0065\u0063\u0069\u0066\u0069e\u0064");
+};_cfbd =append (_cfbd ,_ggggdd .T .Decoded ());_cfgb [_ggggdd ]=true ;_ggggdd =_ggggdd .Parent ;};for _ffdc :=len (_cfbd )-1;_ffdc >=0;_ffdc --{_efae .WriteString (_cfbd [_ffdc ]);if _ffdc > 0{_efae .WriteString ("\u002e");};};return _efae .String (),nil ;
+};
+
+// WriteToFile writes the Appender output to file specified by path.
+func (_ceed *PdfAppender )WriteToFile (outputPath string )error {_cddff ,_efagc :=_ga .Create (outputPath );if _efagc !=nil {return _efagc ;};defer _cddff .Close ();return _ceed .Write (_cddff );};func _eddb (_dcgg _dfg .PdfObject )(*PdfColorspaceICCBased ,error ){_dfad :=&PdfColorspaceICCBased {};
+if _bdcf ,_fdffc :=_dcgg .(*_dfg .PdfIndirectObject );_fdffc {_dfad ._ggdb =_bdcf ;};_dcgg =_dfg .TraceToDirectObject (_dcgg );_ffc ,_fefg :=_dcgg .(*_dfg .PdfObjectArray );if !_fefg {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
+};if _ffc .Len ()!=2{return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");};_dcgg =_dfg .TraceToDirectObject (_ffc .Get (0));_cbgde ,_fefg :=_dcgg .(*_dfg .PdfObjectName );
+if !_fefg {return nil ,_d .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};if *_cbgde !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_d .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");
+};_dcgg =_ffc .Get (1);_gedbc ,_fefg :=_dfg .GetStream (_dcgg );if !_fefg {_egb .Log .Error ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006e\u006f\u0074\u0020\u0070o\u0069\u006e\u0074\u0069\u006e\u0067\u0020t\u006f\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020%\u0054",_dcgg );
+return nil ,_d .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_baac :=_gedbc .PdfObjectDictionary ;_acde ,_fefg :=_baac .Get ("\u004e").(*_dfg .PdfObjectInteger );
+if !_fefg {return nil ,_d .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_acde !=1&&*_acde !=3&&*_acde !=4{return nil ,_d .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");
+};_dfad .N =int (*_acde );if _gbgba :=_baac .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_gbgba !=nil {_debf ,_age :=NewPdfColorspaceFromPdfObject (_gbgba );if _age !=nil {return nil ,_age ;};_dfad .Alternate =_debf ;};if _aadg :=_baac .Get ("\u0052\u0061\u006eg\u0065");
+_aadg !=nil {_aadg =_dfg .TraceToDirectObject (_aadg );_cdcf ,_gbbd :=_aadg .(*_dfg .PdfObjectArray );if !_gbbd {return nil ,_d .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");
+};if _cdcf .Len ()!=2*_dfad .N {return nil ,_d .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");
+};_bdec ,_ccag :=_cdcf .GetAsFloat64Slice ();if _ccag !=nil {return nil ,_ccag ;};_dfad .Range =_bdec ;}else {_dfad .Range =make ([]float64 ,2*_dfad .N );for _bdaa :=0;_bdaa < _dfad .N ;_bdaa ++{_dfad .Range [2*_bdaa ]=0.0;_dfad .Range [2*_bdaa +1]=1.0;
+};};if _fedfg :=_baac .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fedfg !=nil {_fageb ,_cefe :=_fedfg .(*_dfg .PdfObjectStream );if !_cefe {return nil ,_d .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
+};_dfad .Metadata =_fageb ;};_gdaf ,_agaeb :=_dfg .DecodeStream (_gedbc );if _agaeb !=nil {return nil ,_agaeb ;};_dfad .Data =_gdaf ;_dfad ._edadb =_gedbc ;return _dfad ,nil ;};func (_eggcb *PdfWriter )addObjects (_aaaba _dfg .PdfObject )error {_egb .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");
+if _gecag ,_cdccb :=_aaaba .(*_dfg .PdfIndirectObject );_cdccb {_egb .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_egb .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_aaaba ,_gecag );_egb .Log .Trace ("\u002d\u0020\u0025\u0073",_gecag .PdfObject );
+if _eggcb .addObject (_gecag ){_cggba :=_eggcb .addObjects (_gecag .PdfObject );if _cggba !=nil {return _cggba ;};};return nil ;};if _fffec ,_aaece :=_aaaba .(*_dfg .PdfObjectStream );_aaece {_egb .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_egb .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_aaaba ,_aaaba );
+if _eggcb .addObject (_fffec ){_acdbf :=_eggcb .addObjects (_fffec .PdfObjectDictionary );if _acdbf !=nil {return _acdbf ;};};return nil ;};if _cggdd ,_aceac :=_aaaba .(*_dfg .PdfObjectDictionary );_aceac {_egb .Log .Trace ("\u0044\u0069\u0063\u0074");
+_egb .Log .Trace ("\u002d\u0020\u0025\u0073",_aaaba );for _ ,_ecgaf :=range _cggdd .Keys (){_ecaab :=_cggdd .Get (_ecgaf );if _gecde ,_dbbgd :=_ecaab .(*_dfg .PdfObjectReference );_dbbgd {_ecaab =_gecde .Resolve ();_cggdd .Set (_ecgaf ,_ecaab );};if _ecgaf !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _dccdf :=_eggcb .addObjects (_ecaab );
+_dccdf !=nil {return _dccdf ;};}else {if _ ,_bgbfd :=_ecaab .(*_dfg .PdfObjectNull );_bgbfd {continue ;};if _dfbcdf :=_eggcb .hasObject (_ecaab );!_dfbcdf {_egb .Log .Debug ("P\u0061\u0072\u0065\u006e\u0074\u0020o\u0062\u006a\u0020\u006e\u006f\u0074 \u0061\u0064\u0064\u0065\u0064\u0020\u0079e\u0074\u0021\u0021\u0020\u0025\u0054\u0020\u0025\u0070\u0020%\u0076",_ecaab ,_ecaab ,_ecaab );
+_eggcb ._fgebdb [_ecaab ]=append (_eggcb ._fgebdb [_ecaab ],_cggdd );};};};return nil ;};if _agdcba ,_eebgf :=_aaaba .(*_dfg .PdfObjectArray );_eebgf {_egb .Log .Trace ("\u0041\u0072\u0072a\u0079");_egb .Log .Trace ("\u002d\u0020\u0025\u0073",_aaaba );
+if _agdcba ==nil {return _bd .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};for _bfebe ,_dafe :=range _agdcba .Elements (){if _gffb ,_ggcd :=_dafe .(*_dfg .PdfObjectReference );_ggcd {_dafe =_gffb .Resolve ();_agdcba .Set (_bfebe ,_dafe );
+};if _fbdde :=_eggcb .addObjects (_dafe );_fbdde !=nil {return _fbdde ;};};return nil ;};if _ ,_ffdeb :=_aaaba .(*_dfg .PdfObjectReference );_ffdeb {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u0061\u006e\u006e\u006f\u0074 \u0062\u0065\u0020\u0061\u0020\u0072e\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0020\u002d\u0020\u0067\u006f\u0074 \u0025\u0023\u0076\u0021",_aaaba );
+return _bd .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
+
+// ColorToRGB converts an Indexed color to an RGB color.
+func (_ggeec *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _ggeec .Base ==nil {return nil ,_bd .New ("\u0069\u006e\u0064\u0065\u0078\u0065d\u0020\u0062\u0061\u0073\u0065\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u0075\u006e\u0064\u0065f\u0069\u006e\u0065\u0064");
+};return _ggeec .Base .ColorToRGB (color );};func (_dfeae *PdfWriter )checkCrossReferenceStream ()bool {_gggef :=_dfeae ._cfbcb .Major > 1||(_dfeae ._cfbcb .Major ==1&&_dfeae ._cfbcb .Minor > 4);if _dfeae ._ecbad !=nil {_gggef =*_dfeae ._ecbad ;};return _gggef ;
+};
+
+// NewPdfAction returns an initialized generic PDF action model.
+func NewPdfAction ()*PdfAction {_fg :=&PdfAction {};_fg ._fe =_dfg .MakeIndirectObject (_dfg .MakeDict ());return _fg ;};func (_gffc *PdfReader )newPdfActionTransFromDict (_bfcc *_dfg .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_bfcc .Get ("\u0054\u0072\u0061n\u0073")},nil ;
+};
+
+// ColorFromFloats returns a new PdfColor based on the input slice of color
+// components.
+func (_fbed *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _fbed .Alternate ==nil {if _fbed .N ==1{_agea :=NewPdfColorspaceDeviceGray ();return _agea .ColorFromFloats (vals );}else if _fbed .N ==3{_bgbf :=NewPdfColorspaceDeviceRGB ();
+return _bgbf .ColorFromFloats (vals );}else if _fbed .N ==4{_egeg :=NewPdfColorspaceDeviceCMYK ();return _egeg .ColorFromFloats (vals );}else {return nil ,_bd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
+};};return _fbed .Alternate .ColorFromFloats (vals );};
+
+// NewPdfReaderWithOpts creates a new PdfReader for an input io.ReadSeeker interface
+// with a ReaderOpts.
+// If ReaderOpts is nil it will be set to default value from NewReaderOpts.
+func NewPdfReaderWithOpts (rs _edg .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _aacce ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0057\u0069\u0074\u0068O\u0070\u0074\u0073";return _dafc (rs ,opts ,true ,_aacce );
+};
+
+// String implements interface PdfObject.
+func (_ece *PdfAction )String ()string {_ae ,_gdf :=_ece .ToPdfObject ().(*_dfg .PdfIndirectObject );if _gdf {return _d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ece ._bdb ,_ae .PdfObject .String ());};return "";};
+
+// GetNumPages returns the number of pages in the document.
+func (_gddaa *PdfReader )GetNumPages ()(int ,error ){if _gddaa ._agbcd .GetCrypter ()!=nil &&!_gddaa ._agbcd .IsAuthenticated (){return 0,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
+};return len (_gddaa ._ggbf ),nil ;};
+
+// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
+func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_bea :=NewPdfAnnotation ();_fcea :=&PdfAnnotationStrikeOut {};_fcea .PdfAnnotation =_bea ;_fcea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bea .SetContext (_fcea );return _fcea ;};
+
+// SetName sets the `Name` field of the signature.
+func (_acbbg *PdfSignature )SetName (name string ){_acbbg .Name =_dfg .MakeEncodedString (name ,true )};
+
+// GetOCProperties returns the optional content properties PdfObject.
+func (_efeab *PdfReader )GetOCProperties ()(_dfg .PdfObject ,error ){_gcfd :=_efeab ._fbfgb ;_gcaed :=_gcfd .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gcaed =_dfg .ResolveReference (_gcaed );if !_efeab ._bafba {_bccge :=_efeab .traverseObjectData (_gcaed );
+if _bccge !=nil {return nil ,_bccge ;};};return _gcaed ,nil ;};
+
+// PdfModel is a higher level PDF construct which can be collapsed into a PdfObject.
+// Each PdfModel has an underlying PdfObject and vice versa (one-to-one).
+// Under normal circumstances there should only be one copy of each.
+// Copies can be made, but care must be taken to do it properly.
+type PdfModel interface{ToPdfObject ()_dfg .PdfObject ;GetContainingPdfObject ()_dfg .PdfObject ;};
+
+// PdfInfo holds document information that will overwrite
+// document information global variables defined above.
+type PdfInfo struct{Title *_dfg .PdfObjectString ;Author *_dfg .PdfObjectString ;Subject *_dfg .PdfObjectString ;Keywords *_dfg .PdfObjectString ;Creator *_dfg .PdfObjectString ;Producer *_dfg .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;
+Trapped *_dfg .PdfObjectName ;_gdaaeb *_dfg .PdfObjectDictionary ;};
+
+// ImageToRGB convert an indexed image to RGB.
+func (_eccb *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_eccb .Base .GetNumComponents ();if N < 1{return Image {},_d .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );
+};_ebgf :=_ef .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._baeef ,img ._begcc );_ffe :=_efe .NewReader (img .getBase ());_agfag :=_efe .NewWriter (_ebgf );var (_eceg uint32 ;_eaaef int ;_eeeg error ;);for {_eceg ,_eeeg =_ffe .ReadSample ();
+if _eeeg ==_edg .EOF {break ;}else if _eeeg !=nil {return img ,_eeeg ;};_eaaef =int (_eceg );_egb .Log .Trace ("\u0049\u006ed\u0065\u0078\u0065\u0064\u003a\u0020\u0069\u006e\u0064\u0065\u0078\u003d\u0025\u0064\u0020\u004e\u003d\u0025\u0064\u0020\u006c\u0075t=\u0025\u0064",_eaaef ,N ,len (_eccb ._gcee ));
+if (_eaaef +1)*N > len (_eccb ._gcee ){_eaaef =len (_eccb ._gcee )/N -1;_egb .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_eaaef );if _eaaef < 0{_egb .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0043a\u006e\u0027\u0074\u0020\u0063\u006c\u0069p\u0020\u0069\u006e\u0064\u0065\u0078.\u0020\u0049\u0073\u0020\u0050\u0044\u0046\u0020\u0066\u0069\u006ce\u0020\u0064\u0061\u006d\u0061\u0067\u0065\u0064\u003f");
+break ;};};for _aggb :=_eaaef *N ;_aggb < (_eaaef +1)*N ;_aggb ++{if _eeeg =_agfag .WriteSample (uint32 (_eccb ._gcee [_aggb ]));_eeeg !=nil {return img ,_eeeg ;};};};return _eccb .Base .ImageToRGB (_deba (&_ebgf ));};
+
+// PdfFunctionType2 defines an exponential interpolation of one input value and n
+// output values:
+//
+// f(x) = y_0, ..., y_(n-1)
+//
+// y_j = C0_j + x^N * (C1_j - C0_j); for 0 <= j < n
+// When N=1 ; linear interpolation between C0 and C1.
+type PdfFunctionType2 struct{Domain []float64 ;Range []float64 ;C0 []float64 ;C1 []float64 ;N float64 ;_gggdd *_dfg .PdfIndirectObject ;};
+
+// NewEmbeddedFileFromObject construct a new EmbeddedFile from supplied object.
+func NewEmbeddedFileFromObject (obj _dfg .PdfObject )(*EmbeddedFile ,error ){_cefag :=_dfg .TraceToDirectObject (obj );_ebcg ,_dafaa :=_cefag .(*_dfg .PdfObjectDictionary );if !_dafaa {return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006fb\u006a\u0065\u0063\u0074");
+};_eccf :=_dfg .TraceToDirectObject (_ebcg .Get ("\u0046"));if _eccf ==nil {return nil ,_bd .New ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0073\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065");};_eadf ,_dafaa :=_eccf .(*_dfg .PdfObjectStream );
+if !_dafaa {return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073t\u0072\u0065\u0061\u006d");};_gfafa :=_eadf .PdfObjectDictionary ;_gfec :=_gfafa .Get ("\u0050\u0061\u0072\u0061\u006d\u0073");if _gfec ==nil {return nil ,_bd .New ("p\u0061\u0072\u0061\u006d\u0073\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0061\u0076\u0061i\u006ca\u0062\u006c\u0065");
+};_aade ,_dafaa :=_gfec .(*_dfg .PdfObjectDictionary );if !_dafaa {return nil ,_bd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0061\u006d\u0073 \u006f\u0062\u006a\u0065\u0063\u0074");};_aceg :="";_ecdc :=_aade .Get ("\u0043\u0068\u0065\u0063\u006b\u0053\u0075\u006d");
+if _ecdc !=nil {_aceg =_ecdc .(*_dfg .PdfObjectString ).Str ();};_cdgga ,_deeb :=_dfg .DecodeStream (_eadf );if _deeb !=nil {return nil ,_deeb ;};_afcd :=&EmbeddedFile {Content :_cdgga ,Hash :_aceg };return _afcd ,nil ;};func (_bebfce *PdfPattern )getDict ()*_dfg .PdfObjectDictionary {if _edcdb ,_defc :=_bebfce ._adcec .(*_dfg .PdfIndirectObject );
+_defc {_abdff ,_edbcff :=_edcdb .PdfObject .(*_dfg .PdfObjectDictionary );if !_edbcff {return nil ;};return _abdff ;}else if _gfgbc ,_cebbb :=_bebfce ._adcec .(*_dfg .PdfObjectStream );_cebbb {return _gfgbc .PdfObjectDictionary ;}else {_egb .Log .Debug ("\u0054r\u0079\u0069\u006e\u0067\u0020\u0074\u006f a\u0063\u0063\u0065\u0073\u0073\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020d\u0069\u0063t\u0069\u006f\u006ea\u0072\u0079\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063t \u0074\u0079\u0070e\u0020\u0028\u0025\u0054\u0029",_bebfce ._adcec );
+return nil ;};};
+
+// PdfColorspaceSpecialSeparation is a Separation colorspace.
+// At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the
+// device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming
+// reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the
+// space shall apply the designated colorant directly, according to the tint values supplied.
+//
+// Format: [/Separation name alternateSpace tintTransform]
+type PdfColorspaceSpecialSeparation struct{ColorantName *_dfg .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_fdcef *_dfg .PdfIndirectObject ;};
+
+// ColorFromFloats returns a new PdfColor based on the input slice of color
+// components. The slice should contain a single element between 0 and 1.
+func (_dcaf *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcecf :=vals [0];if _bcecf < 0.0||_bcecf > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bcecf );
+return nil ,ErrColorOutOfRange ;};_bfbaa :=NewPdfColorCalGray (_bcecf );return _bfbaa ,nil ;};
+
+// NewPdfDateFromTime will create a PdfDate based on the given time
+func NewPdfDateFromTime (timeObj _ge .Time )(PdfDate ,error ){_gddef :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_beede ,_ :=_gg .ParseInt (_gddef [1:3],10,32);_gfbfc ,_ :=_gg .ParseInt (_gddef [4:6],10,32);return PdfDate {_accga :int64 (timeObj .Year ()),_fedabd :int64 (timeObj .Month ()),_agfc :int64 (timeObj .Day ()),_cgae :int64 (timeObj .Hour ()),_abggb :int64 (timeObj .Minute ()),_dbddf :int64 (timeObj .Second ()),_fedac :_gddef [0],_adgc :_beede ,_aaggg :_gfbfc },nil ;
+};
+
+// String returns string value of output intent for given type
+// ISO_19005-2 6.2.3: GTS_PDFA1 value should be used for PDF/A-1, A-2 and A-3 at least
+func (_fafb PdfOutputIntentType )String ()string {switch _fafb {case PdfOutputIntentTypeA1 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeA2 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeA3 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";
+case PdfOutputIntentTypeA4 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeX :return "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058";default:return "\u0055N\u0044\u0045\u0046\u0049\u004e\u0045D";};};func (_cddgcb *PdfWriter )hasObject (_cdfcgc _dfg .PdfObject )bool {_ ,_gedga :=_cddgcb ._bgbee [_cdfcgc ];
+return _gedga ;};var _cbgbe =map[string ]struct{}{"\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{},"\u004d\u0061c\u0052\u006f\u006da\u006e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{},"\u004d\u0061\u0063\u0045\u0078\u0070\u0065\u0072\u0074\u0045\u006e\u0063o\u0064\u0069\u006e\u0067":{},"\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{}};
+
+
+// GenerateHashMaps generates DSS hashmaps for Certificates, OCSPs and CRLs to make sure they are unique.
+func (_dgee *DSS )GenerateHashMaps ()error {_ccbe ,_gccdgg :=_dgee .generateHashMap (_dgee .Certs );if _gccdgg !=nil {return _gccdgg ;};_bgge ,_gccdgg :=_dgee .generateHashMap (_dgee .OCSPs );if _gccdgg !=nil {return _gccdgg ;};_fgcb ,_gccdgg :=_dgee .generateHashMap (_dgee .CRLs );
+if _gccdgg !=nil {return _gccdgg ;};_dgee ._fbgf =_ccbe ;_dgee ._fecgg =_bgge ;_dgee ._cccc =_fgcb ;return nil ;};type pdfCIDFontType2 struct{fontCommon ;_dfgaa *_dfg .PdfIndirectObject ;_fbfb _ff .TextEncoder ;
+
+// Table 117 – Entries in a CIDFont dictionary (page 269)
+// Dictionary that defines the character collection of the CIDFont (required).
+// See Table 116.
+CIDSystemInfo *_dfg .PdfObjectDictionary ;
+
+// Glyph metrics fields (optional).
+DW _dfg .PdfObject ;W _dfg .PdfObject ;DW2 _dfg .PdfObject ;W2 _dfg .PdfObject ;
+
+// CIDs to glyph indices mapping (optional).
+CIDToGIDMap _dfg .PdfObject ;_gdebe map[_ff .CharCode ]float64 ;_cfcga float64 ;_cede map[rune ]int ;};
+
+// GetPageNumber returns the page number that has been assigned to the K object.
+func (_fafeef *KDict )GetPageNumber ()int64 {return _fafeef ._gabf };
+
+// NonFullScreenPageMode returns the value of the nonFullScreenPageMode.
+func (_fbbac *ViewerPreferences )NonFullScreenPageMode ()NonFullScreenPageMode {return _fbbac ._gbbce };
+
+// NewPdfAnnotationLine returns a new line annotation.
+func NewPdfAnnotationLine ()*PdfAnnotationLine {_bacee :=NewPdfAnnotation ();_dfc :=&PdfAnnotationLine {};_dfc .PdfAnnotation =_bacee ;_dfc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bacee .SetContext (_dfc );return _dfc ;};
+
+// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
+func (_dcdcd *PdfShading )GetContext ()PdfModel {return _dcdcd ._fdbfb };
+
+// ColorFromFloats returns a new PdfColor based on the input slice of color
+// components.
+func (_fbdg *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _fbdg .UnderlyingCS ==nil {return nil ,_bd .New ("u\u006e\u0064\u0065\u0072\u006c\u0079i\u006e\u0067\u0020\u0043\u0053\u0020\u006e\u006f\u0074 \u0073\u0070\u0065c\u0069f\u0069\u0065\u0064");
+};return _fbdg .UnderlyingCS .ColorFromFloats (vals );};func _afca (_caceb *_dfg .PdfObjectDictionary )(*PdfTilingPattern ,error ){_fedfc :=&PdfTilingPattern {};_geff :=_caceb .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _geff ==nil {_egb .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
+return nil ,ErrRequiredAttributeMissing ;};_ggga ,_gfgcd :=_geff .(*_dfg .PdfObjectInteger );if !_gfgcd {_egb .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054y\u0070\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006ft\u0020\u0025\u0054\u0029",_geff );
+return nil ,_dfg .ErrTypeError ;};_fedfc .PaintType =_ggga ;_geff =_caceb .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _geff ==nil {_egb .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
+return nil ,ErrRequiredAttributeMissing ;};_dbcd ,_gfgcd :=_geff .(*_dfg .PdfObjectInteger );if !_gfgcd {_egb .Log .Debug ("\u0054\u0069\u006cin\u0067\u0054\u0079\u0070\u0065\u0020\u006e\u006f\u0074 \u0061n\u0020i\u006et\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_geff );
+return nil ,_dfg .ErrTypeError ;};_fedfc .TilingType =_dbcd ;_geff =_caceb .Get ("\u0042\u0042\u006f\u0078");if _geff ==nil {_egb .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
+};_geff =_dfg .TraceToDirectObject (_geff );_agddd ,_gfgcd :=_geff .(*_dfg .PdfObjectArray );if !_gfgcd {_egb .Log .Debug ("\u0042B\u006f\u0078 \u0073\u0068\u006fu\u006c\u0064\u0020\u0062\u0065\u0020\u0073p\u0065\u0063\u0069\u0066\u0069\u0065d\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061y\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_geff );
+return nil ,_dfg .ErrTypeError ;};_bcdcd ,_bgbg :=NewPdfRectangle (*_agddd );if _bgbg !=nil {_egb .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_bgbg );return nil ,_bgbg ;};_fedfc .BBox =_bcdcd ;_geff =_caceb .Get ("\u0058\u0053\u0074e\u0070");
+if _geff ==nil {_egb .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_effage ,_bgbg :=_dfg .GetNumberAsFloat (_geff );if _bgbg !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0058S\u0074e\u0070\u0020\u0061\u0073\u0020\u0066\u006c\u006f\u0061\u0074\u003a\u0020\u0025\u0076",_effage );
+return nil ,_bgbg ;};_fedfc .XStep =_dfg .MakeFloat (_effage );_geff =_caceb .Get ("\u0059\u0053\u0074e\u0070");if _geff ==nil {_egb .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
+};_dfaga ,_bgbg :=_dfg .GetNumberAsFloat (_geff );if _bgbg !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0059S\u0074e\u0070\u0020\u0061\u0073\u0020\u0066\u006c\u006f\u0061\u0074\u003a\u0020\u0025\u0076",_dfaga );
+return nil ,_bgbg ;};_fedfc .YStep =_dfg .MakeFloat (_dfaga );_geff =_caceb .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _geff ==nil {_egb .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
+return nil ,ErrRequiredAttributeMissing ;};_caceb ,_gfgcd =_dfg .TraceToDirectObject (_geff ).(*_dfg .PdfObjectDictionary );if !_gfgcd {return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_geff );
+};_caebg ,_bgbg :=NewPdfPageResourcesFromDict (_caceb );if _bgbg !=nil {return nil ,_bgbg ;};_fedfc .Resources =_caebg ;if _fbgee :=_caceb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fbgee !=nil {_ageg ,_gccee :=_fbgee .(*_dfg .PdfObjectArray );if !_gccee {_egb .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_fbgee );
+return nil ,_dfg .ErrTypeError ;};_fedfc .Matrix =_ageg ;};return _fedfc ,nil ;};func (_gcb *PdfAnnotation )String ()string {_fae :="";_ged ,_cec :=_gcb .ToPdfObject ().(*_dfg .PdfIndirectObject );if _cec {_fae =_d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_gcb ._dga ,_ged .PdfObject .String ());
+};return _fae ;};
+
+// ToPdfObject converts rectangle to a PDF object.
+func (_fcdda *PdfRectangle )ToPdfObject ()_dfg .PdfObject {return _dfg .MakeArray (_dfg .MakeFloat (_fcdda .Llx ),_dfg .MakeFloat (_fcdda .Lly ),_dfg .MakeFloat (_fcdda .Urx ),_dfg .MakeFloat (_fcdda .Ury ));};
+
+// ToInteger convert to an integer format.
+func (_ggfc *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_dcgdf :=_df .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_dcgdf *_ggfc .C ()),uint32 (_dcgdf *_ggfc .M ()),uint32 (_dcgdf *_ggfc .Y ()),uint32 (_dcgdf *_ggfc .K ())};};func _daeg (_bbcagg *_dfg .PdfObjectDictionary )(*PdfShadingType1 ,error ){_abdd :=PdfShadingType1 {};
+if _cedgd :=_bbcagg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cedgd !=nil {_cedgd =_dfg .TraceToDirectObject (_cedgd );_gcagf ,_ggcf :=_cedgd .(*_dfg .PdfObjectArray );if !_ggcf {_egb .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cedgd );
+return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_abdd .Domain =_gcagf ;};if _adggab :=_bbcagg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_adggab !=nil {_adggab =_dfg .TraceToDirectObject (_adggab );
+_ddgfb ,_ecefg :=_adggab .(*_dfg .PdfObjectArray );if !_ecefg {_egb .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_adggab );return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
+};_abdd .Matrix =_ddgfb ;};_bcaaf :=_bbcagg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bcaaf ==nil {_egb .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
+return nil ,ErrRequiredAttributeMissing ;};_abdd .Function =[]PdfFunction {};if _caaaadb ,_fbcf :=_bcaaf .(*_dfg .PdfObjectArray );_fbcf {for _ ,_debfa :=range _caaaadb .Elements (){_dcgca ,_fcdfg :=_gbada (_debfa );if _fcdfg !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fcdfg );
+return nil ,_fcdfg ;};_abdd .Function =append (_abdd .Function ,_dcgca );};}else {_aabge ,_ddbda :=_gbada (_bcaaf );if _ddbda !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_ddbda );
+return nil ,_ddbda ;};_abdd .Function =append (_abdd .Function ,_aabge );};return &_abdd ,nil ;};
+
+// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
+func (_cefcca *PdfWriter )SetCatalogMetadata (meta _dfg .PdfObject )error {if meta ==nil {_cefcca ._acgcc .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_afaa ,_dggfaf :=_dfg .GetStream (meta );if !_dggfaf {return _bd .New ("\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u006d\u0065\u0074\u0061\u0064a\u0074\u0061\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u0020\u0076\u0061\u006c\u0069\u0064\u0020\u0073t\u0072\u0065\u0061\u006d");
+};_cefcca .addObject (_afaa );_cefcca ._acgcc .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_afaa );return nil ;};func (_ccce *PdfReader )newPdfAnnotationTextFromDict (_fcff *_dfg .PdfObjectDictionary )(*PdfAnnotationText ,error ){_cefd :=PdfAnnotationText {};
+_beda ,_gdg :=_ccce .newPdfAnnotationMarkupFromDict (_fcff );if _gdg !=nil {return nil ,_gdg ;};_cefd .PdfAnnotationMarkup =_beda ;_cefd .Open =_fcff .Get ("\u004f\u0070\u0065\u006e");_cefd .Name =_fcff .Get ("\u004e\u0061\u006d\u0065");_cefd .State =_fcff .Get ("\u0053\u0074\u0061t\u0065");
+_cefd .StateModel =_fcff .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_cefd ,nil ;};func (_cgeac *PdfWriter )writeAcroFormFields ()error {if _cgeac ._abcfe ==nil {return nil ;};_egb .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");
+_ddcgd :=_cgeac ._abcfe .ToPdfObject ();_egb .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_ddcgd );_cgeac ._acgcc .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_ddcgd );_gdbgb :=_cgeac .addObjects (_ddcgd );
+if _gdbgb !=nil {return _gdbgb ;};return nil ;};
+
+// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
+func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_edag :=&PdfShadingPatternType2 {};_edag .Matrix =_dfg .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_edag .PdfPattern =&PdfPattern {};_edag .PdfPattern .PatternType =int64 (*_dfg .MakeInteger (2));
+_edag .PdfPattern ._bfaedb =_edag ;_edag .PdfPattern ._adcec =_dfg .MakeIndirectObject (_dfg .MakeDict ());return _edag ;};func (_feec *PdfReader )newPdfAnnotationRedactFromDict (_cfa *_dfg .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_cdc :=PdfAnnotationRedact {};
+_eecf ,_aabd :=_feec .newPdfAnnotationMarkupFromDict (_cfa );if _aabd !=nil {return nil ,_aabd ;};_cdc .PdfAnnotationMarkup =_eecf ;_cdc .QuadPoints =_cfa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_cdc .IC =_cfa .Get ("\u0049\u0043");
+_cdc .RO =_cfa .Get ("\u0052\u004f");_cdc .OverlayText =_cfa .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_cdc .Repeat =_cfa .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_cdc .DA =_cfa .Get ("\u0044\u0041");_cdc .Q =_cfa .Get ("\u0051");
+return &_cdc ,nil ;};
+
+// GetColorspaces loads PdfPageResourcesColorspaces from `r.ColorSpace` and returns an error if there
+// is a problem loading. Once loaded, the same object is returned on multiple calls.
+func (_cagcf *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _cagcf ._fgfec !=nil {return _cagcf ._fgfec ,nil ;};if _cagcf .ColorSpace ==nil {return nil ,nil ;};_eageg ,_aedcc :=_ggffb (_cagcf .ColorSpace );if _aedcc !=nil {return nil ,_aedcc ;
+};_cagcf ._fgfec =_eageg ;return _cagcf ._fgfec ,nil ;};
+
+// Optimizer is the interface that performs optimization of PDF object structure for output writing.
+//
+// Optimize receives a slice of input `objects`, performs optimization, including removing, replacing objects and
+// output the optimized slice of objects.
+type Optimizer interface{Optimize (_aaaf []_dfg .PdfObject )([]_dfg .PdfObject ,error );};func _bfbc ()string {_dfbaa .Lock ();defer _dfbaa .Unlock ();_gffcfc :=_gb .GetLicenseKey ();if len (_fgfff )> 0&&(_gffcfc .IsLicensed ()||_ecdba ){return _fgfff ;
+};return _d .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_bfegf (),_gffcfc .TypeToString ());};
+
+// NewPdfReader returns a new PdfReader for an input io.ReadSeeker interface. Can be used to read PDF from
+// memory or file. Immediately loads and traverses the PDF structure including pages and page contents (if
+// not encrypted). Loads entire document structure into memory.
+// Alternatively a lazy-loading reader can be created with NewPdfReaderLazy which loads only references,
+// and references are loaded from disk into memory on an as-needed basis.
+func NewPdfReader (rs _edg .ReadSeeker )(*PdfReader ,error ){const _ebgef ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _dafc (rs ,&ReaderOpts {},false ,_ebgef );};
+
+// PdfPageResourcesColorspaces contains the colorspace in the PdfPageResources.
+// Needs to have matching name and colorspace map entry. The Names define the order.
+type PdfPageResourcesColorspaces struct{Names []string ;Colorspaces map[string ]PdfColorspace ;_acbeg *_dfg .PdfIndirectObject ;};
+
+// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
+func (_cbddf *PdfColorspaceSpecialIndexed )ToPdfObject ()_dfg .PdfObject {_ebdeca :=_dfg .MakeArray (_dfg .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_ebdeca .Append (_cbddf .Base .ToPdfObject ());_ebdeca .Append (_dfg .MakeInteger (int64 (_cbddf .HiVal )));
+_ebdeca .Append (_cbddf .Lookup );if _cbddf ._dda !=nil {_cbddf ._dda .PdfObject =_ebdeca ;return _cbddf ._dda ;};return _ebdeca ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_fbb *PdfActionTrans )ToPdfObject ()_dfg .PdfObject {_fbb .PdfAction .ToPdfObject ();_fcb :=_fbb ._fe ;_ag :=_fcb .PdfObject .(*_dfg .PdfObjectDictionary );_ag .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeTrans )));_ag .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_fbb .Trans );
+return _fcb ;};
+
+// PdfAnnotation3D represents 3D annotations.
+// (Section 13.6.2).
+type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _dfg .PdfObject ;T3DV _dfg .PdfObject ;T3DA _dfg .PdfObject ;T3DI _dfg .PdfObject ;T3DB _dfg .PdfObject ;};var _ pdfFont =(*pdfFontSimple )(nil );
+
+// ValidateSignatures validates digital signatures in the document.
+func (_fgbca *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _fgbca .AcroForm ==nil {return nil ,nil ;};if _fgbca .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_gfdfg *PdfSignature ;
+_cabeb *PdfField ;_cceb SignatureHandler ;};var _gcbdc []*sigFieldPair ;for _ ,_ggebc :=range _fgbca .AcroForm .AllFields (){if _ggebc .V ==nil {continue ;};if _agbaa ,_acfdg :=_dfg .GetDict (_ggebc .V );_acfdg {if _fgfbg ,_cfgcd :=_dfg .GetNameVal (_agbaa .Get ("\u0054\u0079\u0070\u0065"));
+_cfgcd &&(_fgfbg =="\u0053\u0069\u0067"||_fgfbg =="\u0044\u006f\u0063T\u0069\u006d\u0065\u0053\u0074\u0061\u006d\u0070"){_acga ,_ffeg :=_dfg .GetIndirect (_ggebc .V );if !_ffeg {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006et\u0061\u0069\u006e\u0065\u0072\u0020\u0069s\u0020\u006e\u0069\u006c");
+return nil ,ErrTypeCheck ;};_ceeba ,_dfefcf :=_fgbca .newPdfSignatureFromIndirect (_acga );if _dfefcf !=nil {return nil ,_dfefcf ;};var _acab SignatureHandler ;for _ ,_gdcae :=range handlers {if _gdcae .IsApplicable (_ceeba ){_acab =_gdcae ;break ;};};
+_gcbdc =append (_gcbdc ,&sigFieldPair {_gfdfg :_ceeba ,_cabeb :_ggebc ,_cceb :_acab });};};};var _gcfdf []SignatureValidationResult ;for _ ,_agdff :=range _gcbdc {_edbcg :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_agdff ._cabeb }};
+if _agdff ._cceb ==nil {_edbcg .Errors =append (_edbcg .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_gcfdf =append (_gcfdf ,_edbcg );continue ;};_dccd ,_gcfbf :=_agdff ._cceb .NewDigest (_agdff ._gfdfg );
+if _gcfbf !=nil {_edbcg .Errors =append (_edbcg .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_gcfbf .Error ());_gcfdf =append (_gcfdf ,_edbcg );continue ;};_fcbbd :=_agdff ._gfdfg .ByteRange ;if _fcbbd ==nil {_edbcg .Errors =append (_edbcg .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");
+_gcfdf =append (_gcfdf ,_edbcg );continue ;};for _fdgee :=0;_fdgee < _fcbbd .Len ();_fdgee =_fdgee +2{_bdcca ,_ :=_dfg .GetNumberAsInt64 (_fcbbd .Get (_fdgee ));_adabg ,_ :=_dfg .GetIntVal (_fcbbd .Get (_fdgee +1));if _ ,_aeef :=_fgbca ._cggac .Seek (_bdcca ,_edg .SeekStart );
+_aeef !=nil {return nil ,_aeef ;};_dbcdg :=make ([]byte ,_adabg );if _ ,_dbebd :=_fgbca ._cggac .Read (_dbcdg );_dbebd !=nil {return nil ,_dbebd ;};_dccd .Write (_dbcdg );};var _debdc SignatureValidationResult ;if _bgcdb ,_dagab :=_agdff ._cceb .(SignatureHandlerDocMDP );
+_dagab {_debdc ,_gcfbf =_bgcdb .ValidateWithOpts (_agdff ._gfdfg ,_dccd ,SignatureHandlerDocMDPParams {Parser :_fgbca ._agbcd });}else {_debdc ,_gcfbf =_agdff ._cceb .Validate (_agdff ._gfdfg ,_dccd );};if _gcfbf !=nil {_egb .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_gcfbf ,_agdff ._cceb );
+_debdc .Errors =append (_debdc .Errors ,_gcfbf .Error ());};_debdc .Name =_agdff ._gfdfg .Name .Decoded ();_debdc .Reason =_agdff ._gfdfg .Reason .Decoded ();if _agdff ._gfdfg .M !=nil {_aabgc ,_gggfc :=NewPdfDate (_agdff ._gfdfg .M .String ());if _gggfc !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gggfc );
+_debdc .Errors =append (_debdc .Errors ,_gggfc .Error ());continue ;};_debdc .Date =_aabgc ;};_debdc .ContactInfo =_agdff ._gfdfg .ContactInfo .Decoded ();_debdc .Location =_agdff ._gfdfg .Location .Decoded ();_debdc .Fields =_edbcg .Fields ;_gcfdf =append (_gcfdf ,_debdc );
+};return _gcfdf ,nil ;};
+
+// A PdfPattern can represent a Pattern, either a tiling pattern or a shading pattern.
+// Note that all patterns shall be treated as colours; a Pattern colour space shall be established with the CS or cs
+// operator just like other colour spaces, and a particular pattern shall be installed as the current colour with the
+// SCN or scn operator.
+type PdfPattern struct{
+
+// Type: Pattern
+PatternType int64 ;_bfaedb PdfModel ;_adcec _dfg .PdfObject ;};func _acfab (_cdce *_dfg .PdfObjectDictionary ,_ecfc *fontCommon )(*pdfFontType3 ,error ){_ccdgf :=_ggdfc (_ecfc );_gdcad :=_cdce .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _gdcad ==nil {_gdcad =_dfg .MakeInteger (0);
+};_ccdgf .FirstChar =_gdcad ;_fdbd ,_feced :=_dfg .GetIntVal (_gdcad );if !_feced {_egb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0046i\u0072s\u0074C\u0068\u0061\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_gdcad );
+return nil ,_dfg .ErrTypeError ;};_cbbdd :=_ff .CharCode (_fdbd );_gdcad =_cdce .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _gdcad ==nil {_gdcad =_dfg .MakeInteger (255);};_ccdgf .LastChar =_gdcad ;_fdbd ,_feced =_dfg .GetIntVal (_gdcad );
+if !_feced {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004c\u0061\u0073\u0074\u0043h\u0061\u0072\u0020\u0074\u0079\u0070\u0065 \u0028\u0025\u0054\u0029",_gdcad );return nil ,_dfg .ErrTypeError ;
+};_fgadf :=_ff .CharCode (_fdbd );_gdcad =_cdce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _gdcad !=nil {_ccdgf .Resources =_gdcad ;};_gdcad =_cdce .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _gdcad ==nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0068\u0061\u0072\u0050\u0072\u006f\u0063\u0073\u0020(%\u0076\u0029",_gdcad );
+return nil ,_dfg .ErrNotSupported ;};_ccdgf .CharProcs =_gdcad ;_gdcad =_cdce .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _gdcad ==nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0046\u006f\u006et\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0028\u0025\u0076\u0029",_gdcad );
+return nil ,_dfg .ErrNotSupported ;};_ccdgf .FontMatrix =_gdcad ;_ccdgf ._efgcd =make (map[_ff .CharCode ]float64 );_gdcad =_cdce .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _gdcad !=nil {_ccdgf .Widths =_gdcad ;_gfdf ,_gfaa :=_dfg .GetArray (_gdcad );
+if !_gfaa {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020W\u0069\u0064t\u0068\u0073\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079 \u0028\u0025\u0054\u0029",_gdcad );return nil ,_dfg .ErrTypeError ;
+};_gfeed ,_bfab :=_gfdf .ToFloat64Array ();if _bfab !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0077\u0069d\u0074\u0068\u0073\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079");
+return nil ,_bfab ;};if len (_gfeed )!=int (_fgadf -_cbbdd +1){_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0074\u0068s\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0025\u0064 \u0028\u0025\u0064\u0029",_fgadf -_cbbdd +1,len (_gfeed ));
+return nil ,_dfg .ErrRangeError ;};_bfgg ,_gfaa :=_dfg .GetArray (_ccdgf .FontMatrix );if !_gfaa {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_bfgg );
+return nil ,_bfab ;};_acefb ,_bfab :=_bfgg .ToFloat64Array ();if _bfab !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020c\u006f\u006ev\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0046o\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079");
+return nil ,_bfab ;};_ddbaa :=_eea .NewMatrix (_acefb [0],_acefb [1],_acefb [2],_acefb [3],_acefb [4],_acefb [5]);for _ecaf ,_bfbde :=range _gfeed {_gdecg ,_ :=_ddbaa .Transform (_bfbde ,_bfbde );_ccdgf ._efgcd [_cbbdd +_ff .CharCode (_ecaf )]=_gdecg ;
+};};_ccdgf .Encoding =_dfg .TraceToDirectObject (_cdce .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));_agggf :=_cdce .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _agggf !=nil {_ccdgf ._eaaga =_dfg .TraceToDirectObject (_agggf );
+_cedf ,_cbade :=_defa (_ccdgf ._eaaga ,&_ccdgf .fontCommon );if _cbade !=nil {return nil ,_cbade ;};_ccdgf ._bgdcbc =_cedf ;};if _cgaf :=_ccdgf ._bgdcbc ;_cgaf !=nil {_ccdgf ._bafca =_ff .NewCMapEncoder ("",nil ,_cgaf );}else {_ccdgf ._bafca =_ff .NewPdfDocEncoder ();
+};return _ccdgf ,nil ;};func _defa (_cdgfa _dfg .PdfObject ,_gbdebe *fontCommon )(*_efg .CMap ,error ){_aacc ,_dfcfe :=_dfg .GetStream (_cdgfa );if !_dfcfe {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0074\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u0054\u006f\u0043m\u0061\u0070\u003a\u0020\u004e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0025\u0054\u0029",_cdgfa );
+return nil ,_dfg .ErrTypeError ;};_bdcd ,_dbeac :=_dfg .DecodeStream (_aacc );if _dbeac !=nil {return nil ,_dbeac ;};_edgae ,_dbeac :=_efg .LoadCmapFromData (_bdcd ,!_gbdebe .isCIDFont ());if _dbeac !=nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004f\u0062\u006a\u0065\u0063\u0074\u004e\u0075\u006d\u0062\u0065\u0072\u003d\u0025\u0064\u0020\u0065\u0072r=\u0025\u0076",_aacc .ObjectNumber ,_dbeac );
+};return _edgae ,_dbeac ;};
+
+// PdfAnnotationPolygon represents Polygon annotations.
+// (Section 12.5.6.9).
+type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _dfg .PdfObject ;LE _dfg .PdfObject ;BS _dfg .PdfObject ;IC _dfg .PdfObject ;BE _dfg .PdfObject ;IT _dfg .PdfObject ;Measure _dfg .PdfObject ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_cfd *PdfActionGoTo )ToPdfObject ()_dfg .PdfObject {_cfd .PdfAction .ToPdfObject ();_fb :=_cfd ._fe ;_cae :=_fb .PdfObject .(*_dfg .PdfObjectDictionary );_cae .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeGoTo )));_cae .SetIfNotNil ("\u0044",_cfd .D );
+return _fb ;};
+
+// GetRuneMetrics returns the character metrics for the specified rune.
+// A bool flag is returned to indicate whether or not the entry was found.
+func (_edded pdfFontType3 )GetRuneMetrics (r rune )(_bf .CharMetrics ,bool ){_babdf :=_edded .Encoder ();if _babdf ==nil {_egb .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_edded );
+return _bf .CharMetrics {},false ;};_fdag ,_cdae :=_babdf .RuneToCharcode (r );if !_cdae {if r !=' '{_egb .Log .Trace ("\u004e\u006f\u0020c\u0068\u0061\u0072\u0063o\u0064\u0065\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u003d\u0025\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",r ,_edded );
+};return _bf .CharMetrics {},false ;};_dabf ,_cgef :=_edded .GetCharMetrics (_fdag );return _dabf ,_cgef ;};
+
+// Write writes the Appender output to io.Writer.
+// It can only be called once and further invocations will result in an error.
+func (_cfca *PdfAppender )Write (w _edg .Writer )error {if _cfca ._cfag {return _bd .New ("\u0061\u0070\u0070\u0065\u006e\u0064\u0065\u0072\u0020\u0077\u0072\u0069\u0074e\u0020\u0063\u0061\u006e\u0020\u006fn\u006c\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0076\u006f\u006b\u0065\u0064 \u006f\u006e\u0063\u0065");
+};_bead :=NewPdfWriter ();_bedad ,_gbde :=_dfg .GetDict (_bead ._gdcdb );if !_gbde {return _bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0020(\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0029");
+};_becdf ,_gbde :=_bedad .Get ("\u004b\u0069\u0064\u0073").(*_dfg .PdfObjectArray );if !_gbde {return _bd .New ("\u0069\u006ev\u0061\u006c\u0069\u0064 \u0050\u0061g\u0065\u0073\u0020\u004b\u0069\u0064\u0073\u0020o\u0062\u006a\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079\u0029");
+};_bga ,_gbde :=_bedad .Get ("\u0043\u006f\u0075n\u0074").(*_dfg .PdfObjectInteger );if !_gbde {return _bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0050\u0061\u0067e\u0073\u0020\u0043\u006fu\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0029");
+};_cccg :=_cfca ._eege ._agbcd ;_fdce :=_cccg .GetTrailer ();if _fdce ==nil {return _bd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_bgec ,_gbde :=_dfg .GetIndirect (_fdce .Get ("\u0052\u006f\u006f\u0074"));
+if !_gbde {return _bd .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_gbdf ,_gbde :=_dfg .GetDict (_bgec );if !_gbde {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0028\u0072\u006f\u006f\u0074\u0020\u0025\u0071\u0029\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u0020\u0025\u0073\u0029",_bgec ,*_fdce );
+return _bd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_gddb :=false ;for _ ,_dbgf :=range _cfca ._eege .AcroForm .signatureFields (){if _dbgf .Lock !=nil {_gddb =true ;break ;};};if _gddb {_bead ._cbfagb =_bgec ;
+};for _ ,_gabaf :=range _gbdf .Keys (){if _bead ._acgcc .Get (_gabaf )==nil {_bffg :=_gbdf .Get (_gabaf );_bead ._acgcc .Set (_gabaf ,_bffg );};};if _cfca ._ebfe !=nil {if _cfca ._ebfe ._ecfa {if _cga :=_dfg .TraceToDirectObject (_cfca ._ebfe .ToPdfObject ());
+!_dfg .IsNullObject (_cga ){_bead ._acgcc .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_cga );_cfca .updateObjectsDeep (_cga ,nil );}else {_egb .Log .Debug ("\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020t\u0072\u0061\u0063e\u0020\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0020o\u0062\u006a\u0065\u0063\u0074, \u0066\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0061\u0064\u0064\u0020\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u002e");
+};}else {_bead ._acgcc .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_cfca ._ebfe .ToPdfObject ());_cfca .updateObjectsDeep (_cfca ._ebfe .ToPdfObject (),nil );};};if _cfca ._caagc !=nil {_cfca .updateObjectsDeep (_cfca ._caagc .ToPdfObject (),nil );
+_bead ._acgcc .Set ("\u0044\u0053\u0053",_cfca ._caagc .GetContainingPdfObject ());};if _cfca ._bcdg !=nil {_bead ._acgcc .Set ("\u0050\u0065\u0072m\u0073",_cfca ._bcdg .ToPdfObject ());_cfca .updateObjectsDeep (_cfca ._bcdg .ToPdfObject (),nil );};if _bead ._cfbcb .Major < 2{_bead .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
+_bead .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _cba ,_ggf :=_dfg .GetDict (_fdce .Get ("\u0049\u006e\u0066\u006f"));_ggf {if _bgaa ,_acge :=_dfg .GetDict (_bead ._acace );_acge {for _ ,_bfec :=range _cba .Keys (){if _bgaa .Get (_bfec )==nil {_bgaa .Set (_bfec ,_cba .Get (_bfec ));
+};};};};if _cfca ._ccf !=nil {_bead ._acace =_dfg .MakeIndirectObject (_cfca ._ccf .ToPdfObject ());};_cfca .updateObjectsDeep (_bead ._acace ,nil );_cfca .updateObjectsDeep (_bead ._cbfagb ,nil );_ggc :=false ;if len (_cfca ._eege .PageList )!=len (_cfca ._egfc ){_ggc =true ;
+}else {for _gcaf :=range _cfca ._eege .PageList {switch {case _cfca ._egfc [_gcaf ]==_cfca ._eege .PageList [_gcaf ]:case _cfca ._egfc [_gcaf ]==_cfca .Reader .PageList [_gcaf ]:default:_ggc =true ;};if _ggc {break ;};};};if _ggc {_cfca .updateObjectsDeep (_bead ._gdcdb ,nil );
+}else {_cfca ._gadd [_bead ._gdcdb ]=struct{}{};};_bead ._gdcdb .ObjectNumber =_cfca .Reader ._ffdb .ObjectNumber ;_cfca ._effe [_bead ._gdcdb ]=_cfca .Reader ._ffdb .ObjectNumber ;_dcfc :=[]_dfg .PdfObjectName {"\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s","\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078","\u0043r\u006f\u0070\u0042\u006f\u0078","\u0052\u006f\u0074\u0061\u0074\u0065"};
+for _ ,_cdbf :=range _cfca ._egfc {_cagg :=_cdbf .ToPdfObject ();*_bga =*_bga +1;if _caga ,_gbaac :=_cagg .(*_dfg .PdfIndirectObject );_gbaac &&_caga .GetParser ()==_cfca ._eege ._agbcd {_becdf .Append (&_caga .PdfObjectReference );continue ;};if _eabf ,_ggca :=_dfg .GetDict (_cagg );
+_ggca {_aad ,_dceg :=_eabf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_dfg .PdfIndirectObject );for _dceg {_egb .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_aad );_bdc ,_faef :=_aad .PdfObject .(*_dfg .PdfObjectDictionary );
+if !_faef {return _bd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_gdac :=range _dcfc {_egb .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gdac );if _edgdg :=_eabf .Get (_gdac );
+_edgdg !=nil {_egb .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");if len (_cdbf ._fagbf .Keys ())> 0&&!_ggc {_fdff :=_cdbf ._fagbf ;if _dbca :=_fdff .Get (_gdac );_dbca !=nil {if _edgdg !=_dbca {_egb .Log .Trace ("\u0049\u006e\u0068\u0065\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u006f\u0072\u0069\u0067i\u006ea\u006c\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073\u002c\u0020\u0025\u0054",_gdac ,_dbca );
+_eabf .Set (_gdac ,_dbca );};};};continue ;};if _cfde :=_bdc .Get (_gdac );_cfde !=nil {_egb .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gdac );_eabf .Set (_gdac ,_cfde );};};
+_aad ,_dceg =_bdc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_dfg .PdfIndirectObject );_egb .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bdc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};if _ggc {_eabf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bead ._gdcdb );
+};};_cfca .updateObjectsDeep (_cagg ,nil );_becdf .Append (_cagg );};if _ ,_gfbf :=_cfca ._ggag .Seek (0,_edg .SeekStart );_gfbf !=nil {return _gfbf ;};_eebfc :=make (map[SignatureHandler ]_edg .Writer );_dgde :=_dfg .MakeArray ();for _ ,_gage :=range _cfca ._fbfcg {if _deab ,_gdece :=_dfg .GetIndirect (_gage );
+_gdece {if _gacg ,_cdaf :=_deab .PdfObject .(*pdfSignDictionary );_cdaf {_fdcd :=*_gacg ._adfa ;var _abag error ;_eebfc [_fdcd ],_abag =_fdcd .NewDigest (_gacg ._abfbg );if _abag !=nil {return _abag ;};_dgde .Append (_dfg .MakeInteger (0xfffff),_dfg .MakeInteger (0xfffff));
+};};};if _dgde .Len ()> 0{_dgde .Append (_dfg .MakeInteger (0xfffff),_dfg .MakeInteger (0xfffff));};for _ ,_gdda :=range _cfca ._fbfcg {if _cddfc ,_aacab :=_dfg .GetIndirect (_gdda );_aacab {if _ced ,_eegf :=_cddfc .PdfObject .(*pdfSignDictionary );_eegf {_ced .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_dgde );
+};};};_cbdgb :=len (_eebfc )> 0;var _febad _edg .Reader =_cfca ._ggag ;if _cbdgb {_bfgd :=make ([]_edg .Writer ,0,len (_eebfc ));for _ ,_cdad :=range _eebfc {_bfgd =append (_bfgd ,_cdad );};_febad =_edg .TeeReader (_cfca ._ggag ,_edg .MultiWriter (_bfgd ...));
+};_aaed ,_egbf :=_edg .Copy (w ,_febad );if _egbf !=nil {return _egbf ;};if len (_cfca ._fbfcg )==0{return nil ;};_bead ._fcacd =_aaed ;_bead .ObjNumOffset =_cfca ._edab ;_bead ._cddgg =true ;_bead ._accfg =_cfca ._bbcb ;_bead ._baeag =_cfca ._gcf ;_bead ._fgedaa =_cfca ._bgdc ;
+_bead ._cfbcb =_cfca ._eege .PdfVersion ();_bead ._dacf =_cfca ._effe ;_bead ._gbdfc =_cfca ._cggd .GetCrypter ();_bead ._bbbecb =_cfca ._cggd .GetEncryptObj ();_ddcc :=_cfca ._cggd .GetXrefType ();if _ddcc !=nil {_gebf :=*_ddcc ==_dfg .XrefTypeObjectStream ;
+_bead ._ecbad =&_gebf ;};_bead ._bgbee =map[_dfg .PdfObject ]struct{}{};_bead ._abcef =[]_dfg .PdfObject {};for _ ,_bbaff :=range _cfca ._fbfcg {if _ ,_daag :=_cfca ._gadd [_bbaff ];_daag {continue ;};_bead .addObject (_bbaff );};_ebag :=w ;if _cbdgb {_ebag =_cca .NewBuffer (nil );
+};if _cfca ._bfb !=""&&_bead ._gbdfc ==nil {_bead .Encrypt ([]byte (_cfca ._bfb ),[]byte (_cfca ._bfb ),_cfca ._gefb );};if _ffga :=_fdce .Get ("\u0049\u0044");_ffga !=nil {if _bdff ,_fbge :=_dfg .GetArray (_ffga );_fbge {_bead ._beccf =_bdff ;};};if _ddcb :=_bead .Write (_ebag );
+_ddcb !=nil {return _ddcb ;};if _cbdgb {_fddb :=_ebag .(*_cca .Buffer ).Bytes ();_cbbcd :=_dfg .MakeArray ();var _fgcf []*pdfSignDictionary ;var _gccc int64 ;for _ ,_bdeb :=range _bead ._abcef {if _gdgb ,_cbga :=_dfg .GetIndirect (_bdeb );_cbga {if _facbb ,_bdgf :=_gdgb .PdfObject .(*pdfSignDictionary );
+_bdgf {_fgcf =append (_fgcf ,_facbb );_afde :=_facbb ._dgead +int64 (_facbb ._ffbffd );_cbbcd .Append (_dfg .MakeInteger (_gccc ),_dfg .MakeInteger (_afde -_gccc ));_gccc =_facbb ._dgead +int64 (_facbb ._ceffa );};};};_cbbcd .Append (_dfg .MakeInteger (_gccc ),_dfg .MakeInteger (_aaed +int64 (len (_fddb ))-_gccc ));
+_adfe :=_cbbcd .Write ();for _ ,_aggg :=range _fgcf {_aecg :=int (_aggg ._dgead -_aaed );for _aefb :=_aggg ._fdfed ;_aefb < _aggg ._gcdg ;_aefb ++{_fddb [_aecg +_aefb ]=' ';};_afgf :=_fddb [_aecg +_aggg ._fdfed :_aecg +_aggg ._gcdg ];copy (_afgf ,_adfe );
+};var _fgcfd int ;for _ ,_ccgc :=range _fgcf {_aeaf :=int (_ccgc ._dgead -_aaed );_bgf :=_fddb [_fgcfd :_aeaf +_ccgc ._ffbffd ];_afab :=*_ccgc ._adfa ;_eebfc [_afab ].Write (_bgf );_fgcfd =_aeaf +_ccgc ._ceffa ;};for _ ,_abeg :=range _fgcf {_bcga :=_fddb [_fgcfd :];
+_bfadf :=*_abeg ._adfa ;_eebfc [_bfadf ].Write (_bcga );};for _ ,_ceeb :=range _fgcf {_acbdd :=int (_ceeb ._dgead -_aaed );_dbdb :=*_ceeb ._adfa ;_gceb :=_eebfc [_dbdb ];if _abaa :=_dbdb .Sign (_ceeb ._abfbg ,_gceb );_abaa !=nil {return _abaa ;};_ceeb ._abfbg .ByteRange =_cbbcd ;
+_gddac :=_ceeb ._abfbg .Contents .Write ();for _befd :=_ceeb ._fdfed ;_befd < _ceeb ._gcdg ;_befd ++{_fddb [_acbdd +_befd ]=' ';};for _bebe :=_ceeb ._ffbffd ;_bebe < _ceeb ._ceffa ;_bebe ++{_fddb [_acbdd +_bebe ]=' ';};_fde :=_fddb [_acbdd +_ceeb ._fdfed :_acbdd +_ceeb ._gcdg ];
+copy (_fde ,_adfe );_fde =_fddb [_acbdd +_ceeb ._ffbffd :_acbdd +_ceeb ._ceffa ];copy (_fde ,_gddac );};_ggeg :=_cca .NewBuffer (_fddb );_ ,_egbf =_edg .Copy (w ,_ggeg );if _egbf !=nil {return _egbf ;};};_cfca ._cfag =true ;return nil ;};func (_bac *PdfReader )newPdfActionGotoEFromDict (_ead *_dfg .PdfObjectDictionary )(*PdfActionGoToE ,error ){_ebde ,_cgf :=_dbga (_ead .Get ("\u0046"));
+if _cgf !=nil {return nil ,_cgf ;};return &PdfActionGoToE {D :_ead .Get ("\u0044"),NewWindow :_ead .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_ead .Get ("\u0054"),F :_ebde },nil ;};
+
+// NewPdfAnnotationMovie returns a new movie annotation.
+func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_dgb :=NewPdfAnnotation ();_gdcd :=&PdfAnnotationMovie {};_gdcd .PdfAnnotation =_dgb ;_dgb .SetContext (_gdcd );return _gdcd ;};
+
+// NewEmbeddedFile constructs a new EmbeddedFile object from supplied file.
+// The file type of the file would be detected automatically.
+func NewEmbeddedFile (path string )(*EmbeddedFile ,error ){_bdfgf ,_bcab :=_ga .ReadFile (path );if _bcab !=nil {return nil ,_bcab ;};_ffcd ,_bcab :=_ccaf .Match (_bdfgf );if _bcab !=nil {_egb .Log .Debug ("\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020d\u0065\u0074\u0065\u0063\u0074\u0020\u0066i\u006c\u0065\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0076",_bcab );
+};_fbedb :=_cd .Sum (_bdfgf );_fafc :=&EmbeddedFile {Name :_ac .Base (path ),Content :_bdfgf ,FileType :_ffcd .MIME .Value ,Hash :_bc .EncodeToString (_fbedb [:])};return _fafc ,nil ;};var (ErrRequiredAttributeMissing =_bd .New ("\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074t\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073s\u0069\u006e\u0067");
+ErrInvalidAttribute =_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_bd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_ceeeb =_bd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
+ErrEncrypted =_bd .New ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");ErrNoFont =_bd .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
+ErrFontNotSupported =_gff .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_dfg .ErrNotSupported );ErrType1CFontNotSupported =_gff .Errorf ("\u0054y\u0070\u00651\u0043\u0020\u0066o\u006e\u0074\u0073\u0020\u0061\u0072\u0065 \u006e\u006f\u0074\u0020\u0063\u0075r\u0072\u0065\u006e\u0074\u006c\u0079\u0020\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020\u0028\u0025\u0077\u0029",_dfg .ErrNotSupported );
+ErrType3FontNotSupported =_gff .Errorf ("\u0054y\u0070\u00653\u0020\u0066\u006f\u006et\u0073\u0020\u0061r\u0065\u0020\u006e\u006f\u0074\u0020\u0063\u0075\u0072re\u006e\u0074\u006cy\u0020\u0073u\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0028%\u0077\u0029",_dfg .ErrNotSupported );
+ErrTTCmapNotSupported =_gff .Errorf ("\u0075\u006es\u0075\u0070\u0070\u006fr\u0074\u0065d\u0020\u0054\u0072\u0075\u0065\u0054\u0079\u0070e\u0020\u0063\u006d\u0061\u0070\u0020\u0066\u006f\u0072\u006d\u0061\u0074 \u0028\u0025\u0077\u0029",_dfg .ErrNotSupported );
+ErrSignNotEnoughSpace =_gff .Errorf ("\u0069\u006e\u0073\u0075\u0066\u0066\u0069c\u0069\u0065\u006et\u0020\u0073\u0070a\u0063\u0065 \u0061\u006c\u006c\u006f\u0063\u0061t\u0065d \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0073");
+ErrSignNoCertificates =_gff .Errorf ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065tri\u0065ve\u0020\u0063\u0065\u0072\u0074\u0069\u0066ic\u0061\u0074\u0065\u0020\u0063\u0068\u0061i\u006e"););
+
+// PrintPdfObjects is a helper function printing all objects in a given PDF file
+// It can be useful while debugging. Use os.Stdout as w io.Writer to print to console.
+func (_cgfb *PdfReader )PrintPdfObjects (w _edg .Writer )error {_abbgg :=_cgfb .GetObjectNums ();_d .Fprintf (w ,"\u0025\u0064 \u0050\u0044\u0046 \u006f\u0062\u006a\u0065\u0063\u0074\u0073\u003a\u000a",len (_abbgg ));for _ ,_cabaa :=range _abbgg {_d .Fprintln (w ,"\u003d\u003d\u003d\u003d=\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d=\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d=\u003d\u003d\u003d\u003d\u003d=\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
+if _egadb :=_cgfb .PrintPdfObject (w ,_cabaa );_egadb !=nil {return _egadb ;};};return nil ;};
+
+// AddChild adds a child object.
+func (_feaa *KDict )AddChild (kv *KValue ){_feaa ._dcgedc =append (_feaa ._dcgedc ,kv )};
+
+// NewPdfWriter initializes a new PdfWriter.
+func NewPdfWriter ()PdfWriter {_aedgfe :=PdfWriter {};_aedgfe ._bgbee =map[_dfg .PdfObject ]struct{}{};_aedgfe ._abcef =[]_dfg .PdfObject {};_aedgfe ._fgebdb =map[_dfg .PdfObject ][]*_dfg .PdfObjectDictionary {};_aedgfe ._faeee =map[_dfg .PdfObject ]struct{}{};
+_aedgfe ._cfbcb .Major =1;_aedgfe ._cfbcb .Minor =3;_eegab :=_dfg .MakeDict ();_fffad :=[]struct{_becde _dfg .PdfObjectName ;_abgda string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_bfbc ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_cead ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_agdbe ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_ceeeg ()},{"\u0054\u0069\u0074l\u0065",_gccag ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_afbgd ()}};
+for _ ,_abfc :=range _fffad {if _abfc ._abgda !=""{_eegab .Set (_abfc ._becde ,_dfg .MakeString (_abfc ._abgda ));};};if _dgfad :=_cfafa ();!_dgfad .IsZero (){if _fefca ,_ffeba :=NewPdfDateFromTime (_dgfad );_ffeba ==nil {_eegab .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_fefca .ToPdfObject ());
+};};if _gbcbc :=_ceead ();!_gbcbc .IsZero (){if _dcgbf ,_cagec :=NewPdfDateFromTime (_gbcbc );_cagec ==nil {_eegab .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_dcgbf .ToPdfObject ());};};_ebef :=_dfg .PdfIndirectObject {};_ebef .PdfObject =_eegab ;_aedgfe ._acace =&_ebef ;
+_aedgfe .addObject (&_ebef );_beecg :=_dfg .PdfIndirectObject {};_aeegg :=_dfg .MakeDict ();_aeegg .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_beecg .PdfObject =_aeegg ;_aedgfe ._cbfagb =&_beecg ;_aedgfe .addObject (_aedgfe ._cbfagb );
+_beeda ,_ggefac :=_bdaaf ("\u0077");if _ggefac !=nil {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ggefac );};_aedgfe ._afacc =_beeda ;_cgfede :=_dfg .PdfIndirectObject {};_gbecf :=_dfg .MakeDict ();_gbecf .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0050\u0061\u0067e\u0073"));
+_eggaa :=_dfg .PdfObjectArray {};_gbecf .Set ("\u004b\u0069\u0064\u0073",&_eggaa );_gbecf .Set ("\u0043\u006f\u0075n\u0074",_dfg .MakeInteger (0));_cgfede .PdfObject =_gbecf ;_aedgfe ._gdcdb =&_cgfede ;_aedgfe ._cbcacc =map[_dfg .PdfObject ]struct{}{};
+_aedgfe ._cbccc =[]*_dfg .PdfIndirectObject {};_aedgfe .addObject (_aedgfe ._gdcdb );_aeegg .Set ("\u0050\u0061\u0067e\u0073",&_cgfede );_aedgfe ._acgcc =_aeegg ;_egb .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_beecg );
+return _aedgfe ;};func (_bcca *PdfReader )newPdfSignatureReferenceFromDict (_bfcdg *_dfg .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _baefd ,_bcbce :=_bcca ._acaed .GetModelFromPrimitive (_bfcdg ).(*PdfSignatureReference );_bcbce {return _baefd ,nil ;
+};_adffe :=&PdfSignatureReference {_bacgc :_bfcdg ,Data :_bfcdg .Get ("\u0044\u0061\u0074\u0061")};var _bbcad bool ;_adffe .Type ,_ =_dfg .GetName (_bfcdg .Get ("\u0054\u0079\u0070\u0065"));_adffe .TransformMethod ,_bbcad =_dfg .GetName (_bfcdg .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
+if !_bbcad {_egb .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0052\u0065\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0020\u0054\u0072\u0061\u006e\u0073\u0066o\u0072\u006dM\u0065\u0074h\u006f\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020in\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0072\u0020m\u0069\u0073\u0073\u0069\u006e\u0067");
+return nil ,ErrInvalidAttribute ;};_adffe .TransformParams ,_ =_dfg .GetDict (_bfcdg .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_adffe .DigestMethod ,_ =_dfg .GetName (_bfcdg .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
+return _adffe ,nil ;};
+
+// PdfBorderEffect represents a PDF border effect.
+type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};func (_cefeg *DSS )generateHashMap (_dbbgg []*_dfg .PdfObjectStream )(map[string ]*_dfg .PdfObjectStream ,error ){_ccbga :=map[string ]*_dfg .PdfObjectStream {};for _ ,_gfgc :=range _dbbgg {_cbfa ,_ggeff :=_dfg .DecodeStream (_gfgc );
+if _ggeff !=nil {return nil ,_ggeff ;};_abbfe ,_ggeff :=_fcabf (_cbfa );if _ggeff !=nil {return nil ,_ggeff ;};_ccbga [string (_abbfe )]=_gfgc ;};return _ccbga ,nil ;};var _gefaf =map[string ]struct{}{"\u0046\u0054":{},"\u004b\u0069\u0064\u0073":{},"\u0054":{},"\u0054\u0055":{},"\u0054\u004d":{},"\u0046\u0066":{},"\u0056":{},"\u0044\u0056":{},"\u0041\u0041":{},"\u0044\u0041":{},"\u0051":{},"\u0044\u0053":{},"\u0052\u0056":{}};
+
+
+// NewReaderOpts generates a default `ReaderOpts` instance.
+func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
+
+// GetContainingPdfObject returns the container of the image object (indirect object).
+func (_fcgde *XObjectImage )GetContainingPdfObject ()_dfg .PdfObject {return _fcgde ._gfgedd };
+
+// ToPdfObject implements interface PdfModel.
+func (_cegg *PdfAnnotationPopup )ToPdfObject ()_dfg .PdfObject {_cegg .PdfAnnotation .ToPdfObject ();_dfab :=_cegg ._afae ;_faae :=_dfab .PdfObject .(*_dfg .PdfObjectDictionary );_faae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0050\u006f\u0070u\u0070"));
+_faae .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_cegg .Parent );_faae .SetIfNotNil ("\u004f\u0070\u0065\u006e",_cegg .Open );return _dfab ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_cbb *PdfAnnotationSquiggly )ToPdfObject ()_dfg .PdfObject {_cbb .PdfAnnotation .ToPdfObject ();_ebe :=_cbb ._afae ;_cefa :=_ebe .PdfObject .(*_dfg .PdfObjectDictionary );_cbb .appendToPdfDictionary (_cefa );_cefa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
+_cefa .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cbb .QuadPoints );return _ebe ;};
+
+// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
+func (_dadddc *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _dadddc ._bfaedb .(*PdfShadingPattern );};
+
+// SetLocation sets the `Location` field of the signature.
+func (_fdfdb *PdfSignature )SetLocation (location string ){_fdfdb .Location =_dfg .MakeEncodedString (location ,true );};
+
+// ToPdfObject returns a stream object.
+func (_egedg *XObjectImage )ToPdfObject ()_dfg .PdfObject {_dbdgff :=_egedg ._gfgedd ;if _egedg ._fbegd {return _dbdgff ;};_acafa :=_dbdgff .PdfObjectDictionary ;if _egedg .Filter !=nil {_acafa =_egedg .Filter .MakeStreamDict ();_dbdgff .PdfObjectDictionary =_acafa ;
+};_acafa .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_acafa .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0049\u006d\u0061g\u0065"));_acafa .Set ("\u0057\u0069\u0064t\u0068",_dfg .MakeInteger (*(_egedg .Width )));
+_acafa .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_dfg .MakeInteger (*(_egedg .Height )));if _egedg .BitsPerComponent !=nil {_acafa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dfg .MakeInteger (*(_egedg .BitsPerComponent )));
+};if _egedg .ColorSpace !=nil {_acafa .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_egedg .ColorSpace .ToPdfObject ());};_acafa .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_egedg .Intent );_acafa .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_egedg .ImageMask );
+_acafa .SetIfNotNil ("\u004d\u0061\u0073\u006b",_egedg .Mask );_baafc :=_acafa .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;if _egedg .Decode ==nil &&_baafc {_acafa .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _egedg .Decode !=nil {_acafa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_egedg .Decode );
+};_acafa .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_egedg .Interpolate );_acafa .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_egedg .Alternatives );_acafa .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_egedg .SMask );
+_acafa .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_egedg .SMaskInData );_acafa .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_egedg .Matte );_acafa .SetIfNotNil ("\u004e\u0061\u006d\u0065",_egedg .Name );_acafa .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_egedg .StructParent );
+_acafa .SetIfNotNil ("\u0049\u0044",_egedg .ID );_acafa .SetIfNotNil ("\u004f\u0050\u0049",_egedg .OPI );_acafa .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_egedg .Metadata );_acafa .SetIfNotNil ("\u004f\u0043",_egedg .OC );_acafa .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_dfg .MakeInteger (int64 (len (_egedg .Stream ))));
+_dbdgff .Stream =_egedg .Stream ;_egedg ._fbegd =true ;return _dbdgff ;};
+
+// GetCatalogMarkInfo gets catalog MarkInfo object.
+func (_abcf *PdfReader )GetCatalogMarkInfo ()(_dfg .PdfObject ,bool ){if _abcf ._fbfgb ==nil {return nil ,false ;};_cffd :=_abcf ._fbfgb .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _cffd ,_cffd !=nil ;};
+
+// ImageToGray returns a new grayscale image based on the passed in RGB image.
+func (_dega *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_bd .New ("\u0070\u0072\u006f\u0076\u0069\u0064e\u0064\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0069\u0073\u0020\u006e\u006ft\u0020\u0061\u0020\u0044\u0065\u0076\u0069c\u0065\u0052\u0047\u0042");
+};_cfed ,_fbggf :=_ef .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._baeef ,img ._begcc );if _fbggf !=nil {return img ,_fbggf ;};_gfaf ,_fbggf :=_ef .GrayConverter .Convert (_cfed );if _fbggf !=nil {return img ,_fbggf ;
+};return _deba (_gfaf .Base ()),nil ;};
+
+// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
+func (_fcccg *pdfFontSimple )ToPdfObject ()_dfg .PdfObject {if _fcccg ._fdcbb ==nil {_fcccg ._fdcbb =&_dfg .PdfIndirectObject {};};_acdg :=_fcccg .baseFields ().asPdfObjectDictionary ("");_fcccg ._fdcbb .PdfObject =_acdg ;if _fcccg .FirstChar !=nil {_acdg .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_fcccg .FirstChar );
+};if _fcccg .LastChar !=nil {_acdg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_fcccg .LastChar );};if _fcccg .Widths !=nil {_acdg .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_fcccg .Widths );};if _fcccg .Encoding !=nil {_acdg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_fcccg .Encoding );
+}else if _fcccg ._febca !=nil {_aagg :=_fcccg ._febca .ToPdfObject ();if _aagg !=nil {_acdg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_aagg );};};return _fcccg ._fdcbb ;};
+
+// SetPdfKeywords sets the Keywords attribute of the output PDF.
+func SetPdfKeywords (keywords string ){_dfbaa .Lock ();defer _dfbaa .Unlock ();_bdbaed =keywords };
+
+// ToPdfObject implements interface PdfModel.
+func (_dbd *PdfAnnotationLine )ToPdfObject ()_dfg .PdfObject {_dbd .PdfAnnotation .ToPdfObject ();_afafc :=_dbd ._afae ;_gca :=_afafc .PdfObject .(*_dfg .PdfObjectDictionary );_dbd .appendToPdfDictionary (_gca );_gca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u004c\u0069\u006e\u0065"));
+_gca .SetIfNotNil ("\u004c",_dbd .L );_gca .SetIfNotNil ("\u0042\u0053",_dbd .BS );_gca .SetIfNotNil ("\u004c\u0045",_dbd .LE );_gca .SetIfNotNil ("\u0049\u0043",_dbd .IC );_gca .SetIfNotNil ("\u004c\u004c",_dbd .LL );_gca .SetIfNotNil ("\u004c\u004c\u0045",_dbd .LLE );
+_gca .SetIfNotNil ("\u0043\u0061\u0070",_dbd .Cap );_gca .SetIfNotNil ("\u0049\u0054",_dbd .IT );_gca .SetIfNotNil ("\u004c\u004c\u004f",_dbd .LLO );_gca .SetIfNotNil ("\u0043\u0050",_dbd .CP );_gca .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_dbd .Measure );
+_gca .SetIfNotNil ("\u0043\u004f",_dbd .CO );return _afafc ;};
+
+// AddOutlineTree adds outlines to a PDF file.
+func (_gdeeg *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_gdeeg ._fdged =outlineTree };
+
+// ApplyStandard is used to apply changes required on the document to match the rules required by the input standard.
+// The writer's content would be changed after all the document parts are already established during the Write method.
+// A good example of the StandardApplier could be a PDF/A Profile (i.e.: pdfa.Profile1A). In such a case PdfWriter would
+// set up all rules required by that Profile.
+func (_ccfff *PdfWriter )ApplyStandard (optimizer StandardApplier ){_ccfff ._fbafb =optimizer };
+
+// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
+type PdfAppender struct{_ggag _edg .ReadSeeker ;_cggd *_dfg .PdfParser ;_eege *PdfReader ;Reader *PdfReader ;_egfc []*PdfPage ;_ebfe *PdfAcroForm ;_caagc *DSS ;_bcdg *Permissions ;_bbcb _dfg .XrefTable ;_gcf int64 ;_edab int ;_fbfcg []_dfg .PdfObject ;
+_dadd map[_dfg .PdfObject ]struct{};_effe map[_dfg .PdfObject ]int64 ;_gadd map[_dfg .PdfObject ]struct{};_bbf map[_dfg .PdfObject ]struct{};_bgdc int64 ;_cfag bool ;_bfb string ;_gefb *EncryptOptions ;_ccf *PdfInfo ;};
+
+// AnnotFilterFunc represents a PDF annotation filtering function. If the function
+// returns true, the annotation is kept, otherwise it is discarded.
+type AnnotFilterFunc func (*PdfAnnotation )bool ;func (_acedc *PdfWriter )copyObjects (){_ffdbb :=make (map[_dfg .PdfObject ]_dfg .PdfObject );_gcede :=make ([]_dfg .PdfObject ,0,len (_acedc ._abcef ));_efdeb :=make (map[_dfg .PdfObject ]struct{},len (_acedc ._abcef ));
+_bbbgg :=make (map[_dfg .PdfObject ]struct{});for _ ,_adcfe :=range _acedc ._abcef {_geacg :=_acedc .copyObject (_adcfe ,_ffdbb ,_bbbgg ,false );if _ ,_aabcb :=_bbbgg [_adcfe ];_aabcb {continue ;};_gcede =append (_gcede ,_geacg );_efdeb [_geacg ]=struct{}{};
+};_acedc ._abcef =_gcede ;_acedc ._bgbee =_efdeb ;_acedc ._acace =_acedc .copyObject (_acedc ._acace ,_ffdbb ,nil ,false ).(*_dfg .PdfIndirectObject );_acedc ._cbfagb =_acedc .copyObject (_acedc ._cbfagb ,_ffdbb ,nil ,false ).(*_dfg .PdfIndirectObject );
+if _acedc ._bbbecb !=nil {_acedc ._bbbecb =_acedc .copyObject (_acedc ._bbbecb ,_ffdbb ,nil ,false ).(*_dfg .PdfIndirectObject );};if _acedc ._cddgg {_becgc :=make (map[_dfg .PdfObject ]int64 );for _cbabf ,_fcbcf :=range _acedc ._dacf {if _fcefe ,_acgccb :=_ffdbb [_cbabf ];
+_acgccb {_becgc [_fcefe ]=_fcbcf ;}else {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020a\u0070\u0070\u0065n\u0064\u0020\u006d\u006fd\u0065\u0020\u002d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0063\u006f\u0070\u0079\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0020\u006d\u0061\u0070");
+};};_acedc ._dacf =_becgc ;};};
+
+// NewPdfField returns an initialized PdfField.
+func NewPdfField ()*PdfField {return &PdfField {_caaa :_dfg .MakeIndirectObject (_dfg .MakeDict ())}};
+
+// ToPdfObject implements interface PdfModel.
+// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
+func (_gdaa *PdfAnnotation )ToPdfObject ()_dfg .PdfObject {_cegc :=_gdaa ._afae ;_efbdg :=_cegc .PdfObject .(*_dfg .PdfObjectDictionary );_efbdg .Clear ();_efbdg .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0041\u006e\u006eo\u0074"));_efbdg .SetIfNotNil ("\u0052\u0065\u0063\u0074",_gdaa .Rect );
+_efbdg .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gdaa .Contents );_efbdg .SetIfNotNil ("\u0050",_gdaa .P );_efbdg .SetIfNotNil ("\u004e\u004d",_gdaa .NM );_efbdg .SetIfNotNil ("\u004d",_gdaa .M );_efbdg .SetIfNotNil ("\u0046",_gdaa .F );
+_efbdg .SetIfNotNil ("\u0041\u0050",_gdaa .AP );_efbdg .SetIfNotNil ("\u0041\u0053",_gdaa .AS );_efbdg .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_gdaa .Border );_efbdg .SetIfNotNil ("\u0043",_gdaa .C );_efbdg .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_gdaa .StructParent );
+_efbdg .SetIfNotNil ("\u004f\u0043",_gdaa .OC );return _cegc ;};
+
+// NewPdfAnnotationInk returns a new ink annotation.
+func NewPdfAnnotationInk ()*PdfAnnotationInk {_dba :=NewPdfAnnotation ();_eecc :=&PdfAnnotationInk {};_eecc .PdfAnnotation =_dba ;_eecc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dba .SetContext (_eecc );return _eecc ;};
+
+// PdfActionURI represents an URI action.
+type PdfActionURI struct{*PdfAction ;URI _dfg .PdfObject ;IsMap _dfg .PdfObject ;};
+
+// ToPdfObject returns the PDF representation of the shading pattern.
+func (_fbgcg *PdfShadingPatternType3 )ToPdfObject ()_dfg .PdfObject {_fbgcg .PdfPattern .ToPdfObject ();_dfbb :=_fbgcg .getDict ();if _fbgcg .Shading !=nil {_dfbb .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_fbgcg .Shading .ToPdfObject ());};if _fbgcg .Matrix !=nil {_dfbb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_fbgcg .Matrix );
+};if _fbgcg .ExtGState !=nil {_dfbb .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_fbgcg .ExtGState );};return _fbgcg ._adcec ;};
+
+// StructureTagInfo represents a tagged structure in a PDF document that used by Drawable components.
+type StructureTagInfo struct{
+
+// Marked Content ID, if applicable.
+Mcid int64 ;
+
+// Structure type, a name object identifying the nature of the object and its role within the document.
+StructureType StructureType ;
+
+// AnnotObjs is used to reference annotation objects in structure elements
+AnnotObjs []_dfg .PdfObject ;
+
+// Whether the component that has StructureTagInfo is tagged for accessibility.
+ApplyTag bool ;
+
+// Parent K object for the component structure that also act as a parent node.
+ParentKObj *KDict ;
+
+// The page number where the structure element for this component is located.
+StructPageNumber *int64 ;
+
+// K object for the component.
+ComponentKObj *KDict ;};
+
+// SetXObjectImageByName adds the provided XObjectImage to the page resources.
+// The added XObjectImage is identified by the specified name.
+func (_adfee *PdfPageResources )SetXObjectImageByName (keyName _dfg .PdfObjectName ,ximg *XObjectImage )error {_bdfdd :=ximg .ToPdfObject ().(*_dfg .PdfObjectStream );_bgea :=_adfee .SetXObjectByName (keyName ,_bdfdd );return _bgea ;};
+
+// FontDescriptor returns font's PdfFontDescriptor. This may be a builtin descriptor for standard 14
+// fonts but must be an explicit descriptor for other fonts.
+func (_cdafc *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _cdafc .baseFields ()._cebfd !=nil {return _cdafc .baseFields ()._cebfd ;};if _dbdf :=_cdafc ._fab .getFontDescriptor ();_dbdf !=nil {return _dbdf ;};_egb .Log .Error ("\u0041\u006cl \u0066\u006f\u006et\u0073\u0020\u0068\u0061ve \u0061 D\u0065\u0073\u0063\u0072\u0069\u0070\u0074or\u002e\u0020\u0066\u006f\u006e\u0074\u003d%\u0073",_cdafc );
+return nil ;};func (_agg *PdfReader )newPdfAnnotationPrinterMarkFromDict (_fdab *_dfg .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_bgbd :=PdfAnnotationPrinterMark {};_bgbd .MN =_fdab .Get ("\u004d\u004e");return &_bgbd ,nil ;};
+
+// UpdateObject marks `obj` as updated and to be included in the following revision.
+func (_ceecc *PdfAppender )UpdateObject (obj _dfg .PdfObject ){_ceecc .replaceObject (obj ,obj );if _ ,_gdca :=_ceecc ._dadd [obj ];!_gdca {_ceecc ._fbfcg =append (_ceecc ._fbfcg ,obj );_ceecc ._dadd [obj ]=struct{}{};};};
+
+// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
+// annotations, otherwise returns the loaded list.
+func (_aeccg *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _aeccg ._dbec !=nil {return _aeccg ._dbec ,nil ;};if _aeccg .Annots ==nil {_aeccg ._dbec =[]*PdfAnnotation {};return nil ,nil ;};if _aeccg ._ggcgd ==nil {_aeccg ._dbec =[]*PdfAnnotation {};
+return nil ,nil ;};_aagec ,_cdedd :=_aeccg ._ggcgd .loadAnnotations (_aeccg .Annots );if _cdedd !=nil {return nil ,_cdedd ;};if _aagec ==nil {_aeccg ._dbec =[]*PdfAnnotation {};};_aeccg ._dbec =_aagec ;return _aeccg ._dbec ,nil ;};var (ArtifactAttachPositionTop ArtifactAttachPosition ="\u0054\u006f\u0070";
+ArtifactAttachPositionBottom ArtifactAttachPosition ="\u0042\u006f\u0074\u0074\u006f\u006d";ArtifactAttachPositionLeft ArtifactAttachPosition ="\u004c\u0065\u0066\u0074";ArtifactAttachPositionRight ArtifactAttachPosition ="\u0052\u0069\u0067h\u0074";);
+
+
+// WatermarkTextOptions contains options for configuring the text watermark process.
+type WatermarkTextOptions struct{
+
+// opacity, 0.5 by default.
+Alpha float64 ;
+
+// font size, 20 by default.
+FontSize float64 ;
+
+// it is mandatory to set FontPath to the path of .ttf font file you would like to use for drawing.
+FontPath string ;
+
+// font color, black by default.
+FontColor _dc .Color ;
+
+// rotation angle in degrees, 0 by default.
+Angle float64 ;};
+
+// ToPdfObject returns the PDF representation of the shading dictionary.
+func (_aedgf *PdfShadingType4 )ToPdfObject ()_dfg .PdfObject {_aedgf .PdfShading .ToPdfObject ();_gacb ,_gbddc :=_aedgf .getShadingDict ();if _gbddc !=nil {_egb .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
+return nil ;};if _aedgf .BitsPerCoordinate !=nil {_gacb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aedgf .BitsPerCoordinate );};if _aedgf .BitsPerComponent !=nil {_gacb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aedgf .BitsPerComponent );
+};if _aedgf .BitsPerFlag !=nil {_gacb .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aedgf .BitsPerFlag );};if _aedgf .Decode !=nil {_gacb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aedgf .Decode );};if _aedgf .Function !=nil {if len (_aedgf .Function )==1{_gacb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aedgf .Function [0].ToPdfObject ());
+}else {_ecaeb :=_dfg .MakeArray ();for _ ,_edgbf :=range _aedgf .Function {_ecaeb .Append (_edgbf .ToPdfObject ());};_gacb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ecaeb );};};return _aedgf ._gdfdg ;};
+
+// SetMCID sets the MCID for the KValue.
+func (_ccfcb *KValue )SetMCID (mcid int ){_ccfcb .Clear ();_ccfcb ._dddge =&mcid };
+
+// SetContentStream updates the content stream with specified encoding.
+// If encoding is null, will use the xform.Filter object or Raw encoding if not set.
+func (_gecac *XObjectForm )SetContentStream (content []byte ,encoder _dfg .StreamEncoder )error {_ceedf :=content ;if encoder ==nil {if _gecac .Filter !=nil {encoder =_gecac .Filter ;}else {encoder =_dfg .NewRawEncoder ();};};_abbfg ,_ddbgbc :=encoder .EncodeBytes (_ceedf );
+if _ddbgbc !=nil {return _ddbgbc ;};_ceedf =_abbfg ;_gecac .Stream =_ceedf ;_gecac .Filter =encoder ;return nil ;};
+
+// ColorToRGB converts a CMYK32 color to an RGB color.
+func (_edfb *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_daddd ,_cdag :=color .(*PdfColorDeviceCMYK );if !_cdag {_egb .Log .Debug ("I\u006e\u0070\u0075\u0074\u0020\u0063o\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0064e\u0076\u0069\u0063e\u0020c\u006d\u0079\u006b");
+return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_afea :=_daddd .C ();_fegg :=_daddd .M ();_eebd :=_daddd .Y ();_ebec :=_daddd .K ();_afea =_afea *(1-_ebec )+_ebec ;_fegg =_fegg *(1-_ebec )+_ebec ;
+_eebd =_eebd *(1-_ebec )+_ebec ;_ddcf :=1-_afea ;_agcdg :=1-_fegg ;_cafg :=1-_eebd ;return NewPdfColorDeviceRGB (_ddcf ,_agcdg ,_cafg ),nil ;};func _ffed (_bcbad _dfg .PdfObject )(*_dfg .PdfObjectDictionary ,*fontCommon ,error ){_bcce :=&fontCommon {};
+if _dfabf ,_acae :=_bcbad .(*_dfg .PdfIndirectObject );_acae {_bcce ._egggc =_dfabf .ObjectNumber ;};_gegcag ,_abaef :=_dfg .GetDict (_bcbad );if !_abaef {_egb .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0067\u0069\u0076\u0065\u006e\u0020\u0062\u0079\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_bcbad );
+return nil ,nil ,ErrFontNotSupported ;};_cded ,_abaef :=_dfg .GetNameVal (_gegcag .Get ("\u0054\u0079\u0070\u0065"));if !_abaef {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046o\u006e\u0074\u0020\u0049\u006ec\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u002e\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
+return nil ,nil ,ErrRequiredAttributeMissing ;};if _cded !="\u0046\u006f\u006e\u0074"{_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0046\u006f\u006e\u0074\u0020\u0049\u006e\u0063\u006f\u006d\u0070\u0061t\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u002e\u0020\u0054\u0079\u0070\u0065\u003d\u0025\u0071\u002e\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0025\u0071.",_cded ,"\u0046\u006f\u006e\u0074");
+return nil ,nil ,_dfg .ErrTypeError ;};_bbbce ,_abaef :=_dfg .GetNameVal (_gegcag .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_abaef {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020F\u006f\u006e\u0074 \u0049\u006e\u0063o\u006d\u0070a\u0074\u0069\u0062\u0069\u006c\u0069t\u0079. \u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
+return nil ,nil ,ErrRequiredAttributeMissing ;};_bcce ._gdab =_bbbce ;_ggbb ,_abaef :=_dfg .GetNameVal (_gegcag .Get ("\u004e\u0061\u006d\u0065"));if _abaef {_bcce ._gadbd =_ggbb ;};_decfg :=_gegcag .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");
+if _decfg !=nil {_bcce ._eaaga =_dfg .TraceToDirectObject (_decfg );_dbgad ,_cacd :=_defa (_bcce ._eaaga ,_bcce );if _cacd !=nil {return _gegcag ,_bcce ,_cacd ;};_bcce ._bgdcbc =_dbgad ;}else if _bbbce =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_bbbce =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_cdeg ,_abcdf :=_efg .NewCIDSystemInfo (_gegcag .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
+if _abcdf !=nil {return _gegcag ,_bcce ,_abcdf ;};_ddfec :=_d .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_cdeg .Registry ,_cdeg .Ordering );if _efg .IsPredefinedCMap (_ddfec ){_bcce ._bgdcbc ,_abcdf =_efg .LoadPredefinedCMap (_ddfec );
+if _abcdf !=nil {_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020l\u006f\u0061\u0064\u0020\u0070\u0072\u0065\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0043\u004d\u0061\u0070\u0020\u0025\u0073\u003a\u0020\u0025\u0076",_ddfec ,_abcdf );
+};};};_cgfe :=_gegcag .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _cgfe !=nil {_efcee ,_adeaa :=_geaf (_cgfe );if _adeaa !=nil {_egb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0042\u0061\u0064\u0020\u0066\u006f\u006et\u0020d\u0065s\u0063r\u0069\u0070\u0074\u006f\u0072\u002e\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_adeaa );
+return _gegcag ,_bcce ,_adeaa ;};_bcce ._cebfd =_efcee ;};if _bbbce !="\u0054\u0079\u0070e\u0033"{_beac ,_baafg :=_dfg .GetNameVal (_gegcag .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_baafg {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0046\u006f\u006et\u0020\u0049\u006ec\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069t\u0079\u002e\u0020\u0042\u0061se\u0046\u006f\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
+return _gegcag ,_bcce ,ErrRequiredAttributeMissing ;};_bcce ._dbcbc =_beac ;};return _gegcag ,_bcce ,nil ;};func _bgbfb (_acbe _dfg .PdfObject )(string ,error ){_acbe =_dfg .TraceToDirectObject (_acbe );switch _fbac :=_acbe .(type ){case *_dfg .PdfObjectString :return _fbac .Str (),nil ;
+case *_dfg .PdfObjectStream :_dcgb ,_gbda :=_dfg .DecodeStream (_fbac );if _gbda !=nil {return "",_gbda ;};return string (_dcgb ),nil ;};return "",_d .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_acbe );
+};
+
+// ToPdfObject returns a PDF object representation of the outline destination.
+func (_fcbda OutlineDest )ToPdfObject ()_dfg .PdfObject {if (_fcbda .PageObj ==nil &&_fcbda .Page < 0)||_fcbda .Mode ==""{return _dfg .MakeNull ();};_cbdde :=_dfg .MakeArray ();if _fcbda .PageObj !=nil {_cbdde .Append (_fcbda .PageObj );}else {_cbdde .Append (_dfg .MakeInteger (_fcbda .Page ));
+};_cbdde .Append (_dfg .MakeName (_fcbda .Mode ));switch _fcbda .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_cbdde .Append (_dfg .MakeFloat (_fcbda .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_cbdde .Append (_dfg .MakeFloat (_fcbda .X ));
+case "\u0058\u0059\u005a":_cbdde .Append (_dfg .MakeFloat (_fcbda .X ));_cbdde .Append (_dfg .MakeFloat (_fcbda .Y ));_cbdde .Append (_dfg .MakeFloat (_fcbda .Zoom ));default:_cbdde .Set (1,_dfg .MakeName ("\u0046\u0069\u0074"));};return _cbdde ;};
+
+// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
+type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_gcdeg *_dfg .PdfIndirectObject ;};
+
+// NewPdfActionJavaScript returns a new "javaScript" action.
+func NewPdfActionJavaScript ()*PdfActionJavaScript {_ecge :=NewPdfAction ();_dabc :=&PdfActionJavaScript {};_dabc .PdfAction =_ecge ;_ecge .SetContext (_dabc );return _dabc ;};
+
+// Evaluate runs the function on the passed in slice and returns the results.
+func (_gagfgc *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_gagfgc .NumInputs {_egb .Log .Error ("\u004eu\u006d\u0062e\u0072\u0020\u006f\u0066 \u0069\u006e\u0070u\u0074\u0073\u0020\u006e\u006f\u0074\u0020\u006d\u0061tc\u0068\u0069\u006eg\u0020\u0077h\u0061\u0074\u0020\u0069\u0073\u0020n\u0065\u0065d\u0065\u0064");
+return nil ,_bd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _gagfgc ._aabea ==nil {_dceaa :=_gagfgc .processSamples ();if _dceaa !=nil {return nil ,_dceaa ;};};_ebdeb :=_gagfgc .Encode ;
+if _ebdeb ==nil {_ebdeb =[]float64 {};for _ddgff :=0;_ddgff < len (_gagfgc .Size );_ddgff ++{_ebdeb =append (_ebdeb ,0);_ebdeb =append (_ebdeb ,float64 (_gagfgc .Size [_ddgff ]-1));};};_dcdcf :=_gagfgc .Decode ;if _dcdcf ==nil {_dcdcf =_gagfgc .Range ;
+};_bfcff :=make ([]int ,len (x ));for _bafcc :=0;_bafcc < len (x );_bafcc ++{_egdd :=x [_bafcc ];_fagdb :=_df .Min (_df .Max (_egdd ,_gagfgc .Domain [2*_bafcc ]),_gagfgc .Domain [2*_bafcc +1]);_egacdb :=_ef .LinearInterpolate (_fagdb ,_gagfgc .Domain [2*_bafcc ],_gagfgc .Domain [2*_bafcc +1],_ebdeb [2*_bafcc ],_ebdeb [2*_bafcc +1]);
+_cgdbb :=_df .Min (_df .Max (_egacdb ,0),float64 (_gagfgc .Size [_bafcc ]-1));_gaedc :=int (_df .Floor (_cgdbb +0.5));if _gaedc < 0{_gaedc =0;}else if _gaedc > _gagfgc .Size [_bafcc ]{_gaedc =_gagfgc .Size [_bafcc ]-1;};_bfcff [_bafcc ]=_gaedc ;};_afgca :=_bfcff [0];
+for _cabeda :=1;_cabeda < _gagfgc .NumInputs ;_cabeda ++{_efeba :=_bfcff [_cabeda ];for _bebfc :=0;_bebfc < _cabeda ;_bebfc ++{_efeba *=_gagfgc .Size [_bebfc ];};_afgca +=_efeba ;};_afgca *=_gagfgc .NumOutputs ;var _ggfcb []float64 ;for _edbbg :=0;_edbbg < _gagfgc .NumOutputs ;
+_edbbg ++{_bfade :=_afgca +_edbbg ;if _bfade >=len (_gagfgc ._aabea ){_egb .Log .Debug ("\u0057\u0041\u0052\u004e\u003a \u006e\u006ft\u0020\u0065\u006eo\u0075\u0067\u0068\u0020\u0069\u006ep\u0075\u0074\u0020sa\u006dp\u006c\u0065\u0073\u0020\u0074\u006f\u0020d\u0065\u0074\u0065\u0072\u006d\u0069\u006e\u0065\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0076\u0061lu\u0065\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
+continue ;};_cfgd :=_gagfgc ._aabea [_bfade ];_edadcf :=_ef .LinearInterpolate (float64 (_cfgd ),0,_df .Pow (2,float64 (_gagfgc .BitsPerSample )),_dcdcf [2*_edbbg ],_dcdcf [2*_edbbg +1]);_adgag :=_df .Min (_df .Max (_edadcf ,_gagfgc .Range [2*_edbbg ]),_gagfgc .Range [2*_edbbg +1]);
+_ggfcb =append (_ggfcb ,_adgag );};return _ggfcb ,nil ;};
+
+// PdfColorDeviceCMYK is a CMYK32 color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
+type PdfColorDeviceCMYK [4]float64 ;func (_ggacb *PdfWriter )writeOutputIntents ()error {if len (_ggacb ._ebgdb )==0{return nil ;};_bcbff :=make ([]_dfg .PdfObject ,len (_ggacb ._ebgdb ));for _bdgfg ,_ebdd :=range _ggacb ._ebgdb {_ffacf :=_ebdd .ToPdfObject ();
+_bcbff [_bdgfg ]=_dfg .MakeIndirectObject (_ffacf );};_affed :=_dfg .MakeIndirectObject (_dfg .MakeArray (_bcbff ...));_ggacb ._acgcc .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_affed );if _gaede :=_ggacb .addObjects (_affed );
+_gaede !=nil {return _gaede ;};return nil ;};func (_ebeab *PdfWriter )optimize ()error {if _ebeab ._gface ==nil {return nil ;};var _edbfd error ;_ebeab ._abcef ,_edbfd =_ebeab ._gface .Optimize (_ebeab ._abcef );if _edbfd !=nil {return _edbfd ;};_dabge :=make (map[_dfg .PdfObject ]struct{},len (_ebeab ._abcef ));
+for _ ,_gddacc :=range _ebeab ._abcef {_dabge [_gddacc ]=struct{}{};};_ebeab ._bgbee =_dabge ;return nil ;};
+
+// ToPdfObject sets the common field elements.
+// Note: Call the more field context's ToPdfObject to set both the generic and
+// non-generic information.
+func (_cefaeb *PdfField )ToPdfObject ()_dfg .PdfObject {_bfge :=_cefaeb ._caaa ;_dbbfa :=_bfge .PdfObject .(*_dfg .PdfObjectDictionary );_gbca :=_dfg .MakeArray ();for _ ,_cfeecd :=range _cefaeb .Kids {_gbca .Append (_cfeecd .ToPdfObject ());};for _ ,_gabb :=range _cefaeb .Annotations {if _gabb ._afae !=_cefaeb ._caaa {_gbca .Append (_gabb .GetContext ().ToPdfObject ());
+};};if _cefaeb .Parent !=nil {_dbbfa .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_cefaeb .Parent .GetContainingPdfObject ());};if _gbca .Len ()> 0{_dbbfa .Set ("\u004b\u0069\u0064\u0073",_gbca );};_dbbfa .SetIfNotNil ("\u0046\u0054",_cefaeb .FT );
+_dbbfa .SetIfNotNil ("\u0054",_cefaeb .T );_dbbfa .SetIfNotNil ("\u0054\u0055",_cefaeb .TU );_dbbfa .SetIfNotNil ("\u0054\u004d",_cefaeb .TM );_dbbfa .SetIfNotNil ("\u0046\u0066",_cefaeb .Ff );_dbbfa .SetIfNotNil ("\u0056",_cefaeb .V );_dbbfa .SetIfNotNil ("\u0044\u0056",_cefaeb .DV );
+_dbbfa .SetIfNotNil ("\u0041\u0041",_cefaeb .AA );if _cefaeb .VariableText !=nil {_dbbfa .SetIfNotNil ("\u0044\u0041",_cefaeb .VariableText .DA );_dbbfa .SetIfNotNil ("\u0051",_cefaeb .VariableText .Q );_dbbfa .SetIfNotNil ("\u0044\u0053",_cefaeb .VariableText .DS );
+_dbbfa .SetIfNotNil ("\u0052\u0056",_cefaeb .VariableText .RV );};return _bfge ;};func (_bafe *Names )addEmbeddedFile (_gfgbe *EmbeddedFile )error {if _bafe .EmbeddedFiles ==nil {_bafe .EmbeddedFiles =_dfg .MakeDict ();_bafe .EmbeddedFiles .Set ("\u004e\u0061\u006de\u0073",_dfg .MakeArray ());
+};_fbbdb :=NewPdfFileSpecFromEmbeddedFile (_gfgbe );_bcbeg :=_bafe .EmbeddedFiles .Get ("\u004e\u0061\u006de\u0073");_faaca ,_ebadc :=_bcbeg .(*_dfg .PdfObjectArray );if !_ebadc {return _bd .New ("\u0049\u006e\u0076\u0061li\u0064\u0020\u004e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
+};type FileSpecMap struct{_aeee string ;_bbcbe *PdfFilespec ;};_agebf :=[]FileSpecMap {};for _aafbb :=0;_aafbb < len (_faaca .Elements ());_aafbb +=2{if _aafbb %2==0{_cfcaf :=_faaca .Get (_aafbb );if _cfcaf !=nil {_fbbdf :=_cfcaf .(*_dfg .PdfObjectString );
+_acebb :=_faaca .Get (_aafbb +1);_cfbdd ,_agdg :=NewPdfFilespecFromObj (_acebb );if _agdg !=nil {return _agdg ;};_agebf =append (_agebf ,FileSpecMap {_aeee :_fbbdf .String (),_bbcbe :_cfbdd });};};};_agebf =append (_agebf ,FileSpecMap {_aeee :_gfgbe .Name ,_bbcbe :_fbbdb });
+_ed .Slice (_agebf ,func (_edffg ,_baace int )bool {return _agebf [_edffg ]._aeee < _agebf [_baace ]._aeee });_faaca =_dfg .MakeArray ();for _ ,_caaaf :=range _agebf {_faaca .Append (_dfg .MakeString (_caaaf ._aeee ));_faaca .Append (_caaaf ._bbcbe .ToPdfObject ());
+};_bafe .EmbeddedFiles .Set ("\u004e\u0061\u006de\u0073",_faaca );return nil ;};func (_addfe *fontFile )loadFromSegments (_aecd ,_cedac []byte )error {_egb .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_aecd ),len (_cedac ));
+_bcbe :=_addfe .parseASCIIPart (_aecd );if _bcbe !=nil {return _bcbe ;};_egb .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_addfe );if len (_cedac )==0{return nil ;};_egb .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_addfe );
+return nil ;};
+
+// GetContainingPdfObject returns the container of the outline tree node (indirect object).
+func (_efcda *PdfOutlineTreeNode )GetContainingPdfObject ()_dfg .PdfObject {return _efcda .GetContext ().GetContainingPdfObject ();};
+
+// PdfVersion returns version of the PDF file.
+func (_bcgce *PdfReader )PdfVersion ()_dfg .Version {return _bcgce ._agbcd .PdfVersion ()};
+
+// DSS represents a Document Security Store dictionary.
+// The DSS dictionary contains both global and signature specific validation
+// information. The certificates and revocation data in the `Certs`, `OCSPs`,
+// and `CRLs` fields can be used to validate any signature in the document.
+// Additionally, the VRI entry contains validation data per signature.
+// The keys in the VRI entry are calculated as upper(hex(sha1(sig.Contents))).
+// The values are VRI dictionaries containing certificates and revocation
+// information used for validating a single signature.
+// See ETSI TS 102 778-4 V1.1.1 for more information.
+type DSS struct{_beab *_dfg .PdfIndirectObject ;Certs []*_dfg .PdfObjectStream ;OCSPs []*_dfg .PdfObjectStream ;CRLs []*_dfg .PdfObjectStream ;VRI map[string ]*VRI ;_fbgf map[string ]*_dfg .PdfObjectStream ;_fecgg map[string ]*_dfg .PdfObjectStream ;_cccc map[string ]*_dfg .PdfObjectStream ;
+};
+
+// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
+func (_bage *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};func _aafa (_gdcba *_dfg .PdfObjectDictionary )(*PdfFieldText ,error ){_gbad :=&PdfFieldText {};_gbad .DA ,_ =_dfg .GetString (_gdcba .Get ("\u0044\u0041"));
+_gbad .Q ,_ =_dfg .GetInt (_gdcba .Get ("\u0051"));_gbad .DS ,_ =_dfg .GetString (_gdcba .Get ("\u0044\u0053"));_gbad .RV =_gdcba .Get ("\u0052\u0056");_gbad .MaxLen ,_ =_dfg .GetInt (_gdcba .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _gbad ,nil ;
+};
+
+// ToGoImage converts the unidoc Image to a golang Image structure.
+func (_afgeg *Image )ToGoImage ()(_gf .Image ,error ){_egb .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_gbbb ,_efceaa :=_ef .NewImage (int (_afgeg .Width ),int (_afgeg .Height ),int (_afgeg .BitsPerComponent ),_afgeg .ColorComponents ,_afgeg .Data ,_afgeg ._baeef ,_afgeg ._begcc );
+if _efceaa !=nil {return nil ,_efceaa ;};return _gbbb ,nil ;};
+
+// NewPdfActionImportData returns a new "import data" action.
+func NewPdfActionImportData ()*PdfActionImportData {_gee :=NewPdfAction ();_egbc :=&PdfActionImportData {};_egbc .PdfAction =_gee ;_gee .SetContext (_egbc );return _egbc ;};func (_acadf *PdfWriter )writeNamesDictionary ()error {if _acadf ._baeae ==nil {return nil ;
+};_cfab :=_acadf ._baeae .ToPdfObject ();_acadf ._acgcc .Set ("\u004e\u0061\u006de\u0073",_cfab );_adaf :=_acadf .addObjects (_cfab );if _adaf !=nil {return _adaf ;};return nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_gabe *PdfBorderStyle )ToPdfObject ()_dfg .PdfObject {_cdgb :=_dfg .MakeDict ();if _gabe ._gcac !=nil {if _beb ,_cffgc :=_gabe ._gcac .(*_dfg .PdfIndirectObject );_cffgc {_beb .PdfObject =_cdgb ;};};_cdgb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
+if _gabe .W !=nil {_cdgb .Set ("\u0057",_dfg .MakeFloat (*_gabe .W ));};if _gabe .S !=nil {_cdgb .Set ("\u0053",_dfg .MakeName (_gabe .S .GetPdfName ()));};if _gabe .D !=nil {_cdgb .Set ("\u0044",_dfg .MakeArrayFromIntegers (*_gabe .D ));};if _gabe ._gcac !=nil {return _gabe ._gcac ;
+};return _cdgb ;};func (_gcca *PdfReader )newPdfAnnotationStampFromDict (_dcb *_dfg .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_cafd :=PdfAnnotationStamp {};_ffd ,_gdec :=_gcca .newPdfAnnotationMarkupFromDict (_dcb );if _gdec !=nil {return nil ,_gdec ;
+};_cafd .PdfAnnotationMarkup =_ffd ;_cafd .Name =_dcb .Get ("\u004e\u0061\u006d\u0065");return &_cafd ,nil ;};
+
+// CharcodesToStrings returns the unicode strings corresponding to `charcodes`.
+// The int returns are the number of strings and the number of unconvereted codes.
+// NOTE: The number of strings returned is equal to the number of charcodes
+func (_ffcg *PdfFont )CharcodesToStrings (charcodes []_ff .CharCode ,replacementText string )([]string ,int ,int ){_bbef :=_ffcg .baseFields ();_dbba :=make ([]string ,0,len (charcodes ));_eeaeb :=0;_cgeb :=_ffcg .Encoder ();_dfbe :=_bbef ._bgdcbc !=nil &&_ffcg .IsSimple ()&&_ffcg .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_af .Contains (_bbef ._bgdcbc .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
+if !_dfbe &&_cgeb !=nil {switch _ebbg :=_cgeb .(type ){case _ff .SimpleEncoder :_gbdfb :=_ebbg .BaseName ();if _ ,_fbbae :=_cbgbe [_gbdfb ];_fbbae {for _ ,_gfecc :=range charcodes {if _efcbf ,_dbcad :=_cgeb .CharcodeToRune (_gfecc );_dbcad {_dbba =append (_dbba ,string (_efcbf ));
+}else {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0072u\u006e\u0065\u002e\u0020\u0063\u006f\u0064\u0065=\u0030x\u0025\u0030\u0034\u0078\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0073\u003d\u005b\u0025\u00200\u0034\u0078\u005d\u0020\u0043\u0049\u0044\u003d\u0025\u0074\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073\n\u0009\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u003d\u0025\u0073",_gfecc ,charcodes ,_bbef .isCIDFont (),_ffcg ,_cgeb );
+_eeaeb ++;_dbba =append (_dbba ,_efg .MissingCodeString );};};return _dbba ,len (_dbba ),_eeaeb ;};};};for _ ,_efabe :=range charcodes {if _bbef ._bgdcbc !=nil {if _agdf ,_bcdd :=_bbef ._bgdcbc .CharcodeToUnicode (_efg .CharCode (_efabe ));_bcdd {_bdaca ,_ :=_ee .DecodeLastRuneInString (_agdf );
+_cdfge :=_ggbfb (_bdaca );if _cdfge !="\u0043\u006f"{_dbba =append (_dbba ,_agdf );continue ;};_egb .Log .Debug ("E\u0052\u0052\u004fR\u003a\u0020\u0054\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u0020\u0043\u006d\u0061p\u0020\u0068\u0061\u0073\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063t\u0020\u006d\u0061\u0070\u0070\u0069\u006e\u0067.\u0020\u0063\u006f\u0064\u0065\u003d\u0030\u0078\u0025\u0030\u0034\u0078\u0020\u0069\u0073\u0020m\u0061\u0070\u0070\u0065\u0064 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0063\u006f\u0064\u0065 \u0070\u006f\u0069\u006e\u0074\u0020\u0025\u0073",_efabe ,_agdf );
+};};if _cgeb !=nil {if _gaag ,_cgebf :=_cgeb .CharcodeToRune (_efabe );_cgebf {_bebc :=_ggbfb (_gaag );if _bebc !="\u0043\u006f"{_dbba =append (_dbba ,string (_gaag ));continue ;};_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u002e \u0063\u006f\u0064\u0065\u003d\u0030x\u0025\u0030\u0034\u0078\u0020\u0069\u0073\u0020\u0064\u0065\u0063\u006f\u0064\u0065d\u0020\u0074o\u0020\u0061\u006e\u0020i\u006e\u0076\u0061\u006c\u0069d\u0020\u0072\u0075\u006e\u0020\u0025\u0073",_efabe ,string (_gaag ));
+};};if replacementText !=""{_dbba =append (_dbba ,replacementText );}else {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0072u\u006e\u0065\u002e\u0020\u0063\u006f\u0064\u0065=\u0030x\u0025\u0030\u0034\u0078\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0073\u003d\u005b\u0025\u00200\u0034\u0078\u005d\u0020\u0043\u0049\u0044\u003d\u0025\u0074\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073\n\u0009\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u003d\u0025\u0073",_efabe ,charcodes ,_bbef .isCIDFont (),_ffcg ,_cgeb );
+_eeaeb ++;_dbba =append (_dbba ,_efg .MissingCodeString );};};if _eeaeb !=0{_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0043\u006f\u0075\u006c\u0064\u006e\u0027\u0074\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0074\u006f\u0020u\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u0055\u0073\u0069\u006e\u0067\u0020i\u006ep\u0075\u0074\u002e\u000a"+"\u0009\u006e\u0075\u006d\u0043\u0068\u0061\u0072\u0073\u003d\u0025d\u0020\u006e\u0075\u006d\u004d\u0069\u0073\u0073\u0065\u0073=\u0025\u0064\u000a"+"\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073",len (charcodes ),_eeaeb ,_ffcg );
+};return _dbba ,len (_dbba ),_eeaeb ;};func _cbbce (_edbda *_dfg .PdfObjectDictionary )(*PdfFieldButton ,error ){_gbdebc :=&PdfFieldButton {};_gbdebc .PdfField =NewPdfField ();_gbdebc .SetContext (_gbdebc );_gbdebc .Opt ,_ =_dfg .GetArray (_edbda .Get ("\u004f\u0070\u0074"));
+_gdag :=NewPdfAnnotationWidget ();_gdag .A ,_ =_dfg .GetDict (_edbda .Get ("\u0041"));_gdag .AP ,_ =_dfg .GetDict (_edbda .Get ("\u0041\u0050"));_gdag .SetContext (_gbdebc );_gbdebc .Annotations =append (_gbdebc .Annotations ,_gdag );return _gbdebc ,nil ;
+};
+
+// ToPdfObject implements interface PdfModel.
+func (_cdfaf *PdfAnnotationTrapNet )ToPdfObject ()_dfg .PdfObject {_cdfaf .PdfAnnotation .ToPdfObject ();_efaa :=_cdfaf ._afae ;_ffbf :=_efaa .PdfObject .(*_dfg .PdfObjectDictionary );_ffbf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
+return _efaa ;};
+
+// String returns a string representation of PdfTransformParamsDocMDP.
+func (_dccbc *PdfTransformParamsDocMDP )String ()string {return _d .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_dccbc .Type ,_dccbc .P ,_dccbc .V );};
+
+// SetStructParentsKey sets the StructParents key.
+func (_caggga *PdfPage )SetStructParentsKey (key int ){if key ==-1{_caggga .StructParents =nil ;}else {_caggga .StructParents =_dfg .MakeInteger (int64 (key ));};};
+
+// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
+// or indirectly within an indirect object container.
+func (_fedfd *PdfColorspaceDeviceNAttributes )ToPdfObject ()_dfg .PdfObject {_acca :=_dfg .MakeDict ();if _fedfd .Subtype !=nil {_acca .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fedfd .Subtype );};_acca .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_fedfd .Colorants );
+_acca .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_fedfd .Process );_acca .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_fedfd .MixingHints );if _fedfd ._bfddg !=nil {_fedfd ._bfddg .PdfObject =_acca ;return _fedfd ._bfddg ;
+};return _acca ;};
+
+// EnableChain adds the specified certificate chain and validation data (OCSP
+// and CRL information) for it to the global scope of the document DSS. The
+// added data is used for validating any of the signatures present in the
+// document. The LTV client attempts to build the certificate chain up to a
+// trusted root by downloading any missing certificates.
+func (_aegag *LTV )EnableChain (chain []*_de .Certificate )error {return _aegag .enable (nil ,chain ,"")};
+
+// ColorFromFloats returns a new PdfColor based on input color components.
+func (_bbcf *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_bbcf .GetNumComponents (){return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fccf ,_ebeb :=_bbcf .TintTransform .Evaluate (vals );
+if _ebeb !=nil {return nil ,_ebeb ;};_dbgcf ,_ebeb :=_bbcf .AlternateSpace .ColorFromFloats (_fccf );if _ebeb !=nil {return nil ,_ebeb ;};return _dbgcf ,nil ;};
+
+// C returns the value of the cyan component of the color.
+func (_fefe *PdfColorDeviceCMYK )C ()float64 {return _fefe [0]};
+
+// GetOptimizer returns current PDF optimizer.
+func (_bdfgbc *PdfWriter )GetOptimizer ()Optimizer {return _bdfgbc ._gface };
+
+// SetNonFullScreenPageMode sets the value of the nonFullScreenPageMode.
+func (_fdcfe *ViewerPreferences )SetNonFullScreenPageMode (nonFullScreenPageMode NonFullScreenPageMode ){_fdcfe ._gbbce =nonFullScreenPageMode ;};func (_gddda *PdfWriter )setHashIDs (_faec _g .Hash )error {_adcdf :=_faec .Sum (nil );if _gddda ._baeaee ==""{_gddda ._baeaee =_bc .EncodeToString (_adcdf [:8]);
+};_gddda .setDocumentIDs (_gddda ._baeaee ,_bc .EncodeToString (_adcdf [8:]));return nil ;};
+
+// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
+// a failure in loading.
+func NewPdfColorspaceFromPdfObject (obj _dfg .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _faag *_dfg .PdfIndirectObject ;var _cgca *_dfg .PdfObjectName ;var _bgdca *_dfg .PdfObjectArray ;if _babfa ,_bdbe :=obj .(*_dfg .PdfIndirectObject );
+_bdbe {_faag =_babfa ;};obj =_dfg .TraceToDirectObject (obj );switch _fcaca :=obj .(type ){case *_dfg .PdfObjectArray :_bgdca =_fcaca ;case *_dfg .PdfObjectName :_cgca =_fcaca ;};if _cgca !=nil {switch *_cgca {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":return NewPdfColorspaceDeviceGray (),nil ;
+case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":return NewPdfColorspaceDeviceRGB (),nil ;case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":return NewPdfColorspaceDeviceCMYK (),nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return NewPdfColorspaceSpecialPattern (),nil ;
+default:_egb .Log .Debug ("\u0045\u0052\u0052\u004fR\u003a\u0020\u0055\u006e\u006b\u006e\u006f\u0077\u006e\u0020c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0025\u0073",*_cgca );return nil ,_ceeeb ;};};if _bgdca !=nil &&_bgdca .Len ()> 0{var _abad _dfg .PdfObject =_faag ;
+if _faag ==nil {_abad =_bgdca ;};if _feab ,_agcf :=_dfg .GetName (_bgdca .Get (0));_agcf {switch _feab .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _bgdca .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _bgdca .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
+};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _bgdca .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _abbg (_abad );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _bdfaa (_abad );
+case "\u004c\u0061\u0062":return _bacbd (_abad );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _eddb (_abad );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _dbfa (_abad );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _dddea (_abad );
+case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _baba (_abad );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _daad (_abad );default:_egb .Log .Debug ("A\u0072\u0072\u0061\u0079\u0020\u0077i\u0074\u0068\u0020\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u006e\u0061m\u0065:\u0020\u0025\u0073",*_feab );
+};};};_egb .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ());
+return nil ,ErrTypeCheck ;};
+
+// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
+func (_bdga *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_ccfe :=0.3*_bdga .R ()+0.59*_bdga .G ()+0.11*_bdga .B ();_ccfe =_df .Min (_df .Max (_ccfe ,0.0),1.0);return NewPdfColorDeviceGray (_ccfe );};
+
+// SetDate sets the `M` field of the signature.
+func (_fdagb *PdfSignature )SetDate (date _ge .Time ,format string ){if format ==""{format ="\u0044\u003a\u003200\u0036\u0030\u0031\u0030\u0032\u0031\u0035\u0030\u0034\u0030\u0035\u002d\u0030\u0037\u0027\u0030\u0030\u0027";};_fdagb .M =_dfg .MakeString (date .Format (format ));
+};func (_ebc *PdfReader )newPdfActionNamedFromDict (_edac *_dfg .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_edac .Get ("\u004e")},nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_ccbgf *PdfAnnotationCircle )ToPdfObject ()_dfg .PdfObject {_ccbgf .PdfAnnotation .ToPdfObject ();_ffgb :=_ccbgf ._afae ;_bagg :=_ffgb .PdfObject .(*_dfg .PdfObjectDictionary );_ccbgf .appendToPdfDictionary (_bagg );_bagg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
+_bagg .SetIfNotNil ("\u0042\u0053",_ccbgf .BS );_bagg .SetIfNotNil ("\u0049\u0043",_ccbgf .IC );_bagg .SetIfNotNil ("\u0042\u0045",_ccbgf .BE );_bagg .SetIfNotNil ("\u0052\u0044",_ccbgf .RD );return _ffgb ;};func _gccaa (_begae *PdfPage )_dfg .PdfObject {_feegd :=_gb .GetLicenseKey ();
+if _feegd !=nil &&_feegd .IsLicensed (){return _begae .ToPdfObject ();};_eggab :=_dfg .PdfObjectName ("\u0055\u0046\u0031");if !_begae .Resources .HasFontByName (_eggab ){_begae .Resources .SetFontByName (_eggab ,DefaultFont ().ToPdfObject ());};var _eaega []string ;
+_eaega =append (_eaega ,"\u0071");_eaega =append (_eaega ,"\u0042\u0054");_eaega =append (_eaega ,_d .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_eggab .String ()));_eaega =append (_eaega ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");
+_eaega =append (_eaega ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_dgdgc :="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020\u0055\u006e\u0069\u0044o\u0063\u0020\u002d\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u006c\u0069\u0063e\u006e\u0073\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070\u0073:/\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f";
+_eaega =append (_eaega ,_d .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_dgdgc ));_eaega =append (_eaega ,"\u0045\u0054");_eaega =append (_eaega ,"\u0051");_abgca :=_af .Join (_eaega ,"\u000a");_begae .AddContentStreamByString (_abgca );return _begae .ToPdfObject ();
+};func (_bace *PdfReader )newPdfActionThreadFromDict (_edaf *_dfg .PdfObjectDictionary )(*PdfActionThread ,error ){_gad ,_fgag :=_dbga (_edaf .Get ("\u0046"));if _fgag !=nil {return nil ,_fgag ;};return &PdfActionThread {D :_edaf .Get ("\u0044"),B :_edaf .Get ("\u0042"),F :_gad },nil ;
+};
+
+// SetPrintClip sets the value of the printClip.
+func (_ffeb *ViewerPreferences )SetPrintClip (printClip PageBoundary ){_ffeb ._cdbee =printClip };func (_bgcaa *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
+
+// GetMediaBox gets the inheritable media box value, either from the page
+// or a higher up page/pages struct.
+func (_bgeba *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _bgeba .MediaBox !=nil {return _bgeba .MediaBox ,nil ;};_bbefa :=_bgeba .Parent ;for _bbefa !=nil {_addb ,_edgc :=_dfg .GetDict (_bbefa );if !_edgc {return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063t\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079");
+};if _gadea :=_addb .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_gadea !=nil {_cgfg ,_adgbf :=_dfg .GetArray (_gadea );if !_adgbf {return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
+};_degf ,_bcgfg :=NewPdfRectangle (*_cgfg );if _bcgfg !=nil {return nil ,_bcgfg ;};return _degf ,nil ;};_bbefa =_addb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_bd .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
+};
+
+// ToImage converts an object to an Image which can be transformed or saved out.
+// The image data is decoded and the Image returned.
+func (_ddcga *XObjectImage )ToImage ()(*Image ,error ){_dacbb :=&Image {};if _ddcga .Height ==nil {return nil ,_bd .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
+};_dacbb .Height =*_ddcga .Height ;if _ddcga .Width ==nil {return nil ,_bd .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_dacbb .Width =*_ddcga .Width ;if _ddcga .BitsPerComponent ==nil {switch _ddcga .Filter .(type ){case *_dfg .CCITTFaxEncoder ,*_dfg .JBIG2Encoder :_dacbb .BitsPerComponent =1;
+case *_dfg .LZWEncoder ,*_dfg .RunLengthEncoder :_dacbb .BitsPerComponent =8;default:return nil ,_bd .New ("\u0062\u0069\u0074\u0073\u0020\u0070\u0065\u0072\u0020\u0063\u006fm\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006d\u0069\u0073s\u0069\u006e\u0067");
+};}else {_dacbb .BitsPerComponent =*_ddcga .BitsPerComponent ;};_dacbb .ColorComponents =_ddcga .ColorSpace .GetNumComponents ();_ddcga ._gfgedd .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_dfg .MakeInteger (int64 (_dacbb .ColorComponents )));
+_baade ,_fgfbb :=_dfg .DecodeStream (_ddcga ._gfgedd );if _fgfbb !=nil {return nil ,_fgfbb ;};_dacbb .Data =_baade ;if _ddcga .Decode !=nil {_acee ,_fcgfd :=_ddcga .Decode .(*_dfg .PdfObjectArray );if !_fcgfd {_egb .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
+return nil ,_bd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_acgf ,_bcdfe :=_acee .ToFloat64Array ();if _bcdfe !=nil {return nil ,_bcdfe ;};switch _ddcga .ColorSpace .(type ){case *PdfColorspaceDeviceCMYK :_fbaegd :=_ddcga .ColorSpace .DecodeArray ();
+if _fbaegd [0]==_acgf [0]&&_fbaegd [1]==_acgf [1]&&_fbaegd [2]==_acgf [2]&&_fbaegd [3]==_acgf [3]{_dacbb ._begcc =_acgf ;};default:_dacbb ._begcc =_acgf ;};};return _dacbb ,nil ;};func (_efddf *PdfShading )getShadingDict ()(*_dfg .PdfObjectDictionary ,error ){_afedb :=_efddf ._gdfdg ;
+if _gbfda ,_bbaa :=_afedb .(*_dfg .PdfIndirectObject );_bbaa {_fgeda ,_deggf :=_gbfda .PdfObject .(*_dfg .PdfObjectDictionary );if !_deggf {return nil ,_dfg .ErrTypeError ;};return _fgeda ,nil ;}else if _gbgbe ,_fgcbe :=_afedb .(*_dfg .PdfObjectStream );
+_fgcbe {return _gbgbe .PdfObjectDictionary ,nil ;}else if _cgbafc ,_ggacg :=_afedb .(*_dfg .PdfObjectDictionary );_ggacg {return _cgbafc ,nil ;}else {_egb .Log .Debug ("U\u006e\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0061\u0063\u0063\u0065s\u0073\u0020\u0073\u0068\u0061\u0064\u0069n\u0067\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079");
+return nil ,_dfg .ErrTypeError ;};};
+
+// Set sets the colorspace corresponding to key. Add to Names if not set.
+func (_aabdef *PdfPageResourcesColorspaces )Set (key _dfg .PdfObjectName ,val PdfColorspace ){if _ ,_efed :=_aabdef .Colorspaces [string (key )];!_efed {_aabdef .Names =append (_aabdef .Names ,string (key ));};_aabdef .Colorspaces [string (key )]=val ;
+};
+
+// GetPageIndirectObject returns the indirect object of page for the specified page number.
+func (_acfb *PdfWriter )GetPageIndirectObject (pageNum int )(*_dfg .PdfIndirectObject ,error ){if pageNum < 0||pageNum >=len (_acfb ._cbccc ){return nil ,_bd .New ("\u0070a\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006fu\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067\u0065");
+};return _acfb ._cbccc [pageNum ],nil ;};
+
+// SetPrintPageRange sets the value of the printPageRange.
+func (_dddf *ViewerPreferences )SetPrintPageRange (printPageRange []int ){_dddf ._gbdfbf =printPageRange ;};func (_agef *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
+
+// Inspect inspects the object types, subtypes and content in the PDF file returning a map of
+// object type to number of instances of each.
+func (_ecefc *PdfReader )Inspect ()(map[string ]int ,error ){return _ecefc ._agbcd .Inspect ()};
+
+// Duplex returns the value of the duplex.
+func (_fbacc *ViewerPreferences )Duplex ()Duplex {return _fbacc ._adeg };
+
+// NewPdfAnnotationRichMedia returns a new rich media annotation.
+func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_bfe :=NewPdfAnnotation ();_aceb :=&PdfAnnotationRichMedia {};_aceb .PdfAnnotation =_bfe ;_bfe .SetContext (_aceb );return _aceb ;};
+
+// PdfAnnotationSquare represents Square annotations.
+// (Section 12.5.6.8).
+type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _dfg .PdfObject ;IC _dfg .PdfObject ;BE _dfg .PdfObject ;RD _dfg .PdfObject ;};func _eaade (_cagd *PdfField ,_gfege _dfg .PdfObject )error {switch _cagd .GetContext ().(type ){case *PdfFieldText :switch _aabc :=_gfege .(type ){case *_dfg .PdfObjectName :_eabda :=_aabc ;
+_egb .Log .Debug ("\u0055\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u003a\u0020\u0047\u006f\u0074 \u0056\u0020\u0061\u0073\u0020\u006e\u0061\u006d\u0065\u0020\u002d\u003e\u0020c\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0074\u006f s\u0074\u0072\u0069\u006e\u0067\u0020\u0027\u0025\u0073\u0027",_eabda .String ());
+_cagd .V =_dfg .MakeEncodedString (_aabc .String (),true );case *_dfg .PdfObjectString :_cagd .V =_dfg .MakeEncodedString (_aabc .String (),true );default:_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0055\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0074\u0065\u0078\u0074\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0056\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054\u0020\u0028\u0025\u0023\u0076\u0029",_aabc ,_aabc );
+};case *PdfFieldButton :switch _gfege .(type ){case *_dfg .PdfObjectName :if len (_gfege .String ())> 0{_cagd .V =_gfege ;_fgagc (_cagd ,_gfege );};case *_dfg .PdfObjectString :if len (_gfege .String ())> 0{_cagd .V =_dfg .MakeName (_gfege .String ());
+_fgagc (_cagd ,_cagd .V );};default:_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u004e\u0045\u0058P\u0045\u0043\u0054\u0045\u0044\u0020\u0025\u0073\u0020\u002d>\u0020\u0025\u0076",_cagd .PartialName (),_gfege );_cagd .V =_gfege ;
+};case *PdfFieldChoice :switch _gfege .(type ){case *_dfg .PdfObjectName :if len (_gfege .String ())> 0{_cagd .V =_dfg .MakeString (_gfege .String ());_fgagc (_cagd ,_gfege );};case *_dfg .PdfObjectString :if len (_gfege .String ())> 0{_cagd .V =_gfege ;
+_fgagc (_cagd ,_dfg .MakeName (_gfege .String ()));};default:_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u004e\u0045\u0058P\u0045\u0043\u0054\u0045\u0044\u0020\u0025\u0073\u0020\u002d>\u0020\u0025\u0076",_cagd .PartialName (),_gfege );
+_cagd .V =_gfege ;};case *PdfFieldSignature :_egb .Log .Debug ("\u0054\u004f\u0044\u004f\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0061\u0070\u0070e\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0079\u0065\u0074\u003a\u0020\u0025\u0073\u002f\u0025v",_cagd .PartialName (),_gfege );
+};return nil ;};
+
+// Encrypt encrypts the output file with a specified user/owner password.
+func (_dbag *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_bffae :=RC4_128bit ;if options !=nil {_bffae =options .Algorithm ;};_ebefb :=_fc .PermOwner ;if options !=nil {_ebefb =options .Permissions ;};var _abeecg _edb .Filter ;
+switch _bffae {case RC4_128bit :_abeecg =_edb .NewFilterV2 (16);case AES_128bit :_abeecg =_edb .NewFilterAESV2 ();case AES_256bit :_abeecg =_edb .NewFilterAESV3 ();default:return _d .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
+};_eecfa ,_bedff ,_abdgg :=_dfg .PdfCryptNewEncrypt (_abeecg ,userPass ,ownerPass ,_ebefb );if _abdgg !=nil {return _abdgg ;};_dbag ._gbdfc =_eecfa ;if _bedff .Major !=0{_dbag .SetVersion (_bedff .Major ,_bedff .Minor );};_dbag ._ecgcc =_bedff .Encrypt ;
+_dbag ._baeaee ,_dbag ._dbddd =_bedff .ID0 ,_bedff .ID1 ;_aebgaf :=_dfg .MakeIndirectObject (_bedff .Encrypt );_dbag ._bbbecb =_aebgaf ;_dbag .addObject (_aebgaf );return nil ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;
+);
+
+// Hasher is the interface that wraps the basic Write method.
+type Hasher interface{Write (_eeddf []byte )(_eabea int ,_accee error );};
+
+// PdfAnnotationMovie represents Movie annotations.
+// (Section 12.5.6.17).
+type PdfAnnotationMovie struct{*PdfAnnotation ;T _dfg .PdfObject ;Movie _dfg .PdfObject ;A _dfg .PdfObject ;};
+
+// SetViewClip sets the value of the viewClip.
+func (_bdcb *ViewerPreferences )SetViewClip (viewClip PageBoundary ){_bdcb ._cfbeg =viewClip };
+
+// GetContainingPdfObject returns the container of the shading object (indirect object).
+func (_ggfff *PdfShading )GetContainingPdfObject ()_dfg .PdfObject {return _ggfff ._gdfdg };
+
+// PdfFunction interface represents the common methods of a function in PDF.
+type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_dfg .PdfObject ;};func _ggffb (_faeb _dfg .PdfObject )(*PdfPageResourcesColorspaces ,error ){_gfeee :=&PdfPageResourcesColorspaces {};if _gcebd ,_bfebd :=_faeb .(*_dfg .PdfIndirectObject );
+_bfebd {_gfeee ._acbeg =_gcebd ;_faeb =_gcebd .PdfObject ;};_bcfgf ,_fefdc :=_dfg .GetDict (_faeb );if !_fefdc {return nil ,_bd .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
+};_gfeee .Names =[]string {};_gfeee .Colorspaces =map[string ]PdfColorspace {};for _ ,_gbed :=range _bcfgf .Keys (){_dabdb :=_bcfgf .Get (_gbed );_gfeee .Names =append (_gfeee .Names ,string (_gbed ));_cfbbce ,_fcabc :=NewPdfColorspaceFromPdfObject (_dabdb );
+if _fcabc !=nil {return nil ,_fcabc ;};_gfeee .Colorspaces [string (_gbed )]=_cfbbce ;};return _gfeee ,nil ;};
+
+// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
+func (_eaaec *modelManager )GetPrimitiveFromModel (model PdfModel )_dfg .PdfObject {_eaaec ._febac .RLock ();defer _eaaec ._febac .RUnlock ();_dfdgc ,_aafda :=_eaaec ._cddd [model ];if !_aafda {return nil ;};return _dfdgc ;};func (_aeca *PdfReader )newPdfAnnotation3DFromDict (_facc *_dfg .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_bdbf :=PdfAnnotation3D {};
+_bdbf .T3DD =_facc .Get ("\u0033\u0044\u0044");_bdbf .T3DV =_facc .Get ("\u0033\u0044\u0056");_bdbf .T3DA =_facc .Get ("\u0033\u0044\u0041");_bdbf .T3DI =_facc .Get ("\u0033\u0044\u0049");_bdbf .T3DB =_facc .Get ("\u0033\u0044\u0042");return &_bdbf ,nil ;
+};func (_gdffb *PdfWriter )copyObject (_affcc _dfg .PdfObject ,_edebb map[_dfg .PdfObject ]_dfg .PdfObject ,_ggcdc map[_dfg .PdfObject ]struct{},_ebaff bool )_dfg .PdfObject {_addcc :=!_gdffb ._cddgg &&_ggcdc !=nil ;if _gccdd ,_cbadc :=_edebb [_affcc ];
+_cbadc {if _addcc &&!_ebaff {delete (_ggcdc ,_affcc );};return _gccdd ;};if _affcc ==nil {_aeacbc :=_dfg .MakeNull ();return _aeacbc ;};_bbbfg :=_affcc ;switch _acddb :=_affcc .(type ){case *_dfg .PdfObjectArray :_fbddf :=_dfg .MakeArray ();_bbbfg =_fbddf ;
+_edebb [_affcc ]=_bbbfg ;for _ ,_efaef :=range _acddb .Elements (){_fbddf .Append (_gdffb .copyObject (_efaef ,_edebb ,_ggcdc ,_ebaff ));};case *_dfg .PdfObjectStreams :_dbdfe :=&_dfg .PdfObjectStreams {PdfObjectReference :_acddb .PdfObjectReference };
+_bbbfg =_dbdfe ;_edebb [_affcc ]=_bbbfg ;for _ ,_geacb :=range _acddb .Elements (){_dbdfe .Append (_gdffb .copyObject (_geacb ,_edebb ,_ggcdc ,_ebaff ));};case *_dfg .PdfObjectStream :_ddcde :=&_dfg .PdfObjectStream {Stream :_acddb .Stream ,PdfObjectReference :_acddb .PdfObjectReference ,Lazy :_acddb .Lazy ,TempFile :_acddb .TempFile };
+_bbbfg =_ddcde ;_edebb [_affcc ]=_bbbfg ;_ddcde .PdfObjectDictionary =_gdffb .copyObject (_acddb .PdfObjectDictionary ,_edebb ,_ggcdc ,_ebaff ).(*_dfg .PdfObjectDictionary );case *_dfg .PdfObjectDictionary :var _eegag bool ;if _addcc &&!_ebaff {if _acdcd ,_ :=_dfg .GetNameVal (_acddb .Get ("\u0054\u0079\u0070\u0065"));
+_acdcd =="\u0050\u0061\u0067\u0065"{_ ,_ccge :=_gdffb ._cbcacc [_acddb ];_ebaff =!_ccge ;_eegag =_ebaff ;};};_eabdc :=_dfg .MakeDict ();_bbbfg =_eabdc ;_edebb [_affcc ]=_bbbfg ;for _ ,_dbfg :=range _acddb .Keys (){_eabdc .Set (_dbfg ,_gdffb .copyObject (_acddb .Get (_dbfg ),_edebb ,_ggcdc ,_ebaff ));
+};if _eegag {_bbbfg =_dfg .MakeNull ();_ebaff =false ;};case *_dfg .PdfIndirectObject :_afedc :=&_dfg .PdfIndirectObject {PdfObjectReference :_acddb .PdfObjectReference };_bbbfg =_afedc ;_edebb [_affcc ]=_bbbfg ;_afedc .PdfObject =_gdffb .copyObject (_acddb .PdfObject ,_edebb ,_ggcdc ,_ebaff );
+case *_dfg .PdfObjectString :_aeccee :=*_acddb ;_bbbfg =&_aeccee ;_edebb [_affcc ]=_bbbfg ;case *_dfg .PdfObjectName :_cdeb :=*_acddb ;_bbbfg =&_cdeb ;_edebb [_affcc ]=_bbbfg ;case *_dfg .PdfObjectNull :_bbbfg =_dfg .MakeNull ();_edebb [_affcc ]=_bbbfg ;
+case *_dfg .PdfObjectInteger :_aggge :=*_acddb ;_bbbfg =&_aggge ;_edebb [_affcc ]=_bbbfg ;case *_dfg .PdfObjectReference :_gdabc :=*_acddb ;_bbbfg =&_gdabc ;_edebb [_affcc ]=_bbbfg ;case *_dfg .PdfObjectFloat :_cgfeb :=*_acddb ;_bbbfg =&_cgfeb ;_edebb [_affcc ]=_bbbfg ;
+case *_dfg .PdfObjectBool :_gfdea :=*_acddb ;_bbbfg =&_gfdea ;_edebb [_affcc ]=_bbbfg ;case *pdfSignDictionary :_ebecebd :=&pdfSignDictionary {PdfObjectDictionary :_dfg .MakeDict (),_adfa :_acddb ._adfa ,_abfbg :_acddb ._abfbg };_bbbfg =_ebecebd ;_edebb [_affcc ]=_bbbfg ;
+for _ ,_beaba :=range _acddb .Keys (){_ebecebd .Set (_beaba ,_gdffb .copyObject (_acddb .Get (_beaba ),_edebb ,_ggcdc ,_ebaff ));};default:_egb .Log .Info ("\u0054\u004f\u0044\u004f\u0028\u0061\u0035\u0069\u0029\u003a\u0020\u0069\u006dp\u006c\u0065\u006d\u0065\u006e\u0074 \u0063\u006f\u0070\u0079\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0066\u006fr\u0020\u0025\u002b\u0076",_affcc );
+};if _addcc &&_ebaff {_ggcdc [_affcc ]=struct{}{};};return _bbbfg ;};
+
+// NewPdfActionGoToE returns a new "go to embedded" action.
+func NewPdfActionGoToE ()*PdfActionGoToE {_ccb :=NewPdfAction ();_aa :=&PdfActionGoToE {};_aa .PdfAction =_ccb ;_ccb .SetContext (_aa );return _aa ;};func _bebg (_gbcag []byte )[]byte {const _bdeag =52845;const _dbafc =22719;_defaa :=55665;for _ ,_caad :=range _gbcag [:4]{_defaa =(int (_caad )+_defaa )*_bdeag +_dbafc ;
+};_bfged :=make ([]byte ,len (_gbcag )-4);for _beaga ,_ccgg :=range _gbcag [4:]{_bfged [_beaga ]=byte (int (_ccgg )^_defaa >>8);_defaa =(int (_ccgg )+_defaa )*_bdeag +_dbafc ;};return _bfged ;};
+
+// ToPdfObject returns the PDF representation of the pattern.
+func (_ebdee *PdfPattern )ToPdfObject ()_dfg .PdfObject {_deead :=_ebdee .getDict ();_deead .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_deead .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_dfg .MakeInteger (_ebdee .PatternType ));
+return _ebdee ._adcec ;};
+
+// NewCustomPdfOutputIntent creates a new custom PdfOutputIntent.
+func NewCustomPdfOutputIntent (outputCondition ,outputConditionIdentifier ,info string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,Info :info ,DestOutputProfile :destOutputProfile ,_gacff :_dfg .MakeDict (),ColorComponents :colorComponents };
+};func _daad (_edcd _dfg .PdfObject )(*PdfColorspaceDeviceN ,error ){_cbgdef :=NewPdfColorspaceDeviceN ();if _aecc ,_gdea :=_edcd .(*_dfg .PdfIndirectObject );_gdea {_cbgdef ._fbae =_aecc ;};_edcd =_dfg .TraceToDirectObject (_edcd );_afdcf ,_afce :=_edcd .(*_dfg .PdfObjectArray );
+if !_afce {return nil ,_d .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");};if _afdcf .Len ()!=4&&_afdcf .Len ()!=5{return nil ,_d .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
+};_edcd =_afdcf .Get (0);_aecad ,_afce :=_edcd .(*_dfg .PdfObjectName );if !_afce {return nil ,_d .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
+};if *_aecad !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_d .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_edcd =_afdcf .Get (1);
+_edcd =_dfg .TraceToDirectObject (_edcd );_eaed ,_afce :=_edcd .(*_dfg .PdfObjectArray );if !_afce {return nil ,_d .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
+};_cbgdef .ColorantNames =_eaed ;_edcd =_afdcf .Get (2);_bfgc ,_edacb :=NewPdfColorspaceFromPdfObject (_edcd );if _edacb !=nil {return nil ,_edacb ;};_cbgdef .AlternateSpace =_bfgc ;_baacd ,_edacb :=_gbada (_afdcf .Get (3));if _edacb !=nil {return nil ,_edacb ;
+};_cbgdef .TintTransform =_baacd ;if _afdcf .Len ()==5{_bccc ,_bbgag :=_cgdf (_afdcf .Get (4));if _bbgag !=nil {return nil ,_bbgag ;};_cbgdef .Attributes =_bccc ;};return _cbgdef ,nil ;};
+
+// NewPdfPageResources returns a new PdfPageResources object.
+func NewPdfPageResources ()*PdfPageResources {_afdad :=&PdfPageResources {};_afdad ._gffaff =_dfg .MakeDict ();return _afdad ;};
+
+// SetPdfTitle sets the Title attribute of the output PDF.
+func SetPdfTitle (title string ){_dfbaa .Lock ();defer _dfbaa .Unlock ();_geccfa =title };
+
+// PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the
+// range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white.
+type PdfColorDeviceGray float64 ;func (_bada *PdfWriter )writeTrailer (_efeeeg int ){_bada .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _edgbfg :=0;_edgbfg <=_efeeeg ;{for ;_edgbfg <=_efeeeg ;_edgbfg ++{_cgebd ,_gfgec :=_bada ._effg [_edgbfg ];
+if _gfgec &&(!_bada ._cddgg ||_bada ._cddgg &&(_cgebd .Type ==1&&_cgebd .Offset >=_bada ._fgedaa ||_cgebd .Type ==0)){break ;};};var _bcafcg int ;for _bcafcg =_edgbfg +1;_bcafcg <=_efeeeg ;_bcafcg ++{_gafgg ,_edaff :=_bada ._effg [_bcafcg ];if _edaff &&(!_bada ._cddgg ||_bada ._cddgg &&(_gafgg .Type ==1&&_gafgg .Offset > _bada ._fgedaa )){continue ;
+};break ;};_adcc :=_d .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_edgbfg ,_bcafcg -_edgbfg );_bada .writeString (_adcc );for _cfeg :=_edgbfg ;_cfeg < _bcafcg ;_cfeg ++{_eeefa :=_bada ._effg [_cfeg ];switch _eeefa .Type {case 0:_adcc =_d .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);
+_bada .writeString (_adcc );case 1:_adcc =_d .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_eeefa .Offset ,0);_bada .writeString (_adcc );};};_edgbfg =_bcafcg +1;};_bffde :=_dfg .MakeDict ();_bffde .Set ("\u0049\u006e\u0066\u006f",_bada ._acace );
+_bffde .Set ("\u0052\u006f\u006f\u0074",_bada ._cbfagb );_bffde .Set ("\u0053\u0069\u007a\u0065",_dfg .MakeInteger (int64 (_efeeeg +1)));if _bada ._cddgg &&_bada ._baeag > 0{_bffde .Set ("\u0050\u0072\u0065\u0076",_dfg .MakeInteger (_bada ._baeag ));};
+if _bada ._gbdfc !=nil {_bffde .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_bada ._bbbecb );};if _bada ._beccf ==nil &&_bada ._baeaee !=""&&_bada ._dbddd !=""{_bada ._beccf =_dfg .MakeArray (_dfg .MakeHexString (_bada ._baeaee ),_dfg .MakeHexString (_bada ._dbddd ));
+};if _bada ._beccf !=nil {_bffde .Set ("\u0049\u0044",_bada ._beccf );_egb .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_bada ._beccf );};_bada .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_bada .writeBytes (_bffde .Write ());
+_bada .writeString ("\u000a");};
+
+// ReaderOpts defines options for creating PdfReader instances.
+type ReaderOpts struct{
+
+// Password password of the PDF file encryption.
+// Default: empty ("").
+Password string ;
+
+// LazyLoad set if the PDF file would be loaded using lazy-loading mode.
+// Default: true.
+LazyLoad bool ;
+
+// ComplianceMode set if parsed PDF file should contain meta information for the verifiers of the compliance standards like PDF/A.
+ComplianceMode bool ;
+
+// RelaxedMode indicates whether the parser should operate in a relaxed mode, ignoring certain insignificant errors and continuing to parse the PDF file.
+// For example, it skips AcroForm loading errors and proceeds with the rest of the file if no form-related processing is required.
+RelaxedMode bool ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_fa *PdfActionGoToE )ToPdfObject ()_dfg .PdfObject {_fa .PdfAction .ToPdfObject ();_efgg :=_fa ._fe ;_geb :=_efgg .PdfObject .(*_dfg .PdfObjectDictionary );_geb .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeGoToE )));if _fa .F !=nil {_geb .Set ("\u0046",_fa .F .ToPdfObject ());
+};_geb .SetIfNotNil ("\u0044",_fa .D );_geb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fa .NewWindow );_geb .SetIfNotNil ("\u0054",_fa .T );return _efgg ;};
+
+// Flags returns the field flags for the field accounting for any inherited flags.
+func (_ecgac *PdfField )Flags ()FieldFlag {var _aacf FieldFlag ;_ccfbb ,_abdg :=_ecgac .inherit (func (_egde *PdfField )bool {if _egde .Ff !=nil {_aacf =FieldFlag (*_egde .Ff );return true ;};return false ;});if _abdg !=nil {_egb .Log .Debug ("\u0045\u0072\u0072o\u0072\u0020\u0065\u0076\u0061\u006c\u0075\u0061\u0074\u0069\u006e\u0067\u0020\u0066\u006c\u0061\u0067\u0073\u0020\u0076\u0069\u0061\u0020\u0069\u006e\u0068\u0065\u0072\u0069t\u0061\u006e\u0063\u0065\u003a\u0020\u0025\u0076",_abdg );
+};if !_ccfbb {_egb .Log .Trace ("N\u006f\u0020\u0066\u0069\u0065\u006cd\u0020\u0066\u006c\u0061\u0067\u0073 \u0066\u006f\u0075\u006e\u0064\u0020\u002d \u0061\u0073\u0073\u0075\u006d\u0065\u0020\u0063\u006c\u0065a\u0072");};return _aacf ;};
+
+// Insert adds an outline item as a child of the current outline item,
+// at the specified index.
+func (_eeffd *OutlineItem )Insert (index uint ,item *OutlineItem ){_fbfcgd :=uint (len (_eeffd .Entries ));if index > _fbfcgd {index =_fbfcgd ;};_eeffd .Entries =append (_eeffd .Entries [:index ],append ([]*OutlineItem {item },_eeffd .Entries [index :]...)...);
+};func _aacg (_degac *_dfg .PdfObjectDictionary )(*PdfShadingType3 ,error ){_eefe :=PdfShadingType3 {};_aegfg :=_degac .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _aegfg ==nil {_egb .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0043\u006f\u006f\u0072\u0064\u0073");
+return nil ,ErrRequiredAttributeMissing ;};_eedg ,_ffeec :=_aegfg .(*_dfg .PdfObjectArray );if !_ffeec {_egb .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_aegfg );
+return nil ,_dfg .ErrTypeError ;};if _eedg .Len ()!=6{_egb .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0036\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_eedg .Len ());return nil ,ErrInvalidAttribute ;
+};_eefe .Coords =_eedg ;if _bcbdb :=_degac .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_bcbdb !=nil {_bcbdb =_dfg .TraceToDirectObject (_bcbdb );_bfgba ,_bfcdc :=_bcbdb .(*_dfg .PdfObjectArray );if !_bfcdc {_egb .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_bcbdb );
+return nil ,_dfg .ErrTypeError ;};_eefe .Domain =_bfgba ;};_aegfg =_degac .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _aegfg ==nil {_egb .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
+return nil ,ErrRequiredAttributeMissing ;};_eefe .Function =[]PdfFunction {};if _ffaec ,_cbgg :=_aegfg .(*_dfg .PdfObjectArray );_cbgg {for _ ,_ccbbf :=range _ffaec .Elements (){_fagbdg ,_agaga :=_gbada (_ccbbf );if _agaga !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_agaga );
+return nil ,_agaga ;};_eefe .Function =append (_eefe .Function ,_fagbdg );};}else {_adeef ,_bgbgd :=_gbada (_aegfg );if _bgbgd !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_bgbgd );
+return nil ,_bgbgd ;};_eefe .Function =append (_eefe .Function ,_adeef );};if _egdcb :=_degac .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_egdcb !=nil {_egdcb =_dfg .TraceToDirectObject (_egdcb );_dffgeb ,_bbgcac :=_egdcb .(*_dfg .PdfObjectArray );if !_bbgcac {_egb .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_egdcb );
+return nil ,_dfg .ErrTypeError ;};if _dffgeb .Len ()!=2{_egb .Log .Debug ("\u0045\u0078\u0074\u0065n\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_dffgeb .Len ());return nil ,ErrInvalidAttribute ;
+};_eefe .Extend =_dffgeb ;};return &_eefe ,nil ;};
+
+// PdfShadingType2 is an Axial shading.
+type PdfShadingType2 struct{*PdfShading ;Coords *_dfg .PdfObjectArray ;Domain *_dfg .PdfObjectArray ;Function []PdfFunction ;Extend *_dfg .PdfObjectArray ;};func _adbgf (_dgaee *PdfField )[]*PdfField {_ggggf :=[]*PdfField {_dgaee };for _ ,_gdfg :=range _dgaee .Kids {_ggggf =append (_ggggf ,_adbgf (_gdfg )...);
+};return _ggggf ;};
+
+// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
+type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_dfg .PdfObjectArray ;ExtGState _dfg .PdfObject ;};
+
+// ColorFromFloats returns a new PdfColor based on the input slice of color
+// components. The slice should contain a single element.
+func (_ggbda *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdeb :=vals [0];_dgae :=[]float64 {_gdeb };_ddbcc ,_ecceg :=_ggbda .TintTransform .Evaluate (_dgae );
+if _ecceg !=nil {_egb .Log .Debug ("\u0045\u0072r\u006f\u0072\u002c\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u0076\u0061\u006c\u0075\u0061\u0074\u0065: \u0025\u0076",_ecceg );_egb .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_ggbda .TintTransform );
+return nil ,_ecceg ;};_egb .Log .Trace ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0043\u006f\u006c\u006fr\u0046\u0072\u006f\u006d\u0046\u006c\u006f\u0061\u0074\u0073\u0028\u0025\u002bv\u0029\u0020\u006f\u006e\u0020\u0041\u006c\u0074\u0065\u0072\u006e\u0061te\u0053\u0070\u0061\u0063\u0065\u003a\u0020\u0025\u0023\u0076",_ddbcc ,_ggbda .AlternateSpace );
+_geab ,_ecceg :=_ggbda .AlternateSpace .ColorFromFloats (_ddbcc );if _ecceg !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u002c\u0020\u0066a\u0069\u006c\u0065d \u0074\u006f\u0020\u0065\u0076\u0061l\u0075\u0061\u0074\u0065\u0020\u0069\u006e\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0065\u0020\u0073\u0070\u0061\u0063\u0065\u003a \u0025\u0076",_ecceg );
+return nil ,_ecceg ;};return _geab ,nil ;};func _cebfb ()*modelManager {_fbbf :=modelManager {};_fbbf ._cddd =map[PdfModel ]_dfg .PdfObject {};_fbbf ._gdcgg =map[_dfg .PdfObject ]PdfModel {};_fbbf ._febac =_b .RWMutex {};_fbbf ._feeaf =_b .RWMutex {};return &_fbbf ;
+};func (_ddbcf *PdfWriter )mapObjectStreams (_cceba bool )(map[_dfg .PdfObject ]bool ,bool ){_cafdb :=make (map[_dfg .PdfObject ]bool );for _ ,_bbgcb :=range _ddbcf ._abcef {if _ebbgc ,_gdfbf :=_bbgcb .(*_dfg .PdfObjectStreams );_gdfbf {_cceba =true ;for _ ,_dcdce :=range _ebbgc .Elements (){_cafdb [_dcdce ]=true ;
+if _cgcgc ,_gaefb :=_dcdce .(*_dfg .PdfIndirectObject );_gaefb {_cafdb [_cgcgc .PdfObject ]=true ;};};};};return _cafdb ,_cceba ;};
+
+// CustomKeys returns all custom info keys as list.
+func (_bfbed *PdfInfo )CustomKeys ()[]string {if _bfbed ._gdaaeb ==nil {return nil ;};_fdafg :=make ([]string ,len (_bfbed ._gdaaeb .Keys ()));for _ ,_decde :=range _bfbed ._gdaaeb .Keys (){_fdafg =append (_fdafg ,_decde .String ());};return _fdafg ;};
+
+
+// Register registers (caches) a model to primitive object relationship.
+func (_defdfg *modelManager )Register (primitive _dfg .PdfObject ,model PdfModel ){_defdfg ._febac .Lock ();defer _defdfg ._febac .Unlock ();_defdfg ._feeaf .Lock ();defer _defdfg ._feeaf .Unlock ();_defdfg ._cddd [model ]=primitive ;_defdfg ._gdcgg [primitive ]=model ;
+};func _cgdf (_egcc _dfg .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_gcgd :=&PdfColorspaceDeviceNAttributes {};var _gebdc *_dfg .PdfObjectDictionary ;switch _cafc :=_egcc .(type ){case *_dfg .PdfIndirectObject :_gcgd ._bfddg =_cafc ;var _fdbg bool ;
+_gebdc ,_fdbg =_cafc .PdfObject .(*_dfg .PdfObjectDictionary );if !_fdbg {_egb .Log .Error ("\u0044\u0065\u0076\u0069c\u0065\u004e\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065 \u0074\u0079\u0070\u0065\u0020\u0065\u0072r\u006f\u0072");return nil ,_bd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
+};case *_dfg .PdfObjectDictionary :_gebdc =_cafc ;case *_dfg .PdfObjectReference :_agbag :=_cafc .Resolve ();return _cgdf (_agbag );default:_egb .Log .Error ("\u0044\u0065\u0076\u0069c\u0065\u004e\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065 \u0074\u0079\u0070\u0065\u0020\u0065\u0072r\u006f\u0072");
+return nil ,_bd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dbaa :=_gebdc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_dbaa !=nil {_efbc ,_cabef :=_dfg .TraceToDirectObject (_dbaa ).(*_dfg .PdfObjectName );if !_cabef {_egb .Log .Error ("\u0044\u0065vi\u0063\u0065\u004e \u0061\u0074\u0074\u0072ibu\u0074e \u0053\u0075\u0062\u0074\u0079\u0070\u0065 t\u0079\u0070\u0065\u0020\u0065\u0072\u0072o\u0072");
+return nil ,_bd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_gcgd .Subtype =_efbc ;};if _beba :=_gebdc .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_beba !=nil {_gcgd .Colorants =_beba ;};if _eggg :=_gebdc .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
+_eggg !=nil {_gcgd .Process =_eggg ;};if _geca :=_gebdc .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_geca !=nil {_gcgd .MixingHints =_geca ;};return _gcgd ,nil ;};
+
+// GetFillImage get attached model.Image in push button.
+func (_bafd *PdfFieldButton )GetFillImage ()*Image {if _bafd .IsPush (){return _bafd ._geade ;};return nil ;};
+
+// DecodeArray returns the range of color component values in DeviceRGB colorspace.
+func (_ebad *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
+
+// NewPdfAnnotationPopup returns a new popup annotation.
+func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_acef :=NewPdfAnnotation ();_fgd :=&PdfAnnotationPopup {};_fgd .PdfAnnotation =_acef ;_acef .SetContext (_fgd );return _fgd ;};
+
+// GetXObjectImageByName returns the XObjectImage with the specified name from the
+// page resources, if it exists.
+func (_defce *PdfPageResources )GetXObjectImageByName (keyName _dfg .PdfObjectName )(*XObjectImage ,error ){_gcdca ,_eadffb :=_defce .GetXObjectByName (keyName );if _gcdca ==nil {return nil ,nil ;};if _eadffb !=XObjectTypeImage {return nil ,_bd .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
+};_aeabc ,_fegcb :=NewXObjectImageFromStream (_gcdca );if _fegcb !=nil {return nil ,_fegcb ;};return _aeabc ,nil ;};
+
+// GetRuneMetrics returns the character metrics for the specified rune.
+// A bool flag is returned to indicate whether or not the entry was found.
+func (_bfcgc pdfFontType0 )GetRuneMetrics (r rune )(_bf .CharMetrics ,bool ){if _bfcgc .DescendantFont ==nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u002e\u0020\u0066\u006f\u006et=\u0025\u0073",_bfcgc );
+return _bf .CharMetrics {},false ;};return _bfcgc .DescendantFont .GetRuneMetrics (r );};
+
+// SetHideToolbar sets the value of the hideToolbar flag.
+func (_cdadg *ViewerPreferences )SetHideToolbar (hideToolbar bool ){_cdadg ._dcdcg =&hideToolbar };
+
+// FlattenFieldsWithOpts flattens the AcroForm fields of the reader using the
+// provided field appearance generator and the specified options. If no options
+// are specified, all form fields are flattened.
+// If a filter function is provided using the opts parameter, only the filtered
+// fields are flattened. Otherwise, all form fields are flattened.
+// At the end of the process, the AcroForm contains all the fields which were
+// not flattened. If all fields are flattened, the reader's AcroForm field
+// is set to nil.
+func (_faaba *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _faaba .flattenFieldsWithOpts (false ,appgen ,opts );};func (_fbbeef *PdfWriter )setCatalogVersion (){_fbbeef ._acgcc .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_dfg .MakeName (_d .Sprintf ("\u0025\u0064\u002e%\u0064",_fbbeef ._cfbcb .Major ,_fbbeef ._cfbcb .Minor )));
+};func (_fcce *PdfReader )newPdfActionMovieFromDict (_dcgd *_dfg .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_dcgd .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_dcgd .Get ("\u0054"),Operation :_dcgd .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
+};func _cead ()string {_dfbaa .Lock ();defer _dfbaa .Unlock ();if len (_gecfb )> 0{return _gecfb ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";};func (_ebgd *fontFile )parseASCIIPart (_ffae []byte )error {if len (_ffae )< 2||string (_ffae [:2])!="\u0025\u0021"{return _bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0074a\u0072\u0074\u0020\u006f\u0066\u0020\u0041S\u0043\u0049\u0049\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074");
+};_dcfb ,_dgdgf ,_dbdea :=_ecedbf (_ffae );if _dbdea !=nil {return _dbdea ;};_agff :=_gggbc (_dcfb );_ebgd ._agcb =_agff ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _ebgd ._agcb ==""{_egb .Log .Debug ("\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0020\u0068a\u0073\u0020\u006e\u006f\u0020\u002f\u0046\u006f\u006e\u0074N\u0061\u006d\u0065");
+};if _dgdgf !=""{_egef ,_efabb :=_bbfgg (_dgdgf );if _efabb !=nil {return _efabb ;};_fgfb ,_efabb :=_ff .NewCustomSimpleTextEncoder (_egef ,nil );if _efabb !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004fR\u0020\u003a\u0055\u004e\u004b\u004e\u004f\u0057\u004e\u0020G\u004cY\u0050\u0048\u003a\u0020\u0065\u0072\u0072=\u0025\u0076",_efabb );
+return nil ;};_ebgd ._adbgd =_fgfb ;};return nil ;};
+
+// PickTrayByPDFSize returns the value of the pickTrayByPDFSize flag.
+func (_ffabff *ViewerPreferences )PickTrayByPDFSize ()bool {if _ffabff ._cdgcd ==nil {return false ;};return *_ffabff ._cdgcd ;};
+
+// PdfActionNamed represents a named action.
+type PdfActionNamed struct{*PdfAction ;N _dfg .PdfObject ;};func _dddea (_dbaeb _dfg .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_baab :=NewPdfColorspaceSpecialIndexed ();if _cbcae ,_gbgea :=_dbaeb .(*_dfg .PdfIndirectObject );_gbgea {_baab ._dda =_cbcae ;
+};_dbaeb =_dfg .TraceToDirectObject (_dbaeb );_bggcg ,_dadgc :=_dbaeb .(*_dfg .PdfObjectArray );if !_dadgc {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bggcg .Len ()!=4{return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
+};_dbaeb =_bggcg .Get (0);_fdaf ,_dadgc :=_dbaeb .(*_dfg .PdfObjectName );if !_dadgc {return nil ,_d .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_fdaf !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
+};_dbaeb =_bggcg .Get (1);_dcea ,_dfca :=DetermineColorspaceNameFromPdfObject (_dbaeb );if _dfca !=nil {return nil ,_dfca ;};if _dcea =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_dcea =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_egb .Log .Debug ("E\u0072\u0072o\u0072\u003a\u0020\u0049\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0049\u006e\u0064e\u0078\u0065\u0064\u002f\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0043S\u0020\u0061\u0073\u0020\u0062\u0061\u0073\u0065\u0020\u0028\u0025v\u0029",_dcea );
+return nil ,_ceeeb ;};_afbge ,_dfca :=NewPdfColorspaceFromPdfObject (_dbaeb );if _dfca !=nil {return nil ,_dfca ;};_baab .Base =_afbge ;_dbaeb =_bggcg .Get (2);_dcdb ,_dfca :=_dfg .GetNumberAsInt64 (_dbaeb );if _dfca !=nil {return nil ,_dfca ;};if _dcdb > 255{return nil ,_d .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
+};_baab .HiVal =int (_dcdb );_dbaeb =_bggcg .Get (3);_baab .Lookup =_dbaeb ;_dbaeb =_dfg .TraceToDirectObject (_dbaeb );var _babb []byte ;if _ccdd ,_dffe :=_dbaeb .(*_dfg .PdfObjectString );_dffe {_babb =_ccdd .Bytes ();_egb .Log .Trace ("\u0049\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0073\u0074r\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0020\u0064",_babb );
+}else if _ecf ,_aceff :=_dbaeb .(*_dfg .PdfObjectStream );_aceff {_egb .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_dbaeb .String ());_egb .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_ecf .Stream ),_ecf .Stream );
+_bdda ,_badg :=_dfg .DecodeStream (_ecf );if _badg !=nil {return nil ,_badg ;};_egb .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_bdda ),_bdda );_babb =_bdda ;}else {_egb .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dbaeb );
+return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_babb )< _baab .Base .GetNumComponents ()*(_baab .HiVal +1){_egb .Log .Debug ("\u0050\u0044\u0046\u0020\u0049\u006e\u0063o\u006d\u0070\u0061t\u0069\u0062\u0069\u006ci\u0074\u0079\u003a\u0020\u0049\u006e\u0064\u0065\u0078\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0074\u006f\u006f\u0020\u0073\u0068\u006f\u0072\u0074");
+_egb .Log .Debug ("\u0046\u0061i\u006c\u002c\u0020\u006c\u0065\u006e\u0028\u0064\u0061\u0074\u0061\u0029\u003a\u0020\u0025\u0064\u002c\u0020\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u002c\u0020\u0068\u0069\u0056\u0061\u006c\u003a\u0020\u0025\u0064",len (_babb ),_baab .Base .GetNumComponents (),_baab .HiVal );
+}else {_babb =_babb [:_baab .Base .GetNumComponents ()*(_baab .HiVal +1)];};_baab ._gcee =_babb ;return _baab ,nil ;};
+
+// NewPdfAnnotationWatermark returns a new watermark annotation.
+func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_ege :=NewPdfAnnotation ();_bggb :=&PdfAnnotationWatermark {};_bggb .PdfAnnotation =_ege ;_ege .SetContext (_bggb );return _bggb ;};
+
+// GetRuneMetrics returns the character metrics for the specified rune.
+// A bool flag is returned to indicate whether or not the entry was found.
+func (_deag pdfCIDFontType0 )GetRuneMetrics (r rune )(_bf .CharMetrics ,bool ){return _bf .CharMetrics {Wx :_deag ._ebfc },true ;};
+
+// ColorFromFloats returns a new PdfColor based on the input slice of color
+// components. The slice should contain a single element.
+func (_feeg *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_feeg .Base .GetNumComponents ();_cddgcg :=int (vals [0])*N ;
+if _cddgcg < 0||(_cddgcg +N -1)>=len (_feeg ._gcee ){_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cddgcg );return nil ,ErrColorOutOfRange ;};_dedc :=_feeg ._gcee [_cddgcg :_cddgcg +N ];
+var _edff []float64 ;for _ ,_agec :=range _dedc {_edff =append (_edff ,float64 (_agec )/255.0);};_dbde ,_ddad :=_feeg .Base .ColorFromFloats (_edff );if _ddad !=nil {return nil ,_ddad ;};return _dbde ,nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_fedf *PdfAnnotationFileAttachment )ToPdfObject ()_dfg .PdfObject {_fedf .PdfAnnotation .ToPdfObject ();_edbd :=_fedf ._afae ;_dffb :=_edbd .PdfObject .(*_dfg .PdfObjectDictionary );_fedf .appendToPdfDictionary (_dffb );_dffb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
+_dffb .SetIfNotNil ("\u0046\u0053",_fedf .FS );_dffb .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fedf .Name );return _edbd ;};
+
+// PdfShadingPattern is a Shading patterns that provide a smooth transition between colors across an area to be painted,
+// i.e. color(x,y) = f(x,y) at each point.
+// It is a type 2 pattern (PatternType = 2).
+type PdfShadingPattern struct{*PdfPattern ;Shading *PdfShading ;Matrix *_dfg .PdfObjectArray ;ExtGState _dfg .PdfObject ;};
+
+// SetCatalogViewerPreferences sets the catalog ViewerPreferences dictionary.
+func (_baeagd *PdfWriter )SetCatalogViewerPreferences (pref _dfg .PdfObject )error {if pref ==nil {_baeagd ._acgcc .Remove ("\u0056\u0069\u0065\u0077\u0065\u0072\u0050\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0073");return nil ;};if _fddgae ,_adfac :=pref .(*_dfg .PdfObjectReference );
+_adfac {pref =_fddgae .Resolve ();if pref ==nil {_baeagd ._acgcc .Remove ("\u0056\u0069\u0065\u0077\u0065\u0072\u0050\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0073");return nil ;};};if _ ,_dfddgg :=pref .(*_dfg .PdfIndirectObject );_dfddgg {_baeagd .addObject (pref );
+};_baeagd ._acgcc .Set ("\u0056\u0069\u0065\u0077\u0065\u0072\u0050\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0073",pref );return nil ;};
+
+// ToPdfObject returns the PDF representation of the shading dictionary.
+func (_fbaad *PdfShadingType5 )ToPdfObject ()_dfg .PdfObject {_fbaad .PdfShading .ToPdfObject ();_eedcge ,_dbebg :=_fbaad .getShadingDict ();if _dbebg !=nil {_egb .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
+return nil ;};if _fbaad .BitsPerCoordinate !=nil {_eedcge .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fbaad .BitsPerCoordinate );};if _fbaad .BitsPerComponent !=nil {_eedcge .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fbaad .BitsPerComponent );
+};if _fbaad .VerticesPerRow !=nil {_eedcge .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_fbaad .VerticesPerRow );};if _fbaad .Decode !=nil {_eedcge .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fbaad .Decode );
+};if _fbaad .Function !=nil {if len (_fbaad .Function )==1{_eedcge .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fbaad .Function [0].ToPdfObject ());}else {_abcdc :=_dfg .MakeArray ();for _ ,_gfad :=range _fbaad .Function {_abcdc .Append (_gfad .ToPdfObject ());
+};_eedcge .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_abcdc );};};return _fbaad ._gdfdg ;};
+
+// PdfActionLaunch represents a launch action.
+type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _dfg .PdfObject ;Mac _dfg .PdfObject ;Unix _dfg .PdfObject ;NewWindow _dfg .PdfObject ;};
+
+// PrintClip returns the value of the printClip.
+func (_bfaab *ViewerPreferences )PrintClip ()PageBoundary {return _bfaab ._cdbee };func _ggabd (_cbgb StdFontName )(pdfFontSimple ,error ){_gdfcc ,_fbdb :=_bf .NewStdFontByName (_cbgb );if !_fbdb {return pdfFontSimple {},ErrFontNotSupported ;};_efgc :=_agafd (_gdfcc );
+return _efgc ,nil ;};
+
+// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
+func (_febb *PdfFontDescriptor )ToPdfObject ()_dfg .PdfObject {_cfdga :=_dfg .MakeDict ();if _febb ._cdab ==nil {_febb ._cdab =&_dfg .PdfIndirectObject {};};_febb ._cdab .PdfObject =_cfdga ;_cfdga .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
+if _febb .FontName !=nil {_cfdga .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_febb .FontName );};if _febb .FontFamily !=nil {_cfdga .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_febb .FontFamily );};if _febb .FontStretch !=nil {_cfdga .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_febb .FontStretch );
+};if _febb .FontWeight !=nil {_cfdga .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_febb .FontWeight );};if _febb .Flags !=nil {_cfdga .Set ("\u0046\u006c\u0061g\u0073",_febb .Flags );};if _febb .FontBBox !=nil {_cfdga .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_febb .FontBBox );
+};if _febb .ItalicAngle !=nil {_cfdga .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_febb .ItalicAngle );};if _febb .Ascent !=nil {_cfdga .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_febb .Ascent );};if _febb .Descent !=nil {_cfdga .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_febb .Descent );
+};if _febb .Leading !=nil {_cfdga .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_febb .Leading );};if _febb .CapHeight !=nil {_cfdga .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_febb .CapHeight );};if _febb .XHeight !=nil {_cfdga .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_febb .XHeight );
+};if _febb .StemV !=nil {_cfdga .Set ("\u0053\u0074\u0065m\u0056",_febb .StemV );};if _febb .StemH !=nil {_cfdga .Set ("\u0053\u0074\u0065m\u0048",_febb .StemH );};if _febb .AvgWidth !=nil {_cfdga .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_febb .AvgWidth );
+};if _febb .MaxWidth !=nil {_cfdga .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_febb .MaxWidth );};if _febb .MissingWidth !=nil {_cfdga .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_febb .MissingWidth );};if _febb .FontFile !=nil {_cfdga .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_febb .FontFile );
+};if _febb .FontFile2 !=nil {_cfdga .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_febb .FontFile2 );};if _febb .FontFile3 !=nil {_cfdga .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_febb .FontFile3 );};if _febb .CharSet !=nil {_cfdga .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_febb .CharSet );
+};if _febb .Style !=nil {_cfdga .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_febb .FontName );};if _febb .Lang !=nil {_cfdga .Set ("\u004c\u0061\u006e\u0067",_febb .Lang );};if _febb .FD !=nil {_cfdga .Set ("\u0046\u0044",_febb .FD );};if _febb .CIDSet !=nil {_cfdga .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_febb .CIDSet );
+};return _febb ._cdab ;};
+
+// SetObjAttrib adds an object attribute to the structure tag info.
+// This is commonly used to associate annotations with structure elements.
+func (_cefba *StructureTagInfo )SetObjAttrib (obj _dfg .PdfObject ){if _cefba .AnnotObjs ==nil {_cefba .AnnotObjs =make ([]_dfg .PdfObject ,0);};_cefba .AnnotObjs =append (_cefba .AnnotObjs ,obj );};
+
+// GetContext returns the annotation context which contains the specific type-dependent context.
+// The context represents the subannotation.
+func (_deb *PdfAnnotation )GetContext ()PdfModel {if _deb ==nil {return nil ;};return _deb ._dga ;};
+
+// ReaderToWriterOpts options used to generate a PdfWriter.
+type ReaderToWriterOpts struct{SkipAcroForm bool ;SkipInfo bool ;SkipNameDictionary bool ;SkipNamedDests bool ;SkipOCProperties bool ;SkipOutlines bool ;SkipPageLabels bool ;SkipRotation bool ;SkipMetadata bool ;SkipMarkInfo bool ;SkipViewerPreferences bool ;
+SkipLanguage bool ;PageProcessCallback PageProcessCallback ;
+
+// Deprecated: will be removed in v4. Use PageProcessCallback instead.
+PageCallback PageCallback ;};
+
+// ColorToRGB converts a CalRGB color to an RGB color.
+func (_faad *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_bacd ,_gbgf :=color .(*PdfColorCalRGB );if !_gbgf {_egb .Log .Debug ("\u0049\u006e\u0070ut\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0063\u0061\u006c\u0020\u0072\u0067\u0062");
+return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_afgb :=_bacd .A ();_aaag :=_bacd .B ();_fagc :=_bacd .C ();X :=_faad .Matrix [0]*_df .Pow (_afgb ,_faad .Gamma [0])+_faad .Matrix [3]*_df .Pow (_aaag ,_faad .Gamma [1])+_faad .Matrix [6]*_df .Pow (_fagc ,_faad .Gamma [2]);
+Y :=_faad .Matrix [1]*_df .Pow (_afgb ,_faad .Gamma [0])+_faad .Matrix [4]*_df .Pow (_aaag ,_faad .Gamma [1])+_faad .Matrix [7]*_df .Pow (_fagc ,_faad .Gamma [2]);Z :=_faad .Matrix [2]*_df .Pow (_afgb ,_faad .Gamma [0])+_faad .Matrix [5]*_df .Pow (_aaag ,_faad .Gamma [1])+_faad .Matrix [8]*_df .Pow (_fagc ,_faad .Gamma [2]);
+_bgdb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_efbdd :=-0.969256*X +1.875992*Y +0.041556*Z ;_bcc :=0.055648*X +-0.204043*Y +1.057311*Z ;_bgdb =_df .Min (_df .Max (_bgdb ,0),1.0);_efbdd =_df .Min (_df .Max (_efbdd ,0),1.0);_bcc =_df .Min (_df .Max (_bcc ,0),1.0);
+return NewPdfColorDeviceRGB (_bgdb ,_efbdd ,_bcc ),nil ;};
+
+// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
+func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_aege :=&PdfColorspaceCalGray {};_aege .BlackPoint =[]float64 {0.0,0.0,0.0};_aege .Gamma =1;return _aege ;};
+
+// NewPdfReaderLazy creates a new PdfReader for `rs` in lazy-loading mode. The difference
+// from NewPdfReader is that in lazy-loading mode, objects are only loaded into memory when needed
+// rather than entire structure being loaded into memory on reader creation.
+// Note that it may make sense to use the lazy-load reader when processing only parts of files,
+// rather than loading entire file into memory. Example: splitting a few pages from a large PDF file.
+func NewPdfReaderLazy (rs _edg .ReadSeeker )(*PdfReader ,error ){const _fbbe ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _dafc (rs ,&ReaderOpts {LazyLoad :true },false ,_fbbe );
+};func (_dadcd *Image )getSuitableEncoder ()(_dfg .StreamEncoder ,error ){var (_ccda ,_efbed =int (_dadcd .Width ),int (_dadcd .Height );_bedfe =make (map[string ]bool );_cabce =true ;_ddbga =false ;_aagb =func ()*_dfg .DCTEncoder {return _dfg .NewDCTEncoder ()};
+_geec =func ()*_dfg .DCTEncoder {_ecfb :=_dfg .NewDCTEncoder ();_ecfb .BitsPerComponent =16;return _ecfb };);for _afdag :=0;_afdag < _efbed ;_afdag ++{for _aged :=0;_aged < _ccda ;_aged ++{_cfgca ,_ebff :=_dadcd .ColorAt (_aged ,_afdag );if _ebff !=nil {return nil ,_ebff ;
+};_ecdd ,_ceebb ,_cfdgg ,_caaaad :=_cfgca .RGBA ();if _cabce &&(_ecdd !=_ceebb ||_ecdd !=_cfdgg ||_ceebb !=_cfdgg ){_cabce =false ;};if !_ddbga {switch _cfgca .(type ){case _dc .NRGBA :_ddbga =_caaaad > 0;};};_bedfe [_d .Sprintf ("\u0025\u0064\u002c\u0025\u0064\u002c\u0025\u0064",_ecdd ,_ceebb ,_cfdgg )]=true ;
+if len (_bedfe )> 2&&_ddbga {return _geec (),nil ;};};};if _ddbga ||len (_dadcd ._baeef )> 0{return _dfg .NewFlateEncoder (),nil ;};if len (_bedfe )<=2{_ecbaa :=_dadcd .ConvertToBinary ();if _ecbaa !=nil {return nil ,_ecbaa ;};return _dfg .NewJBIG2Encoder (),nil ;
+};if _cabce {return _aagb (),nil ;};if _dadcd .ColorComponents ==1{if _dadcd .BitsPerComponent ==1{return _dfg .NewJBIG2Encoder (),nil ;}else if _dadcd .BitsPerComponent ==8{_ebgb :=_dfg .NewDCTEncoder ();_ebgb .ColorComponents =1;return _ebgb ,nil ;};
+}else if _dadcd .ColorComponents ==3{if _dadcd .BitsPerComponent ==8{return _aagb (),nil ;}else if _dadcd .BitsPerComponent ==16{return _geec (),nil ;};}else if _dadcd .ColorComponents ==4{_babg :=_geec ();_babg .ColorComponents =4;return _babg ,nil ;};
+return _geec (),nil ;};var (StructureTypeParagraph StructureType ="\u0050";StructureTypeHeader StructureType ="\u0048";StructureTypeHeading1 StructureType ="\u0048\u0031";StructureTypeHeading2 StructureType ="\u0048\u0032";StructureTypeHeading3 StructureType ="\u0048\u0033";
+StructureTypeHeading4 StructureType ="\u0048\u0034";StructureTypeHeading5 StructureType ="\u0048\u0035";StructureTypeHeading6 StructureType ="\u0048\u0036";StructureTypeList StructureType ="\u004c";StructureTypeListItem StructureType ="\u004c\u0049";StructureTypeLabel StructureType ="\u004c\u0062\u006c";
+StructureTypeListBody StructureType ="\u004c\u0042\u006fd\u0079";StructureTypeTable StructureType ="\u0054\u0061\u0062l\u0065";StructureTypeTableRow StructureType ="\u0054\u0052";StructureTypeTableHeaderCell StructureType ="\u0054\u0048";StructureTypeTableData StructureType ="\u0054\u0044";
+StructureTypeTableHead StructureType ="\u0054\u0048\u0065a\u0064";StructureTypeTableBody StructureType ="\u0054\u0042\u006fd\u0079";StructureTypeTableFooter StructureType ="\u0054\u0046\u006fo\u0074";);
+
+// GetCatalogViewerPreferences gets catalog ViewerPreferences object.
+func (_cbbac *PdfReader )GetCatalogViewerPreferences ()(_dfg .PdfObject ,bool ){if _cbbac ._fbfgb ==nil {return nil ,false ;};_ffbbg :=_cbbac ._fbfgb .Get ("\u0056\u0069\u0065\u0077\u0065\u0072\u0050\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0073");
+return _ffbbg ,_ffbbg !=nil ;};
+
+// HasFontByName checks whether a font is defined by the specified keyName.
+func (_ddfcf *PdfPageResources )HasFontByName (keyName _dfg .PdfObjectName )bool {_ ,_abdc :=_ddfcf .GetFontByName (keyName );return _abdc ;};
+
+// ToPdfOutline returns a low level PdfOutline object, based on the current
+// instance.
+func (_dffec *Outline )ToPdfOutline ()*PdfOutline {_bbaga :=NewPdfOutline ();var _eecg []*PdfOutlineItem ;var _fegbd int64 ;var _agbfc *PdfOutlineItem ;for _ ,_ebea :=range _dffec .Entries {_gcbae ,_gdaffa :=_ebea .ToPdfOutlineItem ();_gcbae .Parent =&_bbaga .PdfOutlineTreeNode ;
+if _agbfc !=nil {_agbfc .Next =&_gcbae .PdfOutlineTreeNode ;_gcbae .Prev =&_agbfc .PdfOutlineTreeNode ;};_eecg =append (_eecg ,_gcbae );_fegbd +=_gdaffa ;_agbfc =_gcbae ;};_eefd :=int64 (len (_eecg ));_fegbd +=_eefd ;if _eefd > 0{_bbaga .First =&_eecg [0].PdfOutlineTreeNode ;
+_bbaga .Last =&_eecg [_eefd -1].PdfOutlineTreeNode ;_bbaga .Count =&_fegbd ;};return _bbaga ;};func (_cbd *PdfReader )newPdfAnnotationHighlightFromDict (_efab *_dfg .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_gecc :=PdfAnnotationHighlight {};
+_bfaf ,_agc :=_cbd .newPdfAnnotationMarkupFromDict (_efab );if _agc !=nil {return nil ,_agc ;};_gecc .PdfAnnotationMarkup =_bfaf ;_gecc .QuadPoints =_efab .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gecc ,nil ;};
+
+// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
+type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_dfg .PdfObjectArray ;ExtGState _dfg .PdfObject ;};
+
+// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
+func SetPdfModifiedDate (modifiedDate _ge .Time ){_dfbaa .Lock ();defer _dfbaa .Unlock ();_agfff =modifiedDate ;};func _geaf (_agcdf _dfg .PdfObject )(*PdfFontDescriptor ,error ){_fbafa :=&PdfFontDescriptor {};_agcdf =_dfg .ResolveReference (_agcdf );if _dcead ,_aedbe :=_agcdf .(*_dfg .PdfIndirectObject );
+_aedbe {_fbafa ._cdab =_dcead ;_agcdf =_dcead .PdfObject ;};_ecgff ,_ccceb :=_dfg .GetDict (_agcdf );if !_ccceb {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046o\u006e\u0074\u0044\u0065\u0073c\u0072\u0069\u0070\u0074\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0067\u0069\u0076\u0065\u006e\u0020\u0062\u0079\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_agcdf );
+return nil ,_dfg .ErrTypeError ;};if _abed :=_ecgff .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_abed !=nil {_fbafa .FontName =_abed ;}else {_egb .Log .Debug ("\u0049n\u0063\u006fm\u0070\u0061\u0074\u0069b\u0069\u006c\u0069t\u0079\u003a\u0020\u0046\u006f\u006e\u0074\u004e\u0061me\u0020\u0028\u0052e\u0071\u0075i\u0072\u0065\u0064\u0029\u0020\u006di\u0073\u0073i\u006e\u0067");
+};_cfddg ,_ :=_dfg .GetName (_fbafa .FontName );if _befa :=_ecgff .Get ("\u0054\u0079\u0070\u0065");_befa !=nil {_dgbf ,_affd :=_befa .(*_dfg .PdfObjectName );if !_affd ||string (*_dgbf )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_egb .Log .Debug ("I\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0064\u0065\u0073\u0063\u0072i\u0070t\u006f\u0072\u0020\u0054y\u0070\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0025\u0054\u0029\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0025\u0054",_befa ,_cfddg ,_fbafa .FontName );
+};}else {_egb .Log .Trace ("\u0049\u006ec\u006f\u006d\u0070\u0061\u0074i\u0062\u0069\u006c\u0069\u0074y\u003a\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0025\u0054",_cfddg ,_fbafa .FontName );
+};_fbafa .FontFamily =_ecgff .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_fbafa .FontStretch =_ecgff .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_fbafa .FontWeight =_ecgff .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
+_fbafa .Flags =_ecgff .Get ("\u0046\u006c\u0061g\u0073");_fbafa .FontBBox =_ecgff .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_fbafa .ItalicAngle =_ecgff .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_fbafa .Ascent =_ecgff .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
+_fbafa .Descent =_ecgff .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_fbafa .Leading =_ecgff .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_fbafa .CapHeight =_ecgff .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_fbafa .XHeight =_ecgff .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
+_fbafa .StemV =_ecgff .Get ("\u0053\u0074\u0065m\u0056");_fbafa .StemH =_ecgff .Get ("\u0053\u0074\u0065m\u0048");_fbafa .AvgWidth =_ecgff .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_fbafa .MaxWidth =_ecgff .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
+_fbafa .MissingWidth =_ecgff .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_fbafa .FontFile =_ecgff .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_fbafa .FontFile2 =_ecgff .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
+_fbafa .FontFile3 =_ecgff .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_fbafa .CharSet =_ecgff .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_fbafa .Style =_ecgff .Get ("\u0053\u0074\u0079l\u0065");_fbafa .Lang =_ecgff .Get ("\u004c\u0061\u006e\u0067");
+_fbafa .FD =_ecgff .Get ("\u0046\u0044");_fbafa .CIDSet =_ecgff .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _fbafa .Flags !=nil {if _dcbf ,_bgfe :=_dfg .GetIntVal (_fbafa .Flags );_bgfe {_fbafa ._dffgf =_dcbf ;};};if _fbafa .MissingWidth !=nil {if _fbeff ,_fgca :=_dfg .GetNumberAsFloat (_fbafa .MissingWidth );
+_fgca ==nil {_fbafa ._decbb =_fbeff ;};};if _fbafa .FontFile !=nil {_dagc ,_cdbcf :=_agcg (_fbafa .FontFile );if _cdbcf !=nil {return _fbafa ,_cdbcf ;};_egb .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_dagc );_fbafa .fontFile =_dagc ;
+};if _fbafa .FontFile2 !=nil {_aadc ,_agbac :=_bf .NewFontFile2FromPdfObject (_fbafa .FontFile2 );if _agbac !=nil {return _fbafa ,_agbac ;};_egb .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_aadc .String ());_fbafa ._gcge =&_aadc ;
+};return _fbafa ,nil ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_edd *PdfActionResetForm )ToPdfObject ()_dfg .PdfObject {_edd .PdfAction .ToPdfObject ();_ecd :=_edd ._fe ;_gac :=_ecd .PdfObject .(*_dfg .PdfObjectDictionary );_gac .SetIfNotNil ("\u0053",_dfg .MakeName (string (ActionTypeResetForm )));_gac .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_edd .Fields );
+_gac .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_edd .Flags );return _ecd ;};
+
+// GetBorderWidth returns the border style's width.
+func (_fbga *PdfBorderStyle )GetBorderWidth ()float64 {if _fbga .W ==nil {return 1;};return *_fbga .W ;};
+
+// NewMultipleFontEncoder returns instantiates a new *MultipleFontEncoder
+func NewMultipleFontEncoder (fonts []*PdfFont )*MultipleFontEncoder {return &MultipleFontEncoder {_ceede :fonts ,CurrentFont :fonts [0]};};
+
+// ToPdfObject recursively builds the Outline tree PDF object.
+func (_fgdgd *PdfOutlineItem )ToPdfObject ()_dfg .PdfObject {_gcead :=_fgdgd ._fcecb ;_bfaee :=_gcead .PdfObject .(*_dfg .PdfObjectDictionary );_bfaee .Set ("\u0054\u0069\u0074l\u0065",_fgdgd .Title );if _fgdgd .A !=nil {_bfaee .Set ("\u0041",_fgdgd .A );
+};if _fgebd :=_bfaee .Get ("\u0053\u0045");_fgebd !=nil {_bfaee .Remove ("\u0053\u0045");};if _fgdgd .C !=nil {_bfaee .Set ("\u0043",_fgdgd .C );};if _fgdgd .Dest !=nil {_bfaee .Set ("\u0044\u0065\u0073\u0074",_fgdgd .Dest );};if _fgdgd .F !=nil {_bfaee .Set ("\u0046",_fgdgd .F );
+};if _fgdgd .Count !=nil {_bfaee .Set ("\u0043\u006f\u0075n\u0074",_dfg .MakeInteger (*_fgdgd .Count ));};if _fgdgd .Next !=nil {_bfaee .Set ("\u004e\u0065\u0078\u0074",_fgdgd .Next .ToPdfObject ());};if _fgdgd .First !=nil {_bfaee .Set ("\u0046\u0069\u0072s\u0074",_fgdgd .First .ToPdfObject ());
+};if _fgdgd .Prev !=nil {_bfaee .Set ("\u0050\u0072\u0065\u0076",_fgdgd .Prev .GetContext ().GetContainingPdfObject ());};if _fgdgd .Last !=nil {_bfaee .Set ("\u004c\u0061\u0073\u0074",_fgdgd .Last .GetContext ().GetContainingPdfObject ());};if _fgdgd .Parent !=nil {_bfaee .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fgdgd .Parent .GetContext ().GetContainingPdfObject ());
+};return _gcead ;};func (_fbfd *PdfReader )newPdfAcroFormFromDict (_adag *_dfg .PdfIndirectObject ,_aabde *_dfg .PdfObjectDictionary )(*PdfAcroForm ,error ){_gdbe :=NewPdfAcroForm ();if _adag !=nil {_gdbe ._gddd =_adag ;_adag .PdfObject =_dfg .MakeDict ();
+};if _fbdfc :=_aabde .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_fbdfc !=nil &&!_dfg .IsNullObject (_fbdfc ){_gefad ,_bcee :=_dfg .GetArray (_fbdfc );if !_bcee {return nil ,_d .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_fbdfc );
+};var _efcba []*PdfField ;for _ ,_efgge :=range _gefad .Elements (){_ddccb ,_eaef :=_dfg .GetIndirect (_efgge );if !_eaef {if _ ,_cfaa :=_efgge .(*_dfg .PdfObjectNull );_cfaa {_egb .Log .Trace ("\u0053k\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u006f\u0076\u0065\u0072 \u006e\u0075\u006c\u006c\u0020\u0066\u0069\u0065\u006c\u0064");
+continue ;};_egb .Log .Debug ("\u0046\u0069\u0065\u006c\u0064 \u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0064 \u0069\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_efgge );
+return nil ,_d .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ceef ,_dabcf :=_fbfd .newPdfFieldFromIndirectObject (_ddccb ,nil );
+if _dabcf !=nil {return nil ,_dabcf ;};_egb .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_ceef );_efcba =append (_efcba ,_ceef );};_gdbe .Fields =&_efcba ;};if _gggfe :=_aabde .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
+_gggfe !=nil {_ddcac ,_cgaafe :=_dfg .GetBool (_gggfe );if _cgaafe {_gdbe .NeedAppearances =_ddcac ;}else {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u0065\u0065\u0064\u0041\u0070p\u0065\u0061\u0072\u0061\u006e\u0063e\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006ft\u0020\u0025\u0054\u0029",_gggfe );
+};};if _eedb :=_aabde .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_eedb !=nil {_eeaea ,_cagaf :=_dfg .GetInt (_eedb );if _cagaf {_gdbe .SigFlags =_eeaea ;}else {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073 \u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_eedb );
+};};if _fggg :=_aabde .Get ("\u0043\u004f");_fggg !=nil {_fdaaf ,_afgfg :=_dfg .GetArray (_fggg );if _afgfg {_gdbe .CO =_fdaaf ;}else {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u004f\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_fggg );
+};};if _bedac :=_aabde .Get ("\u0044\u0052");_bedac !=nil {if _dgfee ,_dgcc :=_dfg .GetDict (_bedac );_dgcc {_cacb ,_ecaa :=NewPdfPageResourcesFromDict (_dgfee );if _ecaa !=nil {_egb .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_ecaa );
+return nil ,_ecaa ;};_gdbe .DR =_cacb ;}else {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0044\u0052\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_bedac );};};if _baea :=_aabde .Get ("\u0044\u0041");
+_baea !=nil {_ebbc ,_bbab :=_dfg .GetString (_baea );if _bbab {_gdbe .DA =_ebbc ;}else {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0044\u0041\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_baea );
+};};if _caecg :=_aabde .Get ("\u0051");_caecg !=nil {_ddfef ,_defdfe :=_dfg .GetInt (_caecg );if _defdfe {_gdbe .Q =_ddfef ;}else {_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_caecg );
+};};if _agafdf :=_aabde .Get ("\u0058\u0046\u0041");_agafdf !=nil {_gdbe .XFA =_agafdf ;};if _ggbc :=_aabde .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_ggbc !=nil {_gdbe .ADBEEchoSign =_ggbc ;};_gdbe .ToPdfObject ();
+return _gdbe ,nil ;};
+
+// SignatureValidationResult defines the response from the signature validation handler.
+type SignatureValidationResult struct{
+
+// List of errors when validating the signature.
+Errors []string ;IsSigned bool ;IsVerified bool ;IsTrusted bool ;Fields []*PdfField ;Name string ;Date PdfDate ;Reason string ;Location string ;ContactInfo string ;DiffResults *_bba .DiffResults ;IsCrlFound bool ;IsOcspFound bool ;
+
+// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
+GeneralizedTime _ge .Time ;};
+
+// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
+// components. The slice should contain a single PdfObjectFloat element in
+// range 0-1.
+func (_gede *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_dfg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdcc ,_dgac :=_dfg .GetNumbersAsFloat (objects );
+if _dgac !=nil {return nil ,_dgac ;};return _gede .ColorFromFloats (_cdcc );};
+
+// ToInteger convert to an integer format.
+func (_gfdc *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_gbff :=_df .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_gbff *_gfdc .R ()),uint32 (_gbff *_gfdc .G ()),uint32 (_gbff *_gfdc .B ())};};
+
+// ColorFromFloats returns a new PdfColor based on the input slice of color
+// components. The slice should contain three elements representing the
+// red, green and blue components of the color. The values of the elements
+// should be between 0 and 1.
+func (_ggggd *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcecb :=vals [0];if _bcecb < 0.0||_bcecb > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bcecb );
+return nil ,ErrColorOutOfRange ;};_bfbe :=vals [1];if _bfbe < 0.0||_bfbe > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bcecb );return nil ,ErrColorOutOfRange ;
+};_feae :=vals [2];if _feae < 0.0||_feae > 1.0{_egb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bcecb );return nil ,ErrColorOutOfRange ;};_dbcb :=NewPdfColorDeviceRGB (_bcecb ,_bfbe ,_feae );
+return _dbcb ,nil ;};
+
+// PdfActionThread represents a thread action.
+type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _dfg .PdfObject ;B _dfg .PdfObject ;};
+
+// GetCharMetrics returns the char metrics for character code `code`.
+func (_bcabd pdfFontType0 )GetCharMetrics (code _ff .CharCode )(_bf .CharMetrics ,bool ){if _bcabd .DescendantFont ==nil {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u002e\u0020\u0066\u006f\u006et=\u0025\u0073",_bcabd );
+return _bf .CharMetrics {},false ;};return _bcabd .DescendantFont .GetCharMetrics (code );};
+
+// SetViewArea sets the value of the viewArea.
+func (_cecda *ViewerPreferences )SetViewArea (viewArea PageBoundary ){_cecda ._gaeae =viewArea };
+
+// ToPdfObject convert PdfInfo to pdf object.
+func (_dgfd *PdfInfo )ToPdfObject ()_dfg .PdfObject {_acaf :=_dfg .MakeDict ();_acaf .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_dgfd .Title );_acaf .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_dgfd .Author );_acaf .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_dgfd .Subject );
+_acaf .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_dgfd .Keywords );_acaf .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_dgfd .Creator );_acaf .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_dgfd .Producer );
+_acaf .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_dgfd .Trapped );if _dgfd .CreationDate !=nil {_acaf .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_dgfd .CreationDate .ToPdfObject ());};if _dgfd .ModifiedDate !=nil {_acaf .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_dgfd .ModifiedDate .ToPdfObject ());
+};for _ ,_fcec :=range _dgfd ._gdaaeb .Keys (){_acaf .SetIfNotNil (_fcec ,_dgfd ._gdaaeb .Get (_fcec ));};return _acaf ;};
+
+// GetStructRoot gets the StructTreeRoot object
+func (_gbffcb *PdfPage )GetStructTreeRoot ()(*_dfg .PdfObject ,bool ){_ccece ,_ecfbg :=_gbffcb ._ggcgd .GetCatalogStructTreeRoot ();return &_ccece ,_ecfbg ;};
+
+// SetPickTrayByPDFSize sets the value of the pickTrayByPDFSize flag.
+func (_cfada *ViewerPreferences )SetPickTrayByPDFSize (pickTrayByPDFSize bool ){_cfada ._cdgcd =&pickTrayByPDFSize ;};func _agcg (_caaad _dfg .PdfObject )(*fontFile ,error ){_egb .Log .Trace ("\u006e\u0065\u0077\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0046\u0072\u006f\u006dP\u0064f\u004f\u0062\u006a\u0065\u0063\u0074\u003a\u0020\u006f\u0062\u006a\u003d\u0025\u0073",_caaad );
+_accca :=&fontFile {};_caaad =_dfg .TraceToDirectObject (_caaad );_gcga ,_edcbf :=_caaad .(*_dfg .PdfObjectStream );if !_edcbf {_egb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020F\u006f\u006et\u0046\u0069\u006c\u0065\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d \u0028\u0025\u0054\u0029",_caaad );
+return nil ,_dfg .ErrTypeError ;};_dfbec :=_gcga .PdfObjectDictionary ;_geccf ,_edef :=_dfg .DecodeStream (_gcga );if _edef !=nil {return nil ,_edef ;};_feda ,_edcbf :=_dfg .GetNameVal (_dfbec .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_edcbf {_accca ._adfbf =_feda ;
+if _feda =="\u0054\u0079\u0070\u0065\u0031\u0043"{_egb .Log .Debug ("T\u0079\u0070\u0065\u0031\u0043\u0020\u0066\u006f\u006e\u0074\u0073\u0020\u0061\u0072\u0065\u0020\u0063\u0075r\u0072\u0065\u006e\u0074\u006c\u0079\u0020\u006e\u006f\u0074 s\u0075\u0070\u0070o\u0072t\u0065\u0064");
+return nil ,ErrType1CFontNotSupported ;};};_fdfbb ,_ :=_dfg .GetIntVal (_dfbec .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_bccfg ,_ :=_dfg .GetIntVal (_dfbec .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _fdfbb > len (_geccf ){_fdfbb =len (_geccf );
+};if _fdfbb +_bccfg > len (_geccf ){_bccfg =len (_geccf )-_fdfbb ;};_caabf :=_geccf [:_fdfbb ];var _gagc []byte ;if _bccfg > 0{_gagc =_geccf [_fdfbb :_fdfbb +_bccfg ];};if _fdfbb > 0&&_bccfg > 0{_edbdg :=_accca .loadFromSegments (_caabf ,_gagc );if _edbdg !=nil {return nil ,_edbdg ;
+};};return _accca ,nil ;};func (_ecdbe *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _ecdbe ._cebfd ==nil &&_ecdbe .DescendantFont !=nil {return _ecdbe .DescendantFont .FontDescriptor ();};return _ecdbe ._cebfd ;};
+
+// NewPdfActionSubmitForm returns a new "submit form" action.
+func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_eefb :=NewPdfAction ();_bcd :=&PdfActionSubmitForm {};_bcd .PdfAction =_eefb ;_eefb .SetContext (_bcd );return _bcd ;};
+
+// K returns the value of the key component of the color.
+func (_ggagg *PdfColorDeviceCMYK )K ()float64 {return _ggagg [3]};
+
+// B returns the value of the B component of the color.
+func (_dcgf *PdfColorLab )B ()float64 {return _dcgf [2]};
+
+// GetOutlineTree returns the outline tree.
+func (_efbdgb *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _efbdgb ._dagg };
+
+// NewPdfAnnotation3D returns a new 3d annotation.
+func NewPdfAnnotation3D ()*PdfAnnotation3D {_gde :=NewPdfAnnotation ();_aabf :=&PdfAnnotation3D {};_aabf .PdfAnnotation =_gde ;_gde .SetContext (_aabf );return _aabf ;};
+
+// SetBorderWidth sets the style's border width.
+func (_cbfe *PdfBorderStyle )SetBorderWidth (width float64 ){_cbfe .W =&width };
+
+// NewPdfDate returns a new PdfDate object from a PDF date string (see 7.9.4 Dates).
+// format: "D: YYYYMMDDHHmmSSOHH'mm"
+func NewPdfDate (dateStr string )(PdfDate ,error ){_facca ,_dacbc :=_ea .ParsePdfTime (dateStr );if _dacbc !=nil {return PdfDate {},_dacbc ;};return NewPdfDateFromTime (_facca );};
+
+// Items returns all children outline items.
+func (_bcedd *OutlineItem )Items ()[]*OutlineItem {return _bcedd .Entries };
+
+// ToPdfObject returns the PDF representation of the shading dictionary.
+func (_ddcceb *PdfShading )ToPdfObject ()_dfg .PdfObject {_cdaea :=_ddcceb ._gdfdg ;_bcccb ,_bgdef :=_ddcceb .getShadingDict ();if _bgdef !=nil {_egb .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
+return nil ;};if _ddcceb .ShadingType !=nil {_bcccb .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_ddcceb .ShadingType );};if _ddcceb .ColorSpace !=nil {_bcccb .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_ddcceb .ColorSpace .ToPdfObject ());
+};if _ddcceb .Background !=nil {_bcccb .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_ddcceb .Background );};if _ddcceb .BBox !=nil {_bcccb .Set ("\u0042\u0042\u006f\u0078",_ddcceb .BBox .ToPdfObject ());};if _ddcceb .AntiAlias !=nil {_bcccb .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_ddcceb .AntiAlias );
+};return _cdaea ;};
+
+// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
+type FieldValueProvider interface{FieldValues ()(map[string ]_dfg .PdfObject ,error );};func _faadcf (_fedce _dfg .PdfObject )(*PdfFunctionType2 ,error ){_gcbb :=&PdfFunctionType2 {};var _abda *_dfg .PdfObjectDictionary ;if _gdcdc ,_eagc :=_fedce .(*_dfg .PdfIndirectObject );
+_eagc {_fdgfg ,_fbca :=_gdcdc .PdfObject .(*_dfg .PdfObjectDictionary );if !_fbca {return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gcbb ._gggdd =_gdcdc ;_abda =_fdgfg ;}else if _dfag ,_faabe :=_fedce .(*_dfg .PdfObjectDictionary );
+_faabe {_abda =_dfag ;}else {return nil ,_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_egb .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_abda .String ());_abaac ,_cege :=_dfg .TraceToDirectObject (_abda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_dfg .PdfObjectArray );
+if !_cege {_egb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
+};if _abaac .Len ()< 0||_abaac .Len ()%2!=0{_egb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_bd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
+};_eaacd ,_eacd :=_abaac .ToFloat64Array ();if _eacd !=nil {return nil ,_eacd ;};_gcbb .Domain =_eaacd ;_abaac ,_cege =_dfg .TraceToDirectObject (_abda .Get ("\u0052\u0061\u006eg\u0065")).(*_dfg .PdfObjectArray );if _cege {if _abaac .Len ()< 0||_abaac .Len ()%2!=0{return nil ,_bd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
+};_efff ,_dcde :=_abaac .ToFloat64Array ();if _dcde !=nil {return nil ,_dcde ;};_gcbb .Range =_efff ;};_abaac ,_cege =_dfg .TraceToDirectObject (_abda .Get ("\u0043\u0030")).(*_dfg .PdfObjectArray );if _cege {_dfgag ,_gfdfd :=_abaac .ToFloat64Array ();
+if _gfdfd !=nil {return nil ,_gfdfd ;};_gcbb .C0 =_dfgag ;};_abaac ,_cege =_dfg .TraceToDirectObject (_abda .Get ("\u0043\u0031")).(*_dfg .PdfObjectArray );if _cege {_gggc ,_bcfb :=_abaac .ToFloat64Array ();if _bcfb !=nil {return nil ,_bcfb ;};_gcbb .C1 =_gggc ;
+};if len (_gcbb .C0 )!=len (_gcbb .C1 ){_egb .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_dfg .ErrRangeError ;};N ,_eacd :=_dfg .GetNumberAsFloat (_dfg .TraceToDirectObject (_abda .Get ("\u004e")));
+if _eacd !=nil {_egb .Log .Error ("\u004e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020o\u0072\u0020\u0069\u006e\u0076\u0061\u006ci\u0064\u002c\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_abda .String ());return nil ,_eacd ;};_gcbb .N =N ;
+return _gcbb ,nil ;};
+
+// SetType sets the field button's type. Can be one of:
+// - PdfFieldButtonPush for push button fields
+// - PdfFieldButtonCheckbox for checkbox fields
+// - PdfFieldButtonRadio for radio button fields
+// This sets the field's flag appropriately.
+func (_ggcc *PdfFieldButton )SetType (btype ButtonType ){_fced :=uint32 (0);if _ggcc .Ff !=nil {_fced =uint32 (*_ggcc .Ff );};switch btype {case ButtonTypePush :_fced |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_fced |=FieldFlagRadio .Mask ();
+};_ggcc .Ff =_dfg .MakeInteger (int64 (_fced ));};
+
+// M returns the value of the magenta component of the color.
+func (_dade *PdfColorDeviceCMYK )M ()float64 {return _dade [1]};
+
+// NewPdfActionGoTo returns a new "go to" action.
+func NewPdfActionGoTo ()*PdfActionGoTo {_bfg :=NewPdfAction ();_dab :=&PdfActionGoTo {};_dab .PdfAction =_bfg ;_bfg .SetContext (_dab );return _dab ;};
+
+// NewKValue creates a new K value object.
+func NewKValue ()*KValue {return &KValue {}};
+
+// SetRotation sets the rotation of all pages added to writer. The rotation is
+// specified in degrees and must be a multiple of 90.
+// The Rotate field of individual pages has priority over the global rotation.
+func (_edaae *PdfWriter )SetRotation (rotate int64 )error {_dbabb ,_afdfd :=_dfg .GetDict (_edaae ._gdcdb );if !_afdfd {return ErrTypeCheck ;};_dbabb .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_dfg .MakeInteger (rotate ));return nil ;};
+
+// ToInteger convert to an integer format.
+func (_deda *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_aedb :=_df .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_aedb *_deda .A ()),uint32 (_aedb *_deda .B ()),uint32 (_aedb *_deda .C ())};};
+
+// GetNumComponents returns the number of color components of the underlying
+// colorspace device.
+func (_edfe *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _edfe .UnderlyingCS .GetNumComponents ();};
+
+// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
+type PdfFieldButton struct{*PdfField ;Opt *_dfg .PdfObjectArray ;_geade *Image ;};
+
+// GetRevisionNumber returns the version of the current Pdf document
+func (_abbdb *PdfReader )GetRevisionNumber ()int {return _abbdb ._agbcd .GetRevisionNumber ()};
+
+// ToPdfObject implements interface PdfModel.
+func (_bfcd *PdfAnnotationInk )ToPdfObject ()_dfg .PdfObject {_bfcd .PdfAnnotation .ToPdfObject ();_fdfb :=_bfcd ._afae ;_efabg :=_fdfb .PdfObject .(*_dfg .PdfObjectDictionary );_bfcd .appendToPdfDictionary (_efabg );_efabg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0049\u006e\u006b"));
+_efabg .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_bfcd .InkList );_efabg .SetIfNotNil ("\u0042\u0053",_bfcd .BS );return _fdfb ;};
+
+// RemoveWatermarkImage removes watermark.
+// If you don't know exact name of watermark PDF object, pass empty string as an argument.
+func (_ddgb *PdfPage )RemoveWatermarkImage (name string )error {if _ddgb .Resources !=nil &&_ddgb .Resources .XObject !=nil {if _cade ,_daaeb :=_dfg .GetDict (_ddgb .Resources .XObject );_daaeb {for _ ,_bcgaab :=range _cade .Keys (){if name ==_bcgaab .String (){_ddgb .removeXObj (_cade ,_bcgaab );
+continue ;};_ecac ,_cgdfe :=_dfg .GetStream (_cade .Get (_bcgaab ));if !_cgdfe {continue ;};_eggf ,_cgdfe :=_dfg .GetDict (_ecac .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o"));if !_cgdfe {continue ;};_agaef ,_cgdfe :=_dfg .GetDict (_eggf .Get ("\u0041\u0044\u0042\u0045\u005f\u0043\u006f\u006d\u0070\u006f\u0075\u006ed\u0054\u0079\u0070\u0065"));
+if !_cgdfe {continue ;};if _agaef .Get ("\u0050r\u0069\u0076\u0061\u0074\u0065")!=nil &&_agaef .Get ("\u0050r\u0069\u0076\u0061\u0074\u0065").String ()=="\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"{_ddgb .removeXObj (_cade ,_bcgaab );};};};};_gfbcf ,_faceb :=_ddgb .GetAnnotations ();
+if _faceb ==nil {_ggbee :=make ([]*PdfAnnotation ,0);for _ ,_bfbac :=range _gfbcf {switch _bfbac .GetContext ().(type ){case *PdfAnnotationWatermark :default:_ggbee =append (_ggbee ,_bfbac );};};_ddgb .SetAnnotations (_ggbee );};return nil ;};
+
+// RemoveStructParentsKey removes the StructParents key.
+func (_eddee *PdfPage )RemoveStructParentsKey (){_eddee .StructParents =nil };
+
+// AddCustomInfo adds a custom info into document info dictionary.
+func (_affef *PdfInfo )AddCustomInfo (name string ,value string )error {if _affef ._gdaaeb ==nil {_affef ._gdaaeb =_dfg .MakeDict ();};if _ ,_ffbgc :=_gbffc [name ];_ffbgc {return _d .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name );
+};_affef ._gdaaeb .SetIfNotNil (*_dfg .MakeName (name ),_dfg .MakeString (value ));return nil ;};
+
+// SetFitWindow sets the value of the fitWindow flag.
+func (_ggbcb *ViewerPreferences )SetFitWindow (fitWindow bool ){_ggbcb ._abea =&fitWindow };
+
+// AddAnnotation appends `annot` to the list of page annotations.
+func (_cccdd *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _cccdd ._dbec ==nil {_cccdd .GetAnnotations ();};_cccdd ._dbec =append (_cccdd ._dbec ,annot );};
+
+// ParserMetadata gets the parser metadata.
+func (_ggbdg *CompliancePdfReader )ParserMetadata ()_dfg .ParserMetadata {if _ggbdg ._gdcg ==(_dfg .ParserMetadata {}){_ggbdg ._gdcg ,_ =_ggbdg ._agbcd .ParserMetadata ();};return _ggbdg ._gdcg ;};
+
+// NewXObjectImageFromImage creates a new XObject Image from an image object
+// with default options. If encoder is nil, uses raw encoding (none).
+func NewXObjectImageFromImage (img *Image ,cs PdfColorspace ,encoder _dfg .StreamEncoder )(*XObjectImage ,error ){_edbab :=NewXObjectImage ();return UpdateXObjectImageFromImage (_edbab ,img ,cs ,encoder );};
+
+// GenerateKDict generates a K dictionary object from the StructureTagInfo.
+func (_egcbf *StructureTagInfo )GenerateKDict ()*KDict {_geagd :=&KDict {S :_dfg .MakeName (string (_egcbf .StructureType ))};if _egcbf .StructPageNumber !=nil {_geagd .SetPageNumber (*_egcbf .StructPageNumber );};if len (_egcbf .AnnotObjs )==0{_geagd .K =_dfg .MakeInteger (_egcbf .Mcid );
+return _geagd ;};_dbdge :=_dfg .MakeArray ();_dbdge .Append (_dfg .MakeInteger (_egcbf .Mcid ));for _ ,_dabbe :=range _egcbf .AnnotObjs {_aegdf :=_dfg .MakeDict ();_aegdf .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u004f\u0042\u004a\u0052"));_aegdf .Set ("\u004f\u0062\u006a",_dabbe );
+_dbdge .Append (_aegdf );};_geagd .K =_dbdge ;return _geagd ;};
+
+// PrintPageRange returns the value of the printPageRange.
+func (_ggceae *ViewerPreferences )PrintPageRange ()[]int {return _ggceae ._gbdfbf };var _ pdfFont =(*pdfCIDFontType2 )(nil );
+
+// SetKDict sets the KDict for the KValue.
+func (_dbda *KValue )SetKDict (kDict *KDict ){_dbda .Clear ();_dbda ._badbf =kDict };
+
+// BaseFont returns the font's "BaseFont" field.
+func (_fgdb *PdfFont )BaseFont ()string {return _fgdb .baseFields ()._dbcbc };func _gccdg (_bdaaa *_dfg .PdfObjectDictionary )*VRI {_bcaf ,_ :=_dfg .GetString (_bdaaa .Get ("\u0054\u0055"));_ffge ,_ :=_dfg .GetString (_bdaaa .Get ("\u0054\u0053"));return &VRI {Cert :_fccef (_bdaaa .Get ("\u0043\u0065\u0072\u0074")),OCSP :_fccef (_bdaaa .Get ("\u004f\u0043\u0053\u0050")),CRL :_fccef (_bdaaa .Get ("\u0043\u0052\u004c")),TU :_bcaf ,TS :_ffge };
+};
+
+// SetBoundingBox sets the bounding box in the attribute object.
+func (_gbcf *KDict )SetBoundingBox (x ,y ,width ,height float64 ){_gbcf ._abfe =&PdfRectangle {Llx :x ,Lly :y ,Urx :x +width ,Ury :y +height };};func (_ecdcg *PdfWriter )writeString (_babbe string ){if _ecdcg ._afgfcg !=nil {return ;};_gabbf ,_fafa :=_ecdcg ._bfdbg .WriteString (_babbe );
+_ecdcg ._cffge +=int64 (_gabbf );_ecdcg ._afgfcg =_fafa ;};
+
+// KDict represents a K dictionary object.
+type KDict struct{
+
+// The structure type, a name object identifying the nature of the
+// structure element and its role within the document,
+// such as a chapter, paragraph, or footnote
+S _dfg .PdfObject ;
+
+// The structure element that is the immediate parent of this one
+// in the structure hierarchy.
+P _dfg .PdfObject ;
+
+// The element identifier, a byte string designating this structure element.
+ID *_dfg .PdfObjectString ;
+
+// A page object representing a page on which some or all of the content
+// items designated by the K entry shall be rendered.
+Pg _dfg .PdfObject ;
+
+// The children of this structure element.
+K _dfg .PdfObject ;
+
+// A single attribute object or array of attribute objects associated
+// with this structure element.
+A _dfg .PdfObject ;
+
+// An attribute class name or array of class names associated with
+// this structure element.
+C _dfg .PdfObject ;
+
+// The current revision number of this structure element
+R *_dfg .PdfObjectInteger ;
+
+// The title of the structure element, a text string representing
+// it in human-readable form.
+T *_dfg .PdfObjectString ;
+
+// A language identifier specifying the natural language for all text
+// in the structure element except where overridden by
+// language specifications for nested structure elements or marked content.
+Lang *_dfg .PdfObjectString ;
+
+// An alternate description of the structure element and its
+// children in human-readable form, which is useful when extracting
+// the document’s contents in support of accessibility to users with
+// disabilities or for other purposes.
+Alt *_dfg .PdfObjectString ;
+
+// The expanded form of an abbreviation.
+E *_dfg .PdfObjectString ;
+
+// Text that is an exact replacement for the structure element and its children.
+ActualText *_dfg .PdfObjectString ;_dcgedc []*KValue ;_gabf int64 ;_abfe *PdfRectangle ;};func _gbada (_aefc _dfg .PdfObject )(PdfFunction ,error ){_aefc =_dfg .ResolveReference (_aefc );if _cfcgd ,_adfdf :=_aefc .(*_dfg .PdfObjectStream );_adfdf {_aega :=_cfcgd .PdfObjectDictionary ;
+_fbegc ,_babae :=_aega .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_dfg .PdfObjectInteger );if !_babae {_egb .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");
+return nil ,_bd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};if *_fbegc ==0{return _agfe (_cfcgd );}else if *_fbegc ==4{return _eaagaf (_cfcgd );
+}else {return nil ,_bd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _ffcc ,_gdeff :=_aefc .(*_dfg .PdfIndirectObject );_gdeff {_bbgagf ,_afdbe :=_ffcc .PdfObject .(*_dfg .PdfObjectDictionary );
+if !_afdbe {_egb .Log .Error ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006eg\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+return nil ,_bd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};_fcbb ,_afdbe :=_bbgagf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_dfg .PdfObjectInteger );
+if !_afdbe {_egb .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");return nil ,_bd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");
+};if *_fcbb ==2{return _faadcf (_ffcc );}else if *_fcbb ==3{return _befee (_ffcc );}else {return nil ,_bd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _dgfdb ,_befcf :=_aefc .(*_dfg .PdfObjectDictionary );
+_befcf {_fcfg ,_fecbb :=_dgfdb .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_dfg .PdfObjectInteger );if !_fecbb {_egb .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");
+return nil ,_bd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};if *_fcfg ==2{return _faadcf (_dgfdb );}else if *_fcfg ==3{return _befee (_dgfdb );
+}else {return nil ,_bd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_egb .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_aefc );
+return nil ,_bd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
+
+// HasXObjectByName checks if has XObject resource by name.
+func (_bacce *PdfPage )HasXObjectByName (name _dfg .PdfObjectName )bool {_gegcd ,_edcdg :=_bacce .Resources .XObject .(*_dfg .PdfObjectDictionary );if !_edcdg {return false ;};if _cccf :=_gegcd .Get (name );_cccf !=nil {return true ;};return false ;};
+
+// GetPdfName returns the PDF name used to indicate the border style.
+// (Table 166 p. 395).
+func (_fgaa *BorderStyle )GetPdfName ()string {switch *_fgaa {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
+};return "";};
+
+// PdfFunctionType4 is a Postscript calculator functions.
+type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_cb .PSProgram ;_adgdc *_cb .PSExecutor ;_gbgcb []byte ;_gbaed *_dfg .PdfObjectStream ;};
+
+// SetPdfAuthor sets the Author attribute of the output PDF.
+func SetPdfAuthor (author string ){_dfbaa .Lock ();defer _dfbaa .Unlock ();_eebage =author };
+
+// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
+type PdfPage struct{Parent _dfg .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _dfg .PdfObject ;Contents _dfg .PdfObject ;
+Rotate *int64 ;Group _dfg .PdfObject ;Thumb _dfg .PdfObject ;B _dfg .PdfObject ;Dur _dfg .PdfObject ;Trans _dfg .PdfObject ;AA _dfg .PdfObject ;Metadata _dfg .PdfObject ;PieceInfo _dfg .PdfObject ;StructParents _dfg .PdfObject ;ID _dfg .PdfObject ;PZ _dfg .PdfObject ;
+SeparationInfo _dfg .PdfObject ;Tabs _dfg .PdfObject ;TemplateInstantiated _dfg .PdfObject ;PresSteps _dfg .PdfObject ;UserUnit _dfg .PdfObject ;VP _dfg .PdfObject ;Annots _dfg .PdfObject ;_dbec []*PdfAnnotation ;_daae *_dfg .PdfObjectDictionary ;_bdeee *_dfg .PdfIndirectObject ;
+_fagbf _dfg .PdfObjectDictionary ;_ggcgd *PdfReader ;};
+
+// ToPdfObject implements interface PdfModel.
+func (_edbb *PdfAnnotationRedact )ToPdfObject ()_dfg .PdfObject {_edbb .PdfAnnotation .ToPdfObject ();_faga :=_edbb ._afae ;_dfb :=_faga .PdfObject .(*_dfg .PdfObjectDictionary );_edbb .appendToPdfDictionary (_dfb );_dfb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dfg .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
+_dfb .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_edbb .QuadPoints );_dfb .SetIfNotNil ("\u0049\u0043",_edbb .IC );_dfb .SetIfNotNil ("\u0052\u004f",_edbb .RO );_dfb .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_edbb .OverlayText );
+_dfb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_edbb .Repeat );_dfb .SetIfNotNil ("\u0044\u0041",_edbb .DA );_dfb .SetIfNotNil ("\u0051",_edbb .Q );return _faga ;};
+
+// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
+func (_bcadg *PdfAcroForm )GetContainingPdfObject ()_dfg .PdfObject {return _bcadg ._gddd };
+
+// NewPdfAnnotationUnderline returns a new text underline annotation.
+func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_caab :=NewPdfAnnotation ();_bce :=&PdfAnnotationUnderline {};_bce .PdfAnnotation =_caab ;_bce .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_caab .SetContext (_bce );return _bce ;};func (_edga *PdfAppender )replaceObject (_geeb ,_dcee _dfg .PdfObject ){switch _ddcg :=_geeb .(type ){case *_dfg .PdfIndirectObject :_edga ._effe [_dcee ]=_ddcg .ObjectNumber ;
+case *_dfg .PdfObjectStream :_edga ._effe [_dcee ]=_ddcg .ObjectNumber ;};};
+
+// ParsePdfObject parses input pdf object into given output intent.
+func (_gdde *PdfOutputIntent )ParsePdfObject (object _dfg .PdfObject )error {_cebb ,_fbeed :=_dfg .GetDict (object );if !_fbeed {_egb .Log .Error ("\u0055\u006e\u006bno\u0077\u006e\u0020\u0074\u0079\u0070\u0065\u003a\u0020%\u0054 \u0066o\u0072 \u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074",object );
+return _bd .New ("\u0075\u006e\u006b\u006e\u006fw\u006e\u0020\u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074");
+};_gdde ._gacff =_cebb ;_gdde .Type ,_ =_cebb .GetString ("\u0054\u0079\u0070\u0065");_edefb ,_fbeed :=_cebb .GetString ("\u0053");if _fbeed {switch _edefb {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_gdde .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_gdde .S =PdfOutputIntentTypeA2 ;
+case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_gdde .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_gdde .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_gdde .S =PdfOutputIntentTypeX ;
+};};_gdde .OutputCondition ,_ =_cebb .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_gdde .OutputConditionIdentifier ,_ =_cebb .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
+_gdde .RegistryName ,_ =_cebb .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_gdde .Info ,_ =_cebb .GetString ("\u0049\u006e\u0066\u006f");if _afbgcb ,_fcfa :=_dfg .GetStream (_cebb .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
+_fcfa {_gdde .ColorComponents ,_ =_dfg .GetIntVal (_afbgcb .Get ("\u004e"));_addcb ,_eccef :=_dfg .DecodeStream (_afbgcb );if _eccef !=nil {return _eccef ;};_gdde .DestOutputProfile =_addcb ;};return nil ;};
+
+// Duplicate creates a duplicate page based on the current one and returns it.
+func (_gcbf *PdfPage )Duplicate ()*PdfPage {_bbagc :=*_gcbf ;_bbagc ._daae =_dfg .MakeDict ();_bbagc ._bdeee =_dfg .MakeIndirectObject (_bbagc ._daae );_bbagc ._fagbf =*_bbagc ._daae ;return &_bbagc ;};
+
+// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
+func (_febade *PdfReader )GetIndirectObjectByNumber (number int )(_dfg .PdfObject ,error ){_cfbaf ,_fcbc :=_febade ._agbcd .LookupByNumber (number );return _cfbaf ,_fcbc ;};func (_daccd *PdfWriter )adjustXRefAffectedVersion (_ecegd bool ){if _ecegd &&_daccd ._cfbcb .Major ==1&&_daccd ._cfbcb .Minor < 5{_daccd ._cfbcb .Minor =5;
+};};
+
+// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
+func NewPdfTransformParamsDocMDP (permission _bba .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_dfg .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_dfg .MakeInteger (int64 (permission )),V :_dfg .MakeName ("\u0031\u002e\u0032")};
+};
+
+// SetAnnotations sets the annotations list.
+func (_cddfag *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_cddfag ._dbec =annotations };
+
+// ToPdfObject converts the K dictionary to a PDF object.
+func (_beea *KDict )ToPdfObject ()_dfg .PdfObject {_bgadea :=_dfg .MakeDict ();if _beea .ID !=nil {_bgadea .Set ("\u0049\u0044",_beea .ID );};if _beea .K !=nil {_bgadea .Set ("\u004b",_beea .K );}else if len (_beea ._dcgedc )> 0{if len (_beea ._dcgedc )==1{_beea .K =_beea ._dcgedc [0].ToPdfObject ();
+}else {_abdbd :=_dfg .MakeArray ();for _ ,_eeead :=range _beea ._dcgedc {_abdbd .Append (_eeead .ToPdfObject ());};_beea .K =_abdbd ;};_bgadea .Set ("\u004b",_beea .K );};if _beea .S !=nil {_bgadea .Set ("\u0053",_beea .S );};if _beea .P !=nil {_bgadea .Set ("\u0050",_beea .P );
+};if _beea .Pg !=nil {_bgadea .Set ("\u0050\u0067",_beea .Pg );};if _beea .C !=nil {_bgadea .Set ("\u0043",_beea .C );};if _beea .R !=nil {_bgadea .Set ("\u0052",_beea .R );};if _beea .T !=nil {_bgadea .Set ("\u0054",_beea .T );};if _beea .Lang !=nil {_bgadea .Set ("\u004c\u0061\u006e\u0067",_beea .Lang );
+};if _beea .Alt !=nil {_bgadea .Set ("\u0041\u006c\u0074",_beea .Alt );};if _beea .E !=nil {_bgadea .Set ("\u0045",_beea .E );};if _beea .A !=nil {_bgadea .Set ("\u0041",_beea .A );}else if _beea ._abfe !=nil {_bfgbac :=_dfg .MakeArrayFromFloats ([]float64 {_beea ._abfe .Llx ,_beea ._abfe .Lly ,_beea ._abfe .Urx ,_beea ._abfe .Ury });
+_cgafe :=_dfg .MakeDict ();_cgafe .Set ("\u0042\u0042\u006f\u0078",_bfgbac );_cgafe .Set ("\u004f",_dfg .MakeString ("\u004c\u0061\u0079\u006f\u0075\u0074"));_bgadea .Set ("\u0041",_dfg .MakeIndirectObject (_cgafe ));};if _beea .ActualText !=nil {_bgadea .Set ("\u0041\u0063\u0074\u0075\u0061\u006c\u0054\u0065\u0078\u0074",_beea .ActualText );
+};if _beea .E !=nil {_bgadea .Set ("\u0045",_beea .E );};if _beea .Alt !=nil {_bgadea .Set ("\u0041\u006c\u0074",_beea .Alt );};return _bgadea ;};func (_bgecg *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";
+};
+
+// ToPdfObject implements interface PdfModel.
+func (_acb *PdfAction )ToPdfObject ()_dfg .PdfObject {_gecf :=_acb ._fe ;_cg :=_gecf .PdfObject .(*_dfg .PdfObjectDictionary );_cg .Clear ();_cg .Set ("\u0054\u0079\u0070\u0065",_dfg .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_cg .SetIfNotNil ("\u0053",_acb .S );
+_cg .SetIfNotNil ("\u004e\u0065\u0078\u0074",_acb .Next );return _gecf ;};
+
+// ToPdfObject returns the choice field dictionary within an indirect object (container).
+func (_eaad *PdfFieldChoice )ToPdfObject ()_dfg .PdfObject {_eaad .PdfField .ToPdfObject ();_dbff :=_eaad ._caaa ;_gfae :=_dbff .PdfObject .(*_dfg .PdfObjectDictionary );_gfae .Set ("\u0046\u0054",_dfg .MakeName ("\u0043\u0068"));if _eaad .Opt !=nil {_gfae .Set ("\u004f\u0070\u0074",_eaad .Opt );
+};if _eaad .TI !=nil {_gfae .Set ("\u0054\u0049",_eaad .TI );};if _eaad .I !=nil {_gfae .Set ("\u0049",_eaad .I );};return _dbff ;};func (_ccafb *PdfReader )newPdfAnnotationProjectionFromDict (_eafe *_dfg .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_aag :=&PdfAnnotationProjection {};
+_gffa ,_dgga :=_ccafb .newPdfAnnotationMarkupFromDict (_eafe );if _dgga !=nil {return nil ,_dgga ;};_aag .PdfAnnotationMarkup =_gffa ;return _aag ,nil ;};func _agbff (_ebfdd *_dfg .PdfObjectDictionary )(*PdfShadingType5 ,error ){_bcfcb :=PdfShadingType5 {};
+_cecdd :=_ebfdd .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _cecdd ==nil {_egb .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
+return nil ,ErrRequiredAttributeMissing ;};_eefae ,_bfaedbg :=_cecdd .(*_dfg .PdfObjectInteger );if !_bfaedbg {_egb .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_cecdd );
+return nil ,_dfg .ErrTypeError ;};_bcfcb .BitsPerCoordinate =_eefae ;_cecdd =_ebfdd .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cecdd ==nil {_egb .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
+return nil ,ErrRequiredAttributeMissing ;};_eefae ,_bfaedbg =_cecdd .(*_dfg .PdfObjectInteger );if !_bfaedbg {_egb .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_cecdd );
+return nil ,_dfg .ErrTypeError ;};_bcfcb .BitsPerComponent =_eefae ;_cecdd =_ebfdd .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _cecdd ==nil {_egb .Log .Debug ("\u0052\u0065\u0071u\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0056\u0065\u0072\u0074\u0069c\u0065\u0073\u0050\u0065\u0072\u0052\u006f\u0077");
+return nil ,ErrRequiredAttributeMissing ;};_eefae ,_bfaedbg =_cecdd .(*_dfg .PdfObjectInteger );if !_bfaedbg {_egb .Log .Debug ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050\u0065\u0072\u0052\u006f\u0077\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006et\u0065\u0067\u0065\u0072\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_cecdd );
+return nil ,_dfg .ErrTypeError ;};_bcfcb .VerticesPerRow =_eefae ;_cecdd =_ebfdd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cecdd ==nil {_egb .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
+return nil ,ErrRequiredAttributeMissing ;};_cgbd ,_bfaedbg :=_cecdd .(*_dfg .PdfObjectArray );if !_bfaedbg {_egb .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cecdd );
+return nil ,_dfg .ErrTypeError ;};_bcfcb .Decode =_cgbd ;if _cggbg :=_ebfdd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_cggbg !=nil {_bcfcb .Function =[]PdfFunction {};if _cgce ,_gcgfe :=_cggbg .(*_dfg .PdfObjectArray );_gcgfe {for _ ,_adaba :=range _cgce .Elements (){_gefbc ,_aeabd :=_gbada (_adaba );
+if _aeabd !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_aeabd );return nil ,_aeabd ;};_bcfcb .Function =append (_bcfcb .Function ,_gefbc );
+};}else {_cfebf ,_dcbeg :=_gbada (_cggbg );if _dcbeg !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_dcbeg );return nil ,_dcbeg ;
+};_bcfcb .Function =append (_bcfcb .Function ,_cfebf );};};return &_bcfcb ,nil ;};
+
+// PdfFont represents an underlying font structure which can be of type:
+// - Type0
+// - Type1
+// - TrueType
+// etc.
+type PdfFont struct{_fab pdfFont };
+
+// GetContainingPdfObject implements interface PdfModel.
+func (_fd *PdfAction )GetContainingPdfObject ()_dfg .PdfObject {return _fd ._fe };
+
+// Encoder returns the font's text encoder.
+func (_bccddf *PdfFont )Encoder ()_ff .TextEncoder {_abcd :=_bccddf .actualFont ();if _abcd ==nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0045n\u0063\u006f\u0064er\u0020\u006e\u006f\u0074\u0020\u0069m\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0066o\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003d%\u0023\u0054",_bccddf ._fab );
+return nil ;};return _abcd .Encoder ();};
+
+// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
+func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_aafd :=&PdfColorspaceCalRGB {};_aafd .BlackPoint =[]float64 {0.0,0.0,0.0};_aafd .Gamma =[]float64 {1.0,1.0,1.0};_aafd .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _aafd ;};
+
+// GetChildren returns the children of the K dictionary object.
+func (_geeag *KDict )GetChildren ()[]*KValue {return _geeag ._dcgedc };
+
+// SetPatternByName sets a pattern resource specified by keyName.
+func (_agfbd *PdfPageResources )SetPatternByName (keyName _dfg .PdfObjectName ,pattern _dfg .PdfObject )error {if _agfbd .Pattern ==nil {_agfbd .Pattern =_dfg .MakeDict ();};_gbee ,_ffgd :=_dfg .GetDict (_agfbd .Pattern );if !_ffgd {return _dfg .ErrTypeError ;
+};_gbee .Set (keyName ,pattern );return nil ;};
+
+// BorderStyle defines border type, typically used for annotations.
+type BorderStyle int ; \ No newline at end of file